diff options
author | Loïc Minier <lool@dooz.org> | 2009-04-15 00:04:36 +0200 |
---|---|---|
committer | Loïc Minier <lool@dooz.org> | 2009-04-15 00:04:36 +0200 |
commit | 0b7f8018c0813104d5ed151ba3ddebd84a9b42ef (patch) | |
tree | c7fa3990a33e470f2d8dd6f85b19e55dd8615bbc | |
parent | c14a30c049d9e2911dad3d7243f8cf9c69603249 (diff) |
Imported Upstream version 1.5.8
236 files changed, 10824 insertions, 4565 deletions
@@ -1,3 +1,1972 @@ +commit 7d2fda54f9bf6ae48cf8048b4836dea7f20cccee +Author: Carl Worth <cworth@cworth.org> +Date: Wed Jan 30 04:23:19 2008 -0800 + + NEWS: Add notes for the 1.5.8 snapshot + + NEWS | 103 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 files changed, 103 insertions(+), 0 deletions(-) + +commit 3b0adf4f5ac78e3f19b4e19267da2aa1b3c7d57b +Author: Jeff Muizelaar <jeff@infidigm.net> +Date: Tue Jan 29 09:07:54 2008 -0800 + + Use ADD instead of IN for clipping. + + ADD is already special-cased by pixman, so using it instead avoids hitting + the slower general path. + + src/cairo-clip.c | 34 ++++++++++++++++++++++++++++++++-- + 1 files changed, 32 insertions(+), 2 deletions(-) + +commit fa6aedf2d68941bf8532bf487d5412cfc508e0a9 +Author: Carl Worth <cworth@cworth.org> +Date: Tue Jan 29 09:01:47 2008 -0800 + + Fix typo in printf arguments in error message + + test/font-matrix-translation.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit e2bb36fe08546e6461fcbd40f5f3f81e5efc7686 +Author: Carl Worth <cworth@cworth.org> +Date: Tue Jan 29 08:41:21 2008 -0800 + + wAdd proper error propagation to _cairo_matrix_compute_scale_factors + + Before there was just an assert statement here that the + determinant of the matrix was not infinite. That was bogus + since a user-provided can end up here. So instead, do the + correct error propagation of any CAIRO_STATUS_INVALID_MATRIX + error as necessary. + + This eliminates the current failure of the invalid-matrix + test case. + + src/cairo-atsui-font.c | 56 ++++++++++++++++++++++++++++++++++------------ + src/cairo-ft-font.c | 20 +++++++++++----- + src/cairo-matrix.c | 7 ++++- + src/cairo-scaled-font.c | 13 +++++++--- + src/cairo-win32-font.c | 20 ++++++++++------ + src/cairoint.h | 4 +- + 6 files changed, 83 insertions(+), 37 deletions(-) + +commit 849322235764f570a4a3a1217960d096d16165cf +Author: Carl Worth <cworth@cworth.org> +Date: Tue Jan 29 05:40:39 2008 -0800 + + Initialize return values for cairo_*_extents in case of error + + Previously we left the return values alone, which set the + user up for a nasty trap, (using potentially uninitialized + values with no indication that there was an error). So now + we initialize these values to 0.0 if the cairo_t is in error. + + The fixed functions include: + + cairo_path_extents + cairo_stroke_extents + cairo_fill_extents + cairo_clip_extents + cairo_font_extents + + src/cairo.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++---- + 1 files changed, 50 insertions(+), 4 deletions(-) + +commit 6bdba4b4be5e66ffa61e164f8098b76d848e8f32 +Author: Carl Worth <cworth@cworth.org> +Date: Tue Jan 29 05:27:10 2008 -0800 + + Add missing libcairo_font_subset_sources to fix the build + + src/Makefile.am | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +commit 3d82056cee0ba960ebb61877fec8aa646e60e990 +Author: Nis Martensen <nis.martensen@web.de> +Date: Tue Jan 29 05:32:24 2008 -0500 + + Fix typos + + src/cairo.h | 4 ++-- + src/check-doc-syntax.sh | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +commit b28f4f57f21ac4091c9457873abe1465ec3f7fed +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Tue Jan 29 04:32:39 2008 -0500 + + [src/Makefile.am] Reorganize + + Main goal was to be able to pass list of all cairo sources, enabled or + not, to check-doc-syntax.sh such that it doesn't check *.h, *.c, *.cpp + because that can be annoying when bisecting. + + src/Makefile.am | 352 +++++++++++++++++++++++++--------------------- + src/check-doc-syntax.sh | 5 +- + 2 files changed, 195 insertions(+), 162 deletions(-) + +commit 41a57007939a3e206647fda1b6e5a554ca125c5f +Author: Adrian Johnson <ajohnson@redneon.com> +Date: Tue Jan 29 20:27:06 2008 +1100 + + Fix undefined macro that was preventing the tests from compiling + + test/pattern-getters.c | 28 ++++++++++++++-------------- + 1 files changed, 14 insertions(+), 14 deletions(-) + +commit cfce362375963502c4d29089b369d8e5ce2b7dcb +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Tue Jan 29 01:27:47 2008 -0500 + + [cairo_operator_t] Mark DestAtop unbounded and document boundedness + + src/cairo.h | 7 ++++++- + 1 files changed, 6 insertions(+), 1 deletions(-) + +commit f9b90e475ed6009e58e5f11ac713f9ea639a6900 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Tue Jan 29 01:20:03 2008 -0500 + + [doc] Fix cairo_operator_t docs to make Carl (and Keith) happy + + src/cairo.h | 17 ++++++++++++----- + 1 files changed, 12 insertions(+), 5 deletions(-) + +commit 9ee7a48b33f11a42b0ffd12a9192a328e35233f3 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Tue Jan 29 00:50:48 2008 -0500 + + [Makefile.am] Minor wording change + + Makefile.am | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit 013781137ff4940d0b9e04b656c20af37bbd5333 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Tue Jan 29 00:42:51 2008 -0500 + + [cairo-image-surface.c] Cleanup stride checking and improve docs + + src/cairo-image-surface.c | 16 ++++++++-------- + 1 files changed, 8 insertions(+), 8 deletions(-) + +commit 8e3250b8564a346c61e926a6aa61f18ae3f60c93 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Tue Jan 29 00:36:38 2008 -0500 + + [Makefile.am] Remove ROADMAP and TODO from dist files + + Makefile.am | 4 +--- + 1 files changed, 1 insertions(+), 3 deletions(-) + +commit 81e4cc3bd7d1fec659a19f8b37253aaebe12c99b +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Tue Jan 29 00:36:16 2008 -0500 + + [cairo_image_surface_create_for_data] Document stride error status + + src/cairo-image-surface.c | 4 +++- + 1 files changed, 3 insertions(+), 1 deletions(-) + +commit 6153a3b620641b1fb7b64a050a168482d2a42f2c +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Tue Jan 29 00:34:00 2008 -0500 + + [doc] Run check-doc-syntax.sh for SGML docs too + + doc/public/Makefile.am | 4 ++-- + doc/public/check-doc-syntax.sh | 11 +++++++++++ + src/check-doc-syntax.sh | 33 ++++++++++++++++++++++++--------- + 3 files changed, 37 insertions(+), 11 deletions(-) + +commit 3f7d301786ce345cc4221f434bda6751e9b97ad1 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Mon Jan 28 23:56:23 2008 -0500 + + [src/check-doc-syntax.sh] Skip test if GNU grep is not available + + src/check-doc-syntax.sh | 7 ++++++- + 1 files changed, 6 insertions(+), 1 deletions(-) + +commit 247e1011995b0241526262cc36eb34c7e5edd47c +Author: Carl Worth <cworth@cworth.org> +Date: Mon Jan 28 21:24:56 2008 -0800 + + Fix bitmap-font test by using near-equality for double comparison + + test/bitmap-font.c | 11 ++++++----- + test/cairo-test.h | 2 ++ + test/pattern-getters.c | 4 +--- + 3 files changed, 9 insertions(+), 8 deletions(-) + +commit 468caac068d3d25507d901f069e3e55731a27ae9 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Mon Jan 28 23:30:09 2008 -0500 + + [configure.in] Minor change to cairo-features.h comments to make tests pass + + configure.in | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit b4c7a0dc6e996e47390ae544f82024afbb7859ed +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Mon Jan 28 23:27:10 2008 -0500 + + [doc] Document CAIRO_HAS_* macros. We now finally have real 100% coverage. + + doc/public/Makefile.am | 2 ++ + doc/public/cairo-sections.txt | 9 +++++++++ + doc/public/tmpl/cairo-ft.sgml | 8 ++++++++ + doc/public/tmpl/cairo-pdf.sgml | 8 ++++++++ + doc/public/tmpl/cairo-png.sgml | 9 +++++++++ + doc/public/tmpl/cairo-ps.sgml | 8 ++++++++ + doc/public/tmpl/cairo-svg.sgml | 8 ++++++++ + doc/public/tmpl/cairo-win32-fonts.sgml | 8 ++++++++ + doc/public/tmpl/cairo-win32.sgml | 8 ++++++++ + doc/public/tmpl/cairo-xlib-xrender.sgml | 8 ++++++++ + doc/public/tmpl/cairo-xlib.sgml | 8 ++++++++ + 11 files changed, 84 insertions(+), 0 deletions(-) + +commit 47e0ecbea51cae73a85db277972b80eff0c4b9f6 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Mon Jan 28 23:26:35 2008 -0500 + + [configure.in] Generate a cairo-no-features.h with macros for disabled supported backends + to trick gtk-doc with it. + + configure.in | 33 ++++++++++++++++++++++++++++++++- + src/Makefile.am | 6 +++--- + src/check-headers.sh | 2 +- + 3 files changed, 36 insertions(+), 5 deletions(-) + +commit 9d8990b6bdec8e574e37346c363b3a850a246452 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Mon Jan 28 23:23:00 2008 -0500 + + [doc] Remove excess paranthesis + + src/cairo-xlib-surface.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit 6e495e94886dfa80f11f675a4b7fa3a767671cc0 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Mon Jan 28 23:10:28 2008 -0500 + + [doc] More syntax fixes + + doc/public/tmpl/cairo-version.sgml | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +commit a00d71968285fc8c49903c1c84835a8be32cfbd3 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Mon Jan 28 23:05:00 2008 -0500 + + [configure.in] Add commented-out #undef's for disable stable backends in cairo-features.h + + configure.in | 8 ++++++++ + 1 files changed, 8 insertions(+), 0 deletions(-) + +commit 6a089247a180cbc85e222520d2d93914434027be +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Mon Jan 28 22:45:06 2008 -0500 + + [doc] Rename cairo-font.sgml to cairo-font-face.sgml + + doc/public/cairo-docs.xml | 2 +- + doc/public/cairo-sections.txt | 2 +- + doc/public/tmpl/cairo-font-face.sgml | 112 ++++++++++++++++++++++++++++++++++ + doc/public/tmpl/cairo-font.sgml | 112 ---------------------------------- + 4 files changed, 114 insertions(+), 114 deletions(-) + +commit 1d17a7f7811b15c72a4091663e01a448f538bc68 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Mon Jan 28 22:42:46 2008 -0500 + + [doc] Document the surface type of win32-printing surface being different + + doc/public/tmpl/cairo-win32.sgml | 11 ++++++++++- + 1 files changed, 10 insertions(+), 1 deletions(-) + +commit a55f65b5d29060a7f8033ceea211252431d20b77 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Mon Jan 28 22:25:37 2008 -0500 + + [doc] Fix typo + + src/cairo-pattern.c | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +commit 52cc603db1a805a0b3a8d7eba3171cd2785f10a7 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Mon Jan 28 22:10:20 2008 -0500 + + [doc] Stricter syntax check for type names, update test + + src/cairo-array.c | 2 +- + src/cairo-cache-private.h | 2 +- + src/cairo-font-face.c | 4 ++-- + src/cairo-ft-font.c | 4 ++-- + src/cairo-image-surface.c | 2 +- + src/cairo-paginated-private.h | 8 ++++---- + src/cairo-ps-surface.c | 2 +- + src/cairo-ps.h | 2 +- + src/cairo-region-private.h | 2 +- + src/cairo-scaled-font-subsets-private.h | 16 ++++++++-------- + src/cairo-scaled-font.c | 2 +- + src/cairo-svg.h | 2 +- + src/cairo-types-private.h | 2 +- + src/cairo-win32-font.c | 2 +- + src/cairo.c | 2 +- + src/cairo.h | 24 ++++++++++++------------ + src/cairoint.h | 2 +- + src/check-doc-syntax.sh | 9 +++++---- + 18 files changed, 45 insertions(+), 44 deletions(-) + +commit b790c5a6bcdd890c16d21753407188ed200ce445 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Mon Jan 28 21:53:44 2008 -0500 + + [doc] Replace 'NOTE' by 'Note' and add it to test + + src/cairo-bentley-ottmann.c | 2 +- + src/cairo-cache.c | 4 ++-- + src/cairo-ft-font.c | 4 ++-- + src/cairo-lzw.c | 4 ++-- + src/cairo-output-stream-private.h | 2 +- + src/cairo-paginated-private.h | 4 ++-- + src/cairo-path.c | 2 +- + src/cairo-pen.c | 4 ++-- + src/cairo-scaled-font.c | 4 ++-- + src/cairo-slope.c | 2 +- + src/cairo-surface.c | 4 ++-- + src/cairo-win32-surface.c | 4 ++-- + src/cairo-xcb-surface.c | 4 ++-- + src/cairo-xlib-surface.c | 4 ++-- + src/cairo.c | 4 ++-- + src/check-doc-syntax.sh | 7 +++++++ + 16 files changed, 33 insertions(+), 26 deletions(-) + +commit f0633f4449c39a8f78c582790fb5dc85899b5d82 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Mon Jan 28 21:49:57 2008 -0500 + + [doc] Make sure all function names in docs are followed by () + + src/cairo-array.c | 2 +- + src/cairo-base85-stream.c | 3 +-- + src/cairo-beos-surface.cpp | 2 +- + src/cairo-cache-private.h | 4 ++-- + src/cairo-debug.c | 4 ++-- + src/cairo-deflate-stream.c | 3 +-- + src/cairo-ft-font.c | 4 ++-- + src/cairo-image-surface.c | 4 ++-- + src/cairo-output-stream-private.h | 3 +-- + src/cairo-output-stream.c | 3 +-- + src/cairo-paginated-private.h | 2 +- + src/cairo-path-fixed-private.h | 2 +- + src/cairo-path.c | 6 +++--- + src/cairo-pdf-surface.c | 4 ++-- + src/cairo-ps-surface.c | 6 +++--- + src/cairo-quartz-surface.c | 2 +- + src/cairo-scaled-font-subsets-private.h | 2 +- + src/cairo-scaled-font.c | 8 ++++---- + src/cairo-surface.c | 6 +++--- + src/cairo-svg-surface.c | 4 ++-- + src/cairo-traps.c | 2 +- + src/cairo-types-private.h | 4 ++-- + src/cairo-unicode.c | 3 +-- + src/cairo.c | 30 ++++++++++++++---------------- + src/cairo.h | 22 +++++++++++----------- + src/cairoint.h | 8 ++++---- + 26 files changed, 68 insertions(+), 75 deletions(-) + +commit 9ba8f6b1b0a4fbf2407e0dbd767f043c6920344c +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Mon Jan 28 21:49:26 2008 -0500 + + [src/check-doc-syntax.sh] Check for various doc syntax consistency rules + + src/Makefile.am | 2 +- + src/check-doc-syntax.sh | 36 ++++++++++++++++++++++++++++++++++++ + 2 files changed, 37 insertions(+), 1 deletions(-) + +commit e15fcdd74734e922183afd4732ec4ba090f313c9 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Mon Jan 28 21:48:23 2008 -0500 + + [doc] Improve syntax + + doc/public/tmpl/cairo-font.sgml | 7 +++++-- + doc/public/tmpl/cairo-matrix.sgml | 2 +- + doc/public/tmpl/cairo-pattern.sgml | 12 +++++++++--- + doc/public/tmpl/cairo-status.sgml | 5 +++-- + doc/public/tmpl/cairo-surface.sgml | 8 +++++++- + doc/public/tmpl/cairo-xcb-xrender.sgml | 3 ++- + doc/public/tmpl/cairo-xcb.sgml | 3 ++- + doc/public/tmpl/cairo-xlib-xrender.sgml | 3 ++- + doc/public/tmpl/cairo-xlib.sgml | 3 ++- + 9 files changed, 33 insertions(+), 13 deletions(-) + +commit 587508528c4a318649ecb347b96fbc89a40175ea +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Mon Jan 28 21:12:16 2008 -0500 + + [doc] Minor improvement + + doc/public/tmpl/cairo-beos.sgml | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +commit fd5dfedbb75593539eeda92013042ce5423a65c4 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Mon Jan 28 21:02:44 2008 -0500 + + [doc/public/check-doc-coverage.sh] Test that doc coverage is 100% + + Yay! + + doc/public/Makefile.am | 2 + + doc/public/check-doc-coverage.sh | 43 ++++++++++++++++++++++++++++++++++++++ + 2 files changed, 45 insertions(+), 0 deletions(-) + +commit c133ee5acc7c97fcd43d61f5aad160ca96c47941 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Mon Jan 28 21:00:21 2008 -0500 + + [doc] Improve docs for new API + + src/cairo-image-surface.c | 8 ++++---- + src/cairo-xlib-surface.c | 20 +++++++++++++------- + 2 files changed, 17 insertions(+), 11 deletions(-) + +commit 0d898f2badf41d3b0ae5ee88943c44cf49690f5d +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Mon Jan 28 20:49:44 2008 -0500 + + [doc] Make sure all type names in docs are prefixed by # + + src/cairo-array.c | 2 +- + src/cairo-bentley-ottmann.c | 4 ++-- + src/cairo-cache-private.h | 4 ++-- + src/cairo-cache.c | 2 +- + src/cairo-fixed-type-private.h | 2 +- + src/cairo-font-face.c | 12 ++++++------ + src/cairo-font-options.c | 2 +- + src/cairo-ft-font.c | 12 ++++++------ + src/cairo-gstate.c | 8 ++++---- + src/cairo-hash.c | 2 +- + src/cairo-image-surface.c | 4 ++-- + src/cairo-matrix.c | 10 +++++----- + src/cairo-mutex-type-private.h | 6 +++--- + src/cairo-pattern.c | 10 +++++----- + src/cairo-pdf-surface.c | 2 +- + src/cairo-png.c | 2 +- + src/cairo-ps-surface.c | 12 ++++++------ + src/cairo-quartz-surface.c | 2 +- + src/cairo-rectangle.c | 8 ++++---- + src/cairo-region.c | 2 +- + src/cairo-scaled-font-subsets-private.h | 8 ++++---- + src/cairo-scaled-font.c | 8 ++++---- + src/cairo-traps.c | 2 +- + src/cairo-types-private.h | 2 +- + src/cairo-win32-surface.c | 2 +- + src/cairo-xlib-surface.c | 4 ++-- + src/cairo.c | 4 ++-- + src/cairo.h | 16 ++++++++-------- + src/cairoint.h | 4 ++-- + 29 files changed, 79 insertions(+), 79 deletions(-) + +commit 9ecde82d35ead4975ce110bb2012264e3ca9d2e1 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Mon Jan 28 20:48:48 2008 -0500 + + [doc] Make sure all macro names in docs are prefixed by % + + src/cairo-array.c | 6 ++-- + src/cairo-bentley-ottmann.c | 8 +++--- + src/cairo-cache.c | 6 ++-- + src/cairo-deprecated.h | 2 +- + src/cairo-directfb.h | 4 +- + src/cairo-fixed-type-private.h | 2 +- + src/cairo-freelist-private.h | 4 +- + src/cairo-ft-font.c | 6 ++-- + src/cairo-gstate.c | 14 +++++----- + src/cairo-hash.c | 36 +++++++++++++------------- + src/cairo-image-surface.c | 4 +- + src/cairo-lzw.c | 14 +++++----- + src/cairo-meta-surface.c | 6 ++-- + src/cairo-mutex-private.h | 4 +- + src/cairo-mutex-type-private.h | 24 +++++++++--------- + src/cairo-os2.h | 6 ++-- + src/cairo-output-stream-private.h | 6 ++-- + src/cairo-paginated-private.h | 4 +- + src/cairo-path-fill.c | 2 +- + src/cairo-path.c | 12 ++++---- + src/cairo-pattern.c | 2 +- + src/cairo-pdf-surface.c | 2 +- + src/cairo-png.c | 10 +++--- + src/cairo-ps-surface.c | 12 ++++---- + src/cairo-scaled-font-subsets-private.h | 42 +++++++++++++++--------------- + src/cairo-scaled-font.c | 4 +- + src/cairo-surface-fallback.c | 6 ++-- + src/cairo-surface.c | 10 +++--- + src/cairo-svg-surface.c | 4 +- + src/cairo-types-private.h | 4 +- + src/cairo-win32-font.c | 4 +- + src/cairo-win32-surface.c | 10 +++--- + src/cairo-xcb-surface.c | 2 +- + src/cairo-xlib-surface.c | 4 +- + src/cairo.c | 26 +++++++++--------- + src/cairo.h | 10 +++--- + src/cairoint.h | 6 ++-- + src/test-fallback-surface.c | 4 +- + 38 files changed, 166 insertions(+), 166 deletions(-) + +commit 099c3c2602b59fbf9424044caa1fec7eb92f71df +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Mon Jan 28 20:32:35 2008 -0500 + + [doc] Another enum nick expansion + + src/cairo-scaled-font.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit 72feed5b54e1aa725c3c5238b21946b6250503fe +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Mon Jan 28 20:16:01 2008 -0500 + + [doc] Update templates for recently added APIs + + doc/public/cairo-sections.txt | 2 ++ + doc/public/tmpl/cairo-image.sgml | 10 ++++++++++ + doc/public/tmpl/cairo-paths.sgml | 2 +- + doc/public/tmpl/cairo-status.sgml | 1 + + doc/public/tmpl/cairo-xlib-xrender.sgml | 9 +++++++++ + 5 files changed, 23 insertions(+), 1 deletions(-) + +commit b7d43d235c01480b5a5a34db6fea8a3d86161d91 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Mon Jan 28 20:14:52 2008 -0500 + + [src/check-*] Shut make up + + src/check-def.sh | 4 ++-- + src/check-plt.sh | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +commit dd7ce762946ec03fc115310c7e295b3327d7e805 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Mon Jan 28 19:54:27 2008 -0500 + + [doc] Expand a couple nicks to full enum names + + src/cairo.h | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +commit c624ff46541b311c226ad7a026db3495b59dee41 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Mon Jan 28 19:45:10 2008 -0500 + + [cairo_operator_t] Improve docs + + src/cairo.h | 8 +++++--- + 1 files changed, 5 insertions(+), 3 deletions(-) + +commit f1271babcd4df1140019b258ca0af0d7da0d1328 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Mon Jan 28 19:37:46 2008 -0500 + + [doc] Add Long_Description and some See_Also for all chapters + + doc/public/tmpl/cairo-atsui.sgml | 6 +++- + doc/public/tmpl/cairo-beos.sgml | 7 ++++- + doc/public/tmpl/cairo-font-options.sgml | 11 +++++++-- + doc/public/tmpl/cairo-font.sgml | 12 +++++++++- + doc/public/tmpl/cairo-ft.sgml | 7 ++++- + doc/public/tmpl/cairo-glitz.sgml | 7 ++++- + doc/public/tmpl/cairo-image.sgml | 15 +++++++------ + doc/public/tmpl/cairo-matrix.sgml | 5 ++- + doc/public/tmpl/cairo-paths.sgml | 4 ++- + doc/public/tmpl/cairo-pattern.sgml | 13 ++++++++--- + doc/public/tmpl/cairo-pdf.sgml | 7 ++++- + doc/public/tmpl/cairo-png.sgml | 7 ++++- + doc/public/tmpl/cairo-ps.sgml | 7 ++++- + doc/public/tmpl/cairo-quartz.sgml | 7 ++++- + doc/public/tmpl/cairo-scaled-font.sgml | 13 ++++++++--- + doc/public/tmpl/cairo-status.sgml | 19 +++++++++++++++- + doc/public/tmpl/cairo-surface.sgml | 8 +++++- + doc/public/tmpl/cairo-svg.sgml | 7 ++++- + doc/public/tmpl/cairo-text.sgml | 34 ++++++++++++++++++++++++++++-- + doc/public/tmpl/cairo-transforms.sgml | 10 +++++++- + doc/public/tmpl/cairo-types.sgml | 4 +- + doc/public/tmpl/cairo-win32-fonts.sgml | 7 ++++- + doc/public/tmpl/cairo-win32.sgml | 7 ++++- + doc/public/tmpl/cairo-xcb-xrender.sgml | 10 +++++++- + doc/public/tmpl/cairo-xcb.sgml | 8 ++++++- + doc/public/tmpl/cairo-xlib-xrender.sgml | 12 ++++++++-- + doc/public/tmpl/cairo-xlib.sgml | 8 ++++++- + doc/public/tmpl/cairo.sgml | 4 ++- + 28 files changed, 202 insertions(+), 64 deletions(-) + +commit 73b184fb9c41f26365c99dbb5f81aa5166632722 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Mon Jan 28 19:19:27 2008 -0500 + + [src] Fix gtk-doc warnings + + src/cairo-scaled-font.c | 2 +- + src/cairo-surface.c | 2 +- + src/cairo.c | 6 +++--- + 3 files changed, 5 insertions(+), 5 deletions(-) + +commit 8709b943c6f0025c65081b23ea24ce606150cf49 +Author: Carl Worth <cworth@cworth.org> +Date: Mon Jan 28 16:15:28 2008 -0800 + + Fix some documentation typos + + src/cairo.h | 6 +++--- + 1 files changed, 3 insertions(+), 3 deletions(-) + +commit e48d7ca802acba300aee99def0eb01727fe2f58a +Author: Carl Worth <cworth@cworth.org> +Date: Mon Jan 28 16:11:39 2008 -0800 + + Add example to documentation of cairo_pattern_set_filter + + It's helpful to let the reade know about cairo_get_source here. + + src/cairo-pattern.c | 11 +++++++++++ + 1 files changed, 11 insertions(+), 0 deletions(-) + +commit cd26fa266b51ffd91aa9f2c60dd353c53729291e +Author: Carl Worth <cworth@cworth.org> +Date: Mon Jan 28 16:10:10 2008 -0800 + + Add documentation for cairo_filter_t + + src/cairo.h | 18 ++++++++++++++++++ + 1 files changed, 18 insertions(+), 0 deletions(-) + +commit 7c00269e00332974c3a2843272f84960a90b9fb7 +Author: Carl Worth <cworth@cworth.org> +Date: Sun Jan 27 12:36:19 2008 -0800 + + Add pdf-specific reference images for meta-surface-pattern + + This test has been "failing" ever since we had native + replay of metasurfaces to pdf. But looking at the results, + they are actually superior to the image-backend reference + images. + + test/meta-surface-pattern-pdf-ref.png | Bin 0 -> 4111 bytes + test/meta-surface-pattern-pdf-rgb24-ref.png | Bin 0 -> 4009 bytes + 2 files changed, 0 insertions(+), 0 deletions(-) + +commit 9cd198d200e4470d3451581b9e672a87d5d91719 +Author: Carl Worth <cworth@cworth.org> +Date: Mon Jan 28 15:37:22 2008 -0800 + + Test the no-Render-extension-available case in get-xrender-format + + test/get-xrender-format.c | 13 ++++++++++++- + 1 files changed, 12 insertions(+), 1 deletions(-) + +commit d7fd3bd536465881446686305622d31fdc6fd48f +Author: Carl Worth <cworth@cworth.org> +Date: Sun Jan 27 12:14:51 2008 -0800 + + Add get-xrender-format test to test cairo_xlib_surface_get_xrender_format + + test/.gitignore | 1 + + test/Makefile.am | 5 ++ + test/get-xrender-format.c | 104 +++++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 110 insertions(+), 0 deletions(-) + +commit cc94dce25085fef936b7cb36cf9fc41569668eba +Author: Carl Worth <cworth@cworth.org> +Date: Mon Jan 28 15:26:15 2008 -0800 + + Return NULL from cairo_xlib_surface_get_xrender_format without an error + + The NULL return value will only happen if the X Render extension + is not available. We've already got that NULL return value + documented, so it's not an error if the user asks for it. In + particular, it's definitely not a surface-type mismatch. + + src/cairo-xlib-surface.c | 6 +----- + 1 files changed, 1 insertions(+), 5 deletions(-) + +commit 3c018a6e5abe099fa916f45ecf0c8e9dd5771fae +Author: Carl Worth <cworth@cworth.org> +Date: Sun Jan 27 12:13:13 2008 -0800 + + Add new API cairo_xlib_surface_get_render_format + + src/cairo-xlib-surface.c | 27 +++++++++++++++++++++++++++ + src/cairo-xlib-xrender.h | 3 +++ + 2 files changed, 30 insertions(+), 0 deletions(-) + +commit 88811540722d891b987efa6fa8edcbab7e10feeb +Author: Carl Worth <cworth@cworth.org> +Date: Sun Jan 27 11:12:14 2008 -0800 + + Add missing cairo_private (for _pixman_format_to_masks) + + src/cairoint.h | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit 3841cc0932ac77540c306c1c70a6171d7d00cf3e +Author: Carl Worth <cworth@cworth.org> +Date: Mon Jan 28 15:12:38 2008 -0800 + + Clarify the documentation of stride within cairo_image_surface_create_for_data + + src/cairo-image-surface.c | 23 +++++++++++++++-------- + 1 files changed, 15 insertions(+), 8 deletions(-) + +commit 13a5624277adf7e87f66d674ce8073013b53bece +Author: Carl Worth <cworth@cworth.org> +Date: Mon Jan 28 14:29:36 2008 -0800 + + Rename cairo_image_surface_stride_for_width to cairo_format_stride_for_width + + Thanks for Behdad for the suggested name improvement. Also, make + it more clear that the stride passed to cairo_image_surface_create_for_data + should come from calling cairo_format_stride_for_width with the + same width. + + src/cairo-image-surface.c | 21 +++++++++++---------- + src/cairo.h | 4 ++-- + test/a8-mask.c | 11 ++++++----- + 3 files changed, 19 insertions(+), 17 deletions(-) + +commit dc67de3d8b6154b74a243cd7b63e45f343520256 +Author: Carl Worth <cworth@cworth.org> +Date: Sat Jan 26 23:12:14 2008 -0800 + + Add cairo_image_surface_stride_for_width + + Document this function as a required call to get the correct + stride value before calling cairo_image_surface_create_for_data. + This means that previously-failing calls with non-multiple-of-4 + stride values are now documented as errors. Also, we now have + the possibility of moving to more stringent alignment constraints, + (one can imagine doing 64-bit or 128-bit boundaries for example). + + src/cairo-image-surface.c | 60 +++++++++++++++++---- + src/cairo-surface.c | 3 + + src/cairo.c | 4 +- + src/cairo.h | 8 +++- + test/Makefile.am | 4 -- + test/a8-mask.c | 132 +++++++++++++++++++++++++++++++++++++++------ + 6 files changed, 179 insertions(+), 32 deletions(-) + +commit b151cb0709364bed03e4918b79f26ef3243948ca +Author: Carl Worth <cworth@cworth.org> +Date: Sat Jan 26 16:42:26 2008 -0800 + + Rename cairo_format_width to cairo_format_bits_per_pixel and correct its logic + + src/cairo-image-surface.c | 6 +++--- + src/cairo-scaled-font.c | 3 ++- + src/cairoint.h | 4 ++-- + 3 files changed, 7 insertions(+), 6 deletions(-) + +commit 538ace5b51c968a81ea1d4c8d7538f0a227661c6 +Author: Nis Martensen <nis.martensen@web.de> +Date: Sat Jan 26 19:11:26 2008 +0100 + + re-indent xml after removal of structuring level + + doc/public/cairo-docs.xml | 76 ++++++++++++++++++++++---------------------- + 1 files changed, 38 insertions(+), 38 deletions(-) + +commit 642e1af892353d55edd6ebe71720fb541c9deb22 +Author: Nis Martensen <nis.martensen@web.de> +Date: Sat Jan 26 19:05:16 2008 +0100 + + remove empty tutorial stub and one level of structuring + + doc/public/cairo-docs.xml | 6 ------ + 1 files changed, 0 insertions(+), 6 deletions(-) + +commit be93e61d70f4e32069448b79cca7eacab6035c6c +Author: Nis Martensen <nis.martensen@web.de> +Date: Sat Jan 26 18:44:32 2008 +0100 + + Add index of new symbols in 1.6 + + doc/public/cairo-docs.xml | 3 +++ + 1 files changed, 3 insertions(+), 0 deletions(-) + +commit 0874834ec4606c5ff960588077d5310927d560ba +Author: Nis Martensen <nis.martensen@web.de> +Date: Sat Jan 26 16:59:21 2008 +0100 + + Describe cairo_operator_t, add link to operators/ wiki page + + src/cairo.h | 28 ++++++++++++++++++++++++++++ + 1 files changed, 28 insertions(+), 0 deletions(-) + +commit b18bc660c6d5d5018b4cfaf0eaf0278669cac1ac +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Mon Jan 28 02:33:58 2008 -0500 + + [test/font-matrix-translation] Fix function signature + + test/font-matrix-translation.c | 13 ++++++++++--- + 1 files changed, 10 insertions(+), 3 deletions(-) + +commit 936edecb35b94213997fdb172f0256c658f416aa +Author: Vladimir Vukicevic <vladimir@pobox.com> +Date: Sun Jan 27 16:52:39 2008 -0800 + + [quartz] only use DrawTiledImage if transformed image is integer aligned + + This Quartz API seems to only tile at integer coordinates; if the source image is + scaled to anything less than integer-aligned, seams appear between tiles. Detect + this and fall back to slower but more general CGPattern path. + + src/cairo-quartz-surface.c | 144 +++++++++++++++++++++++-------------------- + 1 files changed, 77 insertions(+), 67 deletions(-) + +commit 182b02240192c03b1fae5367573962d527f8aad4 +Author: Vladimir Vukicevic <vladimir@pobox.com> +Date: Sat Jan 26 10:57:20 2008 -0800 + + [win32] Fix initial clip region test + + I misread the docs; GetClipBox's return value doesn't necessarily correspond to + GetClipRgn's region type. + + src/cairo-win32-surface.c | 3 +-- + 1 files changed, 1 insertions(+), 2 deletions(-) + +commit 0e737632905e61f4d76b6b2c4e5908d75a5cddda +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Sun Jan 27 02:19:47 2008 -0500 + + [src] Fix make check + + src/cairo-quartz-surface.c | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +commit b3eea75d1f7b56c2046b5387a5eb186d8f154184 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Sat Jan 26 13:56:08 2008 -0500 + + Change cairo_get_current_point() to return cairo_status_t instead of void + + So we can return CAIRO_STATUS_NO_CURRENT_POINT. Previously it wasn't easy + to fetch that information. + + src/cairo.c | 22 ++++++++++++++++++---- + src/cairo.h | 2 +- + 2 files changed, 19 insertions(+), 5 deletions(-) + +commit 79383841520af3a7de3018befca37be6a037f9ba +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Fri Jan 25 19:48:36 2008 -0500 + + [doc] Update list of private header files + + doc/public/Headers.mk | 10 ++++++++++ + 1 files changed, 10 insertions(+), 0 deletions(-) + +commit 58f6aed93d137b77a2550bcace16f8d5573d45ef +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Fri Jan 25 19:47:07 2008 -0500 + + [doc] Update for recent API changes + + doc/public/tmpl/cairo-paths.sgml | 2 ++ + doc/public/tmpl/cairo-status.sgml | 1 + + doc/public/tmpl/cairo-surface.sgml | 2 -- + 3 files changed, 3 insertions(+), 2 deletions(-) + +commit 45e7ba356d308f67f674a20484a55d41fe922d13 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Fri Jan 25 19:46:43 2008 -0500 + + [cairo-pdf-operators] Reformat typedef to not confuse gtk-doc + + src/cairo-pdf-operators-private.h | 7 +++---- + 1 files changed, 3 insertions(+), 4 deletions(-) + +commit 756420a780e870bed6f174ca7f3f14421d1ff7d2 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Fri Jan 25 19:38:27 2008 -0500 + + [cairo_surface_show/copy_page()] Make them return void, like cairo_show/copy_page() do + + src/cairo-gstate.c | 6 ++++-- + src/cairo-paginated-surface.c | 12 ++++++++---- + src/cairo-surface.c | 33 ++++++++++++++++++--------------- + src/cairo-svg-surface.c | 5 +++-- + src/cairo.h | 4 ++-- + 5 files changed, 35 insertions(+), 25 deletions(-) + +commit c4ec5539ca7380dccf1a2f797e536c7273b5c2b5 +Author: Nis Martensen <nis.martensen@web.de> +Date: Fri Jan 25 19:13:13 2008 -0500 + + [cairo-surface] Fix doc typo + + src/cairo-surface.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit ab188f2e90b49fc4e07f04dc512f9fb9864efa0b +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Fri Jan 25 17:44:26 2008 -0500 + + [cairo-ft] Disable embedded bitmaps if hinting style NONE is requested + + src/cairo-ft-font.c | 11 ++++++++--- + 1 files changed, 8 insertions(+), 3 deletions(-) + +commit 2df9944a8ac48cb43845e56c5483bf77dafda584 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Fri Jan 25 17:12:34 2008 -0500 + + [.gitignore] Add check-has-hidden-symbols.i + + src/.gitignore | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +commit 3d2144b6af07ca44b6fbf1c96080b7e2b7c0285c +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Fri Jan 25 17:06:11 2008 -0500 + + [cairo-ft] Fix font metrics computation for bitmap fonts and no metrics-hinting + + Preivously we were returning NAN font metrics. Fixed now. Makes bitmap-font + test pass again. + + src/cairo-ft-font.c | 7 ++++++- + 1 files changed, 6 insertions(+), 1 deletions(-) + +commit c621d8d7191bfa8c1bca533bf9d53d514d01f529 +Author: Vladimir Vukicevic <vladimir@pobox.com> +Date: Fri Jan 25 15:01:44 2008 -0800 + + [ps] Pad image mask lines out to full lines + + The PostScript backend was generating image masks with packed mask + bits, when PS seems to expect each line of the mask to be padded out + to 8 bytes. + + Ref: https://bugzilla.mozilla.org/show_bug.cgi?id=407360 + + src/cairo-ps-surface.c | 8 +++++++- + 1 files changed, 7 insertions(+), 1 deletions(-) + +commit bae496df11247a1e4aff8b0df3356701f8a11792 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Fri Jan 25 08:03:32 2008 -0500 + + [test/bitmap-font] Test under all combinations of hinting, test font metrics too + + This is now failing as we compute NAN font metrics for bitmap-only fonts under + disabled metrics hinting. A very infamous bug excercised with PangoCairo's PDF + output. + + test/bitmap-font.c | 102 +++++++++++++++++++++++++++++++++++++++++++++++---- + 1 files changed, 94 insertions(+), 8 deletions(-) + +commit 20c8531243c2f2ee220bd1f234cdba6fc3d6d4c7 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Fri Jan 25 07:14:07 2008 -0500 + + [test/text-zero-len] Test text and font extents for font size 0 + + test/text-zero-len.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++++- + 1 files changed, 50 insertions(+), 2 deletions(-) + +commit 83bd590760629b61898ed403e273046545f26767 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Fri Jan 25 07:02:25 2008 -0500 + + [test] Test that cairo_text_extents() and cairo_scaled_font_text_extents() match + in results. + + test/font-matrix-translation.c | 31 ++++++++++++++++++++++++++++++- + 1 files changed, 30 insertions(+), 1 deletions(-) + +commit 4c432b09557f52fa35be981743272b33baca6232 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Fri Jan 25 04:16:44 2008 -0500 + + [cairo-scaled-font] Fix bug in glyphs bounding box computation + + In 02970ac8cf27bc9d42cf27848a97019d9dd13b6d Vlad introduced the following + innocent-looking change: + + - short min_x = INT16_MAX, max_x = INT16_MIN; + - short min_y = INT16_MAX, max_y = INT16_MIN; + + cairo_point_int_t min = { CAIRO_RECT_INT_MIN, CAIRO_RECT_INT_MIN }; + + cairo_point_int_t max = { CAIRO_RECT_INT_MAX, CAIRO_RECT_INT_MAX }; + + Well, read it carefully... yeah. That caused each show glyph operation + upload a mask the size of the surface. With evince/poppler and certain + PDF files that each glyph is rendered in its own cairo_show_glyphs() + call, that meant a 20x slowdown in rendering a page of PDF. + + If still wondering what's wrong with that change, here is the answer: + + - cairo_point_int_t min = { CAIRO_RECT_INT_MIN, CAIRO_RECT_INT_MIN }; + - cairo_point_int_t max = { CAIRO_RECT_INT_MAX, CAIRO_RECT_INT_MAX }; + + cairo_point_int_t min = { CAIRO_RECT_INT_MAX, CAIRO_RECT_INT_MAX }; + + cairo_point_int_t max = { CAIRO_RECT_INT_MIN, CAIRO_RECT_INT_MIN }; + + Yay for git-bisect. + + src/cairo-scaled-font.c | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +commit 8983208f456c6f570698df46174faa0208d6de5f +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Fri Jan 25 01:00:21 2008 -0500 + + [configure.in] Require pixman >= 0.9.6 + + I was experiencing very weird rendering problems and crashes in evince with + pixman 0.9.4. Upgrading to pixman 0.9.6 fixed the all. Lets just require it. + + configure.in | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit 5dfe47a3f14ee8597395dc53ff57fd429e9804cd +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Fri Jan 25 00:35:11 2008 -0500 + + [cairo-scaled-font] Unbreak it after my recent commit + + Sigh. + + src/cairo-scaled-font.c | 41 +++++++++++++++++++---------------------- + 1 files changed, 19 insertions(+), 22 deletions(-) + +commit efd3a965244305a069ec231b7ec28cff8d6c67c8 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Thu Jan 24 23:35:06 2008 -0500 + + [cairo-scaled-font] Don't err on font size 0, really + + First, seems like we were rejecting degenerate font matrix right away + at the constructor. Don't do that. + + Next, PS/PDF were inverting the font scale matrix, assuming that it's + invertible. We now keep the inverse too, so they can use it. For the + case of a size 0 font, both the scale matrix and its invert are set to + 0,0,0,0. That's safe, even if slightly inconsistent. + + src/cairo-pdf-surface.c | 5 +---- + src/cairo-ps-surface.c | 5 +---- + src/cairo-scaled-font-private.h | 1 + + src/cairo-scaled-font.c | 19 ++++++++----------- + 4 files changed, 11 insertions(+), 19 deletions(-) + +commit 45f269e33020d8d7cf247926712b9c64c1fb8959 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Thu Jan 24 22:39:28 2008 -0500 + + [cairo-scaled-font] Oops, return err if not handling it + + src/cairo-scaled-font.c | 4 ++++ + 1 files changed, 4 insertions(+), 0 deletions(-) + +commit 6d0dc3e0760e6bc6b0eceab48674410b4e865287 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Thu Jan 24 22:24:23 2008 -0500 + + [cairo-scaled-font] Don't err on font size 0 + + src/cairo-scaled-font.c | 18 ++++++++++++++++-- + 1 files changed, 16 insertions(+), 2 deletions(-) + +commit ea9afecc9aaa87c2df14dc9126c75ac0e3e5b13f +Author: Vladimir Vukicevic <vladimir@pobox.com> +Date: Thu Jan 24 11:48:02 2008 -0800 + + [quartz] Do dynamic symbol lookups for 10.4/10.5 optimization symbols + + The gcc-__attribute-__ based weak linking was causing all sorts of problems; + do dlsym lookups at runtime instead. + + src/cairo-quartz-surface.c | 39 ++++++++++++++++++++++++++++----------- + 1 files changed, 28 insertions(+), 11 deletions(-) + +commit 287de2ce5883daa4238c534e0d4890cb640d7fb7 +Author: Vladimir Vukicevic <vladimir@pobox.com> +Date: Wed Jan 23 21:30:42 2008 -0800 + + [quartz] Clean up unused APIs a bit + + The data parameter from get_image was never really used; get rid of it and clean up + callers. Also get rid of a chunk of dead code in release_dest_image. + + src/cairo-quartz-surface.c | 76 +++++++------------------------------------ + 1 files changed, 13 insertions(+), 63 deletions(-) + +commit b96c6c26c2d6b0b5f79ee569ece602338c4146b2 +Author: Vladimir Vukicevic <vladimir@pobox.com> +Date: Thu Jan 24 11:04:26 2008 -0800 + + [win32] Print non-black/white text correctly in show_glyphs + + src/cairo-win32-printing-surface.c | 6 +++--- + 1 files changed, 3 insertions(+), 3 deletions(-) + +commit 8e7c0db8018b258fc367da1e5502e9e13bad098c +Author: Vladimir Vukicevic <vladimir@pobox.com> +Date: Thu Jan 24 11:01:55 2008 -0800 + + [win32] Better tracking of initial clip + + There were a few corner cases that the win32 surface was failing + at when there was an initial clip set; the win32-printing surface + had more serious problems when painting meta surface patterns. + This cleans up the initial DC clip tracking for both surfaces. + + src/cairo-win32-printing-surface.c | 69 +++++------- + src/cairo-win32-private.h | 23 +++- + src/cairo-win32-surface.c | 221 +++++++++++++++++++++++++----------- + 3 files changed, 197 insertions(+), 116 deletions(-) + +commit c05e3b08b4cfa820a18e33b5012a6138b931788f +Author: Carl Worth <cworth@cworth.org> +Date: Thu Jan 24 09:51:58 2008 -0800 + + Remove ROADMAP and TODO, mentioning their URLs in README + + We're maintaining these as part of cairo's website now, + rather than as part of the source code. + + README | 18 +++---- + ROADMAP | 149 --------------------------------------------------------------- + TODO | 111 ----------------------------------------------- + 3 files changed, 8 insertions(+), 270 deletions(-) + +commit 21823842775988c0b58e3868dce053544ed246e2 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Wed Jan 23 15:06:52 2008 -0500 + + [test] Minor fix for check-ref-dups rule + + test/Makefile.am | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +commit e7c0a69dcb627abb677f84473a9e3857b2d89a69 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Wed Jan 23 14:57:42 2008 -0500 + + [test] Also check for reference images listed in Makefile.am but missing + in git, and if this is not a git checkout, in source directory. + + test/Makefile.am | 36 +++++++++++++++++++++++++++--------- + 1 files changed, 27 insertions(+), 9 deletions(-) + +commit 188765c8e857c88a66656a454a3dbd27c32170f7 +Author: Bertram Felgenhauer <int-e@gmx.de> +Date: Wed Jan 23 19:22:18 2008 +0100 + + improve comments for the pixman transformation anchoring math. + + src/cairo-matrix.c | 14 +++++++++++++- + 1 files changed, 13 insertions(+), 1 deletions(-) + +commit b6c723644302c43b7aae098338092e578fe2f007 +Author: Bertram Felgenhauer <int-e@gmx.de> +Date: Wed Jan 23 18:09:20 2008 +0100 + + update reference images for some non-aa testcases + + test/rectangle-rounding-error-ref.png | Bin 298 -> 231 bytes + test/rotate-image-surface-paint-ref.png | Bin 232 -> 209 bytes + test/unantialiased-shapes-ref.png | Bin 4449 -> 3968 bytes + 3 files changed, 0 insertions(+), 0 deletions(-) + +commit 5a0b15d2c9b5e9ef3aed1f01e8ea28a3f2c36216 +Author: Bertram Felgenhauer <int-e@gmx.de> +Date: Wed Jan 23 18:02:02 2008 +0100 + + anchor pattern transformations at the pattern origin + This keeps the rounding errors due to the conversion to 16.16 fixed point + numbers small and improves cairo's translation invariance. + + src/cairo-matrix.c | 23 +++++++++++++++++++++++ + 1 files changed, 23 insertions(+), 0 deletions(-) + +commit 431e846c03b39495ac57834a8b65b7499472ef1b +Author: Vladimir Vukicevic <vladimir@pobox.com> +Date: Tue Jan 22 16:30:37 2008 -0800 + + cairo_point_int32_t is really int32_t, not int16_t + + Oops. + + src/cairo-types-private.h | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit 02970ac8cf27bc9d42cf27848a97019d9dd13b6d +Author: Vladimir Vukicevic <vladimir@pobox.com> +Date: Tue Jan 22 15:32:11 2008 -0800 + + Fix usage of cairo_rectangle_int16_t leading to memory corruption + + cairo_rectangle_int16_t was being used in a number of places instead + of cairo_rectangle_int_t, which led to memory corruption when cairo was + using a fixed point format with a bigger space than 16.16 (such as 24.8). + + src/cairo-analysis-surface.c | 3 +++ + src/cairo-pdf-surface.c | 6 +++--- + src/cairo-scaled-font.c | 24 ++++++++++++------------ + src/cairo-surface-fallback.c | 9 ++------- + src/cairo-win32-private.h | 2 +- + src/cairo-xcb-surface.c | 4 ++-- + src/cairo-xlib-surface.c | 4 ++-- + src/cairoint.h | 2 +- + 8 files changed, 26 insertions(+), 28 deletions(-) + +commit 1109ccfb4e5b078581a3b4a7e2d152681fa863ec +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Tue Jan 22 17:44:47 2008 -0500 + + [ROADMAP] Add item: Make cairo-ft respect FC_FT_FACE pattern element + + ROADMAP | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +commit 5024650d4d8d4fa890a531d9e54fed7beef8e2c1 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Tue Jan 22 12:45:50 2008 -0500 + + [test] Only summarize check results for the tests tested! + + test/Makefile.am | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit 18181f12ae6c412fea984484355ff8bc1dfccb54 +Author: Carl Worth <cworth@cworth.org> +Date: Tue Jan 22 06:25:19 2008 -0800 + + Make Carl return from his time-traveling expedition + + test/rectilinear-miter-limit.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit 95f3b425e6fb31b364b08e53e072fac4f5ed0733 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Tue Jan 22 01:03:02 2008 -0500 + + [cairo-path-stroke] Use M_SQRT2 for constant value + + src/cairo-path-stroke.c | 8 ++++---- + src/cairoint.h | 4 ++++ + 2 files changed, 8 insertions(+), 4 deletions(-) + +commit 1931ce1b3d491afe4f23670c82e428f95eb25e6d +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Tue Jan 22 00:36:25 2008 -0500 + + [cairo-operator] Remove unused cairo-operator.c + + src/Makefile.am | 1 - + src/cairo-operator.c | 119 -------------------------------------------------- + src/cairoint.h | 7 --- + 3 files changed, 0 insertions(+), 127 deletions(-) + +commit 47cf7ed769891b00abf96d14de6e79c0fa893cf9 +Author: Carl Worth <cworth@cworth.org> +Date: Mon Jan 21 16:45:41 2008 -0800 + + Test and document that fill rule has no effect on cairo_path_extents + + src/cairo.c | 4 +- + test/get-path-extents.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 51 insertions(+), 2 deletions(-) + +commit 1ca186f51134e7d5969937760b068caba0070d31 +Author: Carl Worth <cworth@cworth.org> +Date: Mon Jan 21 16:34:24 2008 -0800 + + Disable rectilinear stroke optimization for small miter limit values + + This fixes the bug that was causing the recently added + rectilinear-miter-limit test case to fail. It passes + quite happily now. + + src/cairo-path-stroke.c | 6 ++++++ + 1 files changed, 6 insertions(+), 0 deletions(-) + +commit 32efcc94627e8890969c4b36a78c831ced6f8d62 +Author: Carl Worth <cworth@cworth.org> +Date: Mon Jan 21 16:32:48 2008 -0800 + + Add new rectilinear-miter-limit test to demonstrate bug + + We're failing to respect the miter limit in the rectilinear + stroke optimization code. + + test/.gitignore | 1 + + test/Makefile.am | 2 + + test/rectilinear-miter-limit-ref.png | Bin 0 -> 177 bytes + test/rectilinear-miter-limit.c | 80 ++++++++++++++++++++++++++++++++++ + 4 files changed, 83 insertions(+), 0 deletions(-) + +commit 326342962daa694d876c03194e8a6c1b13f9a8d2 +Author: Carl Worth <cworth@cworth.org> +Date: Mon Jan 21 15:20:07 2008 -0800 + + Rename trailing_move_to_point to move_to_point + + And prefer TRUE and FALSE literals over 1 and 0. + + src/cairo-path-bounds.c | 24 +++++++++++++----------- + 1 files changed, 13 insertions(+), 11 deletions(-) + +commit c480eedbb58dd03dd4b9b87b3985758ffbce7113 +Author: Carl Worth <cworth@cworth.org> +Date: Mon Jan 21 14:56:21 2008 -0800 + + Test and document extents of degenerate "dots" + + It's a common idiom to stroke degenerate sub-paths made with + cairo_move_to(x,y);cairo_rel_line_to(0,0) to draw dots. Test + that we get the desired extents from cairo_fill_extents, + cairo_stroke_extents, and cairo_path_extents for these cases. + + Also document that the cairo_path_extents result is equivalent + to the limit of stroking with CAIRO_LINE_CAP_ROUND, (so that + these "dot" points are included), as the line width + approaches 0.0 . + + src/cairo.c | 6 +++--- + test/get-path-extents.c | 28 ++++++++++++++++++++++++++++ + 2 files changed, 31 insertions(+), 3 deletions(-) + +commit 55e0dddf0408046ea0ded419ebe45099a4eb563e +Author: Carl Worth <cworth@cworth.org> +Date: Mon Jan 21 14:45:06 2008 -0800 + + Add cairo_path_extents testing to several cases missing it + + With these degenerate shapes, cairo_path_extents still returns + a zero-area rectangle, but with a non-zero offset. + + test/get-path-extents.c | 12 ++++++++---- + 1 files changed, 8 insertions(+), 4 deletions(-) + +commit 63df3a82a3a4a035edf89152995a324449616059 +Author: Carl Worth <cworth@cworth.org> +Date: Mon Jan 21 13:47:05 2008 -0800 + + Fix cairo_path_extents to ignore lone cairo_move_to points. + + Update the documentation as well. + + src/cairo-path-bounds.c | 11 ++++++++++- + src/cairo.c | 40 +++++++++++++++++++++++++--------------- + 2 files changed, 35 insertions(+), 16 deletions(-) + +commit c15cab8b6855540436e457465c4766812c6def55 +Author: Carl Worth <cworth@cworth.org> +Date: Mon Jan 21 13:34:53 2008 -0800 + + Correct near-pangram to be an actual pangram + + This wasn't affecting the test quality at all, but it did annoy + me to see this mistake. + + test/get-path-extents.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit ed695bdb9b1e4500f796c7f07a7cc2f3832b2a39 +Author: Carl Worth <cworth@cworth.org> +Date: Mon Jan 21 13:33:46 2008 -0800 + + Define repeated string literal once + + test/get-path-extents.c | 10 ++++++---- + 1 files changed, 6 insertions(+), 4 deletions(-) + +commit 80df194b77a4caac1d58132341f034596e500bda +Author: Carl Worth <cworth@cworth.org> +Date: Mon Jan 21 12:14:49 2008 -0800 + + Clarify documentation of cairo_{fill,stroke,path}_extents + + Mostly just adding more cross-references between the documentation + of these three similar functions. + + src/cairo.c | 36 +++++++++++++++++++++++++----------- + 1 files changed, 25 insertions(+), 11 deletions(-) + +commit eba04b7fbcc7fdbf075ad1372208908634459178 +Author: Brian Ewins <Brian.Ewins@gmail.com> +Date: Sun Jan 20 03:22:12 2008 +0000 + + [path] use new interpret_flat infrastructure for path_populate + + refactor to reduce duplication of flattening code. + + src/cairo-path.c | 50 +++++++++++++------------------------------------- + 1 files changed, 13 insertions(+), 37 deletions(-) + +commit 3270ae6a65105787942da8309fa874ee65bc79fe +Author: Brian Ewins <Brian.Ewins@gmail.com> +Date: Sun Jan 20 03:21:41 2008 +0000 + + [path] Use new interpret_flat infrastructure for path_count. + + Refactor to reduce duplication of path flattening code. + + src/cairo-path-bounds.c | 6 ---- + src/cairo-path.c | 62 +++++++++++++--------------------------------- + 2 files changed, 18 insertions(+), 50 deletions(-) + +commit 4177208be63caa3128eaf07428f3d4617fcd18e0 +Author: Brian Ewins <Brian.Ewins@gmail.com> +Date: Fri Nov 16 22:43:43 2007 +0000 + + [cairo] Add cairo_path_extents() + + This new function gets the extents of the current path, whether + or not they would be inked by a 'fill'. It differs from + cairo_fill_extents() when the area enclosed by the path is 0. + + Includes documentation and updated test. + + doc/public/cairo-sections.txt | 1 + + doc/public/tmpl/cairo-paths.sgml | 10 ++++++++++ + src/cairo-gstate.c | 11 +++++++++++ + src/cairo.c | 30 ++++++++++++++++++++++++++++++ + src/cairo.h | 5 +++++ + src/cairoint.h | 7 +++++++ + test/get-path-extents.c | 33 +++++++++++++++++++++++---------- + 7 files changed, 87 insertions(+), 10 deletions(-) + +commit d923457c0f40c9b34ee75d4d47b9bd0c3edfe669 +Author: Brian Ewins <Brian.Ewins@gmail.com> +Date: Sat Jan 19 22:31:49 2008 +0000 + + [path-fixed] make _cairo_path_fixed_bounds use _cairo_path_fixed_interpret_flat + + _cairo_path_fixed_bounds can use the new _interpret_flat mechanism; this + results in tighter bounds; previously the bounds followed the control + points of the beziers, whereas now they are the bounds of the curve. + + src/cairo-analysis-surface.c | 2 +- + src/cairo-path-bounds.c | 39 ++++++++++++++------------------------- + src/cairoint.h | 3 ++- + 3 files changed, 17 insertions(+), 27 deletions(-) + +commit 1471b3f00acddecdfc2617a62ab0e584f319dc1c +Author: Brian Ewins <Brian.Ewins@gmail.com> +Date: Sat Jan 19 22:31:10 2008 +0000 + + [path-fixed] add _cairo_path_fixed_interpret_flat + + _cairo_path_fixed_interpret_flat flattens the path as it + interprets it, meaning that a curve_to callback is not + required. + + src/cairo-path-fixed.c | 99 ++++++++++++++++++++++++++++++++++++++++++++++++ + src/cairoint.h | 9 ++++ + 2 files changed, 108 insertions(+), 0 deletions(-) + +commit 3339c32b0aa44c4bae6e534f90d26aa342e3d717 +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Sun Jan 20 02:56:26 2008 -0500 + + [cairoint.h] Move MSC inline macros into cairo-compiler-private.h + where they belong + + src/cairo-compiler-private.h | 10 ++++++++++ + src/cairoint.h | 11 ----------- + 2 files changed, 10 insertions(+), 11 deletions(-) + +commit ac17ce0f89b494a404756c8d24b21a7fb354218e +Author: Behdad Esfahbod <behdad@behdad.org> +Date: Sun Jan 20 02:54:16 2008 -0500 + + [cairo-fixed/wideint-private.h] Split out typedefs from prototypes + such that the type definitions can be used from boilerplate without exposing + the prototypes. + + src/Makefile.am | 2 + + src/cairo-fixed-private.h | 34 +--------- + src/cairo-fixed-type-private.h | 70 ++++++++++++++++++++ + src/cairo-types-private.h | 2 +- + src/cairo-wideint-private.h | 71 +-------------------- + src/cairo-wideint-type-private.h | 130 ++++++++++++++++++++++++++++++++++++++ + src/cairoint.h | 1 + + 7 files changed, 208 insertions(+), 102 deletions(-) + +commit f072d815d40e6fd44369424b68d54cea22da3a26 +Author: Peter Weilbacher <mozilla@weilbacher.org> +Date: Sat Jan 19 20:48:39 2008 -0500 + + [cairo-ft] Fix typo in comment + + src/cairo-ft-font.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit 0fb800ff2258d4642a2188a7f219db9620450bc2 +Author: Peter Weilbacher <mozilla@weilbacher.org> +Date: Sat Jan 19 20:47:59 2008 -0500 + + [cairo-ft] Add FC_PIXEL_SIZE as double, not int + + src/cairo-ft-font.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit 8887fb35936bb48acadc19a0c71d1b81ec8b481d +Author: Adrian Johnson <ajohnson@redneon.com> +Date: Sun Jan 20 01:14:19 2008 +1030 + + Fix PS/PDF Type 1 font embedding when glyph 0 is used + + cairo-scaled-fonts-subsets.c reserves position 0 in each subset for + glyph 0 (.notdef) as the font embedding of each font type requires + .notdef as the first glyph. For some reason this was done by reserving + the position then inserting glyph 0 in the collect function instead of + just adding the glyph to the hash table when the subset is + created. The problem this caused was that when an application called + show_glyphs() with glyph 0, the glyph was added to the hash table + (because it was not already there) resulting in two .notdef glyphs in + the subset. This resulted in breakage in the Type 1 subsetting where + the second .notdef was not emitted and all subsequent glyphs were + moved up one place resulting in incorrect font encoding in the PS/PDF + output. + + Fix this by adding .notdef to the subset hash table when the subset is + created. + + This fixes #13841. + + src/cairo-scaled-font-subsets.c | 36 +++++++++++++++++++----------------- + 1 files changed, 19 insertions(+), 17 deletions(-) + +commit 574bdd01fd5df8f378c901de5cd9b24bd720ad37 +Author: Adrian Johnson <ajohnson@redneon.com> +Date: Sun Jan 20 00:26:09 2008 +1030 + + Type1-subset: Add newline to the end of the font + + as some fonts do not have a newline at the end of the last line + + src/cairo-type1-subset.c | 3 +++ + 1 files changed, 3 insertions(+), 0 deletions(-) + +commit ec272fbd0980e8124d87ff5c17a5b751876fc9e2 +Author: Adrian Johnson <ajohnson@redneon.com> +Date: Sat Jan 19 12:46:24 2008 +1030 + + Fix PDF extend-reflect test failure + + Previously, when emitting image patterns the PDF backend used + _cairo_pattern_acquire_surface to get the image. For reflected images + this would return an image containing four images in a reflect + pattern. When drawn in a PDF pattern (which only does repeating + patterns) this would create the reflected pattern in PDF. + + For some reason _cairo_pattern_acquire_surface is no longer returning + a reflected image pattern. + + This is fixed by only using _cairo_surface_acquire_source_image to get + the image and using the same code as is used for reflected + meta-surface patterns to created a reflected pattern by drawing four + transformed copies of the image inside the PDF patten. + + This is the better way to implement reflected images as we are no + longer embedding an image four times larger than the original. + + src/cairo-pdf-surface.c | 67 ++++++++++++++++++++++------------------------ + 1 files changed, 32 insertions(+), 35 deletions(-) + +commit 50d0767c8bf4c738b86e10be09d5c4fd7e14a05f +Author: Carl Worth <cworth@cworth.org> +Date: Fri Jan 18 12:41:57 2008 -0800 + + Add a1-image-sample and a1-traps-sample tests + + Both of these currently fail due to bugs in the way pixman does + its sampling. + + test/.gitignore | 2 + + test/Makefile.am | 2 + + test/a1-image-sample-ref.png | Bin 0 -> 148 bytes + test/a1-image-sample.c | 83 ++++++++++++++++++++++++++++++++++++++++++ + test/a1-traps-sample-ref.png | Bin 0 -> 148 bytes + test/a1-traps-sample.c | 72 ++++++++++++++++++++++++++++++++++++ + test/cairo-test.c | 2 + + 7 files changed, 161 insertions(+), 0 deletions(-) + +commit c11790fded69ed476e7740ed86e4a66bf878d2d3 +Author: Carl Worth <cworth@cworth.org> +Date: Wed Jan 16 16:32:36 2008 -0800 + + Quiet a warning about switch without some cairo_surface_type_t enum values + + src/cairo-paginated-surface.c | 10 ++++++++++ + 1 files changed, 10 insertions(+), 0 deletions(-) + +commit 1d6c2d578fa717906ba8fd0a897c52033179e938 +Author: Carl Worth <cworth@cworth.org> +Date: Wed Jan 16 16:19:40 2008 -0800 + + Remove some gratuitous assert statements + + Calling assert immediately after assigning a literal value is + very bad form. + + src/cairo-image-surface.c | 5 +---- + 1 files changed, 1 insertions(+), 4 deletions(-) + +commit eabd28a655f8ddc73ff71583bb658db796e932cd +Author: Adrian Johnson <ajohnson@redneon.com> +Date: Fri Jan 18 21:53:04 2008 +1030 + + win32-printing: define GRADIENT_FILL_RECT_H bug #14107 + + Older versions of mingw do not define this. + + src/cairo-win32-printing-surface.c | 4 ++++ + 1 files changed, 4 insertions(+), 0 deletions(-) + +commit 0086db893cba90dc73824d77c661d2965ad48112 +Author: Chris Wilson <chris@chris-wilson.co.uk> +Date: Thu Jan 17 22:31:05 2008 +0000 + + [cairo-font-options] Treat NULL as a default cairo_font_options_t + + Interpret a NULL cairo_font_options_t as the default values - i.e + as if it were a fresh pointer returned by cairo_font_options_create(). + + src/cairo-font-face.c | 8 +++-- + src/cairo-font-options.c | 51 +++++++++++++++++++++----- + src/cairo-ft-font.c | 16 +++++--- + src/cairo-gstate.c | 2 +- + src/cairo-scaled-font.c | 18 ++++++--- + src/cairo-win32-font.c | 4 +- + src/cairo.c | 10 +++-- + test/.gitignore | 1 + + test/Makefile.am | 12 ++++--- + test/font-options.c | 91 ++++++++++++++++++++++++++++++++++++++++++++++ + 10 files changed, 177 insertions(+), 36 deletions(-) + +commit 02d0e070638f668bf50a8ce2174c21e5614dd6c4 +Author: Chris Wilson <chris@chris-wilson.co.uk> +Date: Thu Jan 17 21:39:31 2008 +0000 + + [cairo-font-options] Use cairo_font_options_status() rather open-coding. + + By switching to cairo_font_options_status() instead of checking against + the _cairo_font_options_nil error object, the API is protected from NULL + dereferences. + + src/cairo-font-options.c | 16 ++++++++-------- + 1 files changed, 8 insertions(+), 8 deletions(-) + +commit b15e91d2b6c229dfe3da4a354306915cc42f75bd +Author: Chris Wilson <chris@chris-wilson.co.uk> +Date: Thu Jan 17 21:11:00 2008 +0000 + + [cairo-font-options] Check for a NULL cairo_font_options_t + + On IRC Drakou reported a user error whereby cairo_scaled_font_create() + was called with a NULL cairo_font_options_t. However, instead of + reporting the error back to the user, cairo instead segfaulted trying + to dereference the NULL pointer! + + Add a guard to check that the options is not NULL. + + src/cairo-font-options.c | 4 +++- + 1 files changed, 3 insertions(+), 1 deletions(-) + +commit 630536f17681b083db658414d68db2c0eb167af3 +Author: Chris Wilson <chris@chris-wilson.co.uk> +Date: Thu Jan 17 17:44:57 2008 +0000 + + [test/extend-*] Add various cairo_pattern_set_extend() test cases. + + Add various test cases to exercise + _cairo_pattern_acquire_surface_for_surface(), most notably using similar + source surfaces to provide coverage of the non-image surface branch. + + test/.gitignore | 4 + + test/Makefile.am | 11 +++- + test/cairo-test.c | 2 - + test/extend-pad-similar.c | 105 +++++++++++++++++++++++++++++++++++ + test/extend-reflect-similar-ref.png | Bin 0 -> 153571 bytes + test/extend-reflect-similar.c | 56 ++++++++++++++++++ + test/extend-reflect.c | 2 + + test/extend-repeat-ref.png | Bin 0 -> 108622 bytes + test/extend-repeat-similar-ref.png | Bin 0 -> 108622 bytes + test/extend-repeat-similar.c | 56 ++++++++++++++++++ + test/extend-repeat.c | 34 +++++++++++ + 11 files changed, 267 insertions(+), 3 deletions(-) + +commit dec2daeaf396be9dc6e8952417cc615d3a607926 +Author: Chris Wilson <chris@chris-wilson.co.uk> +Date: Thu Jan 17 15:34:51 2008 +0000 + + [cairo-{ps,pdf}-surface] Assert the font is supported during emission. + + Add an ASSERT_NOT_REACHED to the tail of the font subset emission + functions - as they should always, at least, be supported by the + fallbacks. + + src/cairo-pdf-surface.c | 2 ++ + src/cairo-ps-surface.c | 2 ++ + 2 files changed, 4 insertions(+), 0 deletions(-) + +commit bde68fd4d6271daf8ca374e472deab95a9a7acff +Author: Chris Wilson <chris@chris-wilson.co.uk> +Date: Thu Jan 17 15:06:13 2008 +0000 + + [cairo-scaled-font] Propagate the error to the font. + + If we encounter an error whilst using the font backend to convert the + text to the glyphs, flag the scaled font with that error. + + src/cairo-scaled-font.c | 7 +++---- + 1 files changed, 3 insertions(+), 4 deletions(-) + +commit d664e3253e3c310c34264eb0070c2c3c309e071b +Author: Chris Wilson <chris@chris-wilson.co.uk> +Date: Thu Jan 17 15:05:10 2008 +0000 + + [cairo-scaled-font] Typo. + + s/ZERO_EXENTS/ZERO_EXTENTS/ + + src/cairo-scaled-font.c | 8 ++++---- + 1 files changed, 4 insertions(+), 4 deletions(-) + +commit fcdc525dde52c3bf7124d00a98b6be64ca522cb9 +Author: Chris Wilson <chris@chris-wilson.co.uk> +Date: Thu Jan 17 14:47:43 2008 +0000 + + [cairo-xlib] Remove the NULL safeguards. + + No need to guarding against the pointer being NULL on internal functions + as no path can call the function will a NULL pointer and no path should + ever try, which in any case it would be better to crash immediately. + + src/cairo-xlib-display.c | 7 +------ + src/cairo-xlib-screen.c | 6 ------ + 2 files changed, 1 insertions(+), 12 deletions(-) + +commit 7b1a0eddacb290ae0d67fa974da1697b2c9ce38c +Author: Chris Wilson <chris@chris-wilson.co.uk> +Date: Thu Jan 17 13:51:21 2008 +0000 + + [test/get-path-extents] Exercise cairo_scaled_font_text_extents() + + Compare cairo_scaled_font_text_extents() to cairo_text_extents() in + order to provide test coverage of cairo_scaled_font_text_extents(). + + test/get-path-extents.c | 19 ++++++++++++++++++- + 1 files changed, 18 insertions(+), 1 deletions(-) + +commit dbc97c2576320126e0cddd833ac88320af995d77 +Author: Chris Wilson <chris@chris-wilson.co.uk> +Date: Thu Jan 17 13:41:19 2008 +0000 + + [text] Set the extents on the error paths. + + Ensure the text extents are initialized (zeroed) if we encounter an + error along for any of the text extents functions. + + src/cairo-scaled-font.c | 19 ++++++++++++++++--- + src/cairo.c | 35 +++++++++++++++++++---------------- + 2 files changed, 35 insertions(+), 19 deletions(-) + +commit aec7ae67aa72f3105232fa7a66c1ea013c840da1 +Author: Chris Wilson <chris@chris-wilson.co.uk> +Date: Thu Jan 17 13:28:55 2008 +0000 + + [test/text-zero-len] Test the public cairo_scaled_font_* with NULLs. + + Pass NULL to cairo_scaled_font_(text|glyph)_extents() to test the + consistency of the extents API. + + test/text-zero-len.c | 33 +++++++++++++++++++++++++++++++++ + 1 files changed, 33 insertions(+), 0 deletions(-) + +commit 390e22894b093184e489ea762ffc29eeb1c81d2b +Author: Chris Wilson <chris@chris-wilson.co.uk> +Date: Thu Jan 17 13:13:40 2008 +0000 + + [test/in-fill-trapezoid] Add a few holes. + + Complete the coverage of _cairo_trap_contains() by cutting holes out of + the simple shapes. + + test/in-fill-trapezoid.c | 20 ++++++++++++++++++++ + 1 files changed, 20 insertions(+), 0 deletions(-) + +commit da9c43329ad09ccf48f8a71d28848f111af7ecb5 +Author: Chris Wilson <chris@chris-wilson.co.uk> +Date: Thu Jan 17 11:22:19 2008 +0000 + + [test/in-fill-trapezoid] Add test to exercise _cairo_trap_contains(). + + A simple test to provide coverage of _cairo_trap_contains(), though + not yet seeking boundary conditions. + + test/.gitignore | 1 + + test/Makefile.am | 1 + + test/in-fill-trapezoid.c | 66 ++++++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 68 insertions(+), 0 deletions(-) + +commit f638e5ea355cf0268a4b099ce7b8b98c69df6b67 +Author: Chris Wilson <chris@chris-wilson.co.uk> +Date: Thu Jan 17 11:03:50 2008 +0000 + + [cairo-region] Review status propagation. + + Check that the error status is propagated from _cairo_region_*. + + src/cairo-clip.c | 2 +- + src/cairo-glitz-surface.c | 50 ++++++++++++++++++++++++-------------------- + src/cairo-surface.c | 7 +---- + 3 files changed, 30 insertions(+), 29 deletions(-) + +commit 248f0060e5317f53a688ea0e0aea2997824fa996 +Author: Chris Wilson <chris@chris-wilson.co.uk> +Date: Thu Jan 17 10:10:55 2008 +0000 + + [cairo-analysis-surface] Return the nil surface rather than NULL. + + On error return a nil surface that represents the error rather than + making the assumption of a NO_MEMORY error in the caller. + + src/cairo-analysis-surface.c | 5 +---- + src/cairo-paginated-surface.c | 5 ++--- + 2 files changed, 3 insertions(+), 7 deletions(-) + +commit dd13a00541ebd85bb7687add8b76fa3fb1d82b95 +Author: Chris Wilson <chris@chris-wilson.co.uk> +Date: Thu Jan 17 10:09:22 2008 +0000 + + [test/get-path-extents] Check extents of degenerate paths. + + Ensure that degenerate paths have zero extents. + + test/get-path-extents.c | 35 +++++++++++++++++++++++++++++++++++ + 1 files changed, 35 insertions(+), 0 deletions(-) + +commit 3f202c081d211d5ac6c28ce96cd0f57f8bb26aac +Author: Chris Wilson <chris@chris-wilson.co.uk> +Date: Wed Jan 16 23:42:24 2008 +0000 + + [Makefile.am] Another path massage for lcov. + + Beware the inline functions in the headers that are now being pulled + into the boilerplate code. + + Makefile.am | 5 ++++- + 1 files changed, 4 insertions(+), 1 deletions(-) + +commit 9ebfa8b5fb82596341b9ca0f19c362f24a7ff782 +Author: Chris Wilson <chris@chris-wilson.co.uk> +Date: Wed Jan 16 20:35:41 2008 +0000 + + [Makefile.am] Couple check-ref-missing into release-check + + Verify that all the reference images checked into git will be included + within the distribution tarball as early as possible in the release + process. + + Makefile.am | 6 +++++- + test/Makefile.am | 16 ++++++++++++---- + 2 files changed, 17 insertions(+), 5 deletions(-) + +commit f9a80c06b40634ffef00770731d3b433e465a1b9 +Author: Chris Wilson <chris@chris-wilson.co.uk> +Date: Wed Jan 16 23:28:27 2008 +0000 + + [cairo-path-stroke] Convert degenerate splines into lines. + + This fixes a discrepancy in the stoker between splines and lines, + whereby the stroker failed to add a dash for a zero length spline. + + src/cairo-path-stroke.c | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +commit 2621a323a0ccfe33ff42ed17536db0dc89473a9f +Author: Chris Wilson <chris@chris-wilson.co.uk> +Date: Wed Jan 16 23:24:41 2008 +0000 + + [test/dash-curve] Add a new test case for dashes along splines. + + Modify the dash-state test case and use curves instead of lines - + exercises _cairo_stroker_curve_to_dashed() and degenerate splines. + + test/.gitignore | 1 + + test/Makefile.am | 2 + + test/dash-curve-ref.png | Bin 0 -> 39642 bytes + test/dash-curve.c | 74 +++++++++++++++++++++++++++++++++++++++++++++++ + 4 files changed, 77 insertions(+), 0 deletions(-) + +commit bb41fa22e3d3b1fe4b3e802ecf7d8041eacda3fd +Author: Chris Wilson <chris@chris-wilson.co.uk> +Date: Wed Jan 16 23:21:53 2008 +0000 + + [Makefile.am] Further massage lcov paths for srcdir != builddir. + + The lcov scripts generate incorrect absolute paths to the builddir for + source files - so convert them to srcdir using sed. + + Makefile.am | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +commit 0a4ced5a2659b168fe8d1a6e3917f79fd5c66ae5 +Author: Carl Worth <cworth@cworth.org> +Date: Wed Jan 16 10:47:46 2008 -0800 + + Increment version to 1.5.7 after the 1.5.6 snapshot + + configure.in | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +commit d2a02d4f5ccb1c6dc7f8cca0c322b72f1638d25b +Author: Carl Worth <cworth@cworth.org> +Date: Wed Jan 16 10:34:17 2008 -0800 + + Remove check-has-hidden-symbols.i on 'make distclean' + + Without this, 'make distcheck' fails so releases don't happen. + + src/Makefile.am | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +commit 5c3a0b5c0044bff1262d583e38f84d48d407f0d9 +Author: Carl Worth <cworth@cworth.org> +Date: Wed Jan 16 10:22:44 2008 -0800 + + Add miter-precision-ref.png tothe distribution. + + test/Makefile.am | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +commit cb1ddc4e475ff783960925139e85f6fada56213a +Author: Carl Worth <cworth@cworth.org> +Date: Wed Jan 16 10:10:39 2008 -0800 + + Replace -I($builddir) with -I. to avoid breaking non-srcdir builds. + + This variable was expanding to an empty string, so the next -I flag + was getting completely swallowed. Let's avoid being clever and just + use . which is what we want in the expansion anyway. + + src/Makefile.am | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + commit ad8d03967a2b68ab88a428df6b9d68e76002a88f Author: Carl Worth <cworth@cworth.org> Date: Tue Jan 15 15:50:54 2008 -0800 diff --git a/Makefile.am b/Makefile.am index f1dbef0..6db152a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -35,8 +35,11 @@ lcov-perf: # we have to massage the lcov.info file slightly to hide the effect of libtool # placing the objects files in the .libs/ directory separate from the *.c genlcov: - $(LTP) --directory $(top_builddir) --capture --output-file cairo-lcov.info --test-name CAIRO_PERF --no-checksum - $(SED) -e 's#.libs/##' < cairo-lcov.info > cairo-lcov.info.tmp + $(LTP) --directory $(top_builddir) --path $(top_builddir) --capture --output-file cairo-lcov.info --test-name CAIRO_TEST --no-checksum + $(SED) -e 's#.libs/##' \ + -e 's#boilerplate/src#src#' \ + -e 's#$(shell pwd)#$(shell cd $(top_srcdir) && pwd)#' \ + < cairo-lcov.info > cairo-lcov.info.tmp LANG=C $(LTP_GENHTML) --prefix $(top_builddir) --output-directory cairo-lcov --title "Cairo Code Coverage" --show-details cairo-lcov.info.tmp $(RM) cairo-lcov.info.tmp else @@ -64,9 +67,7 @@ EXTRA_DIST = \ NEWS \ PORTING_GUIDE \ README \ - RELEASING \ - ROADMAP \ - TODO + RELEASING DISTCLEANFILES = config.cache distclean-local: lcov-clean @@ -149,6 +150,10 @@ release-verify-sane-changelogs: changelogs && false); else :; fi @echo "Good." +release-verify-sane-tests: + @echo "Checking that the test suite is sane..." + @cd test && $(MAKE) $(AM_MAKEFLAGS) release-verify-sane-tests + release-verify-soname-major: @echo -n "Checking that the cairo soname major number is 2..." @test "$(LT_CURRENT_MINUS_AGE)" = "2" \ @@ -184,7 +189,7 @@ release-remove-old: release-cleanup-group-sticky: find . -type f | xargs chmod g-s -release-check: release-verify-sane-changelogs release-verify-soname-major release-verify-even-micro release-verify-newer release-remove-old release-cleanup-group-sticky distcheck +release-check: release-verify-sane-changelogs release-verify-sane-tests 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 8f5cf17..447b52f 100644 --- a/Makefile.in +++ b/Makefile.in @@ -47,8 +47,8 @@ host_triplet = @host@ DIST_COMMON = README $(am__configure_deps) $(srcdir)/ChangeLog.mk \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/config.h.in $(top_srcdir)/configure AUTHORS COPYING \ - ChangeLog INSTALL NEWS TODO compile config.guess config.sub \ - depcomp install-sh ltmain.sh missing + ChangeLog INSTALL NEWS compile config.guess config.sub depcomp \ + install-sh ltmain.sh missing subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ @@ -322,9 +322,7 @@ EXTRA_DIST = \ NEWS \ PORTING_GUIDE \ README \ - RELEASING \ - ROADMAP \ - TODO + RELEASING DISTCLEANFILES = config.cache $(srcdir)/ChangeLog.cache-* \ ChangeLog.cache-* @@ -837,8 +835,11 @@ perf: all # we have to massage the lcov.info file slightly to hide the effect of libtool # placing the objects files in the .libs/ directory separate from the *.c @CAIRO_HAS_LCOV_TRUE@genlcov: -@CAIRO_HAS_LCOV_TRUE@ $(LTP) --directory $(top_builddir) --capture --output-file cairo-lcov.info --test-name CAIRO_PERF --no-checksum -@CAIRO_HAS_LCOV_TRUE@ $(SED) -e 's#.libs/##' < cairo-lcov.info > cairo-lcov.info.tmp +@CAIRO_HAS_LCOV_TRUE@ $(LTP) --directory $(top_builddir) --path $(top_builddir) --capture --output-file cairo-lcov.info --test-name CAIRO_TEST --no-checksum +@CAIRO_HAS_LCOV_TRUE@ $(SED) -e 's#.libs/##' \ +@CAIRO_HAS_LCOV_TRUE@ -e 's#boilerplate/src#src#' \ +@CAIRO_HAS_LCOV_TRUE@ -e 's#$(shell pwd)#$(shell cd $(top_srcdir) && pwd)#' \ +@CAIRO_HAS_LCOV_TRUE@ < cairo-lcov.info > cairo-lcov.info.tmp @CAIRO_HAS_LCOV_TRUE@ LANG=C $(LTP_GENHTML) --prefix $(top_builddir) --output-directory cairo-lcov --title "Cairo Code Coverage" --show-details cairo-lcov.info.tmp @CAIRO_HAS_LCOV_TRUE@ $(RM) cairo-lcov.info.tmp @CAIRO_HAS_LCOV_FALSE@lcov lcov-perf genlcov: @@ -947,6 +948,10 @@ release-verify-sane-changelogs: changelogs && false); else :; fi @echo "Good." +release-verify-sane-tests: + @echo "Checking that the test suite is sane..." + @cd test && $(MAKE) $(AM_MAKEFLAGS) release-verify-sane-tests + release-verify-soname-major: @echo -n "Checking that the cairo soname major number is 2..." @test "$(LT_CURRENT_MINUS_AGE)" = "2" \ @@ -982,7 +987,7 @@ release-remove-old: release-cleanup-group-sticky: find . -type f | xargs chmod g-s -release-check: release-verify-sane-changelogs release-verify-soname-major release-verify-even-micro release-verify-newer release-remove-old release-cleanup-group-sticky distcheck +release-check: release-verify-sane-changelogs release-verify-sane-tests 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,106 @@ +Snapshot 1.5.8 (2008-01-30 Carl Worth <cworth@cworth.org>) +========================================================== +This is the fourth snapshot in cairo's unstable 1.5 series. It comes 2 +weeks after the 1.5.6 snapshot. It adds a few new API functions. Most +notably all callers of cairo_image_surface_create_for_data should now +be calling cairo_format_stride_for_width to compute a legal stride +value. See below for more details. + +New API in cairo 1.5.8 +---------------------- +We've added a new function that should be called to compute a legal +stride value before allocating data to be used with +cairo_image_surface_create_for_data: + + int + cairo_format_stride_for_width (cairo_format_t format, + int width); + +We've also added a new cairo_path_extents function that can be used to +compute a bounding box for geometry such as a single line segment, +(contrast with cairo_path_extents and cairo_stroke_extents): + + void + cairo_path_extents (cairo_t *cr, + double *x1, double *y1, + double *x2, double *y2); + +And finally, we've added a function to allow for querying the +XRenderPictFormat of a cairo-xlib surface: + + XRenderPictFormat * + cairo_xlib_surface_get_xrender_format (cairo_surface_t *surface); + +API changes +----------- +Fix return types of cairo_surface_show_page and +cairo_surface_copy_page. This is an API change to functions that are +new in the 1.5 series, so not an API break compared to any stable +cairo release, (1.0.x, 1.2.x, 1.4.x). + +Change the return type of cairo_get_current_point() from void to +cairo_status_t. This allows the caller to receive a +CAIRO_STATUS_NO_CURRENT_POINT value to distinguish the a current point +at the origin from no current point existing. + +Performance improvement +----------------------- +Improve performance of clipping by using an optimized code path +internally, (with the ADD operator instead of IN). + +General bug fixes +----------------- +Fix various cairo_*_extents functions to initialize the return-value +variables even in the case of a cairo_t in error. + +Treat NULL as a legitimate value for cairo_font_options_t*. [XXX: On +discussion afterwards, we decided against this change so we plan to +remove this again before 1.6.0] + +Fix rendering with CAIRO_ANTIALIAS_NONE to be more predictable, (that +is, to avoid seams appearing when geometry and imagery share an +identical edge). Portions of this fix are in the pixman library and +will appear in a future release of that library. + +Avoid triggering an error for a font size of 0. + +Miscellaneous changes +--------------------- +Require pixman >= 0.9.6. + +There has been a tremendous amount improvement to cairo's +documentation. We're delighted that 100% of the public API has at +least some documentation in the API reference manual. Many thanks to +Behdad Esfahbod and Nis Martensen for leading this effort. + +cairo-pdf and cairo-ps +---------------------- +Eliminate failure when a Type 1 font is embedded with an explicit +glyph 0. + +cairo-pdf +--------- +Implement a more correct and more efficient approach for patterns with +an extend mode of CAIRO_EXTEND_REFLECT. + +cairo-ps +-------- +Fix image masks to properly pack and pad mask bits. + +cairo-quartz +------------ +Take care to only use DrawTiledImage for integer-aligned images, (and +use slower paths to get the correct result in other cases). + +cairo-win32 +----------- +Fix for older versions of mingw. + +Improve the handling of the clipping with the win32 and win32-printing +surfaces. + +Fix rendering of non black/white text. + Snapshot 1.5.6 (2008-01-15 Carl Worth <cworth@cworth.org>) ========================================================== This is the third snapshot in cairo's unstable 1.5 series. It comes @@ -37,25 +37,23 @@ The primary source of information about cairo is: http://cairographics.org/ -The latest releases of cairo can be found at: +The latest versions of cairo can always be found at: - http://cairographics.org/releases + http://cairographics.org/download -Snapshots of in-development versions of cairo: +Documentation on using cairo and frequently-asked questions: - http://cairographics.org/snapshots - -The programming manual for using cairo: - - http://cairographics.org/manual + http://cairographics.org/documentation + http://cairographics.org/FAQ Mailing lists for contacting cairo users and developers: http://cairographics.org/lists -Answers to some frequently asked questions about cairo: +Roadmap and unscheduled things to do, (please feel free to help out): - http://cairographics.org/FAQ + http://cairographics.org/roadmap + http://cairographics.org/todo Compiling ========= diff --git a/ROADMAP b/ROADMAP deleted file mode 100644 index 5abc249..0000000 --- a/ROADMAP +++ /dev/null @@ -1,147 +0,0 @@ -This is the cairo roadmap - -Everything here is subject to change, but it is hoped that all of it -will be useful. If you want to influence the roadmap, please feel free -to get involved with cairo (see http://cairographics.org ). - -cairo 1.4.4 (scheduled for 2007-04-09) -====================================== - ✓ Mathias Hasselmann's "static region" patch series, (to be reviewed - by behdad, and performance tested by cworth) - - ✓ Chris Wilson's many recent cleanups, (to be reviewed by behdad and cworth) - - ✓ 5777 fbcompose.c broken for some composite operations post r1.5 - (choose one of the existing patches) - - ✓ 10531 cairo nquartz backend floating point precision issues (bewins) - - ✓ 10508 Transformed image source surfaces sometimes misrender to xlib - surface target (cworth) - -cairo 1.4.x (not scheduled, may become part of 1.6) -=================================================== - • Fix all remaining XFAIL failures from the test suite - a8mask has a patch available on the list, but it may need more - work. Read the thread: - http://lists.freedesktop.org/archives/cairo/2007-February/009737.html - - • Implement CAIRO_EXTEND_PAD for surface patterns - - • Work around bug in X server causing extend-reflect test to hang it - - • Eliminate problems with "unsupported image formats" for xlib, - (very frequently duplicated bug reports and a regression since - cairo 1.0.x apparently) - - 7735 cairo doesn't support 8-bit truecolor visuals - 4945 Cairo doesn't support 8-bit pseudocolor visuals - 9719 Cairo doesn't support 655 xlib format - ✓ 9993 Cairo fails with 555 X server visual - ✓ 10461 Cairo doesn't support 565 xlib visual - - ✓ Discard trapezoids that lie outside the clip region (cworth) - - • Review and land AltiVec patches - - • Update bindings chapter of documentation to reflect new APIs - (get_reference_count() and user_data for all) - -cairo 1.6 (scheduled for July 2007, targeting firefox and GNOME) -================================================================ - ✓ Make image fallbacks finer-grained than a whole page (most of the - This is work to be done in the cairo-analysis-surface layer - and will benefit ps, pdf, svg, and any other - analysis-surface-using backends. - Adrian has started work on this: - http://lists.freedesktop.org/archives/cairo/2007-June/010774.html - - • David Turner's cairo-ft rewrite. (behdad) - http://david.freetype.org/cairo/ - - • Change from 16.16 to 24.8 (or so) for fixed-point storage (cworth) - - • Implement a faster lookup-table-based rasterizer (cworth) - - • Internal move to cairo_object_t (Chris 'ickle' Wilson) - - ✓ New cairo-xlib API to support IncludeInferior Pictures (see bug - 10329 for one proposal. - - • New cairo-xlib-xrender API: - - XRenderPictFormat * - cairo_xlib_surface_get_xrender_format (cairo_surface_t *surface); - - • Make cairo-quartz a supported backend (vlad) - - • Make cairo-xcb a supported backend (Jamey Sharp) - - • A significant improvement to pixman compositing code (jrmuizel) - jrmuizel's recent work and other ideas going on). - - • User-font API (behdad, krh) - http://lists.freedesktop.org/archives/cairo/2007-February/009539.html - http://lists.freedesktop.org/archives/cairo/2006-May/006893.html - http://lists.freedesktop.org/archives/cairo/2006-May/006888.html - - • cairo_font_options_[gs]et_writing_mode() (behdad) - http://lists.freedesktop.org/archives/cairo/2007-January/009372.html - - • cairo_font_metrics_t (behdad) - http://lists.freedesktop.org/archives/cairo/2007-January/009373.html - - • New text API that allows for perfect text extraction in PDF (behdad) - - ✓ Set PS Level for the PS backend (adrianj) - - ✓ EPS output from the PS backend (adrianj) - - • API to allow enable/disabling certain subsetters (adrianj) - http://bugs.freedesktop.org/show_bug.cgi?id=8180#c28 - This would also be useful feature to control via an environment - variable as it would allow the user to override the application - settings. - - • Debug environment variable to disable PDF compression (adrianj) - http://lists.freedesktop.org/archives/cairo/2007-February/009492.html - -cairo 1.8 -================================================================ - • API to set surface metadata (title, author, etc). This should be a generic - surface API. - http://lists.freedesktop.org/archives/cairo/2006-April/006809.html - http://lists.cairographics.org/archives/cairo/2007-September/011441.html - -For other ideas that have been proposed for cairo but are not yet -scheduled on the roadmap of any particular release, please see the -TODO file next to this ROADMAP file. - -Where does the information on this roadmap come from? -===================================================== -The intent is for this to be a living document. We want both the users -of cairo, (GTK+, GNOME, Mozilla, Mono, etc. etc.) to let us know -features they need and dates by which they are needed so that we can -use those to guide our plans. - -Additionally, people who are actively developing cairo itself should -regularly update this document to reflect their current plans. If you -don't want to see a particular release happen without some essential -feature, then put that feature on the list and put your name next to -it to indicate you are working on it. - -Targets -======= -Firefox 3.0 - http://www.mozilla.org/projects/firefox/roadmap.html ------------------------------------------------------------------- -Firefox 3 is the first release expected to use cairo for all -rendering. In the meantime, development builds using cairo are -available. Late June 2007 appears to be a rough deadline for when -mozilla would like to freeze on a cairo release, (as mentioned by -Vladimir in a cairo meeting on 2007-04-02). No new cairo API is -needed, but performance improvements are always appreciated. - -GNOME - http://live.gnome.org/TwoPointSeventeen ------------------------------------------------ -GNOME has a regular (6 month) release schedule, so there's always -another GNOME release coming up soon. @@ -1,111 +0,0 @@ -This file contains a list of some things that have been proposed for -inclusion in cairo. None of these items have been scheduled for a -particular release, (see the ROADMAP file next to this TODO file for -those). - -If you'd like to see an item on this list get into a particular -release, let us know that you're planning on working on it, (see -http://cairographics.org/lists ), and we can move the item to ROADMAP -with your name on it. - -Changes that add new API (API changes/removals will not be considered) -====================================================================== - • Add CAIRO_FILL_RULE_INVERSE_WINDING and CAIRO_FILL_RULE_INVERSE_EVEN_ODD - or another way to provide that functionality. - - • Add support for programmatic patterns, (ie. arbitrary gradients) - - • Add cairo_arc_to. - see http://lists.freedesktop.org/archives/cairo/2005-August/004801.html - or see arc_to branch in bedhad's repository - - • Add support for custom caps - - It would be nice if the user had a mechanism to reliably draw custom - caps. One approach here would be to provide the coordinates of the - butt cap faces so that the user can append seamless caps to the - current path. We may also need to provide the coordinates of the - faces of every dash as well. - - • Polling API (cairo_get_serial and cairo_changed) - - • cairo_save/restore_path() - http://lists.freedesktop.org/archives/cairo/2007-April/010363.html - - • cairo_copy_clip() and cairo_copy_clip_flat() - http://lists.freedesktop.org/archives/cairo/2007-April/010520.html - -Performance improvements -======================== - • Add dashing support to the fast-path rectilinear stroking - code, (will help GTK+ focus rectangle, for example) - - • Improve software polygon compositing by doing it in a - single scanline pass rather than tessellating, rasterizing, then - compositing the entire polygon. - - • Clip trapezoids that are partially outside the clip region - -Other fixes -=========== - • Fix/define tolerance for PS/PDF/SVG backends - - • Fix CAIRO_EXTEND_REFLECT in pixman and remove the current hack - - • Fix disabled show-glyphs-many case in cairo test suite - - • Get pixman merged up with X server fb implementation - - • Possibly remove pdiff (slows down the test suite with little - benefit) - - • Make font backends separable from their native surfaces - - • Fix cairo so that a degenerate matrix draws nothing rather than - triggering an error state. That is: cairo_scale (cr, 0, 0); should - not cause an error, (though maybe it shouldn't actually draw - _nothing_ for painting an infinite source pattern---compute the - average color for a surface-based source pattern perhaps?). - - • The new tessellator has greatly improved performance, robustness, - and code readability, but may still suffer from "missed - intersections" as described here: - - http://cm.bell-labs.com/cm/cs/doc/93/2-27.ps.gz - - [Hobby93c] John D. Hobby, Practical Segment Intersection with - Finite Precision Output, Computation Geometry Theory and - Applications, 13(4), 1999. - - We could do multi-pass Bentley-Ottmann or add a tolerance-square - pass as described by Hobby in the paper above. - - • Fix vertical metric and TrueType subsetting: - Text drawn with vertical metrics cannot currently use TrueType - subsetting for PDF/PS output as the code doesn't write out the - necessary VHEA or VMTX entries to the TrueType font - objects. As a result, cairo uses Type3 fonts which generates - slightly different outlines. Type1 has the same problem. - - • Pen matrix locking. Carl has written an excellent summary but - unfortunately that was not sent to the mailing list. Ask him. - - • Explore Render-like component-alpha ARGB masks - -Backend-specific improvements -============================== - Win32 backend - • Fix self-copy test - • Fix trap-clip test - - PS/PDF improvements - • Fix extend modes in PDF - • Use glyph advances to generate more compact PostScript (done for PDF) - - Xlib backend - • xlib backend requires xrender to compile, while it can perform without - xrender at run time. Make it compile without it. see - http://lists.freedesktop.org/archives/cairo/2006-October/008075.html - • Switch to server-side gradients - • Switch to using XRenderAddTraps rather than XRenderCompositeTrapezoids - • Use XlibRectStretch for nearest-neighbor image scaling. @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.61 for cairo 1.5.6. +# Generated by GNU Autoconf 2.61 for cairo 1.5.8. # # Report bugs to <http://bugs.freedesktop.org/enter_bug.cgi?product=cairo>. # @@ -728,8 +728,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='cairo' PACKAGE_TARNAME='cairo' -PACKAGE_VERSION='1.5.6' -PACKAGE_STRING='cairo 1.5.6' +PACKAGE_VERSION='1.5.8' +PACKAGE_STRING='cairo 1.5.8' PACKAGE_BUGREPORT='http://bugs.freedesktop.org/enter_bug.cgi?product=cairo' ac_unique_file="src/cairo.h" @@ -1548,7 +1548,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.5.6 to adapt to many kinds of systems. +\`configure' configures cairo 1.5.8 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1622,7 +1622,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of cairo 1.5.6:";; + short | recursive ) echo "Configuration of cairo 1.5.8:";; esac cat <<\_ACEOF @@ -1827,7 +1827,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -cairo configure 1.5.6 +cairo configure 1.5.8 generated by GNU Autoconf 2.61 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -1841,7 +1841,7 @@ cat >config.log <<_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.5.6, which was +It was created by cairo $as_me 1.5.8, which was generated by GNU Autoconf 2.61. Invocation command line was $ $0 $@ @@ -2515,7 +2515,7 @@ fi # Define the identity of the package. PACKAGE='cairo' - VERSION='1.5.6' + VERSION='1.5.8' cat >>confdefs.h <<_ACEOF @@ -2666,7 +2666,7 @@ am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' # libtool shared library version # Increment if the interface has additions, changes, removals. -LT_CURRENT=15 +LT_CURRENT=16 # Increment any time the source changes; set to # 0 if you increment CURRENT @@ -2675,7 +2675,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=13 +LT_AGE=14 VERSION_INFO="$LT_CURRENT:$LT_REVISION:$LT_AGE" @@ -2686,7 +2686,7 @@ LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE` CAIRO_VERSION_MAJOR=1 CAIRO_VERSION_MINOR=5 -CAIRO_VERSION_MICRO=6 +CAIRO_VERSION_MICRO=8 @@ -21339,6 +21339,7 @@ fi CAIRO_FEATURES="" +CAIRO_NO_FEATURES="" CAIRO_REQUIRES="" CAIRO_NONPKGCONFIG_CFLAGS="" CAIRO_NONPKGCONFIG_LIBS="$LIBM" @@ -21347,7 +21348,7 @@ CAIRO_CFLAGS=$CAIRO_NONPKGCONFIG_CFLAGS CAIRO_LIBS=$CAIRO_NONPKGCONFIG_LIBS -PIXMAN_VERSION="0.9.4" +PIXMAN_VERSION="0.9.6" PIXMAN_REQUIRES="pixman-1 >= $PIXMAN_VERSION" pkg_failed=no @@ -24025,6 +24026,8 @@ echo "$as_me: error: failed creating $outfile" >&2;} fi + else + CAIRO_NO_FEATURES="XLIB_SURFACE $CAIRO_NO_FEATURES" fi fi @@ -24516,6 +24519,8 @@ echo "$as_me: error: failed creating $outfile" >&2;} fi + else + CAIRO_NO_FEATURES="XLIB_XRENDER_SURFACE $CAIRO_NO_FEATURES" fi fi @@ -24721,6 +24726,8 @@ echo "$as_me: error: failed creating $outfile" >&2;} fi + else + CAIRO_NO_FEATURES="XCB_SURFACE $CAIRO_NO_FEATURES" fi fi @@ -24988,6 +24995,8 @@ echo "$as_me: error: failed creating $outfile" >&2;} fi + else + CAIRO_NO_FEATURES="QUARTZ_SURFACE $CAIRO_NO_FEATURES" fi fi @@ -25292,6 +25301,8 @@ echo "$as_me: error: failed creating $outfile" >&2;} fi + else + CAIRO_NO_FEATURES="WIN32_SURFACE $CAIRO_NO_FEATURES" fi fi @@ -25421,6 +25432,8 @@ echo "$as_me: error: failed creating $outfile" >&2;} fi + else + CAIRO_NO_FEATURES="WIN32_FONT $CAIRO_NO_FEATURES" fi fi @@ -25622,6 +25635,8 @@ echo "$as_me: error: failed creating $outfile" >&2;} fi + else + CAIRO_NO_FEATURES="OS2_SURFACE $CAIRO_NO_FEATURES" fi fi @@ -25876,6 +25891,8 @@ echo "$as_me: error: failed creating $outfile" >&2;} fi + else + CAIRO_NO_FEATURES="BEOS_SURFACE $CAIRO_NO_FEATURES" fi fi @@ -26574,6 +26591,8 @@ echo "$as_me: error: failed creating $outfile" >&2;} fi + else + CAIRO_NO_FEATURES="PNG_FUNCTIONS $CAIRO_NO_FEATURES" fi fi @@ -26787,6 +26806,8 @@ echo "$as_me: error: failed creating $outfile" >&2;} fi + else + CAIRO_NO_FEATURES="GLITZ_SURFACE $CAIRO_NO_FEATURES" fi fi @@ -27357,6 +27378,8 @@ echo "$as_me: error: failed creating $outfile" >&2;} fi + else + CAIRO_NO_FEATURES="DIRECTFB_SURFACE $CAIRO_NO_FEATURES" fi fi @@ -27835,6 +27858,8 @@ echo "$as_me: error: failed creating $outfile" >&2;} fi + else + CAIRO_NO_FEATURES="FT_FONT $CAIRO_NO_FEATURES" fi fi @@ -28356,6 +28381,8 @@ echo "$as_me: error: failed creating $outfile" >&2;} fi + else + CAIRO_NO_FEATURES="PS_SURFACE $CAIRO_NO_FEATURES" fi fi @@ -28552,6 +28579,8 @@ echo "$as_me: error: failed creating $outfile" >&2;} fi + else + CAIRO_NO_FEATURES="PDF_SURFACE $CAIRO_NO_FEATURES" fi fi @@ -28901,6 +28930,8 @@ echo "$as_me: error: failed creating $outfile" >&2;} fi + else + CAIRO_NO_FEATURES="SVG_SURFACE $CAIRO_NO_FEATURES" fi fi @@ -29375,6 +29406,8 @@ echo "$as_me: error: failed creating $outfile" >&2;} fi + else + CAIRO_NO_FEATURES="ATSUI_FONT $CAIRO_NO_FEATURES" fi fi @@ -30852,6 +30885,8 @@ fi ac_config_commands="$ac_config_commands src/cairo-features.h" +ac_config_commands="$ac_config_commands src/cairo-no-features.h" + ac_config_files="$ac_config_files Makefile boilerplate/Makefile src/Makefile test/Makefile test/pdiff/Makefile perf/Makefile util/Makefile doc/Makefile doc/public/Makefile doc/public/version.xml src/cairo.pc" @@ -31503,7 +31538,7 @@ exec 6>&1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by cairo $as_me 1.5.6, which was +This file was extended by cairo $as_me 1.5.8, which was generated by GNU Autoconf 2.61. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -31556,7 +31591,7 @@ Report bugs to <bug-autoconf@gnu.org>." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -cairo config.status 1.5.6 +cairo config.status 1.5.8 configured by $0, generated by GNU Autoconf 2.61, with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" @@ -31662,11 +31697,15 @@ cat >>$CONFIG_STATUS <<_ACEOF AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" CAIRO_FEATURES='$CAIRO_FEATURES' + CAIRO_NO_FEATURES='$CAIRO_NO_FEATURES' CAIRO_VERSION_MAJOR=$CAIRO_VERSION_MAJOR CAIRO_VERSION_MINOR=$CAIRO_VERSION_MINOR CAIRO_VERSION_MICRO=$CAIRO_VERSION_MICRO + CAIRO_NO_FEATURES='$CAIRO_NO_FEATURES' + + _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF @@ -31678,6 +31717,7 @@ do "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "src/cairo-features.h") CONFIG_COMMANDS="$CONFIG_COMMANDS src/cairo-features.h" ;; + "src/cairo-no-features.h") CONFIG_COMMANDS="$CONFIG_COMMANDS src/cairo-no-features.h" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "boilerplate/Makefile") CONFIG_FILES="$CONFIG_FILES boilerplate/Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; @@ -32654,6 +32694,10 @@ _EOF for FEATURE in $CAIRO_FEATURES; do echo "#define CAIRO_HAS_$FEATURE 1" >> $outfile done + echo '' >> $outfile + for FEATURE in $CAIRO_NO_FEATURES; do + echo "/*#undef CAIRO_HAS_$FEATURE */" >> $outfile + done echo '' >> $outfile echo '#endif' >> $outfile @@ -32666,6 +32710,36 @@ echo "$as_me: $featuresfile is unchanged" >&6;} mv $outfile $featuresfile fi ;; + "src/cairo-no-features.h":C) + nofeaturesfile=src/cairo-no-features.h + outfile=$nofeaturesfile.tmp + { echo "$as_me:$LINENO: creating $nofeaturesfile" >&5 +echo "$as_me: creating $nofeaturesfile" >&6;} + cat > $outfile <<_EOF +/* Generated by configure. Do not edit */ +#ifndef CAIRO_NO_FEATURES_H +#define CAIRO_NO_FEATURES_H + +#include <cairo-features.h> + +/* This is a dummy header, to trick gtk-doc only */ + +_EOF + for FEATURE in $CAIRO_NO_FEATURES; do + echo "#define CAIRO_HAS_$FEATURE 1" >> $outfile + done + + echo '' >> $outfile + echo '#endif' >> $outfile + + if cmp -s $outfile $nofeaturesfile; then + { echo "$as_me:$LINENO: $nofeaturesfile is unchanged" >&5 +echo "$as_me: $nofeaturesfile is unchanged" >&6;} + rm -f $outfile + else + mv $outfile $nofeaturesfile + fi + ;; esac done # for ac_tag diff --git a/configure.in b/configure.in index 50922df..5ff575a 100644 --- a/configure.in +++ b/configure.in @@ -7,7 +7,7 @@ dnl For the micro number: odd => in-progress development (from git) dnl even => tar-file snapshot or release m4_define(cairo_version_major, 1) m4_define(cairo_version_minor, 5) -m4_define(cairo_version_micro, 6) +m4_define(cairo_version_micro, 8) AC_INIT([cairo], cairo_version_major.cairo_version_minor.cairo_version_micro, @@ -26,7 +26,7 @@ dnl =========================================================================== # libtool shared library version # Increment if the interface has additions, changes, removals. -LT_CURRENT=15 +LT_CURRENT=16 # Increment any time the source changes; set to # 0 if you increment CURRENT @@ -35,7 +35,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=13 +LT_AGE=14 dnl =========================================================================== @@ -262,12 +262,15 @@ AC_DEFUN([CAIRO_BACKEND_ENABLE], rm -f "$outfile" AC_MSG_ERROR([failed creating $outfile]) ]) + else + CAIRO_NO_FEATURES="$4 $CAIRO_NO_FEATURES" fi fi AM_CONDITIONAL(CAIRO_HAS_$4, test "x$use_$1" = xyes) ]) CAIRO_FEATURES="" +CAIRO_NO_FEATURES="" CAIRO_REQUIRES="" CAIRO_NONPKGCONFIG_CFLAGS="" CAIRO_NONPKGCONFIG_LIBS="$LIBM" @@ -277,7 +280,7 @@ CAIRO_LIBS=$CAIRO_NONPKGCONFIG_LIBS dnl =========================================================================== -PIXMAN_VERSION="0.9.4" +PIXMAN_VERSION="0.9.6" PIXMAN_REQUIRES="pixman-1 >= $PIXMAN_VERSION" PKG_CHECK_MODULES(pixman, $PIXMAN_REQUIRES, , [AC_MSG_ERROR([pixman >= $PIXMAN_VERSION is required @@ -980,6 +983,10 @@ _EOF for FEATURE in $CAIRO_FEATURES; do echo "#define CAIRO_HAS_$FEATURE 1" >> $outfile done + echo '' >> $outfile + for FEATURE in $CAIRO_NO_FEATURES; do + echo "/*#undef CAIRO_HAS_$FEATURE */" >> $outfile + done echo '' >> $outfile echo '#endif' >> $outfile @@ -992,10 +999,42 @@ _EOF fi ],[ CAIRO_FEATURES='$CAIRO_FEATURES' + CAIRO_NO_FEATURES='$CAIRO_NO_FEATURES' CAIRO_VERSION_MAJOR=$CAIRO_VERSION_MAJOR CAIRO_VERSION_MINOR=$CAIRO_VERSION_MINOR CAIRO_VERSION_MICRO=$CAIRO_VERSION_MICRO ]) +AC_CONFIG_COMMANDS([src/cairo-no-features.h], +[ + nofeaturesfile=src/cairo-no-features.h + outfile=$nofeaturesfile.tmp + AC_MSG_NOTICE([creating $nofeaturesfile]) + cat > $outfile <<_EOF +/* Generated by configure. Do not edit */ +#ifndef CAIRO_NO_FEATURES_H +#define CAIRO_NO_FEATURES_H + +#include <cairo-features.h> + +/* This is a dummy header, to trick gtk-doc only */ + +_EOF + for FEATURE in $CAIRO_NO_FEATURES; do + echo "#define CAIRO_HAS_$FEATURE 1" >> $outfile + done + + echo '' >> $outfile + echo '#endif' >> $outfile + + if cmp -s $outfile $nofeaturesfile; then + AC_MSG_NOTICE([$nofeaturesfile is unchanged]) + rm -f $outfile + else + mv $outfile $nofeaturesfile + fi +],[ + CAIRO_NO_FEATURES='$CAIRO_NO_FEATURES' +]) AC_CONFIG_FILES([ Makefile boilerplate/Makefile diff --git a/doc/public/Headers.mk b/doc/public/Headers.mk index daa2aeb..6b40c61 100644 --- a/doc/public/Headers.mk +++ b/doc/public/Headers.mk @@ -1,13 +1,18 @@ PRIVATE_TEST_HFILES = \ cairo-analysis-surface-private.h \ cairo-arc-private.h \ + cairo-atomic-private.h \ cairo-cache-private.h \ cairo-clip-private.h \ + cairo-compiler-private.h \ + cairo-fixed-private.h \ + cairo-fixed-type-private.h \ cairo-freelist-private.h \ cairo-ft-private.h \ cairo-glitz-private.h \ cairo-gstate-private.h \ cairo-hash-private.h \ + cairo-malloc-private.h \ cairo-meta-surface-private.h \ cairo-mutex-list-private.h \ cairo-mutex-private.h \ @@ -18,10 +23,13 @@ PRIVATE_TEST_HFILES = \ cairo-paginated-surface-private.h \ cairo-path-fixed-private.h \ cairo-path-private.h \ + cairo-pdf-operators-private.h \ cairo-pdf-surface-private.h \ cairo-private.h \ cairo-ps-surface-private.h \ cairo-quartz-private.h \ + cairo-reference-count-private.h \ + cairo-region-private.h \ cairo-scaled-font-private.h \ cairo-scaled-font-subsets-private.h \ cairo-skiplist-private.h \ @@ -32,7 +40,9 @@ PRIVATE_TEST_HFILES = \ cairo-type1-private.h \ cairo-types-private.h \ cairo-wideint-private.h \ + cairo-wideint-type-private.h \ cairo-win32-private.h \ cairo-xlib-private.h \ cairo-xlib-surface-private.h \ + cairo-xlib-xrender-private.h \ cairoint.h diff --git a/doc/public/Makefile.am b/doc/public/Makefile.am index 15e8630..faca782 100644 --- a/doc/public/Makefile.am +++ b/doc/public/Makefile.am @@ -70,3 +70,8 @@ include $(top_srcdir)/gtk-doc.make # Version information for marking the documentation EXTRA_DIST += version.xml.in +check: doc + +TESTS_ENVIRONMENT = srcdir="$(srcdir)" top_srcdir="$(top_srcdir)" MAKE="$(MAKE)" +TESTS = check-doc-coverage.sh check-doc-syntax.sh +EXTRA_DIST += $(TESTS) diff --git a/doc/public/Makefile.in b/doc/public/Makefile.in index 5fad57c..19b9535 100644 --- a/doc/public/Makefile.in +++ b/doc/public/Makefile.in @@ -302,13 +302,18 @@ CFILE_GLOB = $(top_srcdir)/src/*.c $(top_srcdir)/src/*.h PRIVATE_TEST_HFILES = \ cairo-analysis-surface-private.h \ cairo-arc-private.h \ + cairo-atomic-private.h \ cairo-cache-private.h \ cairo-clip-private.h \ + cairo-compiler-private.h \ + cairo-fixed-private.h \ + cairo-fixed-type-private.h \ cairo-freelist-private.h \ cairo-ft-private.h \ cairo-glitz-private.h \ cairo-gstate-private.h \ cairo-hash-private.h \ + cairo-malloc-private.h \ cairo-meta-surface-private.h \ cairo-mutex-list-private.h \ cairo-mutex-private.h \ @@ -319,10 +324,13 @@ PRIVATE_TEST_HFILES = \ cairo-paginated-surface-private.h \ cairo-path-fixed-private.h \ cairo-path-private.h \ + cairo-pdf-operators-private.h \ cairo-pdf-surface-private.h \ cairo-private.h \ cairo-ps-surface-private.h \ cairo-quartz-private.h \ + cairo-reference-count-private.h \ + cairo-region-private.h \ cairo-scaled-font-private.h \ cairo-scaled-font-subsets-private.h \ cairo-skiplist-private.h \ @@ -333,9 +341,11 @@ PRIVATE_TEST_HFILES = \ cairo-type1-private.h \ cairo-types-private.h \ cairo-wideint-private.h \ + cairo-wideint-type-private.h \ cairo-win32-private.h \ cairo-xlib-private.h \ cairo-xlib-surface-private.h \ + cairo-xlib-xrender-private.h \ cairoint.h UNSUPPORTED_HFILES = \ @@ -393,7 +403,7 @@ TARGET_DIR = $(HTML_DIR)/$(DOC_MODULE) # Version information for marking the documentation EXTRA_DIST = $(content_files) $(HTML_IMAGES) $(DOC_MAIN_SGML_FILE) \ $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt \ - version.xml.in + version.xml.in $(TESTS) DOC_STAMPS = scan-build.stamp tmpl-build.stamp sgml-build.stamp html-build.stamp \ $(srcdir)/tmpl.stamp $(srcdir)/sgml.stamp $(srcdir)/html.stamp @@ -405,6 +415,8 @@ SCANOBJ_FILES = \ $(DOC_MODULE).signals CLEANFILES = $(SCANOBJ_FILES) $(DOC_MODULE)-unused.txt $(DOC_STAMPS) +TESTS_ENVIRONMENT = srcdir="$(srcdir)" top_srcdir="$(top_srcdir)" MAKE="$(MAKE)" +TESTS = check-doc-coverage.sh check-doc-syntax.sh all: all-am .SUFFIXES: @@ -456,6 +468,79 @@ ctags: CTAGS CTAGS: +check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; \ + srcdir=$(srcdir); export srcdir; \ + list='$(TESTS)'; \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *" $$tst "*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + echo "XPASS: $$tst"; \ + ;; \ + *) \ + echo "PASS: $$tst"; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *" $$tst "*) \ + xfail=`expr $$xfail + 1`; \ + echo "XFAIL: $$tst"; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + echo "FAIL: $$tst"; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + echo "SKIP: $$tst"; \ + fi; \ + done; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="All $$all tests passed"; \ + else \ + banner="All $$all tests behaved as expected ($$xfail expected failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all tests failed"; \ + else \ + banner="$$failed of $$all tests did not behave as expected ($$xpass unexpected passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + skipped="($$skip tests were not run)"; \ + test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + echo "$$dashes"; \ + echo "$$banner"; \ + test -z "$$skipped" || echo "$$skipped"; \ + test -z "$$report" || echo "$$report"; \ + echo "$$dashes"; \ + test "$$failed" -eq 0; \ + else :; fi + distdir: $(DISTFILES) $(mkdir_p) $(distdir)/../.. @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ @@ -488,6 +573,7 @@ distdir: $(DISTFILES) top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: check-am all-am: Makefile installdirs: @@ -563,16 +649,17 @@ ps-am: 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 +.PHONY: all all-am check check-TESTS 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 Headers.mk: @@ -694,6 +781,8 @@ dist-hook: dist-check-gtkdoc dist-hook-local fi .PHONY : dist-hook-local + +check: 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/cairo-docs.xml b/doc/public/cairo-docs.xml index e95a7ca..f504fb3 100644 --- a/doc/public/cairo-docs.xml +++ b/doc/public/cairo-docs.xml @@ -9,50 +9,44 @@ <title>Cairo: A Vector Graphics Library</title> <releaseinfo>for Cairo &version;</releaseinfo> </bookinfo> - <part> - <title>Tutorial</title> - </part> - <part> - <title>Reference</title> - <chapter id="Drawing"> - <title>Drawing</title> - <xi:include href="xml/cairo.xml"/> - <xi:include href="xml/cairo-paths.xml"/> - <xi:include href="xml/cairo-pattern.xml"/> - <xi:include href="xml/cairo-transforms.xml"/> - <xi:include href="xml/cairo-text.xml"/> - </chapter> - <chapter id="Fonts"> - <title>Fonts</title> - <xi:include href="xml/cairo-font.xml"/> - <xi:include href="xml/cairo-scaled-font.xml"/> - <xi:include href="xml/cairo-font-options.xml"/> - <xi:include href="xml/cairo-ft.xml"/> - <xi:include href="xml/cairo-win32-fonts.xml"/> - </chapter> - <chapter id="Surfaces"> - <title>Surfaces</title> - <xi:include href="xml/cairo-surface.xml"/> - <xi:include href="xml/cairo-image.xml"/> - <!--xi:include href="xml/cairo-glitz.xml"/--> - <xi:include href="xml/cairo-pdf.xml"/> - <xi:include href="xml/cairo-png.xml"/> - <xi:include href="xml/cairo-ps.xml"/> - <xi:include href="xml/cairo-win32.xml"/> - <!--xi:include href="xml/cairo-beos.xml"/--> - <xi:include href="xml/cairo-svg.xml"/> - <!--xi:include href="xml/cairo-quartz.xml"--> - <!--xi:include href="xml/cairo-xcb.xml"/--> - <xi:include href="xml/cairo-xlib.xml"/> - </chapter> - <chapter id="Support"> - <title>Utilities</title> - <xi:include href="xml/cairo-matrix.xml"/> - <xi:include href="xml/cairo-status.xml"/> - <xi:include href="xml/cairo-version.xml"/> - <xi:include href="xml/cairo-types.xml"/> - </chapter> - </part> + <chapter id="Drawing"> + <title>Drawing</title> + <xi:include href="xml/cairo.xml"/> + <xi:include href="xml/cairo-paths.xml"/> + <xi:include href="xml/cairo-pattern.xml"/> + <xi:include href="xml/cairo-transforms.xml"/> + <xi:include href="xml/cairo-text.xml"/> + </chapter> + <chapter id="Fonts"> + <title>Fonts</title> + <xi:include href="xml/cairo-font-face.xml"/> + <xi:include href="xml/cairo-scaled-font.xml"/> + <xi:include href="xml/cairo-font-options.xml"/> + <xi:include href="xml/cairo-ft.xml"/> + <xi:include href="xml/cairo-win32-fonts.xml"/> + </chapter> + <chapter id="Surfaces"> + <title>Surfaces</title> + <xi:include href="xml/cairo-surface.xml"/> + <xi:include href="xml/cairo-image.xml"/> + <!--xi:include href="xml/cairo-glitz.xml"/--> + <xi:include href="xml/cairo-pdf.xml"/> + <xi:include href="xml/cairo-png.xml"/> + <xi:include href="xml/cairo-ps.xml"/> + <xi:include href="xml/cairo-win32.xml"/> + <!--xi:include href="xml/cairo-beos.xml"/--> + <xi:include href="xml/cairo-svg.xml"/> + <!--xi:include href="xml/cairo-quartz.xml"--> + <!--xi:include href="xml/cairo-xcb.xml"/--> + <xi:include href="xml/cairo-xlib.xml"/> + </chapter> + <chapter id="Support"> + <title>Utilities</title> + <xi:include href="xml/cairo-matrix.xml"/> + <xi:include href="xml/cairo-status.xml"/> + <xi:include href="xml/cairo-version.xml"/> + <xi:include href="xml/cairo-types.xml"/> + </chapter> <index> <title id="index-all">Index</title> </index> @@ -62,5 +56,8 @@ <index id="index-1.4" role="1.4"> <title>Index of new symbols in 1.4</title> </index> + <index id="index-1.6" role="1.6"> + <title>Index of new symbols in 1.6</title> + </index> <xi:include href="language-bindings.xml"/> </book> diff --git a/doc/public/cairo-sections.txt b/doc/public/cairo-sections.txt index 4484271..f7c838d 100644 --- a/doc/public/cairo-sections.txt +++ b/doc/public/cairo-sections.txt @@ -1,6 +1,7 @@ <SECTION> <FILE>cairo-ft</FILE> <TITLE>FreeType Fonts</TITLE> +CAIRO_HAS_FT_FONT cairo_ft_font_face_create_for_ft_face cairo_ft_font_face_create_for_pattern cairo_ft_font_options_substitute @@ -11,6 +12,7 @@ cairo_ft_scaled_font_unlock_face <SECTION> <FILE>cairo-win32-fonts</FILE> <TITLE>Win32 Fonts</TITLE> +CAIRO_HAS_WIN32_FONT cairo_win32_font_face_create_for_logfontw cairo_win32_font_face_create_for_hfont cairo_win32_font_face_create_for_logfontw_hfont @@ -25,6 +27,7 @@ cairo_win32_scaled_font_get_device_to_logical <FILE>cairo-image</FILE> <TITLE>Image Surfaces</TITLE> cairo_format_t +cairo_format_stride_for_width cairo_image_surface_create cairo_image_surface_create_for_data cairo_image_surface_get_data @@ -37,6 +40,7 @@ cairo_image_surface_get_stride <SECTION> <FILE>cairo-pdf</FILE> <TITLE>PDF Surfaces</TITLE> +CAIRO_HAS_PDF_SURFACE cairo_pdf_surface_create cairo_pdf_surface_create_for_stream cairo_pdf_surface_set_size @@ -45,6 +49,7 @@ cairo_pdf_surface_set_size <SECTION> <FILE>cairo-png</FILE> <TITLE>PNG Support</TITLE> +CAIRO_HAS_PNG_FUNCTIONS cairo_image_surface_create_from_png cairo_read_func_t cairo_image_surface_create_from_png_stream @@ -56,6 +61,7 @@ cairo_surface_write_to_png_stream <SECTION> <FILE>cairo-ps</FILE> <TITLE>PostScript Surfaces</TITLE> +CAIRO_HAS_PS_SURFACE cairo_ps_surface_create cairo_ps_surface_create_for_stream cairo_ps_surface_restrict_to_level @@ -73,6 +79,7 @@ cairo_ps_surface_dsc_comment <SECTION> <FILE>cairo-win32</FILE> <TITLE>Win32 Surfaces</TITLE> +CAIRO_HAS_WIN32_SURFACE cairo_win32_surface_create cairo_win32_surface_create_with_dib cairo_win32_surface_create_with_ddb @@ -84,6 +91,7 @@ cairo_win32_surface_get_image <SECTION> <FILE>cairo-xlib</FILE> <TITLE>XLib Surfaces</TITLE> +CAIRO_HAS_XLIB_SURFACE cairo_xlib_surface_create cairo_xlib_surface_create_for_bitmap cairo_xlib_surface_set_size @@ -100,12 +108,15 @@ cairo_xlib_surface_get_depth <SECTION> <FILE>cairo-xlib-xrender</FILE> <TITLE>XLib/Xrender Backend</TITLE> +CAIRO_HAS_XLIB_XRENDER_SURFACE cairo_xlib_surface_create_with_xrender_format +cairo_xlib_surface_get_xrender_format </SECTION> <SECTION> <FILE>cairo-svg</FILE> <TITLE>SVG Surfaces</TITLE> +CAIRO_HAS_SVG_SURFACE cairo_svg_surface_create cairo_svg_surface_create_for_stream cairo_svg_surface_restrict_to_version @@ -216,7 +227,7 @@ cairo_debug_reset_static_data </SECTION> <SECTION> -<FILE>cairo-font</FILE> +<FILE>cairo-font-face</FILE> <TITLE>cairo_font_face_t</TITLE> cairo_font_face_t cairo_font_face_reference @@ -326,6 +337,7 @@ cairo_text_path cairo_rel_curve_to cairo_rel_line_to cairo_rel_move_to +cairo_path_extents </SECTION> <SECTION> diff --git a/doc/public/check-doc-coverage.sh b/doc/public/check-doc-coverage.sh new file mode 100755 index 0000000..986af6d --- /dev/null +++ b/doc/public/check-doc-coverage.sh @@ -0,0 +1,43 @@ +#!/bin/sh + +LANG=C +if test -z "$DOC_MODULE"; then + # extract from Makefile + eval `grep '^DOC_MODULE' Makefile | sed 's/ //g'` + if test -z "$DOC_MODULE"; then + echo Failed extracting DOC_MODULE from Makefile 1>&2 + echo Try setting DOC_MODULE env var manually 1>&2 + exit 1 + fi +fi + + +test -z "$srcdir" && srcdir=. +status=0 + +if ! test -f "$DOC_MODULE-undocumented.txt" -a -f "$DOC_MODULE-unused.txt"; then + echo At least one of "$DOC_MODULE-undocumented.txt" and "$DOC_MODULE-unused.txt" not found. + echo Skipping test. + exit 0 +fi + +status=0 + +if test -f "$DOC_MODULE-unused.txt"; then + unused=`cat "$DOC_MODULE-unused.txt"` + if test -n "$unused"; then + echo Unused documentated symbols: 1>&2 + cat "$DOC_MODULE-unused.txt" 1>&2 + status=1 + fi +fi +if test -f "$DOC_MODULE-undocumented.txt"; then + if ! grep '^0 symbols incomplete' "$DOC_MODULE-undocumented.txt" >/dev/null || + ! grep '^0 not documented' "$DOC_MODULE-undocumented.txt" >/dev/null; then + echo Incomplete or undocumented symbols: 1>&2 + cat "$DOC_MODULE-undocumented.txt" 1>&2 + status=1 + fi +fi + +exit $status diff --git a/doc/public/check-doc-syntax.sh b/doc/public/check-doc-syntax.sh new file mode 100755 index 0000000..d59d3eb --- /dev/null +++ b/doc/public/check-doc-syntax.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +LANG=C + +test -z "$srcdir" && srcdir=. +test -z "$top_srcdir" && top_srcdir=$srcdir/../.. + +SGML_DOCS=true +FILES=$srcdir/tmpl/*.sgml + +. "$top_srcdir/src/check-doc-syntax.sh" diff --git a/doc/public/html/Drawing.html b/doc/public/html/Drawing.html index 2024a80..fe365e1 100644 --- a/doc/public/html/Drawing.html +++ b/doc/public/html/Drawing.html @@ -5,13 +5,11 @@ <title>Drawing</title> <meta name="generator" content="DocBook XSL Stylesheets V1.73.2"> <link rel="start" href="index.html" title="Cairo: A Vector Graphics Library"> -<link rel="up" href="pt02.html" title="Part II. Reference"> -<link rel="prev" href="pt02.html" title="Part II. Reference"> +<link rel="up" href="index.html" title="Cairo: A Vector Graphics Library"> +<link rel="prev" href="index.html" title="Cairo: A Vector Graphics Library"> <link rel="next" href="cairo-cairo-t.html" title="cairo_t"> <meta name="generator" content="GTK-Doc V1.9 (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"> @@ -19,12 +17,13 @@ <link rel="index" href="ix01.html" title="Index"> <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2"> <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6"> <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="pt02.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="pt02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> +<td><a accesskey="p" href="index.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> +<td> </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-cairo-t.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> @@ -40,13 +39,13 @@ <span class="refentrytitle"><a href="cairo-Paths.html">Paths</a></span><span class="refpurpose"> — Creating paths and manipulating path data</span> </dt> <dt> -<span class="refentrytitle"><a href="cairo-Patterns.html">Patterns</a></span><span class="refpurpose"> — Gradients and filtered sources</span> +<span class="refentrytitle"><a href="cairo-Patterns.html">cairo_pattern_t</a></span><span class="refpurpose"> — Sources for drawing</span> </dt> <dt> <span class="refentrytitle"><a href="cairo-Transformations.html">Transformations</a></span><span class="refpurpose"> — Manipulating the current transformation matrix</span> </dt> <dt> -<span class="refentrytitle"><a href="cairo-Text.html">Text</a></span><span class="refpurpose"> — Rendering text and sets of glyphs</span> +<span class="refentrytitle"><a href="cairo-Text.html">Text</a></span><span class="refpurpose"> — Rendering text and glyphs</span> </dt> </dl></div> </div> diff --git a/doc/public/html/Fonts.html b/doc/public/html/Fonts.html index 24419c5..ea42e20 100644 --- a/doc/public/html/Fonts.html +++ b/doc/public/html/Fonts.html @@ -5,13 +5,11 @@ <title>Fonts</title> <meta name="generator" content="DocBook XSL Stylesheets V1.73.2"> <link rel="start" href="index.html" title="Cairo: A Vector Graphics Library"> -<link rel="up" href="pt02.html" title="Part II. Reference"> +<link rel="up" href="index.html" title="Cairo: A Vector Graphics Library"> <link rel="prev" href="cairo-Text.html" title="Text"> <link rel="next" href="cairo-cairo-font-face-t.html" title="cairo_font_face_t"> <meta name="generator" content="GTK-Doc V1.9 (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"> @@ -19,12 +17,13 @@ <link rel="index" href="ix01.html" title="Index"> <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2"> <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6"> <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-Text.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="pt02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> +<td> </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-cairo-font-face-t.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> @@ -34,13 +33,13 @@ <a name="Fonts"></a>Fonts</h2></div></div></div> <div class="toc"><dl> <dt> -<span class="refentrytitle"><a href="cairo-cairo-font-face-t.html">cairo_font_face_t</a></span><span class="refpurpose"> — Base class for fonts</span> +<span class="refentrytitle"><a href="cairo-cairo-font-face-t.html">cairo_font_face_t</a></span><span class="refpurpose"> — Base class for font faces</span> </dt> <dt> -<span class="refentrytitle"><a href="cairo-Scaled-Fonts.html">Scaled Fonts</a></span><span class="refpurpose"> — Caching metrics for a particular font size</span> +<span class="refentrytitle"><a href="cairo-Scaled-Fonts.html">cairo_scaled_font_t</a></span><span class="refpurpose"> — Font face at particular size and options</span> </dt> <dt> -<span class="refentrytitle"><a href="cairo-Font-Options.html">Font Options</a></span><span class="refpurpose"> — How a font should be rendered</span> +<span class="refentrytitle"><a href="cairo-Font-Options.html">cairo_font_options_t</a></span><span class="refpurpose"> — How a font should be rendered</span> </dt> <dt> <span class="refentrytitle"><a href="cairo-FreeType-Fonts.html">FreeType Fonts</a></span><span class="refpurpose"> — Font support for FreeType</span> diff --git a/doc/public/html/Support.html b/doc/public/html/Support.html index 318d1b8..e0a4d5a 100644 --- a/doc/public/html/Support.html +++ b/doc/public/html/Support.html @@ -5,13 +5,11 @@ <title>Utilities</title> <meta name="generator" content="DocBook XSL Stylesheets V1.73.2"> <link rel="start" href="index.html" title="Cairo: A Vector Graphics Library"> -<link rel="up" href="pt02.html" title="Part II. Reference"> +<link rel="up" href="index.html" title="Cairo: A Vector Graphics Library"> <link rel="prev" href="cairo-XLib-Surfaces.html" title="XLib Surfaces"> <link rel="next" href="cairo-cairo-matrix-t.html" title="cairo_matrix_t"> <meta name="generator" content="GTK-Doc V1.9 (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"> @@ -19,12 +17,13 @@ <link rel="index" href="ix01.html" title="Index"> <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2"> <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6"> <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-XLib-Surfaces.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="pt02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> +<td> </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-cairo-matrix-t.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> @@ -43,7 +42,7 @@ <span class="refentrytitle"><a href="cairo-Version-Information.html">Version Information</a></span><span class="refpurpose"> — Compile-time and run-time version checks.</span> </dt> <dt> -<span class="refentrytitle"><a href="cairo-Types.html">Types</a></span><span class="refpurpose"> — Generic data types used in the cairo API</span> +<span class="refentrytitle"><a href="cairo-Types.html">Types</a></span><span class="refpurpose"> — Generic data types</span> </dt> </dl></div> </div> diff --git a/doc/public/html/Surfaces.html b/doc/public/html/Surfaces.html index 96724d6..c0c37db 100644 --- a/doc/public/html/Surfaces.html +++ b/doc/public/html/Surfaces.html @@ -5,13 +5,11 @@ <title>Surfaces</title> <meta name="generator" content="DocBook XSL Stylesheets V1.73.2"> <link rel="start" href="index.html" title="Cairo: A Vector Graphics Library"> -<link rel="up" href="pt02.html" title="Part II. Reference"> +<link rel="up" href="index.html" title="Cairo: A Vector Graphics Library"> <link rel="prev" href="cairo-Win32-Fonts.html" title="Win32 Fonts"> <link rel="next" href="cairo-cairo-surface-t.html" title="cairo_surface_t"> <meta name="generator" content="GTK-Doc V1.9 (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"> @@ -19,12 +17,13 @@ <link rel="index" href="ix01.html" title="Index"> <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2"> <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6"> <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-Fonts.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="pt02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> +<td> </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-cairo-surface-t.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> diff --git a/doc/public/html/bindings-errors.html b/doc/public/html/bindings-errors.html index e233580..ac9f698 100644 --- a/doc/public/html/bindings-errors.html +++ b/doc/public/html/bindings-errors.html @@ -10,8 +10,6 @@ <link rel="next" href="bindings-patterns.html" title="Patterns"> <meta name="generator" content="GTK-Doc V1.9 (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"> @@ -19,6 +17,7 @@ <link rel="index" href="ix01.html" title="Index"> <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2"> <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6"> <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"> diff --git a/doc/public/html/bindings-fonts.html b/doc/public/html/bindings-fonts.html index 05598f2..353f91a 100644 --- a/doc/public/html/bindings-fonts.html +++ b/doc/public/html/bindings-fonts.html @@ -10,8 +10,6 @@ <link rel="next" href="bindings-path.html" title="cairo_path_t"> <meta name="generator" content="GTK-Doc V1.9 (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"> @@ -19,6 +17,7 @@ <link rel="index" href="ix01.html" title="Index"> <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2"> <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6"> <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"> diff --git a/doc/public/html/bindings-memory.html b/doc/public/html/bindings-memory.html index 4222300..0488099 100644 --- a/doc/public/html/bindings-memory.html +++ b/doc/public/html/bindings-memory.html @@ -10,8 +10,6 @@ <link rel="next" href="bindings-return-values.html" title="Multiple return values"> <meta name="generator" content="GTK-Doc V1.9 (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"> @@ -19,6 +17,7 @@ <link rel="index" href="ix01.html" title="Index"> <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2"> <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6"> <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"> diff --git a/doc/public/html/bindings-overloading.html b/doc/public/html/bindings-overloading.html index d78fe90..53633a6 100644 --- a/doc/public/html/bindings-overloading.html +++ b/doc/public/html/bindings-overloading.html @@ -10,8 +10,6 @@ <link rel="next" href="bindings-streams.html" title="Streams and File I/O"> <meta name="generator" content="GTK-Doc V1.9 (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"> @@ -19,6 +17,7 @@ <link rel="index" href="ix01.html" title="Index"> <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2"> <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6"> <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"> diff --git a/doc/public/html/bindings-path.html b/doc/public/html/bindings-path.html index 2a1913d..831af76 100644 --- a/doc/public/html/bindings-path.html +++ b/doc/public/html/bindings-path.html @@ -9,8 +9,6 @@ <link rel="prev" href="bindings-fonts.html" title="Fonts"> <meta name="generator" content="GTK-Doc V1.9 (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"> @@ -18,6 +16,7 @@ <link rel="index" href="ix01.html" title="Index"> <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2"> <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6"> <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"> diff --git a/doc/public/html/bindings-patterns.html b/doc/public/html/bindings-patterns.html index c11cea8..b5deab8 100644 --- a/doc/public/html/bindings-patterns.html +++ b/doc/public/html/bindings-patterns.html @@ -10,8 +10,6 @@ <link rel="next" href="bindings-surfaces.html" title="Surfaces"> <meta name="generator" content="GTK-Doc V1.9 (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"> @@ -19,6 +17,7 @@ <link rel="index" href="ix01.html" title="Index"> <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2"> <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6"> <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"> diff --git a/doc/public/html/bindings-return-values.html b/doc/public/html/bindings-return-values.html index bc42c39..6487043 100644 --- a/doc/public/html/bindings-return-values.html +++ b/doc/public/html/bindings-return-values.html @@ -10,8 +10,6 @@ <link rel="next" href="bindings-overloading.html" title="Overloading and optional arguments"> <meta name="generator" content="GTK-Doc V1.9 (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"> @@ -19,6 +17,7 @@ <link rel="index" href="ix01.html" title="Index"> <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2"> <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6"> <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"> diff --git a/doc/public/html/bindings-streams.html b/doc/public/html/bindings-streams.html index d40a0fd..caf61dd 100644 --- a/doc/public/html/bindings-streams.html +++ b/doc/public/html/bindings-streams.html @@ -10,8 +10,6 @@ <link rel="next" href="bindings-errors.html" title="Error handling"> <meta name="generator" content="GTK-Doc V1.9 (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"> @@ -19,6 +17,7 @@ <link rel="index" href="ix01.html" title="Index"> <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2"> <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6"> <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"> diff --git a/doc/public/html/bindings-surfaces.html b/doc/public/html/bindings-surfaces.html index 8f29f9a..5540b10 100644 --- a/doc/public/html/bindings-surfaces.html +++ b/doc/public/html/bindings-surfaces.html @@ -10,8 +10,6 @@ <link rel="next" href="bindings-fonts.html" title="Fonts"> <meta name="generator" content="GTK-Doc V1.9 (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"> @@ -19,6 +17,7 @@ <link rel="index" href="ix01.html" title="Index"> <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2"> <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6"> <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"> diff --git a/doc/public/html/cairo-Error-Handling.html b/doc/public/html/cairo-Error-Handling.html index 4b03ff4..a021f4e 100644 --- a/doc/public/html/cairo-Error-Handling.html +++ b/doc/public/html/cairo-Error-Handling.html @@ -10,8 +10,6 @@ <link rel="next" href="cairo-Version-Information.html" title="Version Information"> <meta name="generator" content="GTK-Doc V1.9 (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"> @@ -19,6 +17,7 @@ <link rel="index" href="ix01.html" title="Index"> <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2"> <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6"> <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"> @@ -30,16 +29,16 @@ <th width="100%" align="center">Cairo: A Vector Graphics Library</th> <td><a accesskey="n" href="cairo-Version-Information.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="#id2610193" class="shortcut">Top</a> +<tr><td colspan="5" class="shortcuts"><nobr><a href="#id2615296" class="shortcut">Top</a>  |  - <a href="#id2598237" class="shortcut">Description</a></nobr></td></tr> + <a href="#id2668430" class="shortcut">Description</a></nobr></td></tr> </table> <div class="refentry" lang="en"> <a name="cairo-Error-Handling"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> <td valign="top"> <h2> -<a name="id2610193"></a><span class="refentrytitle">Error handling</span> +<a name="id2615296"></a><span class="refentrytitle">Error handling</span> </h2> <p>Error handling — Decoding cairo's status</p> </td> @@ -51,23 +50,61 @@ -typedef <a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> (); +enum <a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a>; const char* <a class="link" href="cairo-Error-Handling.html#cairo-status-to-string">cairo_status_to_string</a> (<a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> status); void <a class="link" href="cairo-Error-Handling.html#cairo-debug-reset-static-data">cairo_debug_reset_static_data</a> (void); </pre> </div> <div class="refsect1" lang="en"> -<a name="id2598237"></a><h2>Description</h2> +<a name="id2668430"></a><h2>Description</h2> <p> - +Cairo uses a single status type to represent all kinds of errors. A status +value of <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> represents no error and has an integer value +of zero. All other status values represent an error. +</p> +<p> +Cairo's error handling is designed to be easy to use and safe. All major +cairo objects <em class="firstterm">retain</em> an error status internally which +can be queried anytime by the users using cairo*<code class="function">_status()</code> calls. In +the mean time, it is safe to call all cairo functions normally even if the +underlying object is in an error status. This means that no error handling +code is required before or after each individual cairo function call. </p> </div> <div class="refsect1" lang="en"> -<a name="id2623474"></a><h2>Details</h2> +<a name="id2668480"></a><h2>Details</h2> <div class="refsect2" lang="en"> -<a name="id2663656"></a><h3> -<a name="cairo-status-t"></a>cairo_status_t ()</h3> -<a class="indexterm" name="id2663668"></a><pre class="programlisting">typedef cairo_status_t ();</pre> +<a name="id2668491"></a><h3> +<a name="cairo-status-t"></a>enum cairo_status_t</h3> +<a class="indexterm" name="id2668504"></a><pre class="programlisting">typedef enum _cairo_status { + CAIRO_STATUS_SUCCESS = 0, + CAIRO_STATUS_NO_MEMORY, + CAIRO_STATUS_INVALID_RESTORE, + CAIRO_STATUS_INVALID_POP_GROUP, + CAIRO_STATUS_NO_CURRENT_POINT, + CAIRO_STATUS_INVALID_MATRIX, + CAIRO_STATUS_INVALID_STATUS, + CAIRO_STATUS_NULL_POINTER, + CAIRO_STATUS_INVALID_STRING, + CAIRO_STATUS_INVALID_PATH_DATA, + CAIRO_STATUS_READ_ERROR, + CAIRO_STATUS_WRITE_ERROR, + CAIRO_STATUS_SURFACE_FINISHED, + CAIRO_STATUS_SURFACE_TYPE_MISMATCH, + CAIRO_STATUS_PATTERN_TYPE_MISMATCH, + CAIRO_STATUS_INVALID_CONTENT, + CAIRO_STATUS_INVALID_FORMAT, + CAIRO_STATUS_INVALID_VISUAL, + CAIRO_STATUS_FILE_NOT_FOUND, + CAIRO_STATUS_INVALID_DASH, + CAIRO_STATUS_INVALID_DSC_COMMENT, + CAIRO_STATUS_INVALID_INDEX, + CAIRO_STATUS_CLIP_NOT_REPRESENTABLE, + CAIRO_STATUS_TEMP_FILE_ERROR, + CAIRO_STATUS_INVALID_STRIDE + /* after adding a new error: update CAIRO_STATUS_LAST_STATUS in cairo.c */ +} cairo_status_t; +</pre> <p> <a class="link" 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. @@ -82,20 +119,140 @@ to get a human-readable representation of an error message.</p> </p> <div class="variablelist"><table border="0"> <col align="left" valign="top"> -<tbody><tr> -<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> -<td> - - +<tbody> +<tr> +<td><p><span class="term"><a name="CAIRO-STATUS-SUCCESS:CAPS"></a><code class="literal">CAIRO_STATUS_SUCCESS</code></span></p></td> +<td> no error has occurred +</td> +</tr> +<tr> +<td><p><span class="term"><a name="CAIRO-STATUS-NO-MEMORY:CAPS"></a><code class="literal">CAIRO_STATUS_NO_MEMORY</code></span></p></td> +<td> out of memory +</td> +</tr> +<tr> +<td><p><span class="term"><a name="CAIRO-STATUS-INVALID-RESTORE:CAPS"></a><code class="literal">CAIRO_STATUS_INVALID_RESTORE</code></span></p></td> +<td> <a class="link" href="cairo-cairo-t.html#cairo-restore"><code class="function">cairo_restore()</code></a> called without matching <a class="link" href="cairo-cairo-t.html#cairo-save"><code class="function">cairo_save()</code></a> +</td> +</tr> +<tr> +<td><p><span class="term"><a name="CAIRO-STATUS-INVALID-POP-GROUP:CAPS"></a><code class="literal">CAIRO_STATUS_INVALID_POP_GROUP</code></span></p></td> +<td> no saved group to pop +</td> +</tr> +<tr> +<td><p><span class="term"><a name="CAIRO-STATUS-NO-CURRENT-POINT:CAPS"></a><code class="literal">CAIRO_STATUS_NO_CURRENT_POINT</code></span></p></td> +<td> no current point defined +</td> +</tr> +<tr> +<td><p><span class="term"><a name="CAIRO-STATUS-INVALID-MATRIX:CAPS"></a><code class="literal">CAIRO_STATUS_INVALID_MATRIX</code></span></p></td> +<td> invalid matrix (not invertible) +</td> +</tr> +<tr> +<td><p><span class="term"><a name="CAIRO-STATUS-INVALID-STATUS:CAPS"></a><code class="literal">CAIRO_STATUS_INVALID_STATUS</code></span></p></td> +<td> invalid value for an input <a class="link" href="cairo-Error-Handling.html#cairo-status-t"><span class="type">cairo_status_t</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><a name="CAIRO-STATUS-NULL-POINTER:CAPS"></a><code class="literal">CAIRO_STATUS_NULL_POINTER</code></span></p></td> +<td> <code class="literal">NULL</code> pointer +</td> +</tr> +<tr> +<td><p><span class="term"><a name="CAIRO-STATUS-INVALID-STRING:CAPS"></a><code class="literal">CAIRO_STATUS_INVALID_STRING</code></span></p></td> +<td> input string not valid UTF-8 +</td> +</tr> +<tr> +<td><p><span class="term"><a name="CAIRO-STATUS-INVALID-PATH-DATA:CAPS"></a><code class="literal">CAIRO_STATUS_INVALID_PATH_DATA</code></span></p></td> +<td> input path data not valid +</td> +</tr> +<tr> +<td><p><span class="term"><a name="CAIRO-STATUS-READ-ERROR:CAPS"></a><code class="literal">CAIRO_STATUS_READ_ERROR</code></span></p></td> +<td> error while reading from input stream +</td> +</tr> +<tr> +<td><p><span class="term"><a name="CAIRO-STATUS-WRITE-ERROR:CAPS"></a><code class="literal">CAIRO_STATUS_WRITE_ERROR</code></span></p></td> +<td> error while writing to output stream +</td> +</tr> +<tr> +<td><p><span class="term"><a name="CAIRO-STATUS-SURFACE-FINISHED:CAPS"></a><code class="literal">CAIRO_STATUS_SURFACE_FINISHED</code></span></p></td> +<td> target surface has been finished </td> -</tr></tbody> +</tr> +<tr> +<td><p><span class="term"><a name="CAIRO-STATUS-SURFACE-TYPE-MISMATCH:CAPS"></a><code class="literal">CAIRO_STATUS_SURFACE_TYPE_MISMATCH</code></span></p></td> +<td> the surface type is not appropriate for the operation +</td> +</tr> +<tr> +<td><p><span class="term"><a name="CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS"></a><code class="literal">CAIRO_STATUS_PATTERN_TYPE_MISMATCH</code></span></p></td> +<td> the pattern type is not appropriate for the operation +</td> +</tr> +<tr> +<td><p><span class="term"><a name="CAIRO-STATUS-INVALID-CONTENT:CAPS"></a><code class="literal">CAIRO_STATUS_INVALID_CONTENT</code></span></p></td> +<td> invalid value for an input <a class="link" href="cairo-cairo-surface-t.html#cairo-content-t"><span class="type">cairo_content_t</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><a name="CAIRO-STATUS-INVALID-FORMAT:CAPS"></a><code class="literal">CAIRO_STATUS_INVALID_FORMAT</code></span></p></td> +<td> invalid value for an input <a class="link" href="cairo-Image-Surfaces.html#cairo-format-t"><span class="type">cairo_format_t</span></a> +</td> +</tr> +<tr> +<td><p><span class="term"><a name="CAIRO-STATUS-INVALID-VISUAL:CAPS"></a><code class="literal">CAIRO_STATUS_INVALID_VISUAL</code></span></p></td> +<td> invalid value for an input Visual* +</td> +</tr> +<tr> +<td><p><span class="term"><a name="CAIRO-STATUS-FILE-NOT-FOUND:CAPS"></a><code class="literal">CAIRO_STATUS_FILE_NOT_FOUND</code></span></p></td> +<td> file not found +</td> +</tr> +<tr> +<td><p><span class="term"><a name="CAIRO-STATUS-INVALID-DASH:CAPS"></a><code class="literal">CAIRO_STATUS_INVALID_DASH</code></span></p></td> +<td> invalid value for a dash setting +</td> +</tr> +<tr> +<td><p><span class="term"><a name="CAIRO-STATUS-INVALID-DSC-COMMENT:CAPS"></a><code class="literal">CAIRO_STATUS_INVALID_DSC_COMMENT</code></span></p></td> +<td> invalid value for a DSC comment (Since 1.2) +</td> +</tr> +<tr> +<td><p><span class="term"><a name="CAIRO-STATUS-INVALID-INDEX:CAPS"></a><code class="literal">CAIRO_STATUS_INVALID_INDEX</code></span></p></td> +<td> invalid index passed to getter (Since 1.4) +</td> +</tr> +<tr> +<td><p><span class="term"><a name="CAIRO-STATUS-CLIP-NOT-REPRESENTABLE:CAPS"></a><code class="literal">CAIRO_STATUS_CLIP_NOT_REPRESENTABLE</code></span></p></td> +<td> clip region not representable in desired format (Since 1.4) +</td> +</tr> +<tr> +<td><p><span class="term"><a name="CAIRO-STATUS-TEMP-FILE-ERROR:CAPS"></a><code class="literal">CAIRO_STATUS_TEMP_FILE_ERROR</code></span></p></td> +<td> error creating or writing to a temporary file (Since 1.6) +</td> +</tr> +<tr> +<td><p><span class="term"><a name="CAIRO-STATUS-INVALID-STRIDE:CAPS"></a><code class="literal">CAIRO_STATUS_INVALID_STRIDE</code></span></p></td> +<td> invalid value for stride (Since 1.6) +</td> +</tr> +</tbody> </table></div> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2662323"></a><h3> +<a name="id2669684"></a><h3> <a name="cairo-status-to-string"></a>cairo_status_to_string ()</h3> -<a class="indexterm" name="id2662334"></a><pre class="programlisting">const char* cairo_status_to_string (<a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> status);</pre> +<a class="indexterm" name="id2669695"></a><pre class="programlisting">const char* cairo_status_to_string (<a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> status);</pre> <p> Provides a human-readable description of a <a class="link" href="cairo-Error-Handling.html#cairo-status-t"><span class="type">cairo_status_t</span></a>.</p> <p> @@ -111,7 +268,7 @@ Provides a human-readable description of a <a class="link" href="cairo-Error-Han </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> -<td>a string representation of the status +<td> a string representation of the status </td> </tr> </tbody> @@ -119,9 +276,9 @@ Provides a human-readable description of a <a class="link" href="cairo-Error-Han </div> <hr> <div class="refsect2" lang="en"> -<a name="id2662401"></a><h3> +<a name="id2669766"></a><h3> <a name="cairo-debug-reset-static-data"></a>cairo_debug_reset_static_data ()</h3> -<a class="indexterm" name="id2662413"></a><pre class="programlisting">void cairo_debug_reset_static_data (void);</pre> +<a class="indexterm" name="id2669778"></a><pre class="programlisting">void cairo_debug_reset_static_data (void);</pre> <p> Resets all static data within cairo to its original state, (ie. identical to the state at the time of program invocation). For @@ -130,9 +287,9 @@ example, all caches within cairo will be flushed empty. <p> This function is intended to be useful when using memory-checking tools such as valgrind. When valgrind's memcheck analyzes a -cairo-using program without a call to cairo_debug_reset_static_data, +cairo-using program without a call to <a class="link" href="cairo-Error-Handling.html#cairo-debug-reset-static-data"><code class="function">cairo_debug_reset_static_data()</code></a>, it will report all data reachable via cairo's static objects as -"still reachable". Calling cairo_debug_reset_static_data just prior +"still reachable". Calling <a class="link" href="cairo-Error-Handling.html#cairo-debug-reset-static-data"><code class="function">cairo_debug_reset_static_data()</code></a> just prior to program termination will make it easier to get squeaky clean reports from valgrind. </p> @@ -148,9 +305,23 @@ failure due to a hash table being destroyed when non-empty).</p> </div> </div> <div class="refsect1" lang="en"> -<a name="id2665645"></a><div class="refsect2" lang="en"><a name="id2665646"></a></div> +<a name="id2672904"></a><h2>See Also</h2> +<p> +</p> +<div class="itemizedlist"><ul type="disc"> +<li><a class="link" href="cairo-cairo-t.html#cairo-status"><code class="function">cairo_status()</code></a></li> +<li><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-status"><code class="function">cairo_surface_status()</code></a></li> +<li><a class="link" href="cairo-Patterns.html#cairo-pattern-status"><code class="function">cairo_pattern_status()</code></a></li> +<li><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-status"><code class="function">cairo_font_face_status()</code></a></li> +<li><a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-status"><code class="function">cairo_scaled_font_status()</code></a></li> +</ul></div> +<p> +</p> +</div> +<div class="refsect1" lang="en"> +<a name="id2672969"></a><div class="refsect2" lang="en"><a name="id2672970"></a></div> <hr> -<div class="refsect2" lang="en"><a name="id2665647"></a></div> +<div class="refsect2" lang="en"><a name="id2672971"></a></div> </div> </div> </body> diff --git a/doc/public/html/cairo-Font-Options.html b/doc/public/html/cairo-Font-Options.html index b8bb3cb..e11b997 100644 --- a/doc/public/html/cairo-Font-Options.html +++ b/doc/public/html/cairo-Font-Options.html @@ -2,16 +2,14 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> -<title>Font Options</title> +<title>cairo_font_options_t</title> <meta name="generator" content="DocBook XSL Stylesheets V1.73.2"> <link rel="start" href="index.html" title="Cairo: A Vector Graphics Library"> <link rel="up" href="Fonts.html" title="Fonts"> -<link rel="prev" href="cairo-Scaled-Fonts.html" title="Scaled Fonts"> +<link rel="prev" href="cairo-Scaled-Fonts.html" title="cairo_scaled_font_t"> <link rel="next" href="cairo-FreeType-Fonts.html" title="FreeType Fonts"> <meta name="generator" content="GTK-Doc V1.9 (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"> @@ -19,6 +17,7 @@ <link rel="index" href="ix01.html" title="Index"> <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2"> <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6"> <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"> @@ -30,18 +29,18 @@ <th width="100%" align="center">Cairo: A Vector Graphics Library</th> <td><a accesskey="n" href="cairo-FreeType-Fonts.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="#id2590721" class="shortcut">Top</a> +<tr><td colspan="5" class="shortcuts"><nobr><a href="#id2605656" class="shortcut">Top</a>  |  - <a href="#id2626464" class="shortcut">Description</a></nobr></td></tr> + <a href="#id2650709" class="shortcut">Description</a></nobr></td></tr> </table> <div class="refentry" lang="en"> <a name="cairo-Font-Options"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> <td valign="top"> <h2> -<a name="id2590721"></a><span class="refentrytitle">Font Options</span> +<a name="id2605656"></a><span class="refentrytitle">cairo_font_options_t</span> </h2> -<p>Font Options — How a font should be rendered</p> +<p>cairo_font_options_t — How a font should be rendered</p> </td> <td valign="top" align="right"></td> </tr></table></div> @@ -82,17 +81,20 @@ void <a class="link" href="cairo-Font-Options.html#cairo-font-opt </pre> </div> <div class="refsect1" lang="en"> -<a name="id2626464"></a><h2>Description</h2> +<a name="id2650709"></a><h2>Description</h2> <p> - +The font options specify how fonts should be rendered. Most of the time the +font options implied by a surface are just right and do not need any changes, +but for pixel-based targets tweaking font options may result in superior +output on a particular display. </p> </div> <div class="refsect1" lang="en"> -<a name="id2649076"></a><h2>Details</h2> +<a name="id2650729"></a><h2>Details</h2> <div class="refsect2" lang="en"> -<a name="id2649086"></a><h3> +<a name="id2650739"></a><h3> <a name="cairo-font-options-t"></a>cairo_font_options_t</h3> -<a class="indexterm" name="id2649098"></a><pre class="programlisting">typedef struct _cairo_font_options cairo_font_options_t; +<a class="indexterm" name="id2650751"></a><pre class="programlisting">typedef struct _cairo_font_options cairo_font_options_t; </pre> <p> An opaque structure holding all options that are used when @@ -119,9 +121,9 @@ for equality, merge, or compute a hash value of </div> <hr> <div class="refsect2" lang="en"> -<a name="id2649210"></a><h3> +<a name="id2650865"></a><h3> <a name="cairo-font-options-create"></a>cairo_font_options_create ()</h3> -<a class="indexterm" name="id2649221"></a><pre class="programlisting"><a class="link" href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a>* cairo_font_options_create (void);</pre> +<a class="indexterm" name="id2650877"></a><pre class="programlisting"><a class="link" href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a>* cairo_font_options_create (void);</pre> <p> Allocates a new font options object with all options initialized to default values.</p> @@ -143,9 +145,9 @@ Allocates a new font options object with all options initialized </div> <hr> <div class="refsect2" lang="en"> -<a name="id2649289"></a><h3> +<a name="id2650946"></a><h3> <a name="cairo-font-options-copy"></a>cairo_font_options_copy ()</h3> -<a class="indexterm" name="id2649300"></a><pre class="programlisting"><a class="link" href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a>* cairo_font_options_copy (const <a class="link" href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *original);</pre> +<a class="indexterm" name="id2650957"></a><pre class="programlisting"><a class="link" href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a>* cairo_font_options_copy (const <a class="link" href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *original);</pre> <p> Allocates a new font options object copying the option values from <em class="parameter"><code>original</code></em>.</p> @@ -174,9 +176,9 @@ Allocates a new font options object copying the option values from </div> <hr> <div class="refsect2" lang="en"> -<a name="id2588222"></a><h3> +<a name="id2651058"></a><h3> <a name="cairo-font-options-destroy"></a>cairo_font_options_destroy ()</h3> -<a class="indexterm" name="id2588234"></a><pre class="programlisting">void cairo_font_options_destroy (<a class="link" href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);</pre> +<a class="indexterm" name="id2651070"></a><pre class="programlisting">void cairo_font_options_destroy (<a class="link" href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);</pre> <p> Destroys a <a class="link" href="cairo-Font-Options.html#cairo-font-options-t"><span class="type">cairo_font_options_t</span></a> object created with with <a class="link" href="cairo-Font-Options.html#cairo-font-options-create"><code class="function">cairo_font_options_create()</code></a> or <a class="link" href="cairo-Font-Options.html#cairo-font-options-copy"><code class="function">cairo_font_options_copy()</code></a>.</p> @@ -194,9 +196,9 @@ Destroys a <a class="link" href="cairo-Font-Options.html#cairo-font-options-t">< </div> <hr> <div class="refsect2" lang="en"> -<a name="id2588314"></a><h3> +<a name="id2651149"></a><h3> <a name="cairo-font-options-status"></a>cairo_font_options_status ()</h3> -<a class="indexterm" name="id2588326"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_font_options_status (<a class="link" href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);</pre> +<a class="indexterm" name="id2651161"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_font_options_status (<a class="link" href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);</pre> <p> Checks whether an error has previously occurred for this font options object</p> @@ -213,11 +215,7 @@ font options object</p> </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> -<td> <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS" -><code class="literal">CAIRO_STATUS_SUCCESS</code></a> or <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS" -><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a> +<td> <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> or <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a> </td> </tr> </tbody> @@ -225,9 +223,9 @@ href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS" </div> <hr> <div class="refsect2" lang="en"> -<a name="id2588411"></a><h3> +<a name="id2651246"></a><h3> <a name="cairo-font-options-merge"></a>cairo_font_options_merge ()</h3> -<a class="indexterm" name="id2652267"></a><pre class="programlisting">void cairo_font_options_merge (<a class="link" href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options, +<a class="indexterm" name="id2654077"></a><pre class="programlisting">void cairo_font_options_merge (<a class="link" href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options, const <a class="link" href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *other);</pre> <p> Merges non-default options from <em class="parameter"><code>other</code></em> into <em class="parameter"><code>options</code></em>, replacing @@ -255,12 +253,12 @@ of <code class="literal">CAIRO_OPERATION_OVER</code>.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2652374"></a><h3> +<a name="id2654184"></a><h3> <a name="cairo-font-options-hash"></a>cairo_font_options_hash ()</h3> -<a class="indexterm" name="id2652384"></a><pre class="programlisting">unsigned long cairo_font_options_hash (const <a class="link" href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);</pre> +<a class="indexterm" name="id2654195"></a><pre class="programlisting">unsigned long cairo_font_options_hash (const <a class="link" href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);</pre> <p> Compute a hash for the font options object; this value will -be useful when storing an object containing a cairo_font_options_t +be useful when storing an object containing a <a class="link" href="cairo-Font-Options.html#cairo-font-options-t"><span class="type">cairo_font_options_t</span></a> in a hash table.</p> <p> @@ -285,9 +283,9 @@ in a hash table.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2652451"></a><h3> +<a name="id2654266"></a><h3> <a name="cairo-font-options-equal"></a>cairo_font_options_equal ()</h3> -<a class="indexterm" name="id2652462"></a><pre class="programlisting"><a class="link" href="cairo-Types.html#cairo-bool-t">cairo_bool_t</a> cairo_font_options_equal (const <a class="link" href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options, +<a class="indexterm" name="id2654277"></a><pre class="programlisting"><a class="link" href="cairo-Types.html#cairo-bool-t">cairo_bool_t</a> cairo_font_options_equal (const <a class="link" href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options, const <a class="link" href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *other);</pre> <p> Compares two font options objects for equality.</p> @@ -317,9 +315,9 @@ Compares two font options objects for equality.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2652566"></a><h3> +<a name="id2654382"></a><h3> <a name="cairo-font-options-set-antialias"></a>cairo_font_options_set_antialias ()</h3> -<a class="indexterm" name="id2652580"></a><pre class="programlisting">void cairo_font_options_set_antialias (<a class="link" href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options, +<a class="indexterm" name="id2654395"></a><pre class="programlisting">void cairo_font_options_set_antialias (<a class="link" href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options, <a class="link" href="cairo-cairo-t.html#cairo-antialias-t">cairo_antialias_t</a> antialias);</pre> <p> Sets the antialiasing mode for the font options object. This @@ -345,9 +343,9 @@ specifies the type of antialiasing to do when rendering text.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2652659"></a><h3> +<a name="id2654474"></a><h3> <a name="cairo-font-options-get-antialias"></a>cairo_font_options_get_antialias ()</h3> -<a class="indexterm" name="id2652672"></a><pre class="programlisting"><a class="link" href="cairo-cairo-t.html#cairo-antialias-t">cairo_antialias_t</a> cairo_font_options_get_antialias (const <a class="link" href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);</pre> +<a class="indexterm" name="id2654488"></a><pre class="programlisting"><a class="link" href="cairo-cairo-t.html#cairo-antialias-t">cairo_antialias_t</a> cairo_font_options_get_antialias (const <a class="link" href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);</pre> <p> Gets the antialiasing mode for the font options object.</p> <p> @@ -371,9 +369,9 @@ Gets the antialiasing mode for the font options object.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2652740"></a><h3> +<a name="id2654555"></a><h3> <a name="cairo-subpixel-order-t"></a>enum cairo_subpixel_order_t</h3> -<a class="indexterm" name="id2652751"></a><pre class="programlisting">typedef enum _cairo_subpixel_order { +<a class="indexterm" name="id2654566"></a><pre class="programlisting">typedef enum _cairo_subpixel_order { CAIRO_SUBPIXEL_ORDER_DEFAULT, CAIRO_SUBPIXEL_ORDER_RGB, CAIRO_SUBPIXEL_ORDER_BGR, @@ -426,9 +424,9 @@ antialiasing mode of <a class="link" href="cairo-cairo-t.html#CAIRO-ANTIALIAS-SU </div> <hr> <div class="refsect2" lang="en"> -<a name="id2652886"></a><h3> +<a name="id2654721"></a><h3> <a name="cairo-font-options-set-subpixel-order"></a>cairo_font_options_set_subpixel_order ()</h3> -<a class="indexterm" name="id2652899"></a><pre class="programlisting">void cairo_font_options_set_subpixel_order +<a class="indexterm" name="id2654735"></a><pre class="programlisting">void cairo_font_options_set_subpixel_order (<a class="link" href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options, <a class="link" href="cairo-Font-Options.html#cairo-subpixel-order-t">cairo_subpixel_order_t</a> subpixel_order);</pre> <p> @@ -458,9 +456,9 @@ the display device when rendering with an antialiasing mode of </div> <hr> <div class="refsect2" lang="en"> -<a name="id2652989"></a><h3> +<a name="id2654832"></a><h3> <a name="cairo-font-options-get-subpixel-order"></a>cairo_font_options_get_subpixel_order ()</h3> -<a class="indexterm" name="id2653001"></a><pre class="programlisting"><a class="link" href="cairo-Font-Options.html#cairo-subpixel-order-t">cairo_subpixel_order_t</a> cairo_font_options_get_subpixel_order +<a class="indexterm" name="id2654846"></a><pre class="programlisting"><a class="link" href="cairo-Font-Options.html#cairo-subpixel-order-t">cairo_subpixel_order_t</a> cairo_font_options_get_subpixel_order (const <a class="link" href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);</pre> <p> Gets the subpixel order for the font options object. @@ -486,9 +484,9 @@ See the documentation for <a class="link" href="cairo-Font-Options.html#cairo-su </div> <hr> <div class="refsect2" lang="en"> -<a name="id2653072"></a><h3> +<a name="id2654907"></a><h3> <a name="cairo-hint-style-t"></a>enum cairo_hint_style_t</h3> -<a class="indexterm" name="id2653082"></a><pre class="programlisting">typedef enum _cairo_hint_style { +<a class="indexterm" name="id2654917"></a><pre class="programlisting">typedef enum _cairo_hint_style { CAIRO_HINT_STYLE_DEFAULT, CAIRO_HINT_STYLE_NONE, CAIRO_HINT_STYLE_SLIGHT, @@ -547,9 +545,9 @@ New entries may be added in future versions.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2653221"></a><h3> +<a name="id2655056"></a><h3> <a name="cairo-font-options-set-hint-style"></a>cairo_font_options_set_hint_style ()</h3> -<a class="indexterm" name="id2653234"></a><pre class="programlisting">void cairo_font_options_set_hint_style (<a class="link" href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options, +<a class="indexterm" name="id2655068"></a><pre class="programlisting">void cairo_font_options_set_hint_style (<a class="link" href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options, <a class="link" href="cairo-Font-Options.html#cairo-hint-style-t">cairo_hint_style_t</a> hint_style);</pre> <p> Sets the hint style for font outlines for the font options object. @@ -577,9 +575,9 @@ See the documentation for <a class="link" href="cairo-Font-Options.html#cairo-hi </div> <hr> <div class="refsect2" lang="en"> -<a name="id2653313"></a><h3> +<a name="id2655148"></a><h3> <a name="cairo-font-options-get-hint-style"></a>cairo_font_options_get_hint_style ()</h3> -<a class="indexterm" name="id2653326"></a><pre class="programlisting"><a class="link" href="cairo-Font-Options.html#cairo-hint-style-t">cairo_hint_style_t</a> cairo_font_options_get_hint_style (const <a class="link" href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);</pre> +<a class="indexterm" name="id2655161"></a><pre class="programlisting"><a class="link" href="cairo-Font-Options.html#cairo-hint-style-t">cairo_hint_style_t</a> cairo_font_options_get_hint_style (const <a class="link" href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);</pre> <p> Gets the hint style for font outlines for the font options object. See the documentation for <a class="link" href="cairo-Font-Options.html#cairo-hint-style-t"><span class="type">cairo_hint_style_t</span></a> for full details.</p> @@ -604,9 +602,9 @@ See the documentation for <a class="link" href="cairo-Font-Options.html#cairo-hi </div> <hr> <div class="refsect2" lang="en"> -<a name="id2653395"></a><h3> +<a name="id2655230"></a><h3> <a name="cairo-hint-metrics-t"></a>enum cairo_hint_metrics_t</h3> -<a class="indexterm" name="id2653405"></a><pre class="programlisting">typedef enum _cairo_hint_metrics { +<a class="indexterm" name="id2655240"></a><pre class="programlisting">typedef enum _cairo_hint_metrics { CAIRO_HINT_METRICS_DEFAULT, CAIRO_HINT_METRICS_OFF, CAIRO_HINT_METRICS_ON @@ -645,9 +643,9 @@ will be laid out differently at different zoom factors.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2653494"></a><h3> +<a name="id2655328"></a><h3> <a name="cairo-font-options-set-hint-metrics"></a>cairo_font_options_set_hint_metrics ()</h3> -<a class="indexterm" name="id2653506"></a><pre class="programlisting">void cairo_font_options_set_hint_metrics (<a class="link" href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options, +<a class="indexterm" name="id2655341"></a><pre class="programlisting">void cairo_font_options_set_hint_metrics (<a class="link" href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options, <a class="link" href="cairo-Font-Options.html#cairo-hint-metrics-t">cairo_hint_metrics_t</a> hint_metrics);</pre> <p> Sets the metrics hinting mode for the font options object. This @@ -675,9 +673,9 @@ See the documentation for <a class="link" href="cairo-Font-Options.html#cairo-hi </div> <hr> <div class="refsect2" lang="en"> -<a name="id2653585"></a><h3> +<a name="id2655420"></a><h3> <a name="cairo-font-options-get-hint-metrics"></a>cairo_font_options_get_hint_metrics ()</h3> -<a class="indexterm" name="id2653599"></a><pre class="programlisting"><a class="link" href="cairo-Font-Options.html#cairo-hint-metrics-t">cairo_hint_metrics_t</a> cairo_font_options_get_hint_metrics +<a class="indexterm" name="id2655433"></a><pre class="programlisting"><a class="link" href="cairo-Font-Options.html#cairo-hint-metrics-t">cairo_hint_metrics_t</a> cairo_font_options_get_hint_metrics (const <a class="link" href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);</pre> <p> Gets the metrics hinting mode for the font options object. @@ -703,9 +701,17 @@ See the documentation for <a class="link" href="cairo-Font-Options.html#cairo-hi </div> </div> <div class="refsect1" lang="en"> -<a name="id2653669"></a><div class="refsect2" lang="en"><a name="id2653670"></a></div> +<a name="id2655504"></a><h2>See Also</h2> +<p> +</p> +<div class="itemizedlist"><ul type="disc"><li><a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t"><span class="type">cairo_scaled_font_t</span></a></li></ul></div> +<p> +</p> +</div> +<div class="refsect1" lang="en"> +<a name="id2655524"></a><div class="refsect2" lang="en"><a name="id2655525"></a></div> <hr> -<div class="refsect2" lang="en"><a name="id2653671"></a></div> +<div class="refsect2" lang="en"><a name="id2655526"></a></div> </div> </div> </body> diff --git a/doc/public/html/cairo-FreeType-Fonts.html b/doc/public/html/cairo-FreeType-Fonts.html index 0b00e1a..5a738a3 100644 --- a/doc/public/html/cairo-FreeType-Fonts.html +++ b/doc/public/html/cairo-FreeType-Fonts.html @@ -6,12 +6,10 @@ <meta name="generator" content="DocBook XSL Stylesheets V1.73.2"> <link rel="start" href="index.html" title="Cairo: A Vector Graphics Library"> <link rel="up" href="Fonts.html" title="Fonts"> -<link rel="prev" href="cairo-Font-Options.html" title="Font Options"> +<link rel="prev" href="cairo-Font-Options.html" title="cairo_font_options_t"> <link rel="next" href="cairo-Win32-Fonts.html" title="Win32 Fonts"> <meta name="generator" content="GTK-Doc V1.9 (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"> @@ -19,6 +17,7 @@ <link rel="index" href="ix01.html" title="Index"> <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2"> <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6"> <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"> @@ -30,16 +29,16 @@ <th width="100%" align="center">Cairo: A Vector Graphics Library</th> <td><a accesskey="n" href="cairo-Win32-Fonts.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="#id2616098" class="shortcut">Top</a> +<tr><td colspan="5" class="shortcuts"><nobr><a href="#id2598684" class="shortcut">Top</a>  |  - <a href="#id2648711" class="shortcut">Description</a></nobr></td></tr> + <a href="#id2628395" class="shortcut">Description</a></nobr></td></tr> </table> <div class="refentry" lang="en"> <a name="cairo-FreeType-Fonts"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> <td valign="top"> <h2> -<a name="id2616098"></a><span class="refentrytitle">FreeType Fonts</span> +<a name="id2598684"></a><span class="refentrytitle">FreeType Fonts</span> </h2> <p>FreeType Fonts — Font support for FreeType</p> </td> @@ -51,6 +50,7 @@ +#define <a class="link" href="cairo-FreeType-Fonts.html#CAIRO-HAS-FT-FONT:CAPS">CAIRO_HAS_FT_FONT</a> <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a>* <a class="link" 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); @@ -63,17 +63,29 @@ void <a class="link" href="cairo-FreeType-Fonts.html#cairo-ft-sca </pre> </div> <div class="refsect1" lang="en"> -<a name="id2648711"></a><h2>Description</h2> +<a name="id2628395"></a><h2>Description</h2> <p> - +The FreeType font backend is primarily used to render text on GNU/Linux +systems, but can be used on other platforms too. </p> </div> <div class="refsect1" lang="en"> -<a name="id2648727"></a><h2>Details</h2> +<a name="id2628413"></a><h2>Details</h2> +<div class="refsect2" lang="en"> +<a name="id2628424"></a><h3> +<a name="CAIRO-HAS-FT-FONT:CAPS"></a>CAIRO_HAS_FT_FONT</h3> +<a class="indexterm" name="id2628435"></a><pre class="programlisting">#define CAIRO_HAS_FT_FONT 1 +</pre> +<p> +Defined if the FreeType font backend is available. +This macro can be used to conditionally compile backend-specific code. +</p> +</div> +<hr> <div class="refsect2" lang="en"> -<a name="id2648738"></a><h3> +<a name="id2653920"></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="id2648750"></a><pre class="programlisting"><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a>* cairo_ft_font_face_create_for_ft_face +<a class="indexterm" name="id2653931"></a><pre class="programlisting"><a class="link" 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> <p> @@ -121,9 +133,9 @@ as <code class="function">cairo_ft_font_lock_face()</code>.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2651845"></a><h3> +<a name="id2651321"></a><h3> <a name="cairo-ft-font-face-create-for-pattern"></a>cairo_ft_font_face_create_for_pattern ()</h3> -<a class="indexterm" name="id2651859"></a><pre class="programlisting"><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a>* cairo_ft_font_face_create_for_pattern +<a class="indexterm" name="id2651334"></a><pre class="programlisting"><a class="link" 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> <p> Creates a new font face for the FreeType font backend based on a @@ -167,9 +179,9 @@ appropriately to reflect the options in a <a class="link" href="cairo-Font-Optio </div> <hr> <div class="refsect2" lang="en"> -<a name="id2649407"></a><h3> +<a name="id2650219"></a><h3> <a name="cairo-ft-font-options-substitute"></a>cairo_ft_font_options_substitute ()</h3> -<a class="indexterm" name="id2649420"></a><pre class="programlisting">void cairo_ft_font_options_substitute (const <a class="link" href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options, +<a class="indexterm" name="id2650230"></a><pre class="programlisting">void cairo_ft_font_options_substitute (const <a class="link" href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options, FcPattern *pattern);</pre> <p> Add options to a <span class="type">FcPattern</span> based on a <a class="link" href="cairo-Font-Options.html#cairo-font-options-t"><span class="type">cairo_font_options_t</span></a> font @@ -198,9 +210,9 @@ before calling <code class="function">FcDefaultSubstitute()</code>.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2649540"></a><h3> +<a name="id2628578"></a><h3> <a name="cairo-ft-scaled-font-lock-face"></a>cairo_ft_scaled_font_lock_face ()</h3> -<a class="indexterm" name="id2649554"></a><pre class="programlisting">FT_Face cairo_ft_scaled_font_lock_face (<a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);</pre> +<a class="indexterm" name="id2628591"></a><pre class="programlisting">FT_Face cairo_ft_scaled_font_lock_face (<a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);</pre> <p> <code class="function">cairo_ft_font_lock_face()</code> gets the <span class="type">FT_Face</span> object from a FreeType backend font and scales it appropriately for the font. You must @@ -247,9 +259,9 @@ or <code class="literal">NULL</code> if <em class="parameter"><code>scaled_font< </div> <hr> <div class="refsect2" lang="en"> -<a name="id2648924"></a><h3> +<a name="id2628762"></a><h3> <a name="cairo-ft-scaled-font-unlock-face"></a>cairo_ft_scaled_font_unlock_face ()</h3> -<a class="indexterm" name="id2648938"></a><pre class="programlisting">void cairo_ft_scaled_font_unlock_face (<a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);</pre> +<a class="indexterm" name="id2628775"></a><pre class="programlisting">void cairo_ft_scaled_font_unlock_face (<a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);</pre> <p> Releases a face obtained with <a class="link" href="cairo-FreeType-Fonts.html#cairo-ft-scaled-font-lock-face"><code class="function">cairo_ft_scaled_font_lock_face()</code></a>.</p> <p> @@ -269,9 +281,17 @@ Releases a face obtained with <a class="link" href="cairo-FreeType-Fonts.html#ca </div> </div> <div class="refsect1" lang="en"> -<a name="id2649039"></a><div class="refsect2" lang="en"><a name="id2649040"></a></div> +<a name="id2648458"></a><h2>See Also</h2> +<p> +</p> +<div class="itemizedlist"><ul type="disc"><li><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t"><span class="type">cairo_font_face_t</span></a></li></ul></div> +<p> +</p> +</div> +<div class="refsect1" lang="en"> +<a name="id2648481"></a><div class="refsect2" lang="en"><a name="id2648482"></a></div> <hr> -<div class="refsect2" lang="en"><a name="id2649041"></a></div> +<div class="refsect2" lang="en"><a name="id2648483"></a></div> </div> </div> </body> diff --git a/doc/public/html/cairo-Image-Surfaces.html b/doc/public/html/cairo-Image-Surfaces.html index 25219d8..e07242e 100644 --- a/doc/public/html/cairo-Image-Surfaces.html +++ b/doc/public/html/cairo-Image-Surfaces.html @@ -10,8 +10,6 @@ <link rel="next" href="cairo-PDF-Surfaces.html" title="PDF Surfaces"> <meta name="generator" content="GTK-Doc V1.9 (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"> @@ -19,6 +17,7 @@ <link rel="index" href="ix01.html" title="Index"> <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2"> <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6"> <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"> @@ -30,16 +29,16 @@ <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="#id2606230" class="shortcut">Top</a> +<tr><td colspan="5" class="shortcuts"><nobr><a href="#id2600125" class="shortcut">Top</a>  |  - <a href="#id2657522" class="shortcut">Description</a></nobr></td></tr> + <a href="#id2656400" class="shortcut">Description</a></nobr></td></tr> </table> <div class="refentry" lang="en"> <a name="cairo-Image-Surfaces"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> <td valign="top"> <h2> -<a name="id2606230"></a><span class="refentrytitle">Image Surfaces</span> +<a name="id2600125"></a><span class="refentrytitle">Image Surfaces</span> </h2> <p>Image Surfaces — Rendering to memory buffers</p> </td> @@ -52,6 +51,8 @@ enum <a class="link" href="cairo-Image-Surfaces.html#cairo-format-t">cairo_format_t</a>; +int <a class="link" href="cairo-Image-Surfaces.html#cairo-format-stride-for-width">cairo_format_stride_for_width</a> (<a class="link" href="cairo-Image-Surfaces.html#cairo-format-t">cairo_format_t</a> format, + int width); <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* <a class="link" href="cairo-Image-Surfaces.html#cairo-image-surface-create">cairo_image_surface_create</a> (<a class="link" href="cairo-Image-Surfaces.html#cairo-format-t">cairo_format_t</a> format, int width, int height); @@ -68,19 +69,19 @@ int <a class="link" href="cairo-Image-Surfaces.html#cairo-image- </pre> </div> <div class="refsect1" lang="en"> -<a name="id2657522"></a><h2>Description</h2> +<a name="id2656400"></a><h2>Description</h2> <p> - Image surfaces provide the ability to render to memory buffers - either allocated by cairo or by the calling code. The supported - image formats are those defined in <a class="link" href="cairo-Image-Surfaces.html#cairo-format-t"><span class="type">cairo_format_t</span></a>. - </p> +Image surfaces provide the ability to render to memory buffers +either allocated by cairo or by the calling code. The supported +image formats are those defined in <a class="link" href="cairo-Image-Surfaces.html#cairo-format-t"><span class="type">cairo_format_t</span></a>. +</p> </div> <div class="refsect1" lang="en"> -<a name="id2657548"></a><h2>Details</h2> +<a name="id2656426"></a><h2>Details</h2> <div class="refsect2" lang="en"> -<a name="id2653958"></a><h3> +<a name="id2656437"></a><h3> <a name="cairo-format-t"></a>enum cairo_format_t</h3> -<a class="indexterm" name="id2653970"></a><pre class="programlisting">typedef enum _cairo_format { +<a class="indexterm" name="id2656449"></a><pre class="programlisting">typedef enum _cairo_format { CAIRO_FORMAT_ARGB32, CAIRO_FORMAT_RGB24, CAIRO_FORMAT_A8, @@ -140,9 +141,60 @@ New entries may be added in future versions.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2654108"></a><h3> +<a name="id2656587"></a><h3> +<a name="cairo-format-stride-for-width"></a>cairo_format_stride_for_width ()</h3> +<a class="indexterm" name="id2656601"></a><pre class="programlisting">int cairo_format_stride_for_width (<a class="link" href="cairo-Image-Surfaces.html#cairo-format-t">cairo_format_t</a> format, + int width);</pre> +<p> +This function provides a stride value that will respect all +alignment requirements of the accelerated image-rendering code +within cairo. Typical usage will be of the form: +</p> +<p> +</p> +<div class="informalexample"><pre class="programlisting"> +int stride; +unsigned char *data; +<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface; + +stride = cairo_format_stride_for_width (format, width); +data = malloc (stride * height); +surface = cairo_image_surface_create_for_data (data, format, + width, height); +</pre></div> +<p> + +</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td> +<td> A <a class="link" href="cairo-Image-Surfaces.html#cairo-format-t"><span class="type">cairo_format_t</span></a> value +</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>width</code></em> :</span></p></td> +<td> The desired width of an image surface to be created. +</td> +</tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td> the appropriate stride to use given the desired +format and width. + +</td> +</tr> +</tbody> +</table></div> +<p class="since">Since 1.6 +</p> +</div> +<hr> +<div class="refsect2" lang="en"> +<a name="id2656931"></a><h3> <a name="cairo-image-surface-create"></a>cairo_image_surface_create ()</h3> -<a class="indexterm" name="id2654120"></a><pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_image_surface_create (<a class="link" href="cairo-Image-Surfaces.html#cairo-format-t">cairo_format_t</a> format, +<a class="indexterm" name="id2656942"></a><pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_image_surface_create (<a class="link" href="cairo-Image-Surfaces.html#cairo-format-t">cairo_format_t</a> format, int width, int height);</pre> <p> @@ -175,7 +227,7 @@ but not belonging to the given format are undefined).</p> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> <td> a pointer to the newly created surface. The caller -owns the surface and should call cairo_surface_destroy when done +owns the surface and should call <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-destroy"><code class="function">cairo_surface_destroy()</code></a> when done with it. This function always returns a valid pointer, but it will return a @@ -188,9 +240,9 @@ occurs. You can use <a class="link" href="cairo-cairo-surface-t.html#cairo-surfa </div> <hr> <div class="refsect2" lang="en"> -<a name="id2656999"></a><h3> +<a name="id2657070"></a><h3> <a name="cairo-image-surface-create-for-data"></a>cairo_image_surface_create_for_data ()</h3> -<a class="indexterm" name="id2657010"></a><pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_image_surface_create_for_data (unsigned char *data, +<a class="indexterm" name="id2657081"></a><pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_image_surface_create_for_data (unsigned char *data, <a class="link" href="cairo-Image-Surfaces.html#cairo-format-t">cairo_format_t</a> format, int width, int height, @@ -201,7 +253,17 @@ buffer must be kept around until the <a class="link" href="cairo-cairo-surface-t or <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-finish"><code class="function">cairo_surface_finish()</code></a> is called on the surface. The initial contents of <em class="parameter"><code>buffer</code></em> will be used as the initial image contents; you must explicitly clear the buffer, using, for example, -<a class="link" href="cairo-Paths.html#cairo-rectangle"><code class="function">cairo_rectangle()</code></a> and <a class="link" href="cairo-cairo-t.html#cairo-fill"><code class="function">cairo_fill()</code></a> if you want it cleared.</p> +<a class="link" href="cairo-Paths.html#cairo-rectangle"><code class="function">cairo_rectangle()</code></a> and <a class="link" href="cairo-cairo-t.html#cairo-fill"><code class="function">cairo_fill()</code></a> if you want it cleared. +</p> +<p> +Note that the stride may be larger than +width*bytes_per_pixel to provide proper alignment for each pixel +and row. This alignment is required to allow high-performance rendering +within cairo. The correct way to obtain a legal stride value is to +call <a class="link" href="cairo-Image-Surfaces.html#cairo-format-stride-for-width"><code class="function">cairo_format_stride_for_width()</code></a> with the desired format and +maximum image width value, and the use the resulting stride value +to allocate the data and to create the image surface. See +<a class="link" href="cairo-Image-Surfaces.html#cairo-format-stride-for-width"><code class="function">cairo_format_stride_for_width()</code></a> for example code.</p> <p> </p> @@ -210,8 +272,9 @@ must explicitly clear the buffer, using, for example, <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td> -<td> a pointer to a buffer supplied by the application - in which to write contents. +<td> a pointer to a buffer supplied by the application in which + to write contents. This pointer must be suitably aligned for any + kind of variable, (for example, a pointer returned by malloc). </td> </tr> <tr> @@ -231,21 +294,24 @@ must explicitly clear the buffer, using, for example, </tr> <tr> <td><p><span class="term"><em class="parameter"><code>stride</code></em> :</span></p></td> -<td> the number of bytes between the start of rows - in the buffer. Having this be specified separate from <em class="parameter"><code>width</code></em> - allows for padding at the end of rows, or for writing - to a subportion of a larger image. +<td> the number of bytes between the start of rows in the + buffer as allocated. This value should always be computed by + <a class="link" href="cairo-Image-Surfaces.html#cairo-format-stride-for-width"><code class="function">cairo_format_stride_for_width()</code></a> before allocating the data + buffer. </td> </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> <td> a pointer to the newly created surface. The caller -owns the surface and should call cairo_surface_destroy when done +owns the surface and should call <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-destroy"><code class="function">cairo_surface_destroy()</code></a> when done with it. 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 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-status"><code class="function">cairo_surface_status()</code></a> to check for this. +pointer to a "nil" surface in the case of an error such as out of +memory or an invalid stride value. In case of invalid stride value +the error status of the returned surface will be +<a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-INVALID-STRIDE:CAPS"><code class="literal">CAIRO_STATUS_INVALID_STRIDE</code></a>. You can use +<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-status"><code class="function">cairo_surface_status()</code></a> to check for this. See <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-set-user-data"><code class="function">cairo_surface_set_user_data()</code></a> for a means of attaching a destroy-notification fallback to the surface if necessary. @@ -256,9 +322,9 @@ destroy-notification fallback to the surface if necessary. </div> <hr> <div class="refsect2" lang="en"> -<a name="id2657234"></a><h3> +<a name="id2655996"></a><h3> <a name="cairo-image-surface-get-data"></a>cairo_image_surface_get_data ()</h3> -<a class="indexterm" name="id2657248"></a><pre class="programlisting">unsigned char* cairo_image_surface_get_data (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> +<a class="indexterm" name="id2656011"></a><pre class="programlisting">unsigned char* cairo_image_surface_get_data (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> <p> Get a pointer to the data of the image surface, for direct inspection or modification.</p> @@ -275,7 +341,7 @@ inspection or modification.</p> </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> -<td> a pointer to the image data of this surface or NULL +<td> a pointer to the image data of this surface or <code class="literal">NULL</code> if <em class="parameter"><code>surface</code></em> is not an image surface. </td> @@ -287,9 +353,9 @@ if <em class="parameter"><code>surface</code></em> is not an image surface. </div> <hr> <div class="refsect2" lang="en"> -<a name="id2656231"></a><h3> +<a name="id2656104"></a><h3> <a name="cairo-image-surface-get-format"></a>cairo_image_surface_get_format ()</h3> -<a class="indexterm" name="id2656247"></a><pre class="programlisting"><a class="link" href="cairo-Image-Surfaces.html#cairo-format-t">cairo_format_t</a> cairo_image_surface_get_format (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> +<a class="indexterm" name="id2656120"></a><pre class="programlisting"><a class="link" href="cairo-Image-Surfaces.html#cairo-format-t">cairo_format_t</a> cairo_image_surface_get_format (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> <p> Get the format of the surface.</p> <p> @@ -316,9 +382,9 @@ Get the format of the surface.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2656321"></a><h3> +<a name="id2656194"></a><h3> <a name="cairo-image-surface-get-width"></a>cairo_image_surface_get_width ()</h3> -<a class="indexterm" name="id2656334"></a><pre class="programlisting">int cairo_image_surface_get_width (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> +<a class="indexterm" name="id2656207"></a><pre class="programlisting">int cairo_image_surface_get_width (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> <p> Get the width of the image surface in pixels.</p> <p> @@ -342,9 +408,9 @@ Get the width of the image surface in pixels.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2656402"></a><h3> +<a name="id2659927"></a><h3> <a name="cairo-image-surface-get-height"></a>cairo_image_surface_get_height ()</h3> -<a class="indexterm" name="id2656416"></a><pre class="programlisting">int cairo_image_surface_get_height (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> +<a class="indexterm" name="id2659940"></a><pre class="programlisting">int cairo_image_surface_get_height (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> <p> Get the height of the image surface in pixels.</p> <p> @@ -368,9 +434,9 @@ Get the height of the image surface in pixels.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2656484"></a><h3> +<a name="id2660009"></a><h3> <a name="cairo-image-surface-get-stride"></a>cairo_image_surface_get_stride ()</h3> -<a class="indexterm" name="id2656499"></a><pre class="programlisting">int cairo_image_surface_get_stride (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> +<a class="indexterm" name="id2660025"></a><pre class="programlisting">int cairo_image_surface_get_stride (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> <p> Get the stride of the image surface in bytes</p> <p> @@ -400,9 +466,17 @@ beginning of the next row. </div> </div> <div class="refsect1" lang="en"> -<a name="id2656584"></a><div class="refsect2" lang="en"><a name="id2656586"></a></div> +<a name="id2660110"></a><h2>See Also</h2> +<p> +</p> +<div class="itemizedlist"><ul type="disc"><li><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t"><span class="type">cairo_surface_t</span></a></li></ul></div> +<p> +</p> +</div> +<div class="refsect1" lang="en"> +<a name="id2660133"></a><div class="refsect2" lang="en"><a name="id2660134"></a></div> <hr> -<div class="refsect2" lang="en"><a name="id2656587"></a></div> +<div class="refsect2" lang="en"><a name="id2660136"></a></div> </div> </div> </body> diff --git a/doc/public/html/cairo-PDF-Surfaces.html b/doc/public/html/cairo-PDF-Surfaces.html index beb1b90..65843b2 100644 --- a/doc/public/html/cairo-PDF-Surfaces.html +++ b/doc/public/html/cairo-PDF-Surfaces.html @@ -10,8 +10,6 @@ <link rel="next" href="cairo-PNG-Support.html" title="PNG Support"> <meta name="generator" content="GTK-Doc V1.9 (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"> @@ -19,6 +17,7 @@ <link rel="index" href="ix01.html" title="Index"> <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2"> <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6"> <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"> @@ -30,16 +29,16 @@ <th width="100%" align="center">Cairo: A Vector Graphics Library</th> <td><a accesskey="n" href="cairo-PNG-Support.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="#id2586205" class="shortcut">Top</a> +<tr><td colspan="5" class="shortcuts"><nobr><a href="#id2612754" class="shortcut">Top</a>  |  - <a href="#id2622657" class="shortcut">Description</a></nobr></td></tr> + <a href="#id2653837" class="shortcut">Description</a></nobr></td></tr> </table> <div class="refentry" lang="en"> <a name="cairo-PDF-Surfaces"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> <td valign="top"> <h2> -<a name="id2586205"></a><span class="refentrytitle">PDF Surfaces</span> +<a name="id2612754"></a><span class="refentrytitle">PDF Surfaces</span> </h2> <p>PDF Surfaces — Rendering PDF documents</p> </td> @@ -51,6 +50,7 @@ +#define <a class="link" href="cairo-PDF-Surfaces.html#CAIRO-HAS-PDF-SURFACE:CAPS">CAIRO_HAS_PDF_SURFACE</a> <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* <a class="link" 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); @@ -64,17 +64,29 @@ void <a class="link" href="cairo-PDF-Surfaces.html#cairo-pdf-surf </pre> </div> <div class="refsect1" lang="en"> -<a name="id2622657"></a><h2>Description</h2> +<a name="id2653837"></a><h2>Description</h2> <p> - +The PDF surface is used to render cairo graphics to Adobe +PDF files and is a multi-page vector surface backend. </p> </div> <div class="refsect1" lang="en"> -<a name="id2622673"></a><h2>Details</h2> +<a name="id2653855"></a><h2>Details</h2> +<div class="refsect2" lang="en"> +<a name="id2653866"></a><h3> +<a name="CAIRO-HAS-PDF-SURFACE:CAPS"></a>CAIRO_HAS_PDF_SURFACE</h3> +<a class="indexterm" name="id2653877"></a><pre class="programlisting">#define CAIRO_HAS_PDF_SURFACE 1 +</pre> +<p> +Defined if the PDF surface backend is available. +This macro can be used to conditionally compile backend-specific code. +</p> +</div> +<hr> <div class="refsect2" lang="en"> -<a name="id2622684"></a><h3> +<a name="id2653894"></a><h3> <a name="cairo-pdf-surface-create"></a>cairo_pdf_surface_create ()</h3> -<a class="indexterm" name="id2622697"></a><pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_pdf_surface_create (const char *filename, +<a class="indexterm" name="id2653907"></a><pre class="programlisting"><a class="link" 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> @@ -104,7 +116,7 @@ to <em class="parameter"><code>filename</code></em>.</p> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> <td> a pointer to the newly created surface. The caller -owns the surface and should call cairo_surface_destroy when done +owns the surface and should call <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-destroy"><code class="function">cairo_surface_destroy()</code></a> when done with it. This function always returns a valid pointer, but it will return a @@ -120,9 +132,9 @@ occurs. You can use <a class="link" href="cairo-cairo-surface-t.html#cairo-surfa </div> <hr> <div class="refsect2" lang="en"> -<a name="id2588757"></a><h3> +<a name="id2640922"></a><h3> <a name="cairo-pdf-surface-create-for-stream"></a>cairo_pdf_surface_create_for_stream ()</h3> -<a class="indexterm" name="id2588770"></a><pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_pdf_surface_create_for_stream (<a class="link" href="cairo-PNG-Support.html#cairo-write-func-t">cairo_write_func_t</a> write_func, +<a class="indexterm" name="id2640935"></a><pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_pdf_surface_create_for_stream (<a class="link" 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> @@ -158,7 +170,7 @@ incrementally to the stream represented by <em class="parameter"><code>write_fun <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> <td> a pointer to the newly created surface. The caller -owns the surface and should call cairo_surface_destroy when done +owns the surface and should call <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-destroy"><code class="function">cairo_surface_destroy()</code></a> when done with it. This function always returns a valid pointer, but it will return a @@ -174,9 +186,9 @@ occurs. You can use <a class="link" href="cairo-cairo-surface-t.html#cairo-surfa </div> <hr> <div class="refsect2" lang="en"> -<a name="id2656659"></a><h3> +<a name="id2659529"></a><h3> <a name="cairo-pdf-surface-set-size"></a>cairo_pdf_surface_set_size ()</h3> -<a class="indexterm" name="id2656672"></a><pre class="programlisting">void cairo_pdf_surface_set_size (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface, +<a class="indexterm" name="id2659543"></a><pre class="programlisting">void cairo_pdf_surface_set_size (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface, double width_in_points, double height_in_points);</pre> <p> @@ -197,7 +209,7 @@ surface or immediately after completing a page with either <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>surface</code></em> :</span></p></td> -<td> a PDF cairo_surface_t +<td> a PDF <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t"><span class="type">cairo_surface_t</span></a> </td> </tr> <tr> @@ -217,9 +229,17 @@ surface or immediately after completing a page with either </div> </div> <div class="refsect1" lang="en"> -<a name="id2657944"></a><div class="refsect2" lang="en"><a name="id2657946"></a></div> +<a name="id2656748"></a><h2>See Also</h2> +<p> +</p> +<div class="itemizedlist"><ul type="disc"><li><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t"><span class="type">cairo_surface_t</span></a></li></ul></div> +<p> +</p> +</div> +<div class="refsect1" lang="en"> +<a name="id2656771"></a><div class="refsect2" lang="en"><a name="id2656772"></a></div> <hr> -<div class="refsect2" lang="en"><a name="id2657947"></a></div> +<div class="refsect2" lang="en"><a name="id2656774"></a></div> </div> </div> </body> diff --git a/doc/public/html/cairo-PNG-Support.html b/doc/public/html/cairo-PNG-Support.html index 0589ff4..137d1e4 100644 --- a/doc/public/html/cairo-PNG-Support.html +++ b/doc/public/html/cairo-PNG-Support.html @@ -10,8 +10,6 @@ <link rel="next" href="cairo-PostScript-Surfaces.html" title="PostScript Surfaces"> <meta name="generator" content="GTK-Doc V1.9 (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"> @@ -19,6 +17,7 @@ <link rel="index" href="ix01.html" title="Index"> <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2"> <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6"> <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"> @@ -30,16 +29,16 @@ <th width="100%" align="center">Cairo: A Vector Graphics Library</th> <td><a accesskey="n" href="cairo-PostScript-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="#id2657949" class="shortcut">Top</a> +<tr><td colspan="5" class="shortcuts"><nobr><a href="#id2604614" class="shortcut">Top</a>  |  - <a href="#id2658065" class="shortcut">Description</a></nobr></td></tr> + <a href="#id2660150" class="shortcut">Description</a></nobr></td></tr> </table> <div class="refentry" lang="en"> <a name="cairo-PNG-Support"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> <td valign="top"> <h2> -<a name="id2657949"></a><span class="refentrytitle">PNG Support</span> +<a name="id2604614"></a><span class="refentrytitle">PNG Support</span> </h2> <p>PNG Support — Reading and writing PNG images</p> </td> @@ -51,6 +50,7 @@ +#define <a class="link" href="cairo-PNG-Support.html#CAIRO-HAS-PNG-FUNCTIONS:CAPS">CAIRO_HAS_PNG_FUNCTIONS</a> <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* <a class="link" href="cairo-PNG-Support.html#cairo-image-surface-create-from-png">cairo_image_surface_create_from_png</a> (const char *filename); <a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> (<a class="link" href="cairo-PNG-Support.html#cairo-read-func-t">*cairo_read_func_t</a>) (void *closure, unsigned char *data, @@ -69,17 +69,30 @@ </pre> </div> <div class="refsect1" lang="en"> -<a name="id2658065"></a><h2>Description</h2> +<a name="id2660150"></a><h2>Description</h2> <p> - +The PNG functions allow reading PNG images into image surfaces, and writing +any surface to a PNG file. </p> </div> <div class="refsect1" lang="en"> -<a name="id2658081"></a><h2>Details</h2> +<a name="id2660167"></a><h2>Details</h2> +<div class="refsect2" lang="en"> +<a name="id2660178"></a><h3> +<a name="CAIRO-HAS-PNG-FUNCTIONS:CAPS"></a>CAIRO_HAS_PNG_FUNCTIONS</h3> +<a class="indexterm" name="id2660189"></a><pre class="programlisting">#define CAIRO_HAS_PNG_FUNCTIONS 1 +</pre> +<p> +Defined if the PNG functions are available. +This macro can be used to conditionally compile code using the cairo +PNG functions. +</p> +</div> +<hr> <div class="refsect2" lang="en"> -<a name="id2658092"></a><h3> +<a name="id2660206"></a><h3> <a name="cairo-image-surface-create-from-png"></a>cairo_image_surface_create_from_png ()</h3> -<a class="indexterm" name="id2658103"></a><pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_image_surface_create_from_png (const char *filename);</pre> +<a class="indexterm" name="id2660218"></a><pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_image_surface_create_from_png (const char *filename);</pre> <p> Creates a new image surface and initializes the contents to the given PNG file.</p> @@ -111,14 +124,14 @@ CAIRO_STATUS_READ_ERROR </div> <hr> <div class="refsect2" lang="en"> -<a name="id2658176"></a><h3> +<a name="id2660291"></a><h3> <a name="cairo-read-func-t"></a>cairo_read_func_t ()</h3> -<a class="indexterm" name="id2658188"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> (*cairo_read_func_t) (void *closure, +<a class="indexterm" name="id2660303"></a><pre class="programlisting"><a class="link" 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> <a class="link" href="cairo-PNG-Support.html#cairo-read-func-t"><span class="type">cairo_read_func_t</span></a> is the type of function which is called when a -backend needs to read data from an intput stream. It is passed the +backend needs to read data from an input stream. It is passed the closure which was specified by the user at the time the read function was registered, the buffer to read the data into and the length of the data in bytes. The read function should return @@ -155,9 +168,9 @@ CAIRO_STATUS_READ_ERROR otherwise.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2658304"></a><h3> +<a name="id2660419"></a><h3> <a name="cairo-image-surface-create-from-png-stream"></a>cairo_image_surface_create_from_png_stream ()</h3> -<a class="indexterm" name="id2658316"></a><pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_image_surface_create_from_png_stream +<a class="indexterm" name="id2660431"></a><pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_image_surface_create_from_png_stream (<a class="link" href="cairo-PNG-Support.html#cairo-read-func-t">cairo_read_func_t</a> read_func, void *closure);</pre> <p> @@ -191,9 +204,9 @@ memory could not be allocated for the operation. </div> <hr> <div class="refsect2" lang="en"> -<a name="id2658431"></a><h3> +<a name="id2660546"></a><h3> <a name="cairo-surface-write-to-png"></a>cairo_surface_write_to_png ()</h3> -<a class="indexterm" name="id2658443"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_surface_write_to_png (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface, +<a class="indexterm" name="id2660557"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_surface_write_to_png (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface, const char *filename);</pre> <p> Writes the contents of <em class="parameter"><code>surface</code></em> to a new file <em class="parameter"><code>filename</code></em> as a PNG @@ -216,11 +229,11 @@ image.</p> </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> -<td> CAIRO_STATUS_SUCCESS if the PNG file was written -successfully. Otherwise, CAIRO_STATUS_NO_MEMORY if memory could not +<td> <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> if the PNG file was written +successfully. Otherwise, <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a> if memory could not be allocated for the operation or CAIRO_STATUS_SURFACE_TYPE_MISMATCH if the surface does not have -pixel contents, or CAIRO_STATUS_WRITE_ERROR if an I/O error occurs +pixel contents, or <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-WRITE-ERROR:CAPS"><code class="literal">CAIRO_STATUS_WRITE_ERROR</code></a> if an I/O error occurs while attempting to write the file. </td> </tr> @@ -229,9 +242,9 @@ while attempting to write the file. </div> <hr> <div class="refsect2" lang="en"> -<a name="id2654431"></a><h3> +<a name="id2657755"></a><h3> <a name="cairo-write-func-t"></a>cairo_write_func_t ()</h3> -<a class="indexterm" name="id2654443"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> (*cairo_write_func_t) (void *closure, +<a class="indexterm" name="id2657768"></a><pre class="programlisting"><a class="link" 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> @@ -273,9 +286,9 @@ CAIRO_STATUS_WRITE_ERROR otherwise.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2654560"></a><h3> +<a name="id2657885"></a><h3> <a name="cairo-surface-write-to-png-stream"></a>cairo_surface_write_to_png_stream ()</h3> -<a class="indexterm" name="id2654572"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_surface_write_to_png_stream (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface, +<a class="indexterm" name="id2657897"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_surface_write_to_png_stream (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface, <a class="link" href="cairo-PNG-Support.html#cairo-write-func-t">cairo_write_func_t</a> write_func, void *closure);</pre> <p> @@ -303,8 +316,8 @@ Writes the image surface to the write function.</p> </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> -<td> CAIRO_STATUS_SUCCESS if the PNG file was written -successfully. Otherwise, CAIRO_STATUS_NO_MEMORY is returned if +<td> <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> if the PNG file was written +successfully. Otherwise, <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a> is returned if memory could not be allocated for the operation, CAIRO_STATUS_SURFACE_TYPE_MISMATCH if the surface does not have pixel contents. @@ -315,9 +328,17 @@ pixel contents. </div> </div> <div class="refsect1" lang="en"> -<a name="id2654696"></a><div class="refsect2" lang="en"><a name="id2654697"></a></div> +<a name="id2658038"></a><h2>See Also</h2> +<p> +</p> +<div class="itemizedlist"><ul type="disc"><li><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t"><span class="type">cairo_surface_t</span></a></li></ul></div> +<p> +</p> +</div> +<div class="refsect1" lang="en"> +<a name="id2658061"></a><div class="refsect2" lang="en"><a name="id2658062"></a></div> <hr> -<div class="refsect2" lang="en"><a name="id2654698"></a></div> +<div class="refsect2" lang="en"><a name="id2658063"></a></div> </div> </div> </body> diff --git a/doc/public/html/cairo-Paths.html b/doc/public/html/cairo-Paths.html index c8e85b4..d71d9a2 100644 --- a/doc/public/html/cairo-Paths.html +++ b/doc/public/html/cairo-Paths.html @@ -7,11 +7,9 @@ <link rel="start" href="index.html" title="Cairo: A Vector Graphics Library"> <link rel="up" href="Drawing.html" title="Drawing"> <link rel="prev" href="cairo-cairo-t.html" title="cairo_t"> -<link rel="next" href="cairo-Patterns.html" title="Patterns"> +<link rel="next" href="cairo-Patterns.html" title="cairo_pattern_t"> <meta name="generator" content="GTK-Doc V1.9 (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"> @@ -19,6 +17,7 @@ <link rel="index" href="ix01.html" title="Index"> <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2"> <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6"> <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"> @@ -30,16 +29,16 @@ <th width="100%" align="center">Cairo: A Vector Graphics Library</th> <td><a accesskey="n" href="cairo-Patterns.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="#id2600786" class="shortcut">Top</a> +<tr><td colspan="5" class="shortcuts"><nobr><a href="#id2615600" class="shortcut">Top</a>  |  - <a href="#id2624739" class="shortcut">Description</a></nobr></td></tr> + <a href="#id2624812" class="shortcut">Description</a></nobr></td></tr> </table> <div class="refentry" lang="en"> <a name="cairo-Paths"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> <td valign="top"> <h2> -<a name="id2600786"></a><span class="refentrytitle">Paths</span> +<a name="id2615600"></a><span class="refentrytitle">Paths</span> </h2> <p>Paths — Creating paths and manipulating path data</p> </td> @@ -59,7 +58,7 @@ enum <a class="link" href="cairo-Paths.html#cairo-path-data-type- void <a class="link" href="cairo-Paths.html#cairo-path-destroy">cairo_path_destroy</a> (<a class="link" href="cairo-Paths.html#cairo-path-t">cairo_path_t</a> *path); void <a class="link" href="cairo-Paths.html#cairo-append-path">cairo_append_path</a> (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, const <a class="link" href="cairo-Paths.html#cairo-path-t">cairo_path_t</a> *path); -void <a class="link" href="cairo-Paths.html#cairo-get-current-point">cairo_get_current_point</a> (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> <a class="link" href="cairo-Paths.html#cairo-get-current-point">cairo_get_current_point</a> (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, double *x, double *y); void <a class="link" href="cairo-Paths.html#cairo-new-path">cairo_new_path</a> (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr); @@ -113,20 +112,26 @@ void <a class="link" href="cairo-Paths.html#cairo-rel-line-to">ca void <a class="link" href="cairo-Paths.html#cairo-rel-move-to">cairo_rel_move_to</a> (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, double dx, double dy); +void <a class="link" href="cairo-Paths.html#cairo-path-extents">cairo_path_extents</a> (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, + double *x1, + double *y1, + double *x2, + double *y2); </pre> </div> <div class="refsect1" lang="en"> -<a name="id2624739"></a><h2>Description</h2> +<a name="id2624812"></a><h2>Description</h2> <p> - +Paths are the most basic drawing tools and are primarily used to implicitly +generate simple masks. </p> </div> <div class="refsect1" lang="en"> -<a name="id2624755"></a><h2>Details</h2> +<a name="id2624829"></a><h2>Details</h2> <div class="refsect2" lang="en"> -<a name="id2624765"></a><h3> +<a name="id2624840"></a><h3> <a name="cairo-path-t"></a>cairo_path_t</h3> -<a class="indexterm" name="id2624778"></a><pre class="programlisting">typedef struct { +<a class="indexterm" name="id2624853"></a><pre class="programlisting">typedef struct { cairo_status_t status; cairo_path_data_t *data; int num_data; @@ -173,9 +178,9 @@ includes both headers and coordinates for each portion.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2624920"></a><h3> +<a name="id2577718"></a><h3> <a name="cairo-path-data-t"></a>union cairo_path_data_t</h3> -<a class="indexterm" name="id2624932"></a><pre class="programlisting">union cairo_path_data_t { +<a class="indexterm" name="id2577730"></a><pre class="programlisting">union cairo_path_data_t { struct { cairo_path_data_type_t type; int length; @@ -223,26 +228,26 @@ Here is sample code for iterating through a <span class="type">""</span> </p> <div class="informalexample"><pre class="programlisting"> int i; - cairo_path_t *path; - cairo_path_data_t *data; + <a class="link" href="cairo-Paths.html#cairo-path-t">cairo_path_t</a> *path; + <a class="link" href="cairo-Paths.html#cairo-path-data-t">cairo_path_data_t</a> *data;   path = cairo_copy_path (cr);   for (i=0; i < path->num_data; i += path->data[i].header.length) { data = &path->data[i]; switch (data->header.type) { - case CAIRO_PATH_MOVE_TO: + case %CAIRO_PATH_MOVE_TO: do_move_to_things (data[1].point.x, data[1].point.y); break; - case CAIRO_PATH_LINE_TO: + case %CAIRO_PATH_LINE_TO: do_line_to_things (data[1].point.x, data[1].point.y); break; - case CAIRO_PATH_CURVE_TO: + case %CAIRO_PATH_CURVE_TO: do_curve_to_things (data[1].point.x, data[1].point.y, data[2].point.x, data[2].point.y, data[3].point.x, data[3].point.y); break; - case CAIRO_PATH_CLOSE_PATH: + case %CAIRO_PATH_CLOSE_PATH: do_close_path_things (); break; } @@ -265,9 +270,9 @@ elements for each element type.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2614928"></a><h3> +<a name="id2610055"></a><h3> <a name="cairo-path-data-type-t"></a>enum cairo_path_data_type_t</h3> -<a class="indexterm" name="id2577966"></a><pre class="programlisting">typedef enum _cairo_path_data_type { +<a class="indexterm" name="id2577903"></a><pre class="programlisting">typedef enum _cairo_path_data_type { CAIRO_PATH_MOVE_TO, CAIRO_PATH_LINE_TO, CAIRO_PATH_CURVE_TO, @@ -309,9 +314,9 @@ See <a class="link" href="cairo-Paths.html#cairo-path-data-t"><span class="type" </div> <hr> <div class="refsect2" lang="en"> -<a name="id2578099"></a><h3> +<a name="id2578036"></a><h3> <a name="cairo-copy-path"></a>cairo_copy_path ()</h3> -<a class="indexterm" name="id2578111"></a><pre class="programlisting"><a class="link" href="cairo-Paths.html#cairo-path-t">cairo_path_t</a>* cairo_copy_path (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> +<a class="indexterm" name="id2578048"></a><pre class="programlisting"><a class="link" href="cairo-Paths.html#cairo-path-t">cairo_path_t</a>* cairo_copy_path (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> <p> Creates a copy of the current path and returns it to the user as a <a class="link" href="cairo-Paths.html#cairo-path-t"><span class="type">cairo_path_t</span></a>. See <a class="link" href="cairo-Paths.html#cairo-path-data-t"><span class="type">cairo_path_data_t</span></a> for hints on how to iterate @@ -319,7 +324,7 @@ over the returned data structure. </p> <p> This function will always return a valid pointer, but the result -will have no data (<code class="literal">data==NULL</code> and +will have no data (<code class="literal">data==<code class="literal">NULL</code></code> and <code class="literal">num_data==0</code>), if either of the following conditions hold: </p> @@ -328,9 +333,7 @@ conditions hold: <div class="orderedlist"><ol type="1"> <li>If there is insufficient memory to copy the path. In this case <code class="literal">path->status</code> will be set to - <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS" -><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a>.</li> + <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a>.</li> <li>If <em class="parameter"><code>cr</code></em> is already in an error state. In this case <code class="literal">path->status</code> will contain the same status that would be returned by <a class="link" href="cairo-cairo-t.html#cairo-status"><code class="function">cairo_status()</code></a>.</li> @@ -339,9 +342,7 @@ href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS" </p> <p> In either case, <code class="literal">path->status</code> will be set to -<a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS" -><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a> (regardless of what the error status in +<a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a> (regardless of what the error status in <em class="parameter"><code>cr</code></em> might have been).</p> <p> @@ -366,9 +367,9 @@ with it. </div> <hr> <div class="refsect2" lang="en"> -<a name="id2578296"></a><h3> +<a name="id2578241"></a><h3> <a name="cairo-copy-path-flat"></a>cairo_copy_path_flat ()</h3> -<a class="indexterm" name="id2578307"></a><pre class="programlisting"><a class="link" href="cairo-Paths.html#cairo-path-t">cairo_path_t</a>* cairo_copy_path_flat (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> +<a class="indexterm" name="id2578252"></a><pre class="programlisting"><a class="link" href="cairo-Paths.html#cairo-path-t">cairo_path_t</a>* cairo_copy_path_flat (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> <p> Gets a flattened copy of the current path and returns it to the user as a <a class="link" href="cairo-Paths.html#cairo-path-t"><span class="type">cairo_path_t</span></a>. See <a class="link" href="cairo-Paths.html#cairo-path-data-t"><span class="type">cairo_path_data_t</span></a> for hints on @@ -384,7 +385,7 @@ series of <a class="link" href="cairo-Paths.html#CAIRO-PATH-LINE-TO:CAPS"><code </p> <p> This function will always return a valid pointer, but the result -will have no data (<code class="literal">data==NULL</code> and +will have no data (<code class="literal">data==<code class="literal">NULL</code></code> and <code class="literal">num_data==0</code>), if either of the following conditions hold: </p> @@ -393,9 +394,7 @@ conditions hold: <div class="orderedlist"><ol type="1"> <li>If there is insufficient memory to copy the path. In this case <code class="literal">path->status</code> will be set to - <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS" -><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a>.</li> + <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a>.</li> <li>If <em class="parameter"><code>cr</code></em> is already in an error state. In this case <code class="literal">path->status</code> will contain the same status that would be returned by <a class="link" href="cairo-cairo-t.html#cairo-status"><code class="function">cairo_status()</code></a>.</li> @@ -423,16 +422,16 @@ with it. </div> <hr> <div class="refsect2" lang="en"> -<a name="id2578503"></a><h3> +<a name="id2578454"></a><h3> <a name="cairo-path-destroy"></a>cairo_path_destroy ()</h3> -<a class="indexterm" name="id2578515"></a><pre class="programlisting">void cairo_path_destroy (<a class="link" href="cairo-Paths.html#cairo-path-t">cairo_path_t</a> *path);</pre> +<a class="indexterm" name="id2578467"></a><pre class="programlisting">void cairo_path_destroy (<a class="link" href="cairo-Paths.html#cairo-path-t">cairo_path_t</a> *path);</pre> <p> Immediately releases all memory associated with <em class="parameter"><code>path</code></em>. After a call to <a class="link" href="cairo-Paths.html#cairo-path-destroy"><code class="function">cairo_path_destroy()</code></a> the <em class="parameter"><code>path</code></em> pointer is no longer valid and should not be used further. </p> <p> -NOTE: cairo_path_destroy function should only be called with a +Note: <a class="link" href="cairo-Paths.html#cairo-path-destroy"><code class="function">cairo_path_destroy()</code></a> should only be called with a pointer to a <a class="link" href="cairo-Paths.html#cairo-path-t"><span class="type">cairo_path_t</span></a> returned by a cairo function. Any path that is created manually (ie. outside of cairo) should be destroyed manually as well.</p> @@ -451,9 +450,9 @@ manually as well.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2578620"></a><h3> +<a name="id2578580"></a><h3> <a name="cairo-append-path"></a>cairo_append_path ()</h3> -<a class="indexterm" name="id2578633"></a><pre class="programlisting">void cairo_append_path (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2578592"></a><pre class="programlisting">void cairo_append_path (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, const <a class="link" href="cairo-Paths.html#cairo-path-t">cairo_path_t</a> *path);</pre> <p> Append the <em class="parameter"><code>path</code></em> onto the current path. The <em class="parameter"><code>path</code></em> may be either the @@ -461,9 +460,7 @@ return value from one of <a class="link" href="cairo-Paths.html#cairo-copy-path" <a class="link" href="cairo-Paths.html#cairo-copy-path-flat"><code class="function">cairo_copy_path_flat()</code></a> or it may be constructed manually. See <a class="link" href="cairo-Paths.html#cairo-path-t"><span class="type">cairo_path_t</span></a> for details on how the path data structure should be initialized, and note that <code class="literal">path->status</code> must be -initialized to <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS" -><code class="literal">CAIRO_STATUS_SUCCESS</code></a>.</p> +initialized to <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a>.</p> <p> </p> @@ -485,9 +482,9 @@ href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS" </div> <hr> <div class="refsect2" lang="en"> -<a name="id2578757"></a><h3> +<a name="id2578718"></a><h3> <a name="cairo-get-current-point"></a>cairo_get_current_point ()</h3> -<a class="indexterm" name="id2578769"></a><pre class="programlisting">void cairo_get_current_point (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2578729"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_get_current_point (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, double *x, double *y);</pre> <p> @@ -538,14 +535,23 @@ Some functions unset the current path and as a result, current point: <td> return value for Y coordinate of the current point </td> </tr> +<tr> +<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> +<td> <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> if current point was successfully +retrieved. Otherwise, if <em class="parameter"><code>cr</code></em> has been in an error status, that status +is returned, otherwise <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-NO-CURRENT-POINT:CAPS"><code class="literal">CAIRO_STATUS_NO_CURRENT_POINT</code></a> is returned if +no current point exists. In all error cases, both <em class="parameter"><code>x</code></em> and <em class="parameter"><code>y</code></em> will be +set to 0.0. +</td> +</tr> </tbody> </table></div> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2579085"></a><h3> +<a name="id2579094"></a><h3> <a name="cairo-new-path"></a>cairo_new_path ()</h3> -<a class="indexterm" name="id2579097"></a><pre class="programlisting">void cairo_new_path (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> +<a class="indexterm" name="id2579106"></a><pre class="programlisting">void cairo_new_path (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> <p> Clears the current path. After this call there will be no path and no current point.</p> @@ -563,9 +569,9 @@ no current point.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2579147"></a><h3> +<a name="id2579156"></a><h3> <a name="cairo-new-sub-path"></a>cairo_new_sub_path ()</h3> -<a class="indexterm" name="id2579162"></a><pre class="programlisting">void cairo_new_sub_path (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> +<a class="indexterm" name="id2579171"></a><pre class="programlisting">void cairo_new_sub_path (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> <p> Begin a new sub-path. Note that the existing path is not affected. After this call there will be no current point. @@ -596,9 +602,9 @@ compute the arc's initial coordinates for a call to </div> <hr> <div class="refsect2" lang="en"> -<a name="id2579268"></a><h3> +<a name="id2579277"></a><h3> <a name="cairo-close-path"></a>cairo_close_path ()</h3> -<a class="indexterm" name="id2579280"></a><pre class="programlisting">void cairo_close_path (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> +<a class="indexterm" name="id2579289"></a><pre class="programlisting">void cairo_close_path (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> <p> Adds a line segment to the path from the current point to the beginning of the current sub-path, (the most recent point passed to @@ -613,11 +619,11 @@ the ends of the sub-path. Instead, there is a line join connecting the final and initial segments of the sub-path. </p> <p> -If there is no current point before the call to cairo_close_path, +If there is no current point before the call to <a class="link" href="cairo-Paths.html#cairo-close-path"><code class="function">cairo_close_path()</code></a>, this function will have no effect. </p> <p> -Note: As of cairo version 1.2.4 any call to cairo_close_path will +Note: As of cairo version 1.2.4 any call to <a class="link" href="cairo-Paths.html#cairo-close-path"><code class="function">cairo_close_path()</code></a> will place an explicit MOVE_TO element into the path immediately after the CLOSE_PATH element, (which can be seen in <a class="link" href="cairo-Paths.html#cairo-copy-path"><code class="function">cairo_copy_path()</code></a> for example). This can simplify path processing in some cases as it may @@ -638,9 +644,9 @@ point.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2579395"></a><h3> +<a name="id2579423"></a><h3> <a name="cairo-arc"></a>cairo_arc ()</h3> -<a class="indexterm" name="id2579407"></a><pre class="programlisting">void cairo_arc (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2579435"></a><pre class="programlisting">void cairo_arc (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, double xc, double yc, double radius, @@ -732,9 +738,9 @@ cairo_restore (cr); </div> <hr> <div class="refsect2" lang="en"> -<a name="id2579728"></a><h3> +<a name="id2579755"></a><h3> <a name="cairo-arc-negative"></a>cairo_arc_negative ()</h3> -<a class="indexterm" name="id2579740"></a><pre class="programlisting">void cairo_arc_negative (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2579767"></a><pre class="programlisting">void cairo_arc_negative (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, double xc, double yc, double radius, @@ -791,9 +797,9 @@ direction of the arc between the two angles.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2579961"></a><h3> +<a name="id2579988"></a><h3> <a name="cairo-curve-to"></a>cairo_curve_to ()</h3> -<a class="indexterm" name="id2579973"></a><pre class="programlisting">void cairo_curve_to (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2580000"></a><pre class="programlisting">void cairo_curve_to (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, double x1, double y1, double x2, @@ -856,9 +862,9 @@ cairo_move_to (<em class="parameter"><code>cr</code></em>, <em class="parameter" </div> <hr> <div class="refsect2" lang="en"> -<a name="id2580238"></a><h3> +<a name="id2580265"></a><h3> <a name="cairo-line-to"></a>cairo_line_to ()</h3> -<a class="indexterm" name="id2580250"></a><pre class="programlisting">void cairo_line_to (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2580277"></a><pre class="programlisting">void cairo_line_to (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, double x, double y);</pre> <p> @@ -895,9 +901,9 @@ this function will behave as cairo_move_to (<em class="parameter"><code>cr</code </div> <hr> <div class="refsect2" lang="en"> -<a name="id2580403"></a><h3> +<a name="id2580430"></a><h3> <a name="cairo-move-to"></a>cairo_move_to ()</h3> -<a class="indexterm" name="id2580415"></a><pre class="programlisting">void cairo_move_to (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2580442"></a><pre class="programlisting">void cairo_move_to (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, double x, double y);</pre> <p> @@ -929,9 +935,9 @@ Begin a new sub-path. After this call the current point will be (<em class="para </div> <hr> <div class="refsect2" lang="en"> -<a name="id2580522"></a><h3> +<a name="id2580549"></a><h3> <a name="cairo-rectangle"></a>cairo_rectangle ()</h3> -<a class="indexterm" name="id2580534"></a><pre class="programlisting">void cairo_rectangle (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2580561"></a><pre class="programlisting">void cairo_rectangle (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, double x, double y, double width, @@ -986,9 +992,9 @@ cairo_close_path (cr); </div> <hr> <div class="refsect2" lang="en"> -<a name="id2580696"></a><h3> +<a name="id2580723"></a><h3> <a name="cairo-glyph-path"></a>cairo_glyph_path ()</h3> -<a class="indexterm" name="id2580708"></a><pre class="programlisting">void cairo_glyph_path (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2580735"></a><pre class="programlisting">void cairo_glyph_path (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, const <a class="link" href="cairo-Text.html#cairo-glyph-t">cairo_glyph_t</a> *glyphs, int num_glyphs);</pre> <p> @@ -1021,9 +1027,9 @@ path if filled, achieves an effect similar to that of </div> <hr> <div class="refsect2" lang="en"> -<a name="id2580812"></a><h3> +<a name="id2580839"></a><h3> <a name="cairo-text-path"></a>cairo_text_path ()</h3> -<a class="indexterm" name="id2580825"></a><pre class="programlisting">void cairo_text_path (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2580852"></a><pre class="programlisting">void cairo_text_path (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, const char *utf8);</pre> <p> Adds closed paths for text to the current path. The generated @@ -1042,7 +1048,7 @@ This allows for chaining multiple calls to to <a class="link" href="cairo-Paths. without having to set current point in between. </p> <p> -NOTE: The <a class="link" href="cairo-Paths.html#cairo-text-path"><code class="function">cairo_text_path()</code></a> function call is part of what the cairo +Note: The <a class="link" href="cairo-Paths.html#cairo-text-path"><code class="function">cairo_text_path()</code></a> function call is part of what the cairo designers call the "toy" text API. It is convenient for short demos and simple programs, but it is not expected to be adequate for serious text-using applications. See <a class="link" href="cairo-Paths.html#cairo-glyph-path"><code class="function">cairo_glyph_path()</code></a> for the @@ -1068,9 +1074,9 @@ serious text-using applications. See <a class="link" href="cairo-Paths.html#cair </div> <hr> <div class="refsect2" lang="en"> -<a name="id2580977"></a><h3> +<a name="id2581004"></a><h3> <a name="cairo-rel-curve-to"></a>cairo_rel_curve_to ()</h3> -<a class="indexterm" name="id2580989"></a><pre class="programlisting">void cairo_rel_curve_to (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2581016"></a><pre class="programlisting">void cairo_rel_curve_to (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, double dx1, double dy1, double dx2, @@ -1141,9 +1147,9 @@ CAIRO_STATUS_NO_CURRENT_POINT.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2581332"></a><h3> +<a name="id2581359"></a><h3> <a name="cairo-rel-line-to"></a>cairo_rel_line_to ()</h3> -<a class="indexterm" name="id2581344"></a><pre class="programlisting">void cairo_rel_line_to (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2581371"></a><pre class="programlisting">void cairo_rel_line_to (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, double dx, double dy);</pre> <p> @@ -1186,9 +1192,9 @@ CAIRO_STATUS_NO_CURRENT_POINT.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2581527"></a><h3> +<a name="id2581554"></a><h3> <a name="cairo-rel-move-to"></a>cairo_rel_move_to ()</h3> -<a class="indexterm" name="id2581539"></a><pre class="programlisting">void cairo_rel_move_to (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2581566"></a><pre class="programlisting">void cairo_rel_move_to (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, double dx, double dy);</pre> <p> @@ -1227,11 +1233,80 @@ CAIRO_STATUS_NO_CURRENT_POINT.</p> </tbody> </table></div> </div> +<hr> +<div class="refsect2" lang="en"> +<a name="id2581725"></a><h3> +<a name="cairo-path-extents"></a>cairo_path_extents ()</h3> +<a class="indexterm" name="id2581739"></a><pre class="programlisting">void cairo_path_extents (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, + double *x1, + double *y1, + double *x2, + double *y2);</pre> +<p> +Computes a bounding box in user-space coordinates covering the +points on the current path. If the current path is empty, returns +an empty rectangle ((0,0), (0,0)). Stroke parameters, fill rule, +surface dimensions and clipping are not taken into account. +</p> +<p> +Contrast with <a class="link" href="cairo-cairo-t.html#cairo-fill-extents"><code class="function">cairo_fill_extents()</code></a> and <a class="link" href="cairo-cairo-t.html#cairo-stroke-extents"><code class="function">cairo_stroke_extents()</code></a> which +return the extents of only the area that would be "inked" by +the corresponding drawing operations. +</p> +<p> +The result of <a class="link" href="cairo-Paths.html#cairo-path-extents"><code class="function">cairo_path_extents()</code></a> is defined as equivalent to the +limit of <a class="link" href="cairo-cairo-t.html#cairo-stroke-extents"><code class="function">cairo_stroke_extents()</code></a> with <a class="link" href="cairo-cairo-t.html#CAIRO-LINE-CAP-ROUND:CAPS"><code class="literal">CAIRO_LINE_CAP_ROUND</code></a> as the +line width approaches 0.0, (but never reaching the empty-rectangle +returned by <a class="link" href="cairo-cairo-t.html#cairo-stroke-extents"><code class="function">cairo_stroke_extents()</code></a> for a line width of 0.0). +</p> +<p> +Specifically, this means that zero-area sub-paths such as +<a class="link" href="cairo-Paths.html#cairo-move-to"><code class="function">cairo_move_to()</code></a>;<a class="link" href="cairo-Paths.html#cairo-line-to"><code class="function">cairo_line_to()</code></a> segments, (even degenerate cases +where the coordinates to both calls are identical), will be +considered as contributing to the extents. However, a lone +<a class="link" href="cairo-Paths.html#cairo-move-to"><code class="function">cairo_move_to()</code></a> will not contribute to the results of +<a class="link" href="cairo-Paths.html#cairo-path-extents"><code class="function">cairo_path_extents()</code></a>.</p> +<p> + +</p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><em class="parameter"><code>cr</code></em> :</span></p></td> +<td> a cairo context +</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>x1</code></em> :</span></p></td> +<td> left of the resulting extents +</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>y1</code></em> :</span></p></td> +<td> top of the resulting extents +</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>x2</code></em> :</span></p></td> +<td> right of the resulting extents +</td> +</tr> +<tr> +<td><p><span class="term"><em class="parameter"><code>y2</code></em> :</span></p></td> +<td> bottom of the resulting extents +</td> +</tr> +</tbody> +</table></div> +<p class="since">Since 1.6 +</p> +</div> </div> <div class="refsect1" lang="en"> -<a name="id2581699"></a><div class="refsect2" lang="en"><a name="id2581700"></a></div> +<a name="id2581996"></a><div class="refsect2" lang="en"><a name="id2581997"></a></div> <hr> -<div class="refsect2" lang="en"><a name="id2581701"></a></div> +<div class="refsect2" lang="en"><a name="id2581998"></a></div> </div> </div> </body> diff --git a/doc/public/html/cairo-Patterns.html b/doc/public/html/cairo-Patterns.html index 84b8463..5797bcc 100644 --- a/doc/public/html/cairo-Patterns.html +++ b/doc/public/html/cairo-Patterns.html @@ -2,7 +2,7 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> -<title>Patterns</title> +<title>cairo_pattern_t</title> <meta name="generator" content="DocBook XSL Stylesheets V1.73.2"> <link rel="start" href="index.html" title="Cairo: A Vector Graphics Library"> <link rel="up" href="Drawing.html" title="Drawing"> @@ -10,8 +10,6 @@ <link rel="next" href="cairo-Transformations.html" title="Transformations"> <meta name="generator" content="GTK-Doc V1.9 (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"> @@ -19,6 +17,7 @@ <link rel="index" href="ix01.html" title="Index"> <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2"> <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6"> <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"> @@ -30,18 +29,18 @@ <th width="100%" align="center">Cairo: A Vector Graphics Library</th> <td><a accesskey="n" href="cairo-Transformations.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="#id2618648" class="shortcut">Top</a> +<tr><td colspan="5" class="shortcuts"><nobr><a href="#id2614251" class="shortcut">Top</a>  |  - <a href="#id2640624" class="shortcut">Description</a></nobr></td></tr> + <a href="#id2642036" class="shortcut">Description</a></nobr></td></tr> </table> <div class="refentry" lang="en"> <a name="cairo-Patterns"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> <td valign="top"> <h2> -<a name="id2618648"></a><span class="refentrytitle">Patterns</span> +<a name="id2614251"></a><span class="refentrytitle">cairo_pattern_t</span> </h2> -<p>Patterns — Gradients and filtered sources</p> +<p>cairo_pattern_t — Sources for drawing</p> </td> <td valign="top" align="right"></td> </tr></table></div> @@ -136,17 +135,25 @@ void* <a class="link" href="cairo-Patterns.html#cairo-pattern-get- </pre> </div> <div class="refsect1" lang="en"> -<a name="id2640624"></a><h2>Description</h2> +<a name="id2642036"></a><h2>Description</h2> <p> - +<a class="link" href="cairo-Patterns.html#cairo-pattern-t"><span class="type">cairo_pattern_t</span></a> is the paint with which cairo draws. +The primary use of patterns is as the source for all cairo drawing operations, +although they can also be used as masks, that is, as the brush too. +</p> +<p> +A cairo pattern is created by using one of the many constructors, +of the form cairo_pattern_create_<span class="emphasis"><em>type</em></span>() +or implicitly through +cairo_set_source_<span class="emphasis"><em>type</em></span>() functions. </p> </div> <div class="refsect1" lang="en"> -<a name="id2640636"></a><h2>Details</h2> +<a name="id2642071"></a><h2>Details</h2> <div class="refsect2" lang="en"> -<a name="id2640646"></a><h3> +<a name="id2642080"></a><h3> <a name="cairo-pattern-t"></a>cairo_pattern_t</h3> -<a class="indexterm" name="id2640656"></a><pre class="programlisting">typedef struct _cairo_pattern cairo_pattern_t; +<a class="indexterm" name="id2642090"></a><pre class="programlisting">typedef struct _cairo_pattern cairo_pattern_t; </pre> <p> A <a class="link" href="cairo-Patterns.html#cairo-pattern-t"><span class="type">cairo_pattern_t</span></a> represents a source when drawing onto a @@ -156,9 +163,9 @@ for different types of sources; for example, opaque color. </p> <p> -Other than various cairo_pattern_create_<span class="emphasis"><em>type</em></span> +Other than various cairo_pattern_create_<span class="emphasis"><em>type</em></span>() functions, some of the pattern types can be implicitly created -using vairous cairo_set_source_<span class="emphasis"><em>type</em></span> functions; +using various cairo_set_source_<span class="emphasis"><em>type</em></span>() functions; for example <a class="link" href="cairo-cairo-t.html#cairo-set-source-rgb"><code class="function">cairo_set_source_rgb()</code></a>. </p> <p> @@ -173,9 +180,9 @@ Memory management of <a class="link" href="cairo-Patterns.html#cairo-pattern-t"> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2640756"></a><h3> +<a name="id2642190"></a><h3> <a name="cairo-pattern-add-color-stop-rgb"></a>cairo_pattern_add_color_stop_rgb ()</h3> -<a class="indexterm" name="id2640769"></a><pre class="programlisting">void cairo_pattern_add_color_stop_rgb (<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern, +<a class="indexterm" name="id2642203"></a><pre class="programlisting">void cairo_pattern_add_color_stop_rgb (<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern, double offset, double red, double green, @@ -200,9 +207,7 @@ transitions instead of the typical blend. <p> Note: If the pattern is not a gradient pattern, (eg. a linear or radial pattern), then the pattern will be put into an error status -with a status of <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS" -><code class="literal">CAIRO_STATUS_PATTERN_TYPE_MISMATCH</code></a>.</p> +with a status of <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS"><code class="literal">CAIRO_STATUS_PATTERN_TYPE_MISMATCH</code></a>.</p> <p> </p> @@ -239,9 +244,9 @@ href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS </div> <hr> <div class="refsect2" lang="en"> -<a name="id2640954"></a><h3> +<a name="id2642389"></a><h3> <a name="cairo-pattern-add-color-stop-rgba"></a>cairo_pattern_add_color_stop_rgba ()</h3> -<a class="indexterm" name="id2640968"></a><pre class="programlisting">void cairo_pattern_add_color_stop_rgba (<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern, +<a class="indexterm" name="id2642403"></a><pre class="programlisting">void cairo_pattern_add_color_stop_rgba (<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern, double offset, double red, double green, @@ -267,9 +272,7 @@ transitions instead of the typical blend. <p> Note: If the pattern is not a gradient pattern, (eg. a linear or radial pattern), then the pattern will be put into an error status -with a status of <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS" -><code class="literal">CAIRO_STATUS_PATTERN_TYPE_MISMATCH</code></a>.</p> +with a status of <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS"><code class="literal">CAIRO_STATUS_PATTERN_TYPE_MISMATCH</code></a>.</p> <p> </p> @@ -311,9 +314,9 @@ href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS </div> <hr> <div class="refsect2" lang="en"> -<a name="id2641174"></a><h3> +<a name="id2642609"></a><h3> <a name="cairo-pattern-get-color-stop-count"></a>cairo_pattern_get_color_stop_count ()</h3> -<a class="indexterm" name="id2641191"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_pattern_get_color_stop_count (<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern, +<a class="indexterm" name="id2642625"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_pattern_get_color_stop_count (<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern, int *count);</pre> <p> Gets the number of color stops specified in the given gradient @@ -336,12 +339,8 @@ pattern.</p> </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> -<td> <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS" -><code class="literal">CAIRO_STATUS_SUCCESS</code></a>, or -<a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS" -><code class="literal">CAIRO_STATUS_PATTERN_TYPE_MISMATCH</code></a> if <em class="parameter"><code>pattern</code></em> is not a gradient +<td> <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a>, or +<a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS"><code class="literal">CAIRO_STATUS_PATTERN_TYPE_MISMATCH</code></a> if <em class="parameter"><code>pattern</code></em> is not a gradient pattern. </td> @@ -353,9 +352,9 @@ pattern. </div> <hr> <div class="refsect2" lang="en"> -<a name="id2641323"></a><h3> +<a name="id2642758"></a><h3> <a name="cairo-pattern-get-color-stop-rgba"></a>cairo_pattern_get_color_stop_rgba ()</h3> -<a class="indexterm" name="id2641340"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_pattern_get_color_stop_rgba (<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern, +<a class="indexterm" name="id2642774"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_pattern_get_color_stop_rgba (<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern, int index, double *offset, double *red, @@ -409,15 +408,9 @@ returned by <a class="link" href="cairo-Patterns.html#cairo-pattern-get-color-st </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> -<td> <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS" -><code class="literal">CAIRO_STATUS_SUCCESS</code></a>, or <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-INVALID-INDEX:CAPS" -><code class="literal">CAIRO_STATUS_INVALID_INDEX</code></a> +<td> <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a>, or <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-INVALID-INDEX:CAPS"><code class="literal">CAIRO_STATUS_INVALID_INDEX</code></a> if <em class="parameter"><code>index</code></em> is not valid for the given pattern. If the pattern is -not a gradient pattern, <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS" -><code class="literal">CAIRO_STATUS_PATTERN_TYPE_MISMATCH</code></a> is +not a gradient pattern, <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS"><code class="literal">CAIRO_STATUS_PATTERN_TYPE_MISMATCH</code></a> is returned. </td> @@ -429,13 +422,13 @@ returned. </div> <hr> <div class="refsect2" lang="en"> -<a name="id2641606"></a><h3> +<a name="id2643086"></a><h3> <a name="cairo-pattern-create-rgb"></a>cairo_pattern_create_rgb ()</h3> -<a class="indexterm" name="id2641617"></a><pre class="programlisting"><a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a>* cairo_pattern_create_rgb (double red, +<a class="indexterm" name="id2643098"></a><pre class="programlisting"><a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a>* cairo_pattern_create_rgb (double red, double green, double blue);</pre> <p> -Creates a new cairo_pattern_t corresponding to an opaque color. The +Creates a new <a class="link" href="cairo-Patterns.html#cairo-pattern-t"><span class="type">cairo_pattern_t</span></a> corresponding to an opaque color. The color components are floating point numbers in the range 0 to 1. If the values passed in are outside that range, they will be clamped.</p> @@ -477,14 +470,14 @@ the status of a pattern use <a class="link" href="cairo-Patterns.html#cairo-patt </div> <hr> <div class="refsect2" lang="en"> -<a name="id2641742"></a><h3> +<a name="id2643241"></a><h3> <a name="cairo-pattern-create-rgba"></a>cairo_pattern_create_rgba ()</h3> -<a class="indexterm" name="id2641753"></a><pre class="programlisting"><a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a>* cairo_pattern_create_rgba (double red, +<a class="indexterm" name="id2643253"></a><pre class="programlisting"><a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a>* cairo_pattern_create_rgba (double red, double green, double blue, double alpha);</pre> <p> -Creates a new cairo_pattern_t corresponding to a translucent color. +Creates a new <a class="link" href="cairo-Patterns.html#cairo-pattern-t"><span class="type">cairo_pattern_t</span></a> corresponding to a translucent color. The color components are floating point numbers in the range 0 to 1. If the values passed in are outside that range, they will be clamped.</p> @@ -531,9 +524,9 @@ the status of a pattern use <a class="link" href="cairo-Patterns.html#cairo-patt </div> <hr> <div class="refsect2" lang="en"> -<a name="id2641898"></a><h3> +<a name="id2643419"></a><h3> <a name="cairo-pattern-get-rgba"></a>cairo_pattern_get_rgba ()</h3> -<a class="indexterm" name="id2641910"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_pattern_get_rgba (<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern, +<a class="indexterm" name="id2643432"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_pattern_get_rgba (<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern, double *red, double *green, double *blue, @@ -573,12 +566,8 @@ Gets the solid color for a solid color pattern.</p> </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> -<td> <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS" -><code class="literal">CAIRO_STATUS_SUCCESS</code></a>, or -<a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS" -><code class="literal">CAIRO_STATUS_PATTERN_TYPE_MISMATCH</code></a> if the pattern is not a solid +<td> <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a>, or +<a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS"><code class="literal">CAIRO_STATUS_PATTERN_TYPE_MISMATCH</code></a> if the pattern is not a solid color pattern. </td> @@ -590,11 +579,11 @@ color pattern. </div> <hr> <div class="refsect2" lang="en"> -<a name="id2642109"></a><h3> +<a name="id2643633"></a><h3> <a name="cairo-pattern-create-for-surface"></a>cairo_pattern_create_for_surface ()</h3> -<a class="indexterm" name="id2642121"></a><pre class="programlisting"><a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a>* cairo_pattern_create_for_surface (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> +<a class="indexterm" name="id2643646"></a><pre class="programlisting"><a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a>* cairo_pattern_create_for_surface (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> <p> -Create a new cairo_pattern_t for the given surface.</p> +Create a new <a class="link" href="cairo-Patterns.html#cairo-pattern-t"><span class="type">cairo_pattern_t</span></a> for the given surface.</p> <p> </p> @@ -623,9 +612,9 @@ the status of a pattern use <a class="link" href="cairo-Patterns.html#cairo-patt </div> <hr> <div class="refsect2" lang="en"> -<a name="id2642204"></a><h3> +<a name="id2643734"></a><h3> <a name="cairo-pattern-get-surface"></a>cairo_pattern_get_surface ()</h3> -<a class="indexterm" name="id2642218"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_pattern_get_surface (<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern, +<a class="indexterm" name="id2643747"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_pattern_get_surface (<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern, <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> **surface);</pre> <p> Gets the surface of a surface pattern. The reference returned in @@ -649,12 +638,8 @@ Gets the surface of a surface pattern. The reference returned in </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> -<td> <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS" -><code class="literal">CAIRO_STATUS_SUCCESS</code></a>, or -<a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS" -><code class="literal">CAIRO_STATUS_PATTERN_TYPE_MISMATCH</code></a> if the pattern is not a surface +<td> <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a>, or +<a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS"><code class="literal">CAIRO_STATUS_PATTERN_TYPE_MISMATCH</code></a> if the pattern is not a surface pattern. </td> @@ -666,14 +651,14 @@ pattern. </div> <hr> <div class="refsect2" lang="en"> -<a name="id2642347"></a><h3> +<a name="id2643876"></a><h3> <a name="cairo-pattern-create-linear"></a>cairo_pattern_create_linear ()</h3> -<a class="indexterm" name="id2642358"></a><pre class="programlisting"><a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a>* cairo_pattern_create_linear (double x0, +<a class="indexterm" name="id2643887"></a><pre class="programlisting"><a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a>* cairo_pattern_create_linear (double x0, double y0, double x1, double y1);</pre> <p> -Create a new linear gradient cairo_pattern_t along the line defined +Create a new linear gradient <a class="link" href="cairo-Patterns.html#cairo-pattern-t"><span class="type">cairo_pattern_t</span></a> along the line defined by (x0, y0) and (x1, y1). Before using the gradient pattern, a number of color stops should be defined using <a class="link" href="cairo-Patterns.html#cairo-pattern-add-color-stop-rgb"><code class="function">cairo_pattern_add_color_stop_rgb()</code></a> or @@ -726,9 +711,9 @@ the status of a pattern use <a class="link" href="cairo-Patterns.html#cairo-patt </div> <hr> <div class="refsect2" lang="en"> -<a name="id2642536"></a><h3> +<a name="id2644071"></a><h3> <a name="cairo-pattern-get-linear-points"></a>cairo_pattern_get_linear_points ()</h3> -<a class="indexterm" name="id2642550"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_pattern_get_linear_points (<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern, +<a class="indexterm" name="id2644086"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_pattern_get_linear_points (<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern, double *x0, double *y0, double *x1, @@ -768,12 +753,8 @@ Gets the gradient endpoints for a linear gradient.</p> </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> -<td> <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS" -><code class="literal">CAIRO_STATUS_SUCCESS</code></a>, or -<a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS" -><code class="literal">CAIRO_STATUS_PATTERN_TYPE_MISMATCH</code></a> if <em class="parameter"><code>pattern</code></em> is not a linear +<td> <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a>, or +<a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS"><code class="literal">CAIRO_STATUS_PATTERN_TYPE_MISMATCH</code></a> if <em class="parameter"><code>pattern</code></em> is not a linear gradient pattern. </td> @@ -785,16 +766,16 @@ gradient pattern. </div> <hr> <div class="refsect2" lang="en"> -<a name="id2642755"></a><h3> +<a name="id2644291"></a><h3> <a name="cairo-pattern-create-radial"></a>cairo_pattern_create_radial ()</h3> -<a class="indexterm" name="id2642766"></a><pre class="programlisting"><a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a>* cairo_pattern_create_radial (double cx0, +<a class="indexterm" name="id2644302"></a><pre class="programlisting"><a class="link" 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> <p> -Creates a new radial gradient cairo_pattern_t between the two +Creates a new radial gradient <a class="link" href="cairo-Patterns.html#cairo-pattern-t"><span class="type">cairo_pattern_t</span></a> between the two circles defined by (cx0, cy0, radius0) and (cx1, cy1, radius1). Before using the gradient pattern, a number of color stops should be defined using <a class="link" href="cairo-Patterns.html#cairo-pattern-add-color-stop-rgb"><code class="function">cairo_pattern_add_color_stop_rgb()</code></a> or @@ -857,9 +838,9 @@ the status of a pattern use <a class="link" href="cairo-Patterns.html#cairo-patt </div> <hr> <div class="refsect2" lang="en"> -<a name="id2642984"></a><h3> +<a name="id2644526"></a><h3> <a name="cairo-pattern-get-radial-circles"></a>cairo_pattern_get_radial_circles ()</h3> -<a class="indexterm" name="id2642999"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_pattern_get_radial_circles (<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern, +<a class="indexterm" name="id2644541"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_pattern_get_radial_circles (<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern, double *x0, double *y0, double *r0, @@ -912,12 +893,8 @@ specified as a center coordinate and a radius.</p> </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> -<td> <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS" -><code class="literal">CAIRO_STATUS_SUCCESS</code></a>, or -<a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS" -><code class="literal">CAIRO_STATUS_PATTERN_TYPE_MISMATCH</code></a> if <em class="parameter"><code>pattern</code></em> is not a radial +<td> <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a>, or +<a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS"><code class="literal">CAIRO_STATUS_PATTERN_TYPE_MISMATCH</code></a> if <em class="parameter"><code>pattern</code></em> is not a radial gradient pattern. </td> @@ -929,9 +906,9 @@ gradient pattern. </div> <hr> <div class="refsect2" lang="en"> -<a name="id2643263"></a><h3> +<a name="id2644805"></a><h3> <a name="cairo-pattern-reference"></a>cairo_pattern_reference ()</h3> -<a class="indexterm" name="id2643273"></a><pre class="programlisting"><a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a>* cairo_pattern_reference (<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern);</pre> +<a class="indexterm" name="id2644815"></a><pre class="programlisting"><a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a>* cairo_pattern_reference (<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern);</pre> <p> Increases the reference count on <em class="parameter"><code>pattern</code></em> by one. This prevents <em class="parameter"><code>pattern</code></em> from being destroyed until a matching call to @@ -961,9 +938,9 @@ The number of references to a <a class="link" href="cairo-Patterns.html#cairo-pa </div> <hr> <div class="refsect2" lang="en"> -<a name="id2643379"></a><h3> +<a name="id2644921"></a><h3> <a name="cairo-pattern-destroy"></a>cairo_pattern_destroy ()</h3> -<a class="indexterm" name="id2643389"></a><pre class="programlisting">void cairo_pattern_destroy (<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern);</pre> +<a class="indexterm" name="id2644931"></a><pre class="programlisting">void cairo_pattern_destroy (<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern);</pre> <p> Decreases the reference count on <em class="parameter"><code>pattern</code></em> by one. If the result is zero, then <em class="parameter"><code>pattern</code></em> and all associated resources are freed. See @@ -982,9 +959,9 @@ zero, then <em class="parameter"><code>pattern</code></em> and all associated re </div> <hr> <div class="refsect2" lang="en"> -<a name="id2643461"></a><h3> +<a name="id2645003"></a><h3> <a name="cairo-pattern-status"></a>cairo_pattern_status ()</h3> -<a class="indexterm" name="id2643471"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_pattern_status (<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern);</pre> +<a class="indexterm" name="id2645013"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_pattern_status (<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern);</pre> <p> Checks whether an error has previously occurred for this pattern.</p> @@ -1001,14 +978,8 @@ pattern.</p> </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> -<td> <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS" -><code class="literal">CAIRO_STATUS_SUCCESS</code></a>, <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS" -><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a>, or -<a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS" -><code class="literal">CAIRO_STATUS_PATTERN_TYPE_MISMATCH</code></a>. +<td> <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a>, <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a>, or +<a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS"><code class="literal">CAIRO_STATUS_PATTERN_TYPE_MISMATCH</code></a>. </td> </tr> </tbody> @@ -1016,9 +987,9 @@ href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS </div> <hr> <div class="refsect2" lang="en"> -<a name="id2643558"></a><h3> +<a name="id2645100"></a><h3> <a name="cairo-extend-t"></a>enum cairo_extend_t</h3> -<a class="indexterm" name="id2643569"></a><pre class="programlisting">typedef enum _cairo_extend { +<a class="indexterm" name="id2645111"></a><pre class="programlisting">typedef enum _cairo_extend { CAIRO_EXTEND_NONE, CAIRO_EXTEND_REPEAT, CAIRO_EXTEND_REFLECT, @@ -1066,9 +1037,9 @@ New entries may be added in future versions.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2643685"></a><h3> +<a name="id2645227"></a><h3> <a name="cairo-pattern-set-extend"></a>cairo_pattern_set_extend ()</h3> -<a class="indexterm" name="id2643696"></a><pre class="programlisting">void cairo_pattern_set_extend (<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern, +<a class="indexterm" name="id2645238"></a><pre class="programlisting">void cairo_pattern_set_extend (<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern, <a class="link" href="cairo-Patterns.html#cairo-extend-t">cairo_extend_t</a> extend);</pre> <p> Sets the mode to be used for drawing outside the area of a pattern. @@ -1096,9 +1067,9 @@ pattern will be drawn </div> <hr> <div class="refsect2" lang="en"> -<a name="id2643781"></a><h3> +<a name="id2645323"></a><h3> <a name="cairo-pattern-get-extend"></a>cairo_pattern_get_extend ()</h3> -<a class="indexterm" name="id2643792"></a><pre class="programlisting"><a class="link" href="cairo-Patterns.html#cairo-extend-t">cairo_extend_t</a> cairo_pattern_get_extend (<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern);</pre> +<a class="indexterm" name="id2645334"></a><pre class="programlisting"><a class="link" href="cairo-Patterns.html#cairo-extend-t">cairo_extend_t</a> cairo_pattern_get_extend (<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern);</pre> <p> Gets the current extend mode for a pattern. See <a class="link" href="cairo-Patterns.html#cairo-extend-t"><span class="type">cairo_extend_t</span></a> for details on the semantics of each extend strategy.</p> @@ -1124,9 +1095,9 @@ pattern. </div> <hr> <div class="refsect2" lang="en"> -<a name="id2643860"></a><h3> +<a name="id2645402"></a><h3> <a name="cairo-filter-t"></a>enum cairo_filter_t</h3> -<a class="indexterm" name="id2643871"></a><pre class="programlisting">typedef enum _cairo_filter { +<a class="indexterm" name="id2645413"></a><pre class="programlisting">typedef enum _cairo_filter { CAIRO_FILTER_FAST, CAIRO_FILTER_GOOD, CAIRO_FILTER_BEST, @@ -1136,18 +1107,76 @@ pattern. } cairo_filter_t; </pre> <p> +<a class="link" href="cairo-Patterns.html#cairo-filter-t"><span class="type">cairo_filter_t</span></a> is used to indicate what filtering should be +applied when reading pixel values from patterns. See +<code class="function">cairo_pattern_set_source()</code> for indicating the desired filter to be +used with a particular pattern.</p> +<p> </p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><a name="CAIRO-FILTER-FAST:CAPS"></a><code class="literal">CAIRO_FILTER_FAST</code></span></p></td> +<td> A high-performance filter, with quality similar + to <a class="link" href="cairo-Patterns.html#CAIRO-FILTER-NEAREST:CAPS"><code class="literal">CAIRO_FILTER_NEAREST</code></a> +</td> +</tr> +<tr> +<td><p><span class="term"><a name="CAIRO-FILTER-GOOD:CAPS"></a><code class="literal">CAIRO_FILTER_GOOD</code></span></p></td> +<td> A reasonable-performance filter, with quality + similar to <a class="link" href="cairo-Patterns.html#CAIRO-FILTER-BILINEAR:CAPS"><code class="literal">CAIRO_FILTER_BILINEAR</code></a> +</td> +</tr> +<tr> +<td><p><span class="term"><a name="CAIRO-FILTER-BEST:CAPS"></a><code class="literal">CAIRO_FILTER_BEST</code></span></p></td> +<td> The highest-quality available, performance may + not be suitable for interactive use. +</td> +</tr> +<tr> +<td><p><span class="term"><a name="CAIRO-FILTER-NEAREST:CAPS"></a><code class="literal">CAIRO_FILTER_NEAREST</code></span></p></td> +<td> Nearest-neighbor filtering +</td> +</tr> +<tr> +<td><p><span class="term"><a name="CAIRO-FILTER-BILINEAR:CAPS"></a><code class="literal">CAIRO_FILTER_BILINEAR</code></span></p></td> +<td> Linear interpolation in two dimensions +</td> +</tr> +<tr> +<td><p><span class="term"><a name="CAIRO-FILTER-GAUSSIAN:CAPS"></a><code class="literal">CAIRO_FILTER_GAUSSIAN</code></span></p></td> +<td> This filter value is currently + unimplemented, and should not be used in current code. +</td> +</tr> +</tbody> +</table></div> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2643888"></a><h3> +<a name="id2645591"></a><h3> <a name="cairo-pattern-set-filter"></a>cairo_pattern_set_filter ()</h3> -<a class="indexterm" name="id2643898"></a><pre class="programlisting">void cairo_pattern_set_filter (<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern, +<a class="indexterm" name="id2645601"></a><pre class="programlisting">void cairo_pattern_set_filter (<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern, <a class="link" href="cairo-Patterns.html#cairo-filter-t">cairo_filter_t</a> filter);</pre> <p> Sets the filter to be used for resizing when using this pattern. -See <a class="link" href="cairo-Patterns.html#cairo-filter-t"><span class="type">cairo_filter_t</span></a> for details on each filter.</p> +See <a class="link" href="cairo-Patterns.html#cairo-filter-t"><span class="type">cairo_filter_t</span></a> for details on each filter. +</p> +<p> +* Note that you might want to control filtering even when you do not +have an explicit <a class="link" href="cairo-Patterns.html#cairo-pattern-t"><span class="type">cairo_pattern_t</span></a> object, (for example when using +<a class="link" href="cairo-cairo-t.html#cairo-set-source-surface"><code class="function">cairo_set_source_surface()</code></a>). In these cases, it is convenient to +use <a class="link" href="cairo-cairo-t.html#cairo-get-source"><code class="function">cairo_get_source()</code></a> to get access to the pattern that cairo +creates implicitly. For example: +</p> +<p> +</p> +<div class="informalexample"><pre class="programlisting"> +cairo_set_source_surface (cr, image, x, y); +cairo_pattern_set_filter (cairo_get_source (cr), %CAIRO_FILTER_NEAREST); +</pre></div> <p> </p> @@ -1170,9 +1199,9 @@ the pattern </div> <hr> <div class="refsect2" lang="en"> -<a name="id2643983"></a><h3> +<a name="id2645727"></a><h3> <a name="cairo-pattern-get-filter"></a>cairo_pattern_get_filter ()</h3> -<a class="indexterm" name="id2643994"></a><pre class="programlisting"><a class="link" href="cairo-Patterns.html#cairo-filter-t">cairo_filter_t</a> cairo_pattern_get_filter (<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern);</pre> +<a class="indexterm" name="id2645738"></a><pre class="programlisting"><a class="link" href="cairo-Patterns.html#cairo-filter-t">cairo_filter_t</a> cairo_pattern_get_filter (<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern);</pre> <p> Gets the current filter for a pattern. See <a class="link" href="cairo-Patterns.html#cairo-filter-t"><span class="type">cairo_filter_t</span></a> for details on each filter.</p> @@ -1197,9 +1226,9 @@ for details on each filter.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2644068"></a><h3> +<a name="id2645806"></a><h3> <a name="cairo-pattern-set-matrix"></a>cairo_pattern_set_matrix ()</h3> -<a class="indexterm" name="id2644082"></a><pre class="programlisting">void cairo_pattern_set_matrix (<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern, +<a class="indexterm" name="id2645817"></a><pre class="programlisting">void cairo_pattern_set_matrix (<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern, const <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);</pre> <p> Sets the pattern's transformation matrix to <em class="parameter"><code>matrix</code></em>. This matrix is @@ -1257,9 +1286,9 @@ semantics of <a class="link" href="cairo-cairo-t.html#cairo-set-source"><code cl </div> <hr> <div class="refsect2" lang="en"> -<a name="id2644229"></a><h3> +<a name="id2645949"></a><h3> <a name="cairo-pattern-get-matrix"></a>cairo_pattern_get_matrix ()</h3> -<a class="indexterm" name="id2644243"></a><pre class="programlisting">void cairo_pattern_get_matrix (<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern, +<a class="indexterm" name="id2645959"></a><pre class="programlisting">void cairo_pattern_get_matrix (<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern, <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);</pre> <p> Stores the pattern's transformation matrix into <em class="parameter"><code>matrix</code></em>.</p> @@ -1284,9 +1313,9 @@ Stores the pattern's transformation matrix into <em class="parameter"><code>matr </div> <hr> <div class="refsect2" lang="en"> -<a name="id2644329"></a><h3> +<a name="id2646041"></a><h3> <a name="cairo-pattern-type-t"></a>enum cairo_pattern_type_t</h3> -<a class="indexterm" name="id2644345"></a><pre class="programlisting">typedef enum _cairo_pattern_type { +<a class="indexterm" name="id2646057"></a><pre class="programlisting">typedef enum _cairo_pattern_type { CAIRO_PATTERN_TYPE_SOLID, CAIRO_PATTERN_TYPE_SURFACE, CAIRO_PATTERN_TYPE_LINEAR, @@ -1307,7 +1336,7 @@ ways. The pattern type can be queried with <a class="link" href="cairo-Patterns.html#cairo-pattern-get-type"><code class="function">cairo_pattern_get_type()</code></a> </p> <p> -Most cairo_pattern functions can be called with a pattern of any +Most <a class="link" href="cairo-Patterns.html#cairo-pattern-t"><span class="type">cairo_pattern_t</span></a> functions can be called with a pattern of any type, (though trying to change the extend or filter for a solid pattern will have no effect). A notable exception is <a class="link" href="cairo-Patterns.html#cairo-pattern-add-color-stop-rgb"><code class="function">cairo_pattern_add_color_stop_rgb()</code></a> and @@ -1351,9 +1380,9 @@ color. It may be opaque or translucent. </div> <hr> <div class="refsect2" lang="en"> -<a name="id2644557"></a><h3> +<a name="id2646276"></a><h3> <a name="cairo-pattern-get-type"></a>cairo_pattern_get_type ()</h3> -<a class="indexterm" name="id2644573"></a><pre class="programlisting"><a class="link" href="cairo-Patterns.html#cairo-pattern-type-t">cairo_pattern_type_t</a> cairo_pattern_get_type (<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern);</pre> +<a class="indexterm" name="id2646292"></a><pre class="programlisting"><a class="link" href="cairo-Patterns.html#cairo-pattern-type-t">cairo_pattern_type_t</a> cairo_pattern_get_type (<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern);</pre> <p> This function returns the type a pattern. See <a class="link" href="cairo-Patterns.html#cairo-pattern-type-t"><span class="type">cairo_pattern_type_t</span></a> for available types.</p> @@ -1381,9 +1410,9 @@ See <a class="link" href="cairo-Patterns.html#cairo-pattern-type-t"><span class= </div> <hr> <div class="refsect2" lang="en"> -<a name="id2644663"></a><h3> +<a name="id2646382"></a><h3> <a name="cairo-pattern-get-reference-count"></a>cairo_pattern_get_reference_count ()</h3> -<a class="indexterm" name="id2644680"></a><pre class="programlisting">unsigned int cairo_pattern_get_reference_count (<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern);</pre> +<a class="indexterm" name="id2646399"></a><pre class="programlisting">unsigned int cairo_pattern_get_reference_count (<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern);</pre> <p> Returns the current reference count of <em class="parameter"><code>pattern</code></em>.</p> <p> @@ -1411,9 +1440,9 @@ object is a nil object, 0 will be returned. </div> <hr> <div class="refsect2" lang="en"> -<a name="id2644769"></a><h3> +<a name="id2646488"></a><h3> <a name="cairo-pattern-set-user-data"></a>cairo_pattern_set_user_data ()</h3> -<a class="indexterm" name="id2644785"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_pattern_set_user_data (<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern, +<a class="indexterm" name="id2646505"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_pattern_set_user_data (<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern, const <a class="link" href="cairo-Types.html#cairo-user-data-key-t">cairo_user_data_key_t</a> *key, void *user_data, <a class="link" href="cairo-Types.html#cairo-destroy-func-t">cairo_destroy_func_t</a> destroy);</pre> @@ -1451,11 +1480,7 @@ same key. </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> -<td> <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS" -><code class="literal">CAIRO_STATUS_SUCCESS</code></a> or <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS" -><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a> if a +<td> <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> or <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a> if a slot could not be allocated for the user data. </td> @@ -1467,9 +1492,9 @@ slot could not be allocated for the user data. </div> <hr> <div class="refsect2" lang="en"> -<a name="id2645001"></a><h3> +<a name="id2646720"></a><h3> <a name="cairo-pattern-get-user-data"></a>cairo_pattern_get_user_data ()</h3> -<a class="indexterm" name="id2645017"></a><pre class="programlisting">void* cairo_pattern_get_user_data (<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern, +<a class="indexterm" name="id2646737"></a><pre class="programlisting">void* cairo_pattern_get_user_data (<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern, const <a class="link" href="cairo-Types.html#cairo-user-data-key-t">cairo_user_data_key_t</a> *key);</pre> <p> Return user data previously attached to <em class="parameter"><code>pattern</code></em> using the @@ -1505,9 +1530,20 @@ attached to </div> </div> <div class="refsect1" lang="en"> -<a name="id2645151"></a><div class="refsect2" lang="en"><a name="id2645152"></a></div> +<a name="id2646870"></a><h2>See Also</h2> +<p> +</p> +<div class="itemizedlist"><ul type="disc"> +<li><a class="link" href="cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a></li> +<li><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t"><span class="type">cairo_surface_t</span></a></li> +</ul></div> +<p> +</p> +</div> +<div class="refsect1" lang="en"> +<a name="id2646902"></a><div class="refsect2" lang="en"><a name="id2646903"></a></div> <hr> -<div class="refsect2" lang="en"><a name="id2645153"></a></div> +<div class="refsect2" lang="en"><a name="id2646904"></a></div> </div> </div> </body> diff --git a/doc/public/html/cairo-PostScript-Surfaces.html b/doc/public/html/cairo-PostScript-Surfaces.html index ae506a1..b478229 100644 --- a/doc/public/html/cairo-PostScript-Surfaces.html +++ b/doc/public/html/cairo-PostScript-Surfaces.html @@ -10,8 +10,6 @@ <link rel="next" href="cairo-Win32-Surfaces.html" title="Win32 Surfaces"> <meta name="generator" content="GTK-Doc V1.9 (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"> @@ -19,6 +17,7 @@ <link rel="index" href="ix01.html" title="Index"> <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2"> <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6"> <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"> @@ -30,16 +29,16 @@ <th width="100%" align="center">Cairo: A Vector Graphics Library</th> <td><a accesskey="n" href="cairo-Win32-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="#id2582250" class="shortcut">Top</a> +<tr><td colspan="5" class="shortcuts"><nobr><a href="#id2584272" class="shortcut">Top</a>  |  - <a href="#id2663305" class="shortcut">Description</a></nobr></td></tr> + <a href="#id2665708" class="shortcut">Description</a></nobr></td></tr> </table> <div class="refentry" lang="en"> <a name="cairo-PostScript-Surfaces"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> <td valign="top"> <h2> -<a name="id2582250"></a><span class="refentrytitle">PostScript Surfaces</span> +<a name="id2584272"></a><span class="refentrytitle">PostScript Surfaces</span> </h2> <p>PostScript Surfaces — Rendering PostScript documents</p> </td> @@ -51,6 +50,7 @@ +#define <a class="link" href="cairo-PostScript-Surfaces.html#CAIRO-HAS-PS-SURFACE:CAPS">CAIRO_HAS_PS_SURFACE</a> <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* <a class="link" 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); @@ -78,17 +78,29 @@ void <a class="link" href="cairo-PostScript-Surfaces.html#cairo-p </pre> </div> <div class="refsect1" lang="en"> -<a name="id2663305"></a><h2>Description</h2> +<a name="id2665708"></a><h2>Description</h2> <p> - +The PostScript surface is used to render cairo graphics to Adobe +PostScript files and is a multi-page vector surface backend. </p> </div> <div class="refsect1" lang="en"> -<a name="id2654714"></a><h2>Details</h2> +<a name="id2665726"></a><h2>Details</h2> +<div class="refsect2" lang="en"> +<a name="id2665736"></a><h3> +<a name="CAIRO-HAS-PS-SURFACE:CAPS"></a>CAIRO_HAS_PS_SURFACE</h3> +<a class="indexterm" name="id2665748"></a><pre class="programlisting">#define CAIRO_HAS_PS_SURFACE 1 +</pre> +<p> +Defined if the PostScript surface backend is available. +This macro can be used to conditionally compile backend-specific code. +</p> +</div> +<hr> <div class="refsect2" lang="en"> -<a name="id2654725"></a><h3> +<a name="id2665765"></a><h3> <a name="cairo-ps-surface-create"></a>cairo_ps_surface_create ()</h3> -<a class="indexterm" name="id2654738"></a><pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_ps_surface_create (const char *filename, +<a class="indexterm" name="id2665778"></a><pre class="programlisting"><a class="link" 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> @@ -124,7 +136,7 @@ vary. See <a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-surface- <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> <td> a pointer to the newly created surface. The caller -owns the surface and should call cairo_surface_destroy when done +owns the surface and should call <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-destroy"><code class="function">cairo_surface_destroy()</code></a> when done with it. This function always returns a valid pointer, but it will return a @@ -140,9 +152,9 @@ occurs. You can use <a class="link" href="cairo-cairo-surface-t.html#cairo-surfa </div> <hr> <div class="refsect2" lang="en"> -<a name="id2654895"></a><h3> +<a name="id2657350"></a><h3> <a name="cairo-ps-surface-create-for-stream"></a>cairo_ps_surface_create_for_stream ()</h3> -<a class="indexterm" name="id2654909"></a><pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_ps_surface_create_for_stream (<a class="link" href="cairo-PNG-Support.html#cairo-write-func-t">cairo_write_func_t</a> write_func, +<a class="indexterm" name="id2657363"></a><pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_ps_surface_create_for_stream (<a class="link" 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> @@ -184,7 +196,7 @@ output can vary. See <a class="link" href="cairo-PostScript-Surfaces.html#cairo- <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> <td> a pointer to the newly created surface. The caller -owns the surface and should call cairo_surface_destroy when done +owns the surface and should call <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-destroy"><code class="function">cairo_surface_destroy()</code></a> when done with it. This function always returns a valid pointer, but it will return a @@ -200,9 +212,9 @@ occurs. You can use <a class="link" href="cairo-cairo-surface-t.html#cairo-surfa </div> <hr> <div class="refsect2" lang="en"> -<a name="id2655104"></a><h3> +<a name="id2657566"></a><h3> <a name="cairo-ps-surface-restrict-to-level"></a>cairo_ps_surface_restrict_to_level ()</h3> -<a class="indexterm" name="id2655119"></a><pre class="programlisting">void cairo_ps_surface_restrict_to_level (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface, +<a class="indexterm" name="id2657580"></a><pre class="programlisting">void cairo_ps_surface_restrict_to_level (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface, <a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-level-t">cairo_ps_level_t</a> level);</pre> <p> Restricts the generated PostSript file to <em class="parameter"><code>level</code></em>. See @@ -237,9 +249,9 @@ surface.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2655229"></a><h3> +<a name="id2666634"></a><h3> <a name="cairo-ps-level-t"></a>enum cairo_ps_level_t</h3> -<a class="indexterm" name="id2655241"></a><pre class="programlisting">typedef enum _cairo_ps_level { +<a class="indexterm" name="id2666644"></a><pre class="programlisting">typedef enum _cairo_ps_level { CAIRO_PS_LEVEL_2, CAIRO_PS_LEVEL_3 } cairo_ps_level_t; @@ -269,9 +281,9 @@ conform to.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2664004"></a><h3> +<a name="id2666718"></a><h3> <a name="cairo-ps-get-levels"></a>cairo_ps_get_levels ()</h3> -<a class="indexterm" name="id2664016"></a><pre class="programlisting">void cairo_ps_get_levels (<a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-level-t">cairo_ps_level_t</a> const **levels, +<a class="indexterm" name="id2666732"></a><pre class="programlisting">void cairo_ps_get_levels (<a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-level-t">cairo_ps_level_t</a> const **levels, int *num_levels);</pre> <p> Used to retrieve the list of supported levels. See @@ -299,12 +311,12 @@ Used to retrieve the list of supported levels. See </div> <hr> <div class="refsect2" lang="en"> -<a name="id2664098"></a><h3> +<a name="id2666821"></a><h3> <a name="cairo-ps-level-to-string"></a>cairo_ps_level_to_string ()</h3> -<a class="indexterm" name="id2664112"></a><pre class="programlisting">const char* cairo_ps_level_to_string (<a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-level-t">cairo_ps_level_t</a> level);</pre> +<a class="indexterm" name="id2666835"></a><pre class="programlisting">const char* cairo_ps_level_to_string (<a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-level-t">cairo_ps_level_t</a> level);</pre> <p> Get the string representation of the given <em class="parameter"><code>level</code></em> id. This function -will return NULL if <em class="parameter"><code>level</code></em> id isn't valid. See <a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-get-levels"><code class="function">cairo_ps_get_levels()</code></a> +will return <code class="literal">NULL</code> if <em class="parameter"><code>level</code></em> id isn't valid. See <a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-get-levels"><code class="function">cairo_ps_get_levels()</code></a> for a way to get the list of valid level ids.</p> <p> @@ -330,19 +342,19 @@ for a way to get the list of valid level ids.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2664204"></a><h3> +<a name="id2666936"></a><h3> <a name="cairo-ps-surface-set-eps"></a>cairo_ps_surface_set_eps ()</h3> -<a class="indexterm" name="id2664217"></a><pre class="programlisting">void cairo_ps_surface_set_eps (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface, +<a class="indexterm" name="id2666950"></a><pre class="programlisting">void cairo_ps_surface_set_eps (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface, <a class="link" href="cairo-Types.html#cairo-bool-t">cairo_bool_t</a> eps);</pre> <p> -If <em class="parameter"><code>eps</code></em> is TRUE, the PostScript surface will output Encapsulated +If <em class="parameter"><code>eps</code></em> is <code class="literal">TRUE</code>, the PostScript surface will output Encapsulated PostScript. </p> <p> This function should only be called before any drawing operations have been performed on the current page. The simplest way to do this is to call this function immediately after creating the -surface. An Encapsulated Postscript file should never contain more +surface. An Encapsulated PostScript file should never contain more than one page.</p> <p> @@ -352,12 +364,12 @@ than one page.</p> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>surface</code></em> :</span></p></td> -<td> a PostScript cairo_surface_t +<td> a PostScript <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t"><span class="type">cairo_surface_t</span></a> </td> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>eps</code></em> :</span></p></td> -<td> TRUE to output EPS format PostScript +<td> <code class="literal">TRUE</code> to output EPS format PostScript </td> </tr> </tbody> @@ -367,9 +379,9 @@ than one page.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2664312"></a><h3> +<a name="id2667069"></a><h3> <a name="cairo-ps-surface-get-eps"></a>cairo_ps_surface_get_eps ()</h3> -<a class="indexterm" name="id2664325"></a><pre class="programlisting"><a class="link" href="cairo-Types.html#cairo-bool-t">cairo_bool_t</a> cairo_ps_surface_get_eps (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> +<a class="indexterm" name="id2667083"></a><pre class="programlisting"><a class="link" href="cairo-Types.html#cairo-bool-t">cairo_bool_t</a> cairo_ps_surface_get_eps (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> <p> Check whether the PostScript surface will output Encapsulated PostScript.</p> <p> @@ -380,12 +392,12 @@ Check whether the PostScript surface will output Encapsulated PostScript.</p> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>surface</code></em> :</span></p></td> -<td> a PostScript cairo_surface_t +<td> a PostScript <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t"><span class="type">cairo_surface_t</span></a> </td> </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> -<td> TRUE if the surface will output Encapsulated PostScript. +<td> <code class="literal">TRUE</code> if the surface will output Encapsulated PostScript. </td> </tr> @@ -396,9 +408,9 @@ Check whether the PostScript surface will output Encapsulated PostScript.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2664395"></a><h3> +<a name="id2667169"></a><h3> <a name="cairo-ps-surface-set-size"></a>cairo_ps_surface_set_size ()</h3> -<a class="indexterm" name="id2664409"></a><pre class="programlisting">void cairo_ps_surface_set_size (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface, +<a class="indexterm" name="id2667183"></a><pre class="programlisting">void cairo_ps_surface_set_size (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface, double width_in_points, double height_in_points);</pre> <p> @@ -419,7 +431,7 @@ surface or immediately after completing a page with either <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>surface</code></em> :</span></p></td> -<td> a PostScript cairo_surface_t +<td> a PostScript <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t"><span class="type">cairo_surface_t</span></a> </td> </tr> <tr> @@ -439,9 +451,9 @@ surface or immediately after completing a page with either </div> <hr> <div class="refsect2" lang="en"> -<a name="id2664539"></a><h3> +<a name="id2667320"></a><h3> <a name="cairo-ps-surface-dsc-begin-setup"></a>cairo_ps_surface_dsc_begin_setup ()</h3> -<a class="indexterm" name="id2664554"></a><pre class="programlisting">void cairo_ps_surface_dsc_begin_setup (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> +<a class="indexterm" name="id2667336"></a><pre class="programlisting">void cairo_ps_surface_dsc_begin_setup (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> <p> This function indicates that subsequent calls to <a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-comment"><code class="function">cairo_ps_surface_dsc_comment()</code></a> should direct comments to the Setup @@ -461,7 +473,7 @@ See <a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-co <col align="left" valign="top"> <tbody><tr> <td><p><span class="term"><em class="parameter"><code>surface</code></em> :</span></p></td> -<td> a PostScript cairo_surface_t +<td> a PostScript <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t"><span class="type">cairo_surface_t</span></a> </td> </tr></tbody> </table></div> @@ -470,9 +482,9 @@ See <a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-co </div> <hr> <div class="refsect2" lang="en"> -<a name="id2664654"></a><h3> +<a name="id2667443"></a><h3> <a name="cairo-ps-surface-dsc-begin-page-setup"></a>cairo_ps_surface_dsc_begin_page_setup ()</h3> -<a class="indexterm" name="id2664670"></a><pre class="programlisting">void cairo_ps_surface_dsc_begin_page_setup +<a class="indexterm" name="id2667458"></a><pre class="programlisting">void cairo_ps_surface_dsc_begin_page_setup (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> <p> This function indicates that subsequent calls to @@ -494,7 +506,7 @@ See <a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-co <col align="left" valign="top"> <tbody><tr> <td><p><span class="term"><em class="parameter"><code>surface</code></em> :</span></p></td> -<td> a PostScript cairo_surface_t +<td> a PostScript <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t"><span class="type">cairo_surface_t</span></a> </td> </tr></tbody> </table></div> @@ -503,9 +515,9 @@ See <a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-co </div> <hr> <div class="refsect2" lang="en"> -<a name="id2664771"></a><h3> +<a name="id2667566"></a><h3> <a name="cairo-ps-surface-dsc-comment"></a>cairo_ps_surface_dsc_comment ()</h3> -<a class="indexterm" name="id2664786"></a><pre class="programlisting">void cairo_ps_surface_dsc_comment (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface, +<a class="indexterm" name="id2667582"></a><pre class="programlisting">void cairo_ps_surface_dsc_comment (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface, const char *comment);</pre> <p> Emit a comment into the PostScript output for the given surface. @@ -585,7 +597,7 @@ Here is an example sequence showing how this function might be used: <p> </p> <div class="informalexample"><pre class="programlisting"> -cairo_surface_t *surface = cairo_ps_surface_create (filename, width, height); +<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *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") @@ -612,7 +624,7 @@ cairo_ps_surface_dsc_comment (surface, "%%IncludeFeature: *PageSize A5"); <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>surface</code></em> :</span></p></td> -<td> a PostScript cairo_surface_t +<td> a PostScript <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t"><span class="type">cairo_surface_t</span></a> </td> </tr> <tr> @@ -627,9 +639,17 @@ cairo_ps_surface_dsc_comment (surface, "%%IncludeFeature: *PageSize A5"); </div> </div> <div class="refsect1" lang="en"> -<a name="id2665201"></a><div class="refsect2" lang="en"><a name="id2665202"></a></div> +<a name="id2667992"></a><h2>See Also</h2> +<p> +</p> +<div class="itemizedlist"><ul type="disc"><li><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t"><span class="type">cairo_surface_t</span></a></li></ul></div> +<p> +</p> +</div> +<div class="refsect1" lang="en"> +<a name="id2668012"></a><div class="refsect2" lang="en"><a name="id2668014"></a></div> <hr> -<div class="refsect2" lang="en"><a name="id2665203"></a></div> +<div class="refsect2" lang="en"><a name="id2668015"></a></div> </div> </div> </body> diff --git a/doc/public/html/cairo-SVG-Surfaces.html b/doc/public/html/cairo-SVG-Surfaces.html index 86a8026..f46ce5c 100644 --- a/doc/public/html/cairo-SVG-Surfaces.html +++ b/doc/public/html/cairo-SVG-Surfaces.html @@ -10,8 +10,6 @@ <link rel="next" href="cairo-XLib-Surfaces.html" title="XLib Surfaces"> <meta name="generator" content="GTK-Doc V1.9 (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"> @@ -19,6 +17,7 @@ <link rel="index" href="ix01.html" title="Index"> <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2"> <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6"> <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"> @@ -30,16 +29,16 @@ <th width="100%" align="center">Cairo: A Vector Graphics Library</th> <td><a accesskey="n" href="cairo-XLib-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="#id2612351" class="shortcut">Top</a> +<tr><td colspan="5" class="shortcuts"><nobr><a href="#id2596684" class="shortcut">Top</a>  |  - <a href="#id2662980" class="shortcut">Description</a></nobr></td></tr> + <a href="#id2663499" class="shortcut">Description</a></nobr></td></tr> </table> <div class="refentry" lang="en"> <a name="cairo-SVG-Surfaces"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> <td valign="top"> <h2> -<a name="id2612351"></a><span class="refentrytitle">SVG Surfaces</span> +<a name="id2596684"></a><span class="refentrytitle">SVG Surfaces</span> </h2> <p>SVG Surfaces — Rendering SVG documents</p> </td> @@ -51,6 +50,7 @@ +#define <a class="link" href="cairo-SVG-Surfaces.html#CAIRO-HAS-SVG-SURFACE:CAPS">CAIRO_HAS_SVG_SURFACE</a> <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* <a class="link" 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); @@ -68,17 +68,29 @@ const char* <a class="link" href="cairo-SVG-Surfaces.html#cairo-svg-vers </pre> </div> <div class="refsect1" lang="en"> -<a name="id2662980"></a><h2>Description</h2> +<a name="id2663499"></a><h2>Description</h2> <p> - +The SVG surface is used to render cairo graphics to +SVG files and is a multi-page vector surface backend. </p> </div> <div class="refsect1" lang="en"> -<a name="id2662996"></a><h2>Details</h2> +<a name="id2663516"></a><h2>Details</h2> +<div class="refsect2" lang="en"> +<a name="id2663527"></a><h3> +<a name="CAIRO-HAS-SVG-SURFACE:CAPS"></a>CAIRO_HAS_SVG_SURFACE</h3> +<a class="indexterm" name="id2663538"></a><pre class="programlisting">#define CAIRO_HAS_SVG_SURFACE 1 +</pre> +<p> +Defined if the SVG surface backend is available. +This macro can be used to conditionally compile backend-specific code. +</p> +</div> +<hr> <div class="refsect2" lang="en"> -<a name="id2663007"></a><h3> +<a name="id2663555"></a><h3> <a name="cairo-svg-surface-create"></a>cairo_svg_surface_create ()</h3> -<a class="indexterm" name="id2663020"></a><pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_svg_surface_create (const char *filename, +<a class="indexterm" name="id2663569"></a><pre class="programlisting"><a class="link" 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> @@ -108,7 +120,7 @@ to <em class="parameter"><code>filename</code></em>.</p> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> <td> a pointer to the newly created surface. The caller -owns the surface and should call cairo_surface_destroy when done +owns the surface and should call <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-destroy"><code class="function">cairo_surface_destroy()</code></a> when done with it. This function always returns a valid pointer, but it will return a @@ -124,9 +136,9 @@ occurs. You can use <a class="link" href="cairo-cairo-surface-t.html#cairo-surfa </div> <hr> <div class="refsect2" lang="en"> -<a name="id2655736"></a><h3> +<a name="id2663710"></a><h3> <a name="cairo-svg-surface-create-for-stream"></a>cairo_svg_surface_create_for_stream ()</h3> -<a class="indexterm" name="id2655750"></a><pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_svg_surface_create_for_stream (<a class="link" href="cairo-PNG-Support.html#cairo-write-func-t">cairo_write_func_t</a> write_func, +<a class="indexterm" name="id2663723"></a><pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_svg_surface_create_for_stream (<a class="link" 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> @@ -162,7 +174,7 @@ incrementally to the stream represented by <em class="parameter"><code>write_fun <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> <td> a pointer to the newly created surface. The caller -owns the surface and should call cairo_surface_destroy when done +owns the surface and should call <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-destroy"><code class="function">cairo_surface_destroy()</code></a> when done with it. This function always returns a valid pointer, but it will return a @@ -178,9 +190,9 @@ occurs. You can use <a class="link" href="cairo-cairo-surface-t.html#cairo-surfa </div> <hr> <div class="refsect2" lang="en"> -<a name="id2655922"></a><h3> +<a name="id2663904"></a><h3> <a name="cairo-svg-surface-restrict-to-version"></a>cairo_svg_surface_restrict_to_version ()</h3> -<a class="indexterm" name="id2655935"></a><pre class="programlisting">void cairo_svg_surface_restrict_to_version +<a class="indexterm" name="id2663920"></a><pre class="programlisting">void cairo_svg_surface_restrict_to_version (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface, <a class="link" href="cairo-SVG-Surfaces.html#cairo-svg-version-t">cairo_svg_version_t</a> version);</pre> <p> @@ -215,9 +227,9 @@ surface.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2656044"></a><h3> +<a name="id2664222"></a><h3> <a name="cairo-svg-version-t"></a>enum cairo_svg_version_t</h3> -<a class="indexterm" name="id2661273"></a><pre class="programlisting">typedef enum _cairo_svg_version { +<a class="indexterm" name="id2664234"></a><pre class="programlisting">typedef enum _cairo_svg_version { CAIRO_SVG_VERSION_1_1, CAIRO_SVG_VERSION_1_2 } cairo_svg_version_t; @@ -246,9 +258,9 @@ specification that a generated SVG file will conform to.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2661348"></a><h3> +<a name="id2664311"></a><h3> <a name="cairo-svg-get-versions"></a>cairo_svg_get_versions ()</h3> -<a class="indexterm" name="id2661361"></a><pre class="programlisting">void cairo_svg_get_versions (<a class="link" href="cairo-SVG-Surfaces.html#cairo-svg-version-t">cairo_svg_version_t</a> const **versions, +<a class="indexterm" name="id2664324"></a><pre class="programlisting">void cairo_svg_get_versions (<a class="link" href="cairo-SVG-Surfaces.html#cairo-svg-version-t">cairo_svg_version_t</a> const **versions, int *num_versions);</pre> <p> Used to retrieve the list of supported versions. See @@ -276,12 +288,12 @@ Used to retrieve the list of supported versions. See </div> <hr> <div class="refsect2" lang="en"> -<a name="id2661451"></a><h3> +<a name="id2664414"></a><h3> <a name="cairo-svg-version-to-string"></a>cairo_svg_version_to_string ()</h3> -<a class="indexterm" name="id2661464"></a><pre class="programlisting">const char* cairo_svg_version_to_string (<a class="link" href="cairo-SVG-Surfaces.html#cairo-svg-version-t">cairo_svg_version_t</a> version);</pre> +<a class="indexterm" name="id2664427"></a><pre class="programlisting">const char* cairo_svg_version_to_string (<a class="link" href="cairo-SVG-Surfaces.html#cairo-svg-version-t">cairo_svg_version_t</a> version);</pre> <p> Get the string representation of the given <em class="parameter"><code>version</code></em> id. This function -will return NULL if <em class="parameter"><code>version</code></em> isn't valid. See <a class="link" href="cairo-SVG-Surfaces.html#cairo-svg-get-versions"><code class="function">cairo_svg_get_versions()</code></a> +will return <code class="literal">NULL</code> if <em class="parameter"><code>version</code></em> isn't valid. See <a class="link" href="cairo-SVG-Surfaces.html#cairo-svg-get-versions"><code class="function">cairo_svg_get_versions()</code></a> for a way to get the list of valid version ids.</p> <p> @@ -307,9 +319,18 @@ for a way to get the list of valid version ids.</p> </div> </div> <div class="refsect1" lang="en"> -<a name="id2661557"></a><div class="refsect2" lang="en"><a name="id2661558"></a></div> +<a name="id2664529"></a><h2>See Also</h2> +<p> +</p> +<div class="itemizedlist"><ul type="disc"><li>#<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t"><code class="function">cairo_surface_t()</code></a> +</li></ul></div> +<p> +</p> +</div> +<div class="refsect1" lang="en"> +<a name="id2664556"></a><div class="refsect2" lang="en"><a name="id2664557"></a></div> <hr> -<div class="refsect2" lang="en"><a name="id2661560"></a></div> +<div class="refsect2" lang="en"><a name="id2664558"></a></div> </div> </div> </body> diff --git a/doc/public/html/cairo-Scaled-Fonts.html b/doc/public/html/cairo-Scaled-Fonts.html index d4376ff..150d69b 100644 --- a/doc/public/html/cairo-Scaled-Fonts.html +++ b/doc/public/html/cairo-Scaled-Fonts.html @@ -2,16 +2,14 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> -<title>Scaled Fonts</title> +<title>cairo_scaled_font_t</title> <meta name="generator" content="DocBook XSL Stylesheets V1.73.2"> <link rel="start" href="index.html" title="Cairo: A Vector Graphics Library"> <link rel="up" href="Fonts.html" title="Fonts"> <link rel="prev" href="cairo-cairo-font-face-t.html" title="cairo_font_face_t"> -<link rel="next" href="cairo-Font-Options.html" title="Font Options"> +<link rel="next" href="cairo-Font-Options.html" title="cairo_font_options_t"> <meta name="generator" content="GTK-Doc V1.9 (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"> @@ -19,6 +17,7 @@ <link rel="index" href="ix01.html" title="Index"> <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2"> <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6"> <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"> @@ -30,18 +29,18 @@ <th width="100%" align="center">Cairo: A Vector Graphics Library</th> <td><a accesskey="n" href="cairo-Font-Options.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="#id2627031" class="shortcut">Top</a> +<tr><td colspan="5" class="shortcuts"><nobr><a href="#id2600103" class="shortcut">Top</a>  |  - <a href="#id2648455" class="shortcut">Description</a></nobr></td></tr> + <a href="#id2650652" class="shortcut">Description</a></nobr></td></tr> </table> <div class="refentry" lang="en"> <a name="cairo-Scaled-Fonts"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> <td valign="top"> <h2> -<a name="id2627031"></a><span class="refentrytitle">Scaled Fonts</span> +<a name="id2600103"></a><span class="refentrytitle">cairo_scaled_font_t</span> </h2> -<p>Scaled Fonts — Caching metrics for a particular font size</p> +<p>cairo_scaled_font_t — Font face at particular size and options</p> </td> <td valign="top" align="right"></td> </tr></table></div> @@ -89,21 +88,22 @@ void* <a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-f </pre> </div> <div class="refsect1" lang="en"> -<a name="id2648455"></a><h2>Description</h2> +<a name="id2650652"></a><h2>Description</h2> <p> - +<a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t"><span class="type">cairo_scaled_font_t</span></a> represents a realization of a font face at a particular +size and transformation and a certain set of font options. </p> </div> <div class="refsect1" lang="en"> -<a name="id2648470"></a><h2>Details</h2> +<a name="id2650677"></a><h2>Details</h2> <div class="refsect2" lang="en"> -<a name="id2648481"></a><h3> +<a name="id2626825"></a><h3> <a name="cairo-scaled-font-t"></a>cairo_scaled_font_t</h3> -<a class="indexterm" name="id2648494"></a><pre class="programlisting">typedef struct _cairo_scaled_font cairo_scaled_font_t; +<a class="indexterm" name="id2626838"></a><pre class="programlisting">typedef struct _cairo_scaled_font cairo_scaled_font_t; </pre> <p> A <a class="link" 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 -resolution. A cairo_scaled_font_t is most useful for low-level font +resolution. A <a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t"><span class="type">cairo_scaled_font_t</span></a> is most useful for low-level font usage where a library or application wants to cache a reference to a scaled font to speed up the computation of metrics. </p> @@ -121,9 +121,9 @@ Memory management of <a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled- </div> <hr> <div class="refsect2" lang="en"> -<a name="id2648572"></a><h3> +<a name="id2626922"></a><h3> <a name="cairo-scaled-font-create"></a>cairo_scaled_font_create ()</h3> -<a class="indexterm" name="id2648583"></a><pre class="programlisting"><a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a>* cairo_scaled_font_create (<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a> *font_face, +<a class="indexterm" name="id2626934"></a><pre class="programlisting"><a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a>* cairo_scaled_font_create (<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a> *font_face, const <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *font_matrix, const <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *ctm, const <a class="link" href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);</pre> @@ -160,7 +160,8 @@ be used.</p> <tr> <td><p><span class="term"><em class="parameter"><code>options</code></em> :</span></p></td> <td> options to use when getting metrics for the font and - rendering with it. + rendering with it. A <code class="literal">NULL</code> pointer will be interpreted as + meaning the default options. </td> </tr> <tr> @@ -174,9 +175,9 @@ be used.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2594492"></a><h3> +<a name="id2627116"></a><h3> <a name="cairo-scaled-font-reference"></a>cairo_scaled_font_reference ()</h3> -<a class="indexterm" name="id2594504"></a><pre class="programlisting"><a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a>* cairo_scaled_font_reference (<a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);</pre> +<a class="indexterm" name="id2627127"></a><pre class="programlisting"><a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a>* cairo_scaled_font_reference (<a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);</pre> <p> Increases the reference count on <em class="parameter"><code>scaled_font</code></em> by one. This prevents <em class="parameter"><code>scaled_font</code></em> from being destroyed until a matching call to @@ -193,7 +194,7 @@ The number of references to a <a class="link" href="cairo-Scaled-Fonts.html#cair <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>scaled_font</code></em> :</span></p></td> -<td> a <a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t"><span class="type">cairo_scaled_font_t</span></a>, (may be NULL in which case +<td> a <a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t"><span class="type">cairo_scaled_font_t</span></a>, (may be <code class="literal">NULL</code> in which case this function does nothing) </td> </tr> @@ -207,9 +208,9 @@ this function does nothing) </div> <hr> <div class="refsect2" lang="en"> -<a name="id2594622"></a><h3> +<a name="id2651434"></a><h3> <a name="cairo-scaled-font-destroy"></a>cairo_scaled_font_destroy ()</h3> -<a class="indexterm" name="id2594633"></a><pre class="programlisting">void cairo_scaled_font_destroy (<a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);</pre> +<a class="indexterm" name="id2651444"></a><pre class="programlisting">void cairo_scaled_font_destroy (<a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);</pre> <p> Decreases the reference count on <em class="parameter"><code>font</code></em> by one. If the result is zero, then <em class="parameter"><code>font</code></em> and all associated resources are freed. @@ -228,9 +229,9 @@ See <a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-reference">< </div> <hr> <div class="refsect2" lang="en"> -<a name="id2649695"></a><h3> +<a name="id2651516"></a><h3> <a name="cairo-scaled-font-status"></a>cairo_scaled_font_status ()</h3> -<a class="indexterm" name="id2649706"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_scaled_font_status (<a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);</pre> +<a class="indexterm" name="id2651526"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_scaled_font_status (<a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);</pre> <p> Checks whether an error has previously occurred for this scaled_font.</p> @@ -247,12 +248,8 @@ scaled_font.</p> </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> -<td> <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS" -><code class="literal">CAIRO_STATUS_SUCCESS</code></a> or another error such as - <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS" -><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a>. +<td> <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> or another error such as + <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a>. </td> </tr> </tbody> @@ -260,9 +257,9 @@ href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS" </div> <hr> <div class="refsect2" lang="en"> -<a name="id2649786"></a><h3> +<a name="id2651611"></a><h3> <a name="cairo-font-extents-t"></a>cairo_font_extents_t</h3> -<a class="indexterm" name="id2649797"></a><pre class="programlisting">typedef struct { +<a class="indexterm" name="id2651623"></a><pre class="programlisting">typedef struct { double ascent; double descent; double height; @@ -340,9 +337,9 @@ matrix), but otherwise will remain unchanged.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2650005"></a><h3> +<a name="id2651831"></a><h3> <a name="cairo-scaled-font-extents"></a>cairo_scaled_font_extents ()</h3> -<a class="indexterm" name="id2650017"></a><pre class="programlisting">void cairo_scaled_font_extents (<a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font, +<a class="indexterm" name="id2651842"></a><pre class="programlisting">void cairo_scaled_font_extents (<a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font, <a class="link" href="cairo-Scaled-Fonts.html#cairo-font-extents-t">cairo_font_extents_t</a> *extents);</pre> <p> Gets the metrics for a <a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t"><span class="type">cairo_scaled_font_t</span></a>.</p> @@ -367,9 +364,9 @@ Gets the metrics for a <a class="link" href="cairo-Scaled-Fonts.html#cairo-scale </div> <hr> <div class="refsect2" lang="en"> -<a name="id2650109"></a><h3> +<a name="id2651934"></a><h3> <a name="cairo-text-extents-t"></a>cairo_text_extents_t</h3> -<a class="indexterm" name="id2650120"></a><pre class="programlisting">typedef struct { +<a class="indexterm" name="id2651946"></a><pre class="programlisting">typedef struct { double x_bearing; double y_bearing; double width; @@ -437,9 +434,9 @@ but otherwise will remain unchanged.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2650300"></a><h3> +<a name="id2652126"></a><h3> <a name="cairo-scaled-font-text-extents"></a>cairo_scaled_font_text_extents ()</h3> -<a class="indexterm" name="id2650316"></a><pre class="programlisting">void cairo_scaled_font_text_extents (<a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font, +<a class="indexterm" name="id2652141"></a><pre class="programlisting">void cairo_scaled_font_text_extents (<a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font, const char *utf8, <a class="link" href="cairo-Scaled-Fonts.html#cairo-text-extents-t">cairo_text_extents_t</a> *extents);</pre> <p> @@ -486,9 +483,9 @@ affect the x_advance and y_advance values.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2650472"></a><h3> +<a name="id2652297"></a><h3> <a name="cairo-scaled-font-glyph-extents"></a>cairo_scaled_font_glyph_extents ()</h3> -<a class="indexterm" name="id2650485"></a><pre class="programlisting">void cairo_scaled_font_glyph_extents (<a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font, +<a class="indexterm" name="id2652310"></a><pre class="programlisting">void cairo_scaled_font_glyph_extents (<a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font, const <a class="link" href="cairo-Text.html#cairo-glyph-t">cairo_glyph_t</a> *glyphs, int num_glyphs, <a class="link" href="cairo-Scaled-Fonts.html#cairo-text-extents-t">cairo_text_extents_t</a> *extents);</pre> @@ -535,9 +532,9 @@ rectangle (extents.width and extents.height).</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2650636"></a><h3> +<a name="id2652482"></a><h3> <a name="cairo-scaled-font-get-font-face"></a>cairo_scaled_font_get_font_face ()</h3> -<a class="indexterm" name="id2650651"></a><pre class="programlisting"><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a>* cairo_scaled_font_get_font_face (<a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);</pre> +<a class="indexterm" name="id2652498"></a><pre class="programlisting"><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a>* cairo_scaled_font_get_font_face (<a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);</pre> <p> Gets the font face that this scaled font was created for.</p> <p> @@ -565,9 +562,9 @@ created. </div> <hr> <div class="refsect2" lang="en"> -<a name="id2650730"></a><h3> +<a name="id2652588"></a><h3> <a name="cairo-scaled-font-get-font-options"></a>cairo_scaled_font_get_font_options ()</h3> -<a class="indexterm" name="id2650745"></a><pre class="programlisting">void cairo_scaled_font_get_font_options (<a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font, +<a class="indexterm" name="id2652604"></a><pre class="programlisting">void cairo_scaled_font_get_font_options (<a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font, <a class="link" href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);</pre> <p> Stores the font options with which <em class="parameter"><code>scaled_font</code></em> was created into @@ -595,9 +592,9 @@ Stores the font options with which <em class="parameter"><code>scaled_font</code </div> <hr> <div class="refsect2" lang="en"> -<a name="id2650832"></a><h3> +<a name="id2652682"></a><h3> <a name="cairo-scaled-font-get-font-matrix"></a>cairo_scaled_font_get_font_matrix ()</h3> -<a class="indexterm" name="id2650848"></a><pre class="programlisting">void cairo_scaled_font_get_font_matrix (<a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font, +<a class="indexterm" name="id2652697"></a><pre class="programlisting">void cairo_scaled_font_get_font_matrix (<a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font, <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *font_matrix);</pre> <p> Stores the font matrix with which <em class="parameter"><code>scaled_font</code></em> was created into @@ -625,9 +622,9 @@ Stores the font matrix with which <em class="parameter"><code>scaled_font</code> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2650935"></a><h3> +<a name="id2652784"></a><h3> <a name="cairo-scaled-font-get-ctm"></a>cairo_scaled_font_get_ctm ()</h3> -<a class="indexterm" name="id2650948"></a><pre class="programlisting">void cairo_scaled_font_get_ctm (<a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font, +<a class="indexterm" name="id2652798"></a><pre class="programlisting">void cairo_scaled_font_get_ctm (<a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font, <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *ctm);</pre> <p> Stores the CTM with which <em class="parameter"><code>scaled_font</code></em> was created into <em class="parameter"><code>ctm</code></em>.</p> @@ -654,9 +651,9 @@ Stores the CTM with which <em class="parameter"><code>scaled_font</code></em> wa </div> <hr> <div class="refsect2" lang="en"> -<a name="id2651034"></a><h3> +<a name="id2652884"></a><h3> <a name="cairo-scaled-font-get-type"></a>cairo_scaled_font_get_type ()</h3> -<a class="indexterm" name="id2651047"></a><pre class="programlisting"><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-type-t">cairo_font_type_t</a> cairo_scaled_font_get_type (<a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);</pre> +<a class="indexterm" name="id2652897"></a><pre class="programlisting"><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-type-t">cairo_font_type_t</a> cairo_scaled_font_get_type (<a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);</pre> <p> This function returns the type of the backend used to create a scaled font. See <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-type-t"><span class="type">cairo_font_type_t</span></a> for available types.</p> @@ -684,9 +681,9 @@ a scaled font. See <a class="link" href="cairo-cairo-font-face-t.html#cairo-font </div> <hr> <div class="refsect2" lang="en"> -<a name="id2651126"></a><h3> +<a name="id2652975"></a><h3> <a name="cairo-scaled-font-get-reference-count"></a>cairo_scaled_font_get_reference_count ()</h3> -<a class="indexterm" name="id2651140"></a><pre class="programlisting">unsigned int cairo_scaled_font_get_reference_count +<a class="indexterm" name="id2652990"></a><pre class="programlisting">unsigned int cairo_scaled_font_get_reference_count (<a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);</pre> <p> Returns the current reference count of <em class="parameter"><code>scaled_font</code></em>.</p> @@ -715,9 +712,9 @@ object is a nil object, 0 will be returned. </div> <hr> <div class="refsect2" lang="en"> -<a name="id2651222"></a><h3> +<a name="id2653072"></a><h3> <a name="cairo-scaled-font-set-user-data"></a>cairo_scaled_font_set_user_data ()</h3> -<a class="indexterm" name="id2651236"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_scaled_font_set_user_data (<a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font, +<a class="indexterm" name="id2653086"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_scaled_font_set_user_data (<a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font, const <a class="link" href="cairo-Types.html#cairo-user-data-key-t">cairo_user_data_key_t</a> *key, void *user_data, <a class="link" href="cairo-Types.html#cairo-destroy-func-t">cairo_destroy_func_t</a> destroy);</pre> @@ -755,11 +752,7 @@ same key. </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> -<td> <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS" -><code class="literal">CAIRO_STATUS_SUCCESS</code></a> or <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS" -><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a> if a +<td> <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> or <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a> if a slot could not be allocated for the user data. </td> @@ -771,9 +764,9 @@ slot could not be allocated for the user data. </div> <hr> <div class="refsect2" lang="en"> -<a name="id2651427"></a><h3> +<a name="id2653276"></a><h3> <a name="cairo-scaled-font-get-user-data"></a>cairo_scaled_font_get_user_data ()</h3> -<a class="indexterm" name="id2651441"></a><pre class="programlisting">void* cairo_scaled_font_get_user_data (<a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font, +<a class="indexterm" name="id2653291"></a><pre class="programlisting">void* cairo_scaled_font_get_user_data (<a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font, const <a class="link" href="cairo-Types.html#cairo-user-data-key-t">cairo_user_data_key_t</a> *key);</pre> <p> Return user data previously attached to <em class="parameter"><code>scaled_font</code></em> using the @@ -809,9 +802,21 @@ attached to </div> </div> <div class="refsect1" lang="en"> -<a name="id2651560"></a><div class="refsect2" lang="en"><a name="id2651562"></a></div> +<a name="id2653410"></a><h2>See Also</h2> +<p> +</p> +<div class="itemizedlist"><ul type="disc"> +<li><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t"><span class="type">cairo_font_face_t</span></a></li> +<li><a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t"><span class="type">cairo_matrix_t</span></a></li> +<li><a class="link" href="cairo-Font-Options.html#cairo-font-options-t"><span class="type">cairo_font_options_t</span></a></li> +</ul></div> +<p> +</p> +</div> +<div class="refsect1" lang="en"> +<a name="id2653445"></a><div class="refsect2" lang="en"><a name="id2653446"></a></div> <hr> -<div class="refsect2" lang="en"><a name="id2651563"></a></div> +<div class="refsect2" lang="en"><a name="id2653447"></a></div> </div> </div> </body> diff --git a/doc/public/html/cairo-Text.html b/doc/public/html/cairo-Text.html index 68c05df..621cea4 100644 --- a/doc/public/html/cairo-Text.html +++ b/doc/public/html/cairo-Text.html @@ -10,8 +10,6 @@ <link rel="next" href="Fonts.html" title="Fonts"> <meta name="generator" content="GTK-Doc V1.9 (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"> @@ -19,6 +17,7 @@ <link rel="index" href="ix01.html" title="Index"> <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2"> <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6"> <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"> @@ -30,18 +29,18 @@ <th width="100%" align="center">Cairo: A Vector Graphics Library</th> <td><a accesskey="n" href="Fonts.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="#id2602058" class="shortcut">Top</a> +<tr><td colspan="5" class="shortcuts"><nobr><a href="#id2623141" class="shortcut">Top</a>  |  - <a href="#id2640207" class="shortcut">Description</a></nobr></td></tr> + <a href="#id2641606" class="shortcut">Description</a></nobr></td></tr> </table> <div class="refentry" lang="en"> <a name="cairo-Text"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> <td valign="top"> <h2> -<a name="id2602058"></a><span class="refentrytitle">Text</span> +<a name="id2623141"></a><span class="refentrytitle">Text</span> </h2> -<p>Text — Rendering text and sets of glyphs</p> +<p>Text — Rendering text and glyphs</p> </td> <td valign="top" align="right"></td> </tr></table></div> @@ -91,17 +90,41 @@ void <a class="link" href="cairo-Text.html#cairo-glyph-extents">c </pre> </div> <div class="refsect1" lang="en"> -<a name="id2640207"></a><h2>Description</h2> +<a name="id2641606"></a><h2>Description</h2> +<p> +Cairo has two sets of text rendering capabilities: +</p> +<div class="itemizedlist"><ul type="disc"> +<li> + The functions with <span class="emphasis"><em>text</em></span> in their name form cairo's + <em class="firstterm">toy</em> text API. The toy API takes UTF-8 encoded + text and is limited in its functionality to rendering simple + left-to-right text with no advanced features. That means for example + that most complex scripts like Hebrew, Arabic, and Indic scripts are + out of question. No kerning or correct positioning of diacritical marks + either. The font selection is pretty limited too and doesn't handle the + case that the selected font does not cover the characters in the text. + This set of functions are really that, a toy text API, for testing and + demonstration purposes. Any serious application should avoid them. + </li> +<li> + The functions with <span class="emphasis"><em>glyphs</em></span> in their name form cairo's + <em class="firstterm">low-level</em> text API. The low-level API relies on + the user to convert text to a set of glyph indexes and positions. This + is a very hard problem and is best handled by external libraries, like + the pangocairo that is part of the Pango text layout and rendering library. + Pango is available from <a class="ulink" href="http://www.pango.org/" target="_top">http://www.pango.org/</a>. + </li> +</ul></div> <p> - </p> </div> <div class="refsect1" lang="en"> -<a name="id2640223"></a><h2>Details</h2> +<a name="id2641653"></a><h2>Details</h2> <div class="refsect2" lang="en"> -<a name="id2640234"></a><h3> +<a name="id2641664"></a><h3> <a name="cairo-glyph-t"></a>cairo_glyph_t</h3> -<a class="indexterm" name="id2640246"></a><pre class="programlisting">typedef struct { +<a class="indexterm" name="id2641677"></a><pre class="programlisting">typedef struct { unsigned long index; double x; double y; @@ -146,9 +169,9 @@ with respect to the overall origin</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2640355"></a><h3> +<a name="id2594120"></a><h3> <a name="cairo-font-slant-t"></a>enum cairo_font_slant_t</h3> -<a class="indexterm" name="id2640367"></a><pre class="programlisting">typedef enum _cairo_font_slant { +<a class="indexterm" name="id2594132"></a><pre class="programlisting">typedef enum _cairo_font_slant { CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_SLANT_ITALIC, CAIRO_FONT_SLANT_OBLIQUE @@ -182,9 +205,9 @@ Specifies variants of a font face based on their slant.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2628358"></a><h3> +<a name="id2594220"></a><h3> <a name="cairo-font-weight-t"></a>enum cairo_font_weight_t</h3> -<a class="indexterm" name="id2628371"></a><pre class="programlisting">typedef enum _cairo_font_weight { +<a class="indexterm" name="id2594233"></a><pre class="programlisting">typedef enum _cairo_font_weight { CAIRO_FONT_WEIGHT_NORMAL, CAIRO_FONT_WEIGHT_BOLD } cairo_font_weight_t; @@ -212,9 +235,9 @@ Specifies variants of a font face based on their weight.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2628438"></a><h3> +<a name="id2594302"></a><h3> <a name="cairo-select-font-face"></a>cairo_select_font_face ()</h3> -<a class="indexterm" name="id2628449"></a><pre class="programlisting">void cairo_select_font_face (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2594313"></a><pre class="programlisting">void cairo_select_font_face (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, const char *family, <a class="link" href="cairo-Text.html#cairo-font-slant-t">cairo_font_slant_t</a> slant, <a class="link" href="cairo-Text.html#cairo-font-weight-t">cairo_font_weight_t</a> weight);</pre> @@ -257,9 +280,9 @@ cairo.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2628576"></a><h3> +<a name="id2641053"></a><h3> <a name="cairo-set-font-size"></a>cairo_set_font_size ()</h3> -<a class="indexterm" name="id2628588"></a><pre class="programlisting">void cairo_set_font_size (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2641065"></a><pre class="programlisting">void cairo_set_font_size (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, double size);</pre> <p> Sets the current font matrix to a scale by a factor of <em class="parameter"><code>size</code></em>, replacing @@ -288,9 +311,9 @@ em-square being a <em class="parameter"><code>size</code></em> by <em class="par </div> <hr> <div class="refsect2" lang="en"> -<a name="id2645170"></a><h3> +<a name="id2641187"></a><h3> <a name="cairo-set-font-matrix"></a>cairo_set_font_matrix ()</h3> -<a class="indexterm" name="id2645180"></a><pre class="programlisting">void cairo_set_font_matrix (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2641198"></a><pre class="programlisting">void cairo_set_font_matrix (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, const <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);</pre> <p> Sets the current font matrix to <em class="parameter"><code>matrix</code></em>. The font matrix gives a @@ -321,9 +344,9 @@ the current font. </div> <hr> <div class="refsect2" lang="en"> -<a name="id2645275"></a><h3> +<a name="id2641304"></a><h3> <a name="cairo-get-font-matrix"></a>cairo_get_font_matrix ()</h3> -<a class="indexterm" name="id2645286"></a><pre class="programlisting">void cairo_get_font_matrix (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2641315"></a><pre class="programlisting">void cairo_get_font_matrix (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);</pre> <p> Stores the current font matrix into <em class="parameter"><code>matrix</code></em>. See @@ -349,9 +372,9 @@ Stores the current font matrix into <em class="parameter"><code>matrix</code></e </div> <hr> <div class="refsect2" lang="en"> -<a name="id2645376"></a><h3> +<a name="id2646981"></a><h3> <a name="cairo-set-font-options"></a>cairo_set_font_options ()</h3> -<a class="indexterm" name="id2645388"></a><pre class="programlisting">void cairo_set_font_options (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2646992"></a><pre class="programlisting">void cairo_set_font_options (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, const <a class="link" href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);</pre> <p> Sets a set of custom font rendering options for the <a class="link" href="cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a>. @@ -380,9 +403,9 @@ from the surface is used.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2645489"></a><h3> +<a name="id2647084"></a><h3> <a name="cairo-get-font-options"></a>cairo_get_font_options ()</h3> -<a class="indexterm" name="id2645501"></a><pre class="programlisting">void cairo_get_font_options (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2647094"></a><pre class="programlisting">void cairo_get_font_options (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, <a class="link" href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);</pre> <p> Retrieves font rendering options set via <a class="link" href="cairo-Text.html#cairo-set-font-options"><span class="type">cairo_set_font_options</span></a>. @@ -411,9 +434,9 @@ passed to <a class="link" href="cairo-Text.html#cairo-set-font-options"><code cl </div> <hr> <div class="refsect2" lang="en"> -<a name="id2645604"></a><h3> +<a name="id2647189"></a><h3> <a name="cairo-set-font-face"></a>cairo_set_font_face ()</h3> -<a class="indexterm" name="id2645616"></a><pre class="programlisting">void cairo_set_font_face (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2647200"></a><pre class="programlisting">void cairo_set_font_face (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a> *font_face);</pre> <p> Replaces the current <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t"><span class="type">cairo_font_face_t</span></a> object in the <a class="link" href="cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a> with @@ -440,9 +463,9 @@ destroyed if there are no other references to it.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2645740"></a><h3> +<a name="id2647310"></a><h3> <a name="cairo-get-font-face"></a>cairo_get_font_face ()</h3> -<a class="indexterm" name="id2645752"></a><pre class="programlisting"><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a>* cairo_get_font_face (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> +<a class="indexterm" name="id2647320"></a><pre class="programlisting"><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a>* cairo_get_font_face (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> <p> Gets the current font face for a <a class="link" href="cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a>.</p> <p> @@ -464,13 +487,11 @@ cairo_font_face_reference. This function never returns <code class="literal">NULL</code>. If memory cannot be allocated, a special "nil" <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t"><span class="type">cairo_font_face_t</span></a> object will be returned on which -<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-status"><code class="function">cairo_font_face_status()</code></a> returns <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS" -><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a>. Using +<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-status"><code class="function">cairo_font_face_status()</code></a> returns <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a>. Using this nil object will cause its error state to propagate to other objects it is passed to, (for example, calling <a class="link" href="cairo-Text.html#cairo-set-font-face"><code class="function">cairo_set_font_face()</code></a> with a nil font will trigger an error that -will shutdown the cairo_t object). +will shutdown the <a class="link" href="cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a> object). </td> </tr> </tbody> @@ -478,9 +499,9 @@ will shutdown the cairo_t object). </div> <hr> <div class="refsect2" lang="en"> -<a name="id2645877"></a><h3> +<a name="id2647440"></a><h3> <a name="cairo-set-scaled-font"></a>cairo_set_scaled_font ()</h3> -<a class="indexterm" name="id2625433"></a><pre class="programlisting">void cairo_set_scaled_font (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2647453"></a><pre class="programlisting">void cairo_set_scaled_font (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, const <a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);</pre> <p> Replaces the current font face, font matrix, and font options in @@ -511,9 +532,9 @@ using <a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-get-ctm">< </div> <hr> <div class="refsect2" lang="en"> -<a name="id2645992"></a><h3> +<a name="id2647572"></a><h3> <a name="cairo-get-scaled-font"></a>cairo_get_scaled_font ()</h3> -<a class="indexterm" name="id2646004"></a><pre class="programlisting"><a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a>* cairo_get_scaled_font (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> +<a class="indexterm" name="id2647584"></a><pre class="programlisting"><a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a>* cairo_get_scaled_font (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> <p> Gets the current scaled font for a <a class="link" href="cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a>.</p> <p> @@ -535,13 +556,11 @@ cairo. To keep a reference to it, you must call This function never returns <code class="literal">NULL</code>. If memory cannot be allocated, a special "nil" <a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t"><span class="type">cairo_scaled_font_t</span></a> object will be returned on which -<a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-status"><code class="function">cairo_scaled_font_status()</code></a> returns <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS" -><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a>. Using +<a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-status"><code class="function">cairo_scaled_font_status()</code></a> returns <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a>. Using this nil object will cause its error state to propagate to other objects it is passed to, (for example, calling <a class="link" href="cairo-Text.html#cairo-set-scaled-font"><code class="function">cairo_set_scaled_font()</code></a> with a nil font will trigger an error that -will shutdown the cairo_t object). +will shutdown the <a class="link" href="cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a> object). </td> </tr> @@ -552,9 +571,9 @@ will shutdown the cairo_t object). </div> <hr> <div class="refsect2" lang="en"> -<a name="id2646133"></a><h3> +<a name="id2647719"></a><h3> <a name="cairo-show-text"></a>cairo_show_text ()</h3> -<a class="indexterm" name="id2646143"></a><pre class="programlisting">void cairo_show_text (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2647729"></a><pre class="programlisting">void cairo_show_text (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, const char *utf8);</pre> <p> A drawing operator that generates the shape from a string of UTF-8 @@ -576,7 +595,7 @@ by its advance values. This allows for easy display of a single logical string with multiple calls to <a class="link" href="cairo-Text.html#cairo-show-text"><code class="function">cairo_show_text()</code></a>. </p> <p> -NOTE: The <a class="link" href="cairo-Text.html#cairo-show-text"><code class="function">cairo_show_text()</code></a> function call is part of what the cairo +Note: The <a class="link" href="cairo-Text.html#cairo-show-text"><code class="function">cairo_show_text()</code></a> function call is part of what the cairo designers call the "toy" text API. It is convenient for short demos and simple programs, but it is not expected to be adequate for serious text-using applications. See <a class="link" href="cairo-Text.html#cairo-show-glyphs"><code class="function">cairo_show_glyphs()</code></a> for the @@ -602,9 +621,9 @@ serious text-using applications. See <a class="link" href="cairo-Text.html#cairo </div> <hr> <div class="refsect2" lang="en"> -<a name="id2646259"></a><h3> +<a name="id2647844"></a><h3> <a name="cairo-show-glyphs"></a>cairo_show_glyphs ()</h3> -<a class="indexterm" name="id2646269"></a><pre class="programlisting">void cairo_show_glyphs (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2647855"></a><pre class="programlisting">void cairo_show_glyphs (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, const <a class="link" href="cairo-Text.html#cairo-glyph-t">cairo_glyph_t</a> *glyphs, int num_glyphs);</pre> <p> @@ -637,9 +656,9 @@ rendered according to the current font_face, font_size </div> <hr> <div class="refsect2" lang="en"> -<a name="id2646354"></a><h3> +<a name="id2647940"></a><h3> <a name="cairo-font-extents"></a>cairo_font_extents ()</h3> -<a class="indexterm" name="id2646364"></a><pre class="programlisting">void cairo_font_extents (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2647950"></a><pre class="programlisting">void cairo_font_extents (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, <a class="link" href="cairo-Scaled-Fonts.html#cairo-font-extents-t">cairo_font_extents_t</a> *extents);</pre> <p> Gets the font extents for the currently selected font.</p> @@ -665,9 +684,9 @@ will be stored. </div> <hr> <div class="refsect2" lang="en"> -<a name="id2646442"></a><h3> +<a name="id2648028"></a><h3> <a name="cairo-text-extents"></a>cairo_text_extents ()</h3> -<a class="indexterm" name="id2646452"></a><pre class="programlisting">void cairo_text_extents (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2648038"></a><pre class="programlisting">void cairo_text_extents (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, const char *utf8, <a class="link" href="cairo-Scaled-Fonts.html#cairo-text-extents-t">cairo_text_extents_t</a> *extents);</pre> <p> @@ -711,9 +730,9 @@ will be stored </div> <hr> <div class="refsect2" lang="en"> -<a name="id2646580"></a><h3> +<a name="id2648166"></a><h3> <a name="cairo-glyph-extents"></a>cairo_glyph_extents ()</h3> -<a class="indexterm" name="id2646590"></a><pre class="programlisting">void cairo_glyph_extents (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2648176"></a><pre class="programlisting">void cairo_glyph_extents (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, const <a class="link" href="cairo-Text.html#cairo-glyph-t">cairo_glyph_t</a> *glyphs, int num_glyphs, <a class="link" href="cairo-Scaled-Fonts.html#cairo-text-extents-t">cairo_text_extents_t</a> *extents);</pre> @@ -760,9 +779,22 @@ will be stored </div> </div> <div class="refsect1" lang="en"> -<a name="id2646736"></a><div class="refsect2" lang="en"><a name="id2646738"></a></div> +<a name="id2648322"></a><h2>See Also</h2> +<p> +</p> +<div class="itemizedlist"><ul type="disc"> +<li><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t"><span class="type">cairo_font_face_t</span></a></li> +<li><a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t"><span class="type">cairo_scaled_font_t</span></a></li> +<li><a class="link" href="cairo-Paths.html#cairo-text-path"><code class="function">cairo_text_path()</code></a></li> +<li><a class="link" href="cairo-Paths.html#cairo-glyph-path"><code class="function">cairo_glyph_path()</code></a></li> +</ul></div> +<p> +</p> +</div> +<div class="refsect1" lang="en"> +<a name="id2648368"></a><div class="refsect2" lang="en"><a name="id2648369"></a></div> <hr> -<div class="refsect2" lang="en"><a name="id2646739"></a></div> +<div class="refsect2" lang="en"><a name="id2648370"></a></div> </div> </div> </body> diff --git a/doc/public/html/cairo-Transformations.html b/doc/public/html/cairo-Transformations.html index d510208..eaabadb 100644 --- a/doc/public/html/cairo-Transformations.html +++ b/doc/public/html/cairo-Transformations.html @@ -6,12 +6,10 @@ <meta name="generator" content="DocBook XSL Stylesheets V1.73.2"> <link rel="start" href="index.html" title="Cairo: A Vector Graphics Library"> <link rel="up" href="Drawing.html" title="Drawing"> -<link rel="prev" href="cairo-Patterns.html" title="Patterns"> +<link rel="prev" href="cairo-Patterns.html" title="cairo_pattern_t"> <link rel="next" href="cairo-Text.html" title="Text"> <meta name="generator" content="GTK-Doc V1.9 (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"> @@ -19,6 +17,7 @@ <link rel="index" href="ix01.html" title="Index"> <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2"> <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6"> <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"> @@ -30,16 +29,16 @@ <th width="100%" align="center">Cairo: A Vector Graphics Library</th> <td><a accesskey="n" href="cairo-Text.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="#id2627805" class="shortcut">Top</a> +<tr><td colspan="5" class="shortcuts"><nobr><a href="#id2617095" class="shortcut">Top</a>  |  - <a href="#id2629284" class="shortcut">Description</a></nobr></td></tr> + <a href="#id2586811" class="shortcut">Description</a></nobr></td></tr> </table> <div class="refentry" lang="en"> <a name="cairo-Transformations"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> <td valign="top"> <h2> -<a name="id2627805"></a><span class="refentrytitle">Transformations</span> +<a name="id2617095"></a><span class="refentrytitle">Transformations</span> </h2> <p>Transformations — Manipulating the current transformation matrix</p> </td> @@ -81,24 +80,28 @@ void <a class="link" href="cairo-Transformations.html#cairo-devic </pre> </div> <div class="refsect1" lang="en"> -<a name="id2629284"></a><h2>Description</h2> +<a name="id2586811"></a><h2>Description</h2> <p> - +The current transformation matrix, <em class="firstterm">ctm</em>, is a +two-dimensional affine transformation that maps all coordinates and other +drawing instruments from the <em class="firstterm">user space</em> into the +surface's canonical coordinate system, also known as the <em class="firstterm">device +space</em>. </p> </div> <div class="refsect1" lang="en"> -<a name="id2629300"></a><h2>Details</h2> +<a name="id2586840"></a><h2>Details</h2> <div class="refsect2" lang="en"> -<a name="id2576431"></a><h3> +<a name="id2586851"></a><h3> <a name="cairo-translate"></a>cairo_translate ()</h3> -<a class="indexterm" name="id2576444"></a><pre class="programlisting">void cairo_translate (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2586863"></a><pre class="programlisting">void cairo_translate (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, double tx, double ty);</pre> <p> Modifies the current transformation matrix (CTM) by translating the user-space origin by (<em class="parameter"><code>tx</code></em>, <em class="parameter"><code>ty</code></em>). This offset is interpreted as a user-space coordinate according to the CTM in place before the new -call to cairo_translate. In other words, the translation of the +call to <a class="link" href="cairo-Transformations.html#cairo-translate"><code class="function">cairo_translate()</code></a>. In other words, the translation of the user-space origin takes place after any existing transformation.</p> <p> @@ -126,9 +129,9 @@ user-space origin takes place after any existing transformation.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2576553"></a><h3> +<a name="id2576384"></a><h3> <a name="cairo-scale"></a>cairo_scale ()</h3> -<a class="indexterm" name="id2576565"></a><pre class="programlisting">void cairo_scale (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2576396"></a><pre class="programlisting">void cairo_scale (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, double sx, double sy);</pre> <p> @@ -162,9 +165,9 @@ space.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2576746"></a><h3> +<a name="id2576503"></a><h3> <a name="cairo-rotate"></a>cairo_rotate ()</h3> -<a class="indexterm" name="id2576758"></a><pre class="programlisting">void cairo_rotate (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2576515"></a><pre class="programlisting">void cairo_rotate (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, double angle);</pre> <p> Modifies the current transformation matrix (CTM) by rotating the @@ -194,9 +197,9 @@ rotated </div> <hr> <div class="refsect2" lang="en"> -<a name="id2576841"></a><h3> +<a name="id2576598"></a><h3> <a name="cairo-transform"></a>cairo_transform ()</h3> -<a class="indexterm" name="id2576853"></a><pre class="programlisting">void cairo_transform (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2625779"></a><pre class="programlisting">void cairo_transform (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, const <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);</pre> <p> Modifies the current transformation matrix (CTM) by applying @@ -223,9 +226,9 @@ user space takes place after any existing transformation.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2626555"></a><h3> +<a name="id2625860"></a><h3> <a name="cairo-set-matrix"></a>cairo_set_matrix ()</h3> -<a class="indexterm" name="id2626567"></a><pre class="programlisting">void cairo_set_matrix (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2625872"></a><pre class="programlisting">void cairo_set_matrix (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, const <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);</pre> <p> Modifies the current transformation matrix (CTM) by setting it @@ -251,9 +254,9 @@ equal to <em class="parameter"><code>matrix</code></em>.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2626647"></a><h3> +<a name="id2625952"></a><h3> <a name="cairo-get-matrix"></a>cairo_get_matrix ()</h3> -<a class="indexterm" name="id2626659"></a><pre class="programlisting">void cairo_get_matrix (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2625964"></a><pre class="programlisting">void cairo_get_matrix (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);</pre> <p> Stores the current transformation matrix (CTM) into <em class="parameter"><code>matrix</code></em>.</p> @@ -278,9 +281,9 @@ Stores the current transformation matrix (CTM) into <em class="parameter"><code> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2626737"></a><h3> +<a name="id2588257"></a><h3> <a name="cairo-identity-matrix"></a>cairo_identity_matrix ()</h3> -<a class="indexterm" name="id2626748"></a><pre class="programlisting">void cairo_identity_matrix (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> +<a class="indexterm" name="id2588269"></a><pre class="programlisting">void cairo_identity_matrix (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> <p> Resets the current transformation matrix (CTM) by setting it equal to the identity matrix. That is, the user-space and device-space @@ -300,9 +303,9 @@ device-space unit.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2626801"></a><h3> +<a name="id2588322"></a><h3> <a name="cairo-user-to-device"></a>cairo_user_to_device ()</h3> -<a class="indexterm" name="id2628709"></a><pre class="programlisting">void cairo_user_to_device (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2588333"></a><pre class="programlisting">void cairo_user_to_device (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, double *x, double *y);</pre> <p> @@ -335,9 +338,9 @@ multiplying the given point by the current transformation matrix </div> <hr> <div class="refsect2" lang="en"> -<a name="id2628803"></a><h3> +<a name="id2588427"></a><h3> <a name="cairo-user-to-device-distance"></a>cairo_user_to_device_distance ()</h3> -<a class="indexterm" name="id2628814"></a><pre class="programlisting">void cairo_user_to_device_distance (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2588438"></a><pre class="programlisting">void cairo_user_to_device_distance (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, double *dx, double *dy);</pre> <p> @@ -371,9 +374,9 @@ translation components of the CTM will be ignored when transforming </div> <hr> <div class="refsect2" lang="en"> -<a name="id2628931"></a><h3> +<a name="id2586203"></a><h3> <a name="cairo-device-to-user"></a>cairo_device_to_user ()</h3> -<a class="indexterm" name="id2628942"></a><pre class="programlisting">void cairo_device_to_user (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2586214"></a><pre class="programlisting">void cairo_device_to_user (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, double *x, double *y);</pre> <p> @@ -406,9 +409,9 @@ transformation matrix (CTM).</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2629037"></a><h3> +<a name="id2586309"></a><h3> <a name="cairo-device-to-user-distance"></a>cairo_device_to_user_distance ()</h3> -<a class="indexterm" name="id2629048"></a><pre class="programlisting">void cairo_device_to_user_distance (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2586320"></a><pre class="programlisting">void cairo_device_to_user_distance (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, double *dx, double *dy);</pre> <p> @@ -442,9 +445,17 @@ transforming (<em class="parameter"><code>dx</code></em>,<em class="parameter">< </div> </div> <div class="refsect1" lang="en"> -<a name="id2628281"></a><div class="refsect2" lang="en"><a name="id2628282"></a></div> +<a name="id2594082"></a><h2>See Also</h2> +<p> +</p> +<div class="itemizedlist"><ul type="disc"><li><a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t"><span class="type">cairo_matrix_t</span></a></li></ul></div> +<p> +</p> +</div> +<div class="refsect1" lang="en"> +<a name="id2594105"></a><div class="refsect2" lang="en"><a name="id2594106"></a></div> <hr> -<div class="refsect2" lang="en"><a name="id2628283"></a></div> +<div class="refsect2" lang="en"><a name="id2594107"></a></div> </div> </div> </body> diff --git a/doc/public/html/cairo-Types.html b/doc/public/html/cairo-Types.html index 147d2c6..f07ba49 100644 --- a/doc/public/html/cairo-Types.html +++ b/doc/public/html/cairo-Types.html @@ -10,8 +10,6 @@ <link rel="next" href="ix01.html" title="Index"> <meta name="generator" content="GTK-Doc V1.9 (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"> @@ -19,6 +17,7 @@ <link rel="index" href="ix01.html" title="Index"> <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2"> <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6"> <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"> @@ -30,18 +29,18 @@ <th width="100%" align="center">Cairo: A Vector Graphics Library</th> <td><a accesskey="n" href="ix01.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="#id2626946" class="shortcut">Top</a> +<tr><td colspan="5" class="shortcuts"><nobr><a href="#id2604716" class="shortcut">Top</a>  |  - <a href="#id2620885" class="shortcut">Description</a></nobr></td></tr> + <a href="#id2621106" class="shortcut">Description</a></nobr></td></tr> </table> <div class="refentry" lang="en"> <a name="cairo-Types"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> <td valign="top"> <h2> -<a name="id2626946"></a><span class="refentrytitle">Types</span> +<a name="id2604716"></a><span class="refentrytitle">Types</span> </h2> -<p>Types — Generic data types used in the cairo API</p> +<p>Types — Generic data types</p> </td> <td valign="top" align="right"></td> </tr></table></div> @@ -57,17 +56,17 @@ void (<a class="link" href="cairo-Types.html#cairo-destroy-func-t </pre> </div> <div class="refsect1" lang="en"> -<a name="id2620885"></a><h2>Description</h2> +<a name="id2621106"></a><h2>Description</h2> <p> - +Generic data types used in the cairo API </p> </div> <div class="refsect1" lang="en"> -<a name="id2669671"></a><h2>Details</h2> +<a name="id2593741"></a><h2>Details</h2> <div class="refsect2" lang="en"> -<a name="id2669682"></a><h3> +<a name="id2615257"></a><h3> <a name="cairo-bool-t"></a>cairo_bool_t</h3> -<a class="indexterm" name="id2669693"></a><pre class="programlisting">typedef int cairo_bool_t; +<a class="indexterm" name="id2608317"></a><pre class="programlisting">typedef int cairo_bool_t; </pre> <p> <a class="link" href="cairo-Types.html#cairo-bool-t"><span class="type">cairo_bool_t</span></a> is used for boolean values. Returns of type @@ -88,9 +87,9 @@ value as a boolean condition. </div> <hr> <div class="refsect2" lang="en"> -<a name="id2669741"></a><h3> +<a name="id2659580"></a><h3> <a name="cairo-user-data-key-t"></a>cairo_user_data_key_t</h3> -<a class="indexterm" name="id2669752"></a><pre class="programlisting">typedef struct { +<a class="indexterm" name="id2659592"></a><pre class="programlisting">typedef struct { int unused; } cairo_user_data_key_t; </pre> @@ -114,9 +113,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="id2669821"></a><h3> +<a name="id2658734"></a><h3> <a name="cairo-destroy-func-t"></a>cairo_destroy_func_t ()</h3> -<a class="indexterm" name="id2669833"></a><pre class="programlisting">void (*cairo_destroy_func_t) (void *data);</pre> +<a class="indexterm" name="id2658745"></a><pre class="programlisting">void (*cairo_destroy_func_t) (void *data);</pre> <p> <a class="link" 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 @@ -135,9 +134,9 @@ element and should free any memory and resources allocated for it.</p> </div> </div> <div class="refsect1" lang="en"> -<a name="id2669892"></a><div class="refsect2" lang="en"><a name="id2669894"></a></div> +<a name="id2589693"></a><div class="refsect2" lang="en"><a name="id2589694"></a></div> <hr> -<div class="refsect2" lang="en"><a name="id2669895"></a></div> +<div class="refsect2" lang="en"><a name="id2589695"></a></div> </div> </div> </body> diff --git a/doc/public/html/cairo-Version-Information.html b/doc/public/html/cairo-Version-Information.html index 1677963..a68f8c4 100644 --- a/doc/public/html/cairo-Version-Information.html +++ b/doc/public/html/cairo-Version-Information.html @@ -10,8 +10,6 @@ <link rel="next" href="cairo-Types.html" title="Types"> <meta name="generator" content="GTK-Doc V1.9 (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"> @@ -19,6 +17,7 @@ <link rel="index" href="ix01.html" title="Index"> <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2"> <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6"> <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"> @@ -30,16 +29,16 @@ <th width="100%" align="center">Cairo: A Vector Graphics Library</th> <td><a accesskey="n" href="cairo-Types.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="#id2585044" class="shortcut">Top</a> +<tr><td colspan="5" class="shortcuts"><nobr><a href="#id2584328" class="shortcut">Top</a>  |  - <a href="#id2666648" class="shortcut">Description</a></nobr></td></tr> + <a href="#id2670320" class="shortcut">Description</a></nobr></td></tr> </table> <div class="refentry" lang="en"> <a name="cairo-Version-Information"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> <td valign="top"> <h2> -<a name="id2585044"></a><span class="refentrytitle">Version Information</span> +<a name="id2584328"></a><span class="refentrytitle">Version Information</span> </h2> <p>Version Information — Compile-time and run-time version checks.</p> </td> @@ -62,7 +61,7 @@ const char* <a class="link" href="cairo-Version-Information.html#cairo-v </pre> </div> <div class="refsect1" lang="en"> -<a name="id2666648"></a><h2>Description</h2> +<a name="id2670320"></a><h2>Description</h2> <p> Cairo has a three-part version number scheme. In this scheme, we use even vs. odd numbers to distinguish fixed points in the software @@ -102,7 +101,7 @@ In-progress development (eg. from git) <p> </p> <div class="refsect2" lang="en"> -<a name="id2666698"></a><h3>Compatibility</h3> +<a name="id2670371"></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 @@ -130,12 +129,12 @@ rather the many states between snapshots and releases. </div> <hr> <div class="refsect2" lang="en"> -<a name="id2666737"></a><h3>Examining the version</h3> +<a name="id2670409"></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 an encoded form suitable for direct comparison. Cairo also provides a -macro (CAIRO_VERSION_ENCODE) to perform the encoding. +macro (<a class="link" href="cairo-Version-Information.html#CAIRO-VERSION-ENCODE:CAPS"><code class="function">CAIRO_VERSION_ENCODE()</code></a>) to perform the encoding. </p> <p> </p> @@ -159,7 +158,7 @@ to 1.0.0 could be achieved at compile-time or run-time as follows: </p> <div class="informalexample"><pre class="programlisting"> ##if %CAIRO_VERSION >= %CAIRO_VERSION_ENCODE(1, 0, 0) -printf ("Compiling with suitable cairo version: %%s\n", CAIRO_VERSION_STRING); +printf ("Compiling with suitable cairo version: %%s\n", %CAIRO_VERSION_STRING); ##endif if (cairo_version() >= %CAIRO_VERSION_ENCODE(1, 0, 0)) @@ -170,11 +169,11 @@ if (cairo_version() >= %CAIRO_VERSION_ENCODE(1, 0, 0)) </div> </div> <div class="refsect1" lang="en"> -<a name="id2666785"></a><h2>Details</h2> +<a name="id2673025"></a><h2>Details</h2> <div class="refsect2" lang="en"> -<a name="id2666796"></a><h3> +<a name="id2673036"></a><h3> <a name="CAIRO-VERSION:CAPS"></a>CAIRO_VERSION</h3> -<a class="indexterm" name="id2666808"></a><pre class="programlisting">#define CAIRO_VERSION</pre> +<a class="indexterm" name="id2673048"></a><pre class="programlisting">#define CAIRO_VERSION</pre> <p> The version of cairo available at compile-time, encoded using <a class="link" href="cairo-Version-Information.html#CAIRO-VERSION-ENCODE:CAPS"><code class="function">CAIRO_VERSION_ENCODE()</code></a>. @@ -182,9 +181,9 @@ The version of cairo available at compile-time, encoded using </div> <hr> <div class="refsect2" lang="en"> -<a name="id2666833"></a><h3> +<a name="id2673073"></a><h3> <a name="CAIRO-VERSION-MAJOR:CAPS"></a>CAIRO_VERSION_MAJOR</h3> -<a class="indexterm" name="id2666845"></a><pre class="programlisting">#define CAIRO_VERSION_MAJOR 1 +<a class="indexterm" name="id2673085"></a><pre class="programlisting">#define CAIRO_VERSION_MAJOR 1 </pre> <p> The major component of the version of cairo available at compile-time. @@ -192,9 +191,9 @@ The major component of the version of cairo available at compile-time. </div> <hr> <div class="refsect2" lang="en"> -<a name="id2666861"></a><h3> +<a name="id2673102"></a><h3> <a name="CAIRO-VERSION-MINOR:CAPS"></a>CAIRO_VERSION_MINOR</h3> -<a class="indexterm" name="id2666873"></a><pre class="programlisting">#define CAIRO_VERSION_MINOR 5 +<a class="indexterm" name="id2673113"></a><pre class="programlisting">#define CAIRO_VERSION_MINOR 5 </pre> <p> The minor component of the version of cairo available at compile-time. @@ -202,9 +201,9 @@ The minor component of the version of cairo available at compile-time. </div> <hr> <div class="refsect2" lang="en"> -<a name="id2669288"></a><h3> +<a name="id2673130"></a><h3> <a name="CAIRO-VERSION-MICRO:CAPS"></a>CAIRO_VERSION_MICRO</h3> -<a class="indexterm" name="id2669300"></a><pre class="programlisting">#define CAIRO_VERSION_MICRO 6 +<a class="indexterm" name="id2668889"></a><pre class="programlisting">#define CAIRO_VERSION_MICRO 8 </pre> <p> The micro component of the version of cairo available at compile-time. @@ -212,9 +211,9 @@ The micro component of the version of cairo available at compile-time. </div> <hr> <div class="refsect2" lang="en"> -<a name="id2669317"></a><h3> +<a name="id2668905"></a><h3> <a name="CAIRO-VERSION-STRING:CAPS"></a>CAIRO_VERSION_STRING</h3> -<a class="indexterm" name="id2669328"></a><pre class="programlisting">#define CAIRO_VERSION_STRING "1.5.6" +<a class="indexterm" name="id2668916"></a><pre class="programlisting">#define CAIRO_VERSION_STRING "1.5.8" </pre> <p> A human-readable string literal containing the version of cairo available @@ -223,9 +222,9 @@ at compile-time, in the form of "X.Y.Z". </div> <hr> <div class="refsect2" lang="en"> -<a name="id2669345"></a><h3> +<a name="id2668933"></a><h3> <a name="CAIRO-VERSION-ENCODE:CAPS"></a>CAIRO_VERSION_ENCODE()</h3> -<a class="indexterm" name="id2669356"></a><pre class="programlisting">#define CAIRO_VERSION_ENCODE(major, minor, micro)</pre> +<a class="indexterm" name="id2668944"></a><pre class="programlisting">#define CAIRO_VERSION_ENCODE(major, minor, micro)</pre> <p> This macro encodes the given cairo version into an integer. The numbers returned by <a class="link" href="cairo-Version-Information.html#CAIRO-VERSION:CAPS"><code class="literal">CAIRO_VERSION</code></a> and <a class="link" href="cairo-Version-Information.html#cairo-version"><code class="function">cairo_version()</code></a> are encoded using this macro. @@ -257,12 +256,12 @@ that later versions compare greater than earlier versions. </div> <hr> <div class="refsect2" lang="en"> -<a name="id2669443"></a><h3> +<a name="id2669031"></a><h3> <a name="cairo-version"></a>cairo_version ()</h3> -<a class="indexterm" name="id2669455"></a><pre class="programlisting">int cairo_version (void);</pre> +<a class="indexterm" name="id2669044"></a><pre class="programlisting">int cairo_version (void);</pre> <p> Returns the version of the cairo library encoded in a single -integer as per CAIRO_VERSION_ENCODE. The encoding ensures that +integer as per <a class="link" href="cairo-Version-Information.html#CAIRO-VERSION-ENCODE:CAPS"><code class="literal">CAIRO_VERSION_ENCODE</code></a>. The encoding ensures that later versions compare greater than earlier versions. </p> <p> @@ -293,9 +292,9 @@ equivalents <a class="link" href="cairo-Version-Information.html#CAIRO-VERSION:C </div> <hr> <div class="refsect2" lang="en"> -<a name="id2669547"></a><h3> +<a name="id2669144"></a><h3> <a name="cairo-version-string"></a>cairo_version_string ()</h3> -<a class="indexterm" name="id2669576"></a><pre class="programlisting">const char* cairo_version_string (void);</pre> +<a class="indexterm" name="id2669155"></a><pre class="programlisting">const char* cairo_version_string (void);</pre> <p> Returns the version of the cairo library as a human-readable string of the form "X.Y.Z". @@ -317,9 +316,9 @@ See also <a class="link" href="cairo-Version-Information.html#cairo-version"><co </div> </div> <div class="refsect1" lang="en"> -<a name="id2669652"></a><div class="refsect2" lang="en"><a name="id2669653"></a></div> +<a name="id2669231"></a><div class="refsect2" lang="en"><a name="id2669232"></a></div> <hr> -<div class="refsect2" lang="en"><a name="id2669654"></a></div> +<div class="refsect2" lang="en"><a name="id2669233"></a></div> </div> </div> </body> diff --git a/doc/public/html/cairo-Win32-Fonts.html b/doc/public/html/cairo-Win32-Fonts.html index 6d5678a..c48e9b8 100644 --- a/doc/public/html/cairo-Win32-Fonts.html +++ b/doc/public/html/cairo-Win32-Fonts.html @@ -10,8 +10,6 @@ <link rel="next" href="Surfaces.html" title="Surfaces"> <meta name="generator" content="GTK-Doc V1.9 (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"> @@ -19,6 +17,7 @@ <link rel="index" href="ix01.html" title="Index"> <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2"> <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6"> <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"> @@ -30,16 +29,16 @@ <th width="100%" align="center">Cairo: A Vector Graphics Library</th> <td><a accesskey="n" href="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="#id2617043" class="shortcut">Top</a> +<tr><td colspan="5" class="shortcuts"><nobr><a href="#id2614373" class="shortcut">Top</a>  |  - <a href="#id2588538" class="shortcut">Description</a></nobr></td></tr> + <a href="#id2629080" class="shortcut">Description</a></nobr></td></tr> </table> <div class="refentry" lang="en"> <a name="cairo-Win32-Fonts"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> <td valign="top"> <h2> -<a name="id2617043"></a><span class="refentrytitle">Win32 Fonts</span> +<a name="id2614373"></a><span class="refentrytitle">Win32 Fonts</span> </h2> <p>Win32 Fonts — Font support for Microsoft Windows</p> </td> @@ -51,6 +50,7 @@ +#define <a class="link" href="cairo-Win32-Fonts.html#CAIRO-HAS-WIN32-FONT:CAPS">CAIRO_HAS_WIN32_FONT</a> <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a>* <a class="link" href="cairo-Win32-Fonts.html#cairo-win32-font-face-create-for-logfontw">cairo_win32_font_face_create_for_logfontw</a> (LOGFONTW *logfont); <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a>* <a class="link" href="cairo-Win32-Fonts.html#cairo-win32-font-face-create-for-hfont">cairo_win32_font_face_create_for_hfont</a> @@ -72,17 +72,29 @@ void <a class="link" href="cairo-Win32-Fonts.html#cairo-win32-sca </pre> </div> <div class="refsect1" lang="en"> -<a name="id2588538"></a><h2>Description</h2> +<a name="id2629080"></a><h2>Description</h2> <p> - +The Microsoft Windows font backend is primarily used to render text on +Microsoft Windows systems. </p> </div> <div class="refsect1" lang="en"> -<a name="id2588554"></a><h2>Details</h2> +<a name="id2629097"></a><h2>Details</h2> +<div class="refsect2" lang="en"> +<a name="id2629108"></a><h3> +<a name="CAIRO-HAS-WIN32-FONT:CAPS"></a>CAIRO_HAS_WIN32_FONT</h3> +<a class="indexterm" name="id2648492"></a><pre class="programlisting">#define CAIRO_HAS_WIN32_FONT 1 +</pre> +<p> +Defined if the Microsoft Windows font backend is available. +This macro can be used to conditionally compile backend-specific code. +</p> +</div> +<hr> <div class="refsect2" lang="en"> -<a name="id2588565"></a><h3> +<a name="id2648508"></a><h3> <a name="cairo-win32-font-face-create-for-logfontw"></a>cairo_win32_font_face_create_for_logfontw ()</h3> -<a class="indexterm" name="id2588577"></a><pre class="programlisting"><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a>* cairo_win32_font_face_create_for_logfontw +<a class="indexterm" name="id2648521"></a><pre class="programlisting"><a class="link" 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> <p> Creates a new font for the Win32 font backend based on a @@ -115,9 +127,9 @@ and can be used with functions such as <a class="link" href="cairo-Win32-Fonts.h </div> <hr> <div class="refsect2" lang="en"> -<a name="id2646879"></a><h3> +<a name="id2648659"></a><h3> <a name="cairo-win32-font-face-create-for-hfont"></a>cairo_win32_font_face_create_for_hfont ()</h3> -<a class="indexterm" name="id2646891"></a><pre class="programlisting"><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a>* cairo_win32_font_face_create_for_hfont +<a class="indexterm" name="id2648671"></a><pre class="programlisting"><a class="link" 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> <p> Creates a new font for the Win32 font backend based on a @@ -148,9 +160,9 @@ and can be used with functions such as <a class="link" href="cairo-Win32-Fonts.h </div> <hr> <div class="refsect2" lang="en"> -<a name="id2647030"></a><h3> +<a name="id2648809"></a><h3> <a name="cairo-win32-font-face-create-for-logfontw-hfont"></a>cairo_win32_font_face_create_for_logfontw_hfont ()</h3> -<a class="indexterm" name="id2647044"></a><pre class="programlisting"><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a>* cairo_win32_font_face_create_for_logfontw_hfont +<a class="indexterm" name="id2648823"></a><pre class="programlisting"><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a>* cairo_win32_font_face_create_for_logfontw_hfont (LOGFONTW *logfont, HFONT font);</pre> <p> @@ -191,9 +203,9 @@ and can be used with functions such as <a class="link" href="cairo-Win32-Fonts.h </div> <hr> <div class="refsect2" lang="en"> -<a name="id2647711"></a><h3> +<a name="id2649472"></a><h3> <a name="cairo-win32-scaled-font-select-font"></a>cairo_win32_scaled_font_select_font ()</h3> -<a class="indexterm" name="id2647723"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_win32_scaled_font_select_font (<a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font, +<a class="indexterm" name="id2649484"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_win32_scaled_font_select_font (<a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font, HDC hdc);</pre> <p> Selects the font into the given device context and changes the @@ -230,12 +242,8 @@ the use of this function to preserve the original graphics state.</p> </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> -<td> <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS" -><code class="literal">CAIRO_STATUS_SUCCESS</code></a> if the operation succeeded. - otherwise an error such as <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS" -><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a> and +<td> <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> if the operation succeeded. + otherwise an error such as <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a> and the device context is unchanged. </td> </tr> @@ -244,9 +252,9 @@ href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS" </div> <hr> <div class="refsect2" lang="en"> -<a name="id2647897"></a><h3> +<a name="id2649657"></a><h3> <a name="cairo-win32-scaled-font-done-font"></a>cairo_win32_scaled_font_done_font ()</h3> -<a class="indexterm" name="id2647909"></a><pre class="programlisting">void cairo_win32_scaled_font_done_font (<a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);</pre> +<a class="indexterm" name="id2649670"></a><pre class="programlisting">void cairo_win32_scaled_font_done_font (<a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);</pre> <p> Releases any resources allocated by <a class="link" href="cairo-Win32-Fonts.html#cairo-win32-scaled-font-select-font"><code class="function">cairo_win32_scaled_font_select_font()</code></a></p> <p> @@ -263,9 +271,9 @@ Releases any resources allocated by <a class="link" href="cairo-Win32-Fonts.html </div> <hr> <div class="refsect2" lang="en"> -<a name="id2647968"></a><h3> +<a name="id2649730"></a><h3> <a name="cairo-win32-scaled-font-get-metrics-factor"></a>cairo_win32_scaled_font_get_metrics_factor ()</h3> -<a class="indexterm" name="id2647982"></a><pre class="programlisting">double cairo_win32_scaled_font_get_metrics_factor +<a class="indexterm" name="id2649745"></a><pre class="programlisting">double cairo_win32_scaled_font_get_metrics_factor (<a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);</pre> <p> Gets a scale factor between logical coordinates in the coordinate @@ -294,9 +302,9 @@ font space coordinates.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2648058"></a><h3> +<a name="id2649821"></a><h3> <a name="cairo-win32-scaled-font-get-logical-to-device"></a>cairo_win32_scaled_font_get_logical_to_device ()</h3> -<a class="indexterm" name="id2648074"></a><pre class="programlisting">void cairo_win32_scaled_font_get_logical_to_device +<a class="indexterm" name="id2649837"></a><pre class="programlisting">void cairo_win32_scaled_font_get_logical_to_device (<a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font, <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *logical_to_device);</pre> <p> @@ -325,9 +333,9 @@ to device space.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2648162"></a><h3> +<a name="id2649925"></a><h3> <a name="cairo-win32-scaled-font-get-device-to-logical"></a>cairo_win32_scaled_font_get_device_to_logical ()</h3> -<a class="indexterm" name="id2648178"></a><pre class="programlisting">void cairo_win32_scaled_font_get_device_to_logical +<a class="indexterm" name="id2649941"></a><pre class="programlisting">void cairo_win32_scaled_font_get_device_to_logical (<a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font, <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *device_to_logical);</pre> <p> @@ -356,9 +364,17 @@ used by <em class="parameter"><code>scaled_font</code></em>.</p> </div> </div> <div class="refsect1" lang="en"> -<a name="id2648268"></a><div class="refsect2" lang="en"><a name="id2648269"></a></div> +<a name="id2650031"></a><h2>See Also</h2> +<p> +</p> +<div class="itemizedlist"><ul type="disc"><li><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t"><span class="type">cairo_font_face_t</span></a></li></ul></div> +<p> +</p> +</div> +<div class="refsect1" lang="en"> +<a name="id2657186"></a><div class="refsect2" lang="en"><a name="id2657187"></a></div> <hr> -<div class="refsect2" lang="en"><a name="id2648270"></a></div> +<div class="refsect2" lang="en"><a name="id2657188"></a></div> </div> </div> </body> diff --git a/doc/public/html/cairo-Win32-Surfaces.html b/doc/public/html/cairo-Win32-Surfaces.html index f5ec1c8..0aa381d 100644 --- a/doc/public/html/cairo-Win32-Surfaces.html +++ b/doc/public/html/cairo-Win32-Surfaces.html @@ -10,8 +10,6 @@ <link rel="next" href="cairo-SVG-Surfaces.html" title="SVG Surfaces"> <meta name="generator" content="GTK-Doc V1.9 (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"> @@ -19,6 +17,7 @@ <link rel="index" href="ix01.html" title="Index"> <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2"> <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6"> <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"> @@ -30,16 +29,16 @@ <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="#id2612060" class="shortcut">Top</a> +<tr><td colspan="5" class="shortcuts"><nobr><a href="#id2622060" class="shortcut">Top</a>  |  - <a href="#id2655595" class="shortcut">Description</a></nobr></td></tr> + <a href="#id2665340" class="shortcut">Description</a></nobr></td></tr> </table> <div class="refentry" lang="en"> <a name="cairo-Win32-Surfaces"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> <td valign="top"> <h2> -<a name="id2612060"></a><span class="refentrytitle">Win32 Surfaces</span> +<a name="id2622060"></a><span class="refentrytitle">Win32 Surfaces</span> </h2> <p>Win32 Surfaces — Microsoft Windows surface support</p> </td> @@ -51,6 +50,7 @@ +#define <a class="link" href="cairo-Win32-Surfaces.html#CAIRO-HAS-WIN32-SURFACE:CAPS">CAIRO_HAS_WIN32_SURFACE</a> <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* <a class="link" href="cairo-Win32-Surfaces.html#cairo-win32-surface-create">cairo_win32_surface_create</a> (HDC hdc); <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* <a class="link" href="cairo-Win32-Surfaces.html#cairo-win32-surface-create-with-dib">cairo_win32_surface_create_with_dib</a> (<a class="link" href="cairo-Image-Surfaces.html#cairo-format-t">cairo_format_t</a> format, int width, @@ -65,17 +65,38 @@ HDC <a class="link" href="cairo-Win32-Surfaces.html#cairo-win32- </pre> </div> <div class="refsect1" lang="en"> -<a name="id2655595"></a><h2>Description</h2> +<a name="id2665340"></a><h2>Description</h2> <p> - +The Microsoft Windows surface is used to render cairo graphics to +Microsoft Windows windows, bitmaps, and printing device contexts. +</p> +<p> +The surface returned by <a class="link" href="cairo-Win32-Surfaces.html#cairo-win32-printing-surface-create"><code class="function">cairo_win32_printing_surface_create()</code></a> is of surface +type <a class="link" href="cairo-cairo-surface-t.html#CAIRO-SURFACE-TYPE-WIN32-PRINTING:CAPS"><code class="literal">CAIRO_SURFACE_TYPE_WIN32_PRINTING</code></a> and is a multi-page vector surface +type. +</p> +<p> +The surface returned by the other win32 constructors is of surface type +<a class="link" href="cairo-cairo-surface-t.html#CAIRO-SURFACE-TYPE-WIN32:CAPS"><code class="literal">CAIRO_SURFACE_TYPE_WIN32</code></a> and is a raster surface type. </p> </div> <div class="refsect1" lang="en"> -<a name="id2655611"></a><h2>Details</h2> +<a name="id2665392"></a><h2>Details</h2> <div class="refsect2" lang="en"> -<a name="id2655274"></a><h3> +<a name="id2665403"></a><h3> +<a name="CAIRO-HAS-WIN32-SURFACE:CAPS"></a>CAIRO_HAS_WIN32_SURFACE</h3> +<a class="indexterm" name="id2665414"></a><pre class="programlisting">#define CAIRO_HAS_WIN32_SURFACE 1 +</pre> +<p> +Defined if the Microsoft Windows surface backend is available. +This macro can be used to conditionally compile backend-specific code. +</p> +</div> +<hr> +<div class="refsect2" lang="en"> +<a name="id2665431"></a><h3> <a name="cairo-win32-surface-create"></a>cairo_win32_surface_create ()</h3> -<a class="indexterm" name="id2655285"></a><pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_win32_surface_create (HDC hdc);</pre> +<a class="indexterm" name="id2665443"></a><pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_win32_surface_create (HDC hdc);</pre> <p> Creates a cairo surface that targets the given DC. The DC will be queried for its initial clip extents, and this will be used as the @@ -103,9 +124,9 @@ be set appropriately.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2655349"></a><h3> +<a name="id2665506"></a><h3> <a name="cairo-win32-surface-create-with-dib"></a>cairo_win32_surface_create_with_dib ()</h3> -<a class="indexterm" name="id2655362"></a><pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_win32_surface_create_with_dib (<a class="link" href="cairo-Image-Surfaces.html#cairo-format-t">cairo_format_t</a> format, +<a class="indexterm" name="id2665521"></a><pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_win32_surface_create_with_dib (<a class="link" href="cairo-Image-Surfaces.html#cairo-format-t">cairo_format_t</a> format, int width, int height);</pre> <p> @@ -146,9 +167,9 @@ bitmap will be uninitialized.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2662687"></a><h3> +<a name="id2666021"></a><h3> <a name="cairo-win32-surface-create-with-ddb"></a>cairo_win32_surface_create_with_ddb ()</h3> -<a class="indexterm" name="id2662701"></a><pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_win32_surface_create_with_ddb (HDC hdc, +<a class="indexterm" name="id2666037"></a><pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_win32_surface_create_with_ddb (HDC hdc, <a class="link" href="cairo-Image-Surfaces.html#cairo-format-t">cairo_format_t</a> format, int width, int height);</pre> @@ -195,9 +216,9 @@ bitmap will be uninitialized.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2662836"></a><h3> +<a name="id2666172"></a><h3> <a name="cairo-win32-printing-surface-create"></a>cairo_win32_printing_surface_create ()</h3> -<a class="indexterm" name="id2662850"></a><pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_win32_printing_surface_create (HDC hdc);</pre> +<a class="indexterm" name="id2666186"></a><pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_win32_printing_surface_create (HDC hdc);</pre> <p> Creates a cairo surface that targets the given DC. The DC will be queried for its initial clip extents, and this will be used as the @@ -230,12 +251,12 @@ associated methods must be used for correct output.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2663340"></a><h3> +<a name="id2658433"></a><h3> <a name="cairo-win32-surface-get-dc"></a>cairo_win32_surface_get_dc ()</h3> -<a class="indexterm" name="id2663354"></a><pre class="programlisting">HDC cairo_win32_surface_get_dc (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> +<a class="indexterm" name="id2658447"></a><pre class="programlisting">HDC cairo_win32_surface_get_dc (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> <p> -Returns the HDC associated with this surface, or NULL if none. -Also returns NULL if the surface is not a win32 surface.</p> +Returns the HDC associated with this surface, or <code class="literal">NULL</code> if none. +Also returns <code class="literal">NULL</code> if the surface is not a win32 surface.</p> <p> </p> @@ -249,7 +270,7 @@ Also returns NULL if the surface is not a win32 surface.</p> </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> -<td> HDC or NULL if no HDC available. +<td> HDC or <code class="literal">NULL</code> if no HDC available. </td> </tr> @@ -260,13 +281,13 @@ Also returns NULL if the surface is not a win32 surface.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2663431"></a><h3> +<a name="id2658551"></a><h3> <a name="cairo-win32-surface-get-image"></a>cairo_win32_surface_get_image ()</h3> -<a class="indexterm" name="id2663446"></a><pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_win32_surface_get_image (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> +<a class="indexterm" name="id2658566"></a><pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_win32_surface_get_image (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> <p> Returns a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t"><span class="type">cairo_surface_t</span></a> image surface that refers to the same bits as the DIB of the Win32 surface. If the passed-in win32 surface -is not a DIB surface, NULL is returned.</p> +is not a DIB surface, <code class="literal">NULL</code> is returned.</p> <p> </p> @@ -280,8 +301,8 @@ is not a DIB surface, NULL is returned.</p> </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> -<td> a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t"><span class="type">cairo_surface_t</span></a> (owned by the win32 cairo_surface_t), -or NULL if the win32 surface is not a DIB. +<td> a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t"><span class="type">cairo_surface_t</span></a> (owned by the win32 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t"><span class="type">cairo_surface_t</span></a>), +or <code class="literal">NULL</code> if the win32 surface is not a DIB. </td> </tr> @@ -292,9 +313,17 @@ or NULL if the win32 surface is not a DIB. </div> </div> <div class="refsect1" lang="en"> -<a name="id2663541"></a><div class="refsect2" lang="en"><a name="id2663542"></a></div> +<a name="id2663351"></a><h2>See Also</h2> +<p> +</p> +<div class="itemizedlist"><ul type="disc"><li><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t"><span class="type">cairo_surface_t</span></a></li></ul></div> +<p> +</p> +</div> +<div class="refsect1" lang="en"> +<a name="id2663374"></a><div class="refsect2" lang="en"><a name="id2663375"></a></div> <hr> -<div class="refsect2" lang="en"><a name="id2663543"></a></div> +<div class="refsect2" lang="en"><a name="id2663376"></a></div> </div> </div> </body> diff --git a/doc/public/html/cairo-XLib-Surfaces.html b/doc/public/html/cairo-XLib-Surfaces.html index 4a278b1..de79cc0 100644 --- a/doc/public/html/cairo-XLib-Surfaces.html +++ b/doc/public/html/cairo-XLib-Surfaces.html @@ -10,8 +10,6 @@ <link rel="next" href="Support.html" title="Utilities"> <meta name="generator" content="GTK-Doc V1.9 (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"> @@ -19,6 +17,7 @@ <link rel="index" href="ix01.html" title="Index"> <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2"> <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6"> <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"> @@ -30,16 +29,16 @@ <th width="100%" align="center">Cairo: A Vector Graphics Library</th> <td><a accesskey="n" href="Support.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="#id2596991" class="shortcut">Top</a> +<tr><td colspan="5" class="shortcuts"><nobr><a href="#id2616198" class="shortcut">Top</a>  |  - <a href="#id2661248" class="shortcut">Description</a></nobr></td></tr> + <a href="#id2668769" class="shortcut">Description</a></nobr></td></tr> </table> <div class="refentry" lang="en"> <a name="cairo-XLib-Surfaces"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> <td valign="top"> <h2> -<a name="id2596991"></a><span class="refentrytitle">XLib Surfaces</span> +<a name="id2616198"></a><span class="refentrytitle">XLib Surfaces</span> </h2> <p>XLib Surfaces — X Window System rendering using XLib</p> </td> @@ -51,6 +50,7 @@ +#define <a class="link" href="cairo-XLib-Surfaces.html#CAIRO-HAS-XLIB-SURFACE:CAPS">CAIRO_HAS_XLIB_SURFACE</a> <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* <a class="link" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-create">cairo_xlib_surface_create</a> (Display *dpy, Drawable drawable, Visual *visual, @@ -79,17 +79,33 @@ int <a class="link" href="cairo-XLib-Surfaces.html#cairo-xlib-su </pre> </div> <div class="refsect1" lang="en"> -<a name="id2661248"></a><h2>Description</h2> +<a name="id2668769"></a><h2>Description</h2> <p> - +The XLib surface is used to render cairo graphics to X Window System +windows and pixmaps using the XLib library. +</p> +<p> +Note that the XLib surface automatically takes advantage of X render extension +if it is available. </p> </div> <div class="refsect1" lang="en"> -<a name="id2661573"></a><h2>Details</h2> +<a name="id2668792"></a><h2>Details</h2> <div class="refsect2" lang="en"> -<a name="id2661584"></a><h3> +<a name="id2668802"></a><h3> +<a name="CAIRO-HAS-XLIB-SURFACE:CAPS"></a>CAIRO_HAS_XLIB_SURFACE</h3> +<a class="indexterm" name="id2668814"></a><pre class="programlisting">#define CAIRO_HAS_XLIB_SURFACE 1 +</pre> +<p> +Defined if the XLib surface backend is available. +This macro can be used to conditionally compile backend-specific code. +</p> +</div> +<hr> +<div class="refsect2" lang="en"> +<a name="id2668830"></a><h3> <a name="cairo-xlib-surface-create"></a>cairo_xlib_surface_create ()</h3> -<a class="indexterm" name="id2661595"></a><pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_xlib_surface_create (Display *dpy, +<a class="indexterm" name="id2668842"></a><pre class="programlisting"><a class="link" 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, @@ -100,7 +116,7 @@ The way that colors are represented in the drawable is specified by the provided visual. </p> <p> -NOTE: If <em class="parameter"><code>drawable</code></em> is a Window, then the function +Note: If <em class="parameter"><code>drawable</code></em> is a Window, then the function cairo_xlib_surface_set_size must be called whenever the size of the window changes. </p> @@ -152,9 +168,9 @@ children will be included.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2661785"></a><h3> +<a name="id2664714"></a><h3> <a name="cairo-xlib-surface-create-for-bitmap"></a>cairo_xlib_surface_create_for_bitmap ()</h3> -<a class="indexterm" name="id2661796"></a><pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_xlib_surface_create_for_bitmap +<a class="indexterm" name="id2664725"></a><pre class="programlisting"><a class="link" 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, @@ -162,7 +178,7 @@ children will be included.</p> int height);</pre> <p> Creates an Xlib surface that draws to the given bitmap. -This will be drawn to as a CAIRO_FORMAT_A1 object.</p> +This will be drawn to as a <a class="link" href="cairo-Image-Surfaces.html#CAIRO-FORMAT-A1:CAPS"><code class="literal">CAIRO_FORMAT_A1</code></a> object.</p> <p> </p> @@ -204,9 +220,9 @@ This will be drawn to as a CAIRO_FORMAT_A1 object.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2661960"></a><h3> +<a name="id2664898"></a><h3> <a name="cairo-xlib-surface-set-size"></a>cairo_xlib_surface_set_size ()</h3> -<a class="indexterm" name="id2661972"></a><pre class="programlisting">void cairo_xlib_surface_set_size (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface, +<a class="indexterm" name="id2664909"></a><pre class="programlisting">void cairo_xlib_surface_set_size (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface, int width, int height);</pre> <p> @@ -246,9 +262,9 @@ this function on a surface created for a Pixmap.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2667491"></a><h3> +<a name="id2670563"></a><h3> <a name="cairo-xlib-surface-get-display"></a>cairo_xlib_surface_get_display ()</h3> -<a class="indexterm" name="id2667506"></a><pre class="programlisting">Display* cairo_xlib_surface_get_display (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> +<a class="indexterm" name="id2670575"></a><pre class="programlisting">Display* cairo_xlib_surface_get_display (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> <p> Get the X Display for the underlying X Drawable.</p> <p> @@ -275,9 +291,9 @@ Get the X Display for the underlying X Drawable.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2667573"></a><h3> +<a name="id2670643"></a><h3> <a name="cairo-xlib-surface-get-screen"></a>cairo_xlib_surface_get_screen ()</h3> -<a class="indexterm" name="id2667588"></a><pre class="programlisting">Screen* cairo_xlib_surface_get_screen (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> +<a class="indexterm" name="id2670657"></a><pre class="programlisting">Screen* cairo_xlib_surface_get_screen (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> <p> Get the X Screen for the underlying X Drawable.</p> <p> @@ -304,9 +320,9 @@ Get the X Screen for the underlying X Drawable.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2667655"></a><h3> +<a name="id2670725"></a><h3> <a name="cairo-xlib-surface-set-drawable"></a>cairo_xlib_surface_set_drawable ()</h3> -<a class="indexterm" name="id2667668"></a><pre class="programlisting">void cairo_xlib_surface_set_drawable (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface, +<a class="indexterm" name="id2670737"></a><pre class="programlisting">void cairo_xlib_surface_set_drawable (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface, Drawable drawable, int width, int height);</pre> @@ -348,9 +364,9 @@ compatibility.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2667783"></a><h3> +<a name="id2670852"></a><h3> <a name="cairo-xlib-surface-get-drawable"></a>cairo_xlib_surface_get_drawable ()</h3> -<a class="indexterm" name="id2667797"></a><pre class="programlisting">Drawable cairo_xlib_surface_get_drawable (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> +<a class="indexterm" name="id2670867"></a><pre class="programlisting">Drawable cairo_xlib_surface_get_drawable (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> <p> Get the underlying X Drawable used for the surface.</p> <p> @@ -377,9 +393,9 @@ Get the underlying X Drawable used for the surface.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2667865"></a><h3> +<a name="id2670934"></a><h3> <a name="cairo-xlib-surface-get-visual"></a>cairo_xlib_surface_get_visual ()</h3> -<a class="indexterm" name="id2667879"></a><pre class="programlisting">Visual* cairo_xlib_surface_get_visual (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> +<a class="indexterm" name="id2670949"></a><pre class="programlisting">Visual* cairo_xlib_surface_get_visual (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> <p> Get the X Visual used for underlying X Drawable.</p> <p> @@ -406,9 +422,9 @@ Get the X Visual used for underlying X Drawable.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2667947"></a><h3> +<a name="id2671016"></a><h3> <a name="cairo-xlib-surface-get-width"></a>cairo_xlib_surface_get_width ()</h3> -<a class="indexterm" name="id2667961"></a><pre class="programlisting">int cairo_xlib_surface_get_width (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> +<a class="indexterm" name="id2671030"></a><pre class="programlisting">int cairo_xlib_surface_get_width (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> <p> Get the width of the X Drawable underlying the surface in pixels.</p> <p> @@ -435,9 +451,9 @@ Get the width of the X Drawable underlying the surface in pixels.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2668030"></a><h3> +<a name="id2671098"></a><h3> <a name="cairo-xlib-surface-get-height"></a>cairo_xlib_surface_get_height ()</h3> -<a class="indexterm" name="id2668044"></a><pre class="programlisting">int cairo_xlib_surface_get_height (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> +<a class="indexterm" name="id2671113"></a><pre class="programlisting">int cairo_xlib_surface_get_height (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> <p> Get the height of the X Drawable underlying the surface in pixels.</p> <p> @@ -464,9 +480,9 @@ Get the height of the X Drawable underlying the surface in pixels.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2668113"></a><h3> +<a name="id2671181"></a><h3> <a name="cairo-xlib-surface-get-depth"></a>cairo_xlib_surface_get_depth ()</h3> -<a class="indexterm" name="id2668127"></a><pre class="programlisting">int cairo_xlib_surface_get_depth (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> +<a class="indexterm" name="id2671196"></a><pre class="programlisting">int cairo_xlib_surface_get_depth (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> <p> Get the number of bits used to represent each pixel value.</p> <p> @@ -493,9 +509,17 @@ Get the number of bits used to represent each pixel value.</p> </div> </div> <div class="refsect1" lang="en"> -<a name="id2668197"></a><div class="refsect2" lang="en"><a name="id2668198"></a></div> +<a name="id2671265"></a><h2>See Also</h2> +<p> +</p> +<div class="itemizedlist"><ul type="disc"><li><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t"><span class="type">cairo_surface_t</span></a></li></ul></div> +<p> +</p> +</div> +<div class="refsect1" lang="en"> +<a name="id2671286"></a><div class="refsect2" lang="en"><a name="id2671287"></a></div> <hr> -<div class="refsect2" lang="en"><a name="id2668199"></a></div> +<div class="refsect2" lang="en"><a name="id2671288"></a></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 6f3b84d..a6f3d63 100644 --- a/doc/public/html/cairo-cairo-font-face-t.html +++ b/doc/public/html/cairo-cairo-font-face-t.html @@ -7,11 +7,9 @@ <link rel="start" href="index.html" title="Cairo: A Vector Graphics Library"> <link rel="up" href="Fonts.html" title="Fonts"> <link rel="prev" href="Fonts.html" title="Fonts"> -<link rel="next" href="cairo-Scaled-Fonts.html" title="Scaled Fonts"> +<link rel="next" href="cairo-Scaled-Fonts.html" title="cairo_scaled_font_t"> <meta name="generator" content="GTK-Doc V1.9 (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"> @@ -19,6 +17,7 @@ <link rel="index" href="ix01.html" title="Index"> <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2"> <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6"> <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"> @@ -30,18 +29,18 @@ <th width="100%" align="center">Cairo: A Vector Graphics Library</th> <td><a accesskey="n" href="cairo-Scaled-Fonts.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="#id2584655" class="shortcut">Top</a> +<tr><td colspan="5" class="shortcuts"><nobr><a href="#id2596918" class="shortcut">Top</a>  |  - <a href="#id2640041" class="shortcut">Description</a></nobr></td></tr> + <a href="#id2641510" class="shortcut">Description</a></nobr></td></tr> </table> <div class="refentry" lang="en"> <a name="cairo-cairo-font-face-t"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> <td valign="top"> <h2> -<a name="id2584655"></a><span class="refentrytitle">cairo_font_face_t</span> +<a name="id2596918"></a><span class="refentrytitle">cairo_font_face_t</span> </h2> -<p>cairo_font_face_t — Base class for fonts</p> +<p>cairo_font_face_t — Base class for font faces</p> </td> <td valign="top" align="right"></td> </tr></table></div> @@ -67,17 +66,26 @@ void* <a class="link" href="cairo-cairo-font-face-t.html#cairo-fon </pre> </div> <div class="refsect1" lang="en"> -<a name="id2640041"></a><h2>Description</h2> +<a name="id2641510"></a><h2>Description</h2> <p> - +<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t"><span class="type">cairo_font_face_t</span></a> represents a particular font at a particular weight, +slant, and other characteristic but no size, transformation, or size. +</p> +<p> +Font faces are created using <em class="firstterm">font-backend</em>-specific +constructors, typically of the form +cairo_<span class="emphasis"><em>backend</em></span><code class="function">_font_face_create()</code>, +or implicitly using the <em class="firstterm">toy</em> text API by way of +<a class="link" href="cairo-Text.html#cairo-select-font-face"><code class="function">cairo_select_font_face()</code></a>. The resulting face can be accessed using +<a class="link" href="cairo-Text.html#cairo-get-font-face"><code class="function">cairo_get_font_face()</code></a>. </p> </div> <div class="refsect1" lang="en"> -<a name="id2640057"></a><h2>Details</h2> +<a name="id2589144"></a><h2>Details</h2> <div class="refsect2" lang="en"> -<a name="id2640068"></a><h3> +<a name="id2589155"></a><h3> <a name="cairo-font-face-t"></a>cairo_font_face_t</h3> -<a class="indexterm" name="id2640080"></a><pre class="programlisting">typedef struct _cairo_font_face cairo_font_face_t; +<a class="indexterm" name="id2589167"></a><pre class="programlisting">typedef struct _cairo_font_face cairo_font_face_t; </pre> <p> A <a class="link" 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 @@ -101,9 +109,9 @@ Memory management of <a class="link" href="cairo-cairo-font-face-t.html#cairo-fo </div> <hr> <div class="refsect2" lang="en"> -<a name="id2582070"></a><h3> +<a name="id2641917"></a><h3> <a name="cairo-font-face-reference"></a>cairo_font_face_reference ()</h3> -<a class="indexterm" name="id2582081"></a><pre class="programlisting"><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a>* cairo_font_face_reference (<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a> *font_face);</pre> +<a class="indexterm" name="id2641928"></a><pre class="programlisting"><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a>* cairo_font_face_reference (<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a> *font_face);</pre> <p> Increases the reference count on <em class="parameter"><code>font_face</code></em> by one. This prevents <em class="parameter"><code>font_face</code></em> from being destroyed until a matching call to @@ -134,9 +142,9 @@ function does nothing). </div> <hr> <div class="refsect2" lang="en"> -<a name="id2639148"></a><h3> +<a name="id2640645"></a><h3> <a name="cairo-font-face-destroy"></a>cairo_font_face_destroy ()</h3> -<a class="indexterm" name="id2639159"></a><pre class="programlisting">void cairo_font_face_destroy (<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a> *font_face);</pre> +<a class="indexterm" name="id2640656"></a><pre class="programlisting">void cairo_font_face_destroy (<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a> *font_face);</pre> <p> Decreases the reference count on <em class="parameter"><code>font_face</code></em> by one. If the result is zero, then <em class="parameter"><code>font_face</code></em> and all associated resources are freed. @@ -155,9 +163,9 @@ See <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-reference </div> <hr> <div class="refsect2" lang="en"> -<a name="id2639237"></a><h3> +<a name="id2640734"></a><h3> <a name="cairo-font-face-status"></a>cairo_font_face_status ()</h3> -<a class="indexterm" name="id2639248"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_font_face_status (<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a> *font_face);</pre> +<a class="indexterm" name="id2640745"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_font_face_status (<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a> *font_face);</pre> <p> Checks whether an error has previously occurred for this font face</p> @@ -174,12 +182,8 @@ font face</p> </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> -<td> <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS" -><code class="literal">CAIRO_STATUS_SUCCESS</code></a> or another error such as - <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS" -><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a>. +<td> <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> or another error such as + <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a>. </td> </tr> </tbody> @@ -187,9 +191,9 @@ href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS" </div> <hr> <div class="refsect2" lang="en"> -<a name="id2639334"></a><h3> +<a name="id2640830"></a><h3> <a name="cairo-font-type-t"></a>enum cairo_font_type_t</h3> -<a class="indexterm" name="id2639349"></a><pre class="programlisting">typedef enum _cairo_font_type { +<a class="indexterm" name="id2640845"></a><pre class="programlisting">typedef enum _cairo_font_type { CAIRO_FONT_TYPE_TOY, CAIRO_FONT_TYPE_FT, CAIRO_FONT_TYPE_WIN32, @@ -208,20 +212,20 @@ cairo_<span class="emphasis"><em>type</em></span>_font_face_create. The font fac with <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-get-type"><code class="function">cairo_font_face_get_type()</code></a> </p> <p> -The various cairo_font_face functions can be used with a font face +The various <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t"><span class="type">cairo_font_face_t</span></a> functions can be used with a font face of any type. </p> <p> The type of a scaled font is determined by the type of the font -face passed to cairo_scaled_font_create. The scaled font type can +face passed to <a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-create"><code class="function">cairo_scaled_font_create()</code></a>. The scaled font type can be queried with <a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-get-type"><code class="function">cairo_scaled_font_get_type()</code></a> </p> <p> -The various cairo_scaled_font functions can be used with scaled +The various <a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t"><span class="type">cairo_scaled_font_t</span></a> functions can be used with scaled 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_<span class="emphasis"><em>type</em></span>_scaled_font such as cairo_ft_scaled_font_lock_face. +cairo_<span class="emphasis"><em>type</em></span>_scaled_font such as <a class="link" href="cairo-FreeType-Fonts.html#cairo-ft-scaled-font-lock-face"><code class="function">cairo_ft_scaled_font_lock_face()</code></a>. </p> <p> The behavior of calling a type-specific function with a scaled font @@ -262,9 +266,9 @@ New entries may be added in future versions.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2639537"></a><h3> +<a name="id2577309"></a><h3> <a name="cairo-font-face-get-type"></a>cairo_font_face_get_type ()</h3> -<a class="indexterm" name="id2639550"></a><pre class="programlisting"><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-type-t">cairo_font_type_t</a> cairo_font_face_get_type (<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a> *font_face);</pre> +<a class="indexterm" name="id2577323"></a><pre class="programlisting"><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-type-t">cairo_font_type_t</a> cairo_font_face_get_type (<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a> *font_face);</pre> <p> This function returns the type of the backend used to create a font face. See <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-type-t"><span class="type">cairo_font_type_t</span></a> for available types.</p> @@ -292,9 +296,9 @@ a font face. See <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-t </div> <hr> <div class="refsect2" lang="en"> -<a name="id2639632"></a><h3> +<a name="id2577404"></a><h3> <a name="cairo-font-face-get-reference-count"></a>cairo_font_face_get_reference_count ()</h3> -<a class="indexterm" name="id2639647"></a><pre class="programlisting">unsigned int cairo_font_face_get_reference_count (<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a> *font_face);</pre> +<a class="indexterm" name="id2577419"></a><pre class="programlisting">unsigned int cairo_font_face_get_reference_count (<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a> *font_face);</pre> <p> Returns the current reference count of <em class="parameter"><code>font_face</code></em>.</p> <p> @@ -322,9 +326,9 @@ object is a nil object, 0 will be returned. </div> <hr> <div class="refsect2" lang="en"> -<a name="id2639737"></a><h3> +<a name="id2577509"></a><h3> <a name="cairo-font-face-set-user-data"></a>cairo_font_face_set_user_data ()</h3> -<a class="indexterm" name="id2639750"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_font_face_set_user_data (<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a> *font_face, +<a class="indexterm" name="id2577522"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_font_face_set_user_data (<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a> *font_face, const <a class="link" href="cairo-Types.html#cairo-user-data-key-t">cairo_user_data_key_t</a> *key, void *user_data, <a class="link" href="cairo-Types.html#cairo-destroy-func-t">cairo_destroy_func_t</a> destroy);</pre> @@ -362,11 +366,7 @@ same key. </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> -<td> <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS" -><code class="literal">CAIRO_STATUS_SUCCESS</code></a> or <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS" -><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a> if a +<td> <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> or <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a> if a slot could not be allocated for the user data. </td> </tr> @@ -375,9 +375,9 @@ slot could not be allocated for the user data. </div> <hr> <div class="refsect2" lang="en"> -<a name="id2594229"></a><h3> +<a name="id2626648"></a><h3> <a name="cairo-font-face-get-user-data"></a>cairo_font_face_get_user_data ()</h3> -<a class="indexterm" name="id2594242"></a><pre class="programlisting">void* cairo_font_face_get_user_data (<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a> *font_face, +<a class="indexterm" name="id2626661"></a><pre class="programlisting">void* cairo_font_face_get_user_data (<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a> *font_face, const <a class="link" href="cairo-Types.html#cairo-user-data-key-t">cairo_user_data_key_t</a> *key);</pre> <p> Return user data previously attached to <em class="parameter"><code>font_face</code></em> using the specified @@ -410,9 +410,17 @@ attached to </div> </div> <div class="refsect1" lang="en"> -<a name="id2594367"></a><div class="refsect2" lang="en"><a name="id2594368"></a></div> +<a name="id2626786"></a><h2>See Also</h2> +<p> +</p> +<div class="itemizedlist"><ul type="disc"><li><a class="link" href="cairo-Scaled-Fonts.html#cairo-scaled-font-t"><span class="type">cairo_scaled_font_t</span></a></li></ul></div> +<p> +</p> +</div> +<div class="refsect1" lang="en"> +<a name="id2626809"></a><div class="refsect2" lang="en"><a name="id2626810"></a></div> <hr> -<div class="refsect2" lang="en"><a name="id2594369"></a></div> +<div class="refsect2" lang="en"><a name="id2626812"></a></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 3128c7d..9703d05 100644 --- a/doc/public/html/cairo-cairo-matrix-t.html +++ b/doc/public/html/cairo-cairo-matrix-t.html @@ -10,8 +10,6 @@ <link rel="next" href="cairo-Error-Handling.html" title="Error handling"> <meta name="generator" content="GTK-Doc V1.9 (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"> @@ -19,6 +17,7 @@ <link rel="index" href="ix01.html" title="Index"> <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2"> <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6"> <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"> @@ -30,16 +29,16 @@ <th width="100%" align="center">Cairo: A Vector Graphics Library</th> <td><a accesskey="n" href="cairo-Error-Handling.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="#id2591460" class="shortcut">Top</a> +<tr><td colspan="5" class="shortcuts"><nobr><a href="#id2597043" class="shortcut">Top</a>  |  - <a href="#id2665296" class="shortcut">Description</a></nobr></td></tr> + <a href="#id2670047" class="shortcut">Description</a></nobr></td></tr> </table> <div class="refentry" lang="en"> <a name="cairo-cairo-matrix-t"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> <td valign="top"> <h2> -<a name="id2591460"></a><span class="refentrytitle">cairo_matrix_t</span> +<a name="id2597043"></a><span class="refentrytitle">cairo_matrix_t</span> </h2> <p>cairo_matrix_t — Generic matrix operations</p> </td> @@ -89,8 +88,8 @@ void <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix </pre> </div> <div class="refsect1" lang="en"> -<a name="id2665296"></a><h2>Description</h2> -<p><a class="indexterm" name="id2665308"></a><a class="indexterm" name="id2665316"></a> +<a name="id2670047"></a><h2>Description</h2> +<p> <a class="link" 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 class="link" 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. @@ -109,11 +108,11 @@ void <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix </p> </div> <div class="refsect1" lang="en"> -<a name="id2665400"></a><h2>Details</h2> +<a name="id2668040"></a><h2>Details</h2> <div class="refsect2" lang="en"> -<a name="id2665411"></a><h3> +<a name="id2668051"></a><h3> <a name="cairo-matrix-t"></a>cairo_matrix_t</h3> -<a class="indexterm" name="id2665424"></a><pre class="programlisting">typedef struct { +<a class="indexterm" name="id2668064"></a><pre class="programlisting">typedef struct { double xx; double yx; double xy; double yy; double x0; double y0; @@ -169,9 +168,9 @@ a point (x, y) is given by: </div> <hr> <div class="refsect2" lang="en"> -<a name="id2662108"></a><h3> +<a name="id2668229"></a><h3> <a name="cairo-matrix-init"></a>cairo_matrix_init ()</h3> -<a class="indexterm" name="id2662120"></a><pre class="programlisting">void cairo_matrix_init (<a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix, +<a class="indexterm" name="id2668242"></a><pre class="programlisting">void cairo_matrix_init (<a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix, double xx, double yx, double xy, @@ -195,7 +194,7 @@ by: <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>matrix</code></em> :</span></p></td> -<td> a cairo_matrix_t +<td> a <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t"><span class="type">cairo_matrix_t</span></a> </td> </tr> <tr> @@ -233,9 +232,9 @@ by: </div> <hr> <div class="refsect2" lang="en"> -<a name="id2670192"></a><h3> +<a name="id2673228"></a><h3> <a name="cairo-matrix-init-identity"></a>cairo_matrix_init_identity ()</h3> -<a class="indexterm" name="id2670202"></a><pre class="programlisting">void cairo_matrix_init_identity (<a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);</pre> +<a class="indexterm" name="id2673238"></a><pre class="programlisting">void cairo_matrix_init_identity (<a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);</pre> <p> Modifies <em class="parameter"><code>matrix</code></em> to be an identity transformation.</p> <p> @@ -252,9 +251,9 @@ Modifies <em class="parameter"><code>matrix</code></em> to be an identity transf </div> <hr> <div class="refsect2" lang="en"> -<a name="id2670257"></a><h3> +<a name="id2673294"></a><h3> <a name="cairo-matrix-init-translate"></a>cairo_matrix_init_translate ()</h3> -<a class="indexterm" name="id2670268"></a><pre class="programlisting">void cairo_matrix_init_translate (<a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix, +<a class="indexterm" name="id2673304"></a><pre class="programlisting">void cairo_matrix_init_translate (<a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix, double tx, double ty);</pre> <p> @@ -268,7 +267,7 @@ Initializes <em class="parameter"><code>matrix</code></em> to a transformation t <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>matrix</code></em> :</span></p></td> -<td> a cairo_matrix_t +<td> a <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t"><span class="type">cairo_matrix_t</span></a> </td> </tr> <tr> @@ -286,9 +285,9 @@ Initializes <em class="parameter"><code>matrix</code></em> to a transformation t </div> <hr> <div class="refsect2" lang="en"> -<a name="id2670374"></a><h3> +<a name="id2673418"></a><h3> <a name="cairo-matrix-init-scale"></a>cairo_matrix_init_scale ()</h3> -<a class="indexterm" name="id2670385"></a><pre class="programlisting">void cairo_matrix_init_scale (<a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix, +<a class="indexterm" name="id2673429"></a><pre class="programlisting">void cairo_matrix_init_scale (<a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix, double sx, double sy);</pre> <p> @@ -302,7 +301,7 @@ in the X and Y dimensions, respectively.</p> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>matrix</code></em> :</span></p></td> -<td> a cairo_matrix_t +<td> a <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t"><span class="type">cairo_matrix_t</span></a> </td> </tr> <tr> @@ -320,9 +319,9 @@ in the X and Y dimensions, respectively.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2670496"></a><h3> +<a name="id2673548"></a><h3> <a name="cairo-matrix-init-rotate"></a>cairo_matrix_init_rotate ()</h3> -<a class="indexterm" name="id2670507"></a><pre class="programlisting">void cairo_matrix_init_rotate (<a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix, +<a class="indexterm" name="id2673559"></a><pre class="programlisting">void cairo_matrix_init_rotate (<a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix, double radians);</pre> <p> Initialized <em class="parameter"><code>matrix</code></em> to a transformation that rotates by <em class="parameter"><code>radians</code></em>.</p> @@ -334,7 +333,7 @@ Initialized <em class="parameter"><code>matrix</code></em> to a transformation t <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>matrix</code></em> :</span></p></td> -<td> a cairo_matrix_t +<td> a <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t"><span class="type">cairo_matrix_t</span></a> </td> </tr> <tr> @@ -351,9 +350,9 @@ direction. </div> <hr> <div class="refsect2" lang="en"> -<a name="id2670595"></a><h3> +<a name="id2673654"></a><h3> <a name="cairo-matrix-translate"></a>cairo_matrix_translate ()</h3> -<a class="indexterm" name="id2670606"></a><pre class="programlisting">void cairo_matrix_translate (<a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix, +<a class="indexterm" name="id2673665"></a><pre class="programlisting">void cairo_matrix_translate (<a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix, double tx, double ty);</pre> <p> @@ -369,7 +368,7 @@ to the coordinates.</p> <tbody> <tr> <td><p><span class="term"><em class="parameter"><code>matrix</code></em> :</span></p></td> -<td> a cairo_matrix_t +<td> a <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t"><span class="type">cairo_matrix_t</span></a> </td> </tr> <tr> @@ -387,9 +386,9 @@ to the coordinates.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2670731"></a><h3> +<a name="id2673797"></a><h3> <a name="cairo-matrix-scale"></a>cairo_matrix_scale ()</h3> -<a class="indexterm" name="id2670744"></a><pre class="programlisting">void cairo_matrix_scale (<a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix, +<a class="indexterm" name="id2673810"></a><pre class="programlisting">void cairo_matrix_scale (<a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix, double sx, double sy);</pre> <p> @@ -422,9 +421,9 @@ by <em class="parameter"><code>sx</code></em> and <em class="parameter"><code>sy </div> <hr> <div class="refsect2" lang="en"> -<a name="id2670874"></a><h3> +<a name="id2673941"></a><h3> <a name="cairo-matrix-rotate"></a>cairo_matrix_rotate ()</h3> -<a class="indexterm" name="id2670886"></a><pre class="programlisting">void cairo_matrix_rotate (<a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix, +<a class="indexterm" name="id2673953"></a><pre class="programlisting">void cairo_matrix_rotate (<a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix, double radians);</pre> <p> Applies rotation by <em class="parameter"><code>radians</code></em> to the transformation in @@ -456,9 +455,9 @@ direction. </div> <hr> <div class="refsect2" lang="en"> -<a name="id2670989"></a><h3> +<a name="id2674055"></a><h3> <a name="cairo-matrix-invert"></a>cairo_matrix_invert ()</h3> -<a class="indexterm" name="id2671001"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_matrix_invert (<a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);</pre> +<a class="indexterm" name="id2674068"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_matrix_invert (<a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);</pre> <p> Changes <em class="parameter"><code>matrix</code></em> to be the inverse of it's original value. Not all transformation matrices have inverses; if the matrix @@ -478,12 +477,8 @@ then it has no inverse and this function will fail.</p> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> <td> If <em class="parameter"><code>matrix</code></em> has an inverse, modifies <em class="parameter"><code>matrix</code></em> to - be the inverse matrix and returns <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS" -><code class="literal">CAIRO_STATUS_SUCCESS</code></a>. Otherwise, - returns <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-INVALID-MATRIX:CAPS" -><code class="literal">CAIRO_STATUS_INVALID_MATRIX</code></a>. + be the inverse matrix and returns <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a>. Otherwise, + returns <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-INVALID-MATRIX:CAPS"><code class="literal">CAIRO_STATUS_INVALID_MATRIX</code></a>. </td> </tr> </tbody> @@ -491,9 +486,9 @@ href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-INVALID-MATRIX:CAPS" </div> <hr> <div class="refsect2" lang="en"> -<a name="id2671111"></a><h3> +<a name="id2674178"></a><h3> <a name="cairo-matrix-multiply"></a>cairo_matrix_multiply ()</h3> -<a class="indexterm" name="id2671122"></a><pre class="programlisting">void cairo_matrix_multiply (<a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *result, +<a class="indexterm" name="id2674190"></a><pre class="programlisting">void cairo_matrix_multiply (<a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *result, const <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *a, const <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *b);</pre> <p> @@ -531,9 +526,9 @@ It is allowable for <em class="parameter"><code>result</code></em> to be identic </div> <hr> <div class="refsect2" lang="en"> -<a name="id2671290"></a><h3> +<a name="id2674359"></a><h3> <a name="cairo-matrix-transform-distance"></a>cairo_matrix_transform_distance ()</h3> -<a class="indexterm" name="id2671301"></a><pre class="programlisting">void cairo_matrix_transform_distance (const <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix, +<a class="indexterm" name="id2674372"></a><pre class="programlisting">void cairo_matrix_transform_distance (const <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix, double *dx, double *dy);</pre> <p> @@ -581,9 +576,9 @@ to (<em class="parameter"><code>x2</code></em>,<em class="parameter"><code>y2</c </div> <hr> <div class="refsect2" lang="en"> -<a name="id2671530"></a><h3> +<a name="id2674604"></a><h3> <a name="cairo-matrix-transform-point"></a>cairo_matrix_transform_point ()</h3> -<a class="indexterm" name="id2671544"></a><pre class="programlisting">void cairo_matrix_transform_point (const <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix, +<a class="indexterm" name="id2674617"></a><pre class="programlisting">void cairo_matrix_transform_point (const <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix, double *x, double *y);</pre> <p> @@ -614,9 +609,17 @@ Transforms the point (<em class="parameter"><code>x</code></em>, <em class="para </div> </div> <div class="refsect1" lang="en"> -<a name="id2671664"></a><div class="refsect2" lang="en"><a name="id2671665"></a></div> +<a name="id2674737"></a><h2>See Also</h2> +<p> +</p> +<div class="itemizedlist"><ul type="disc"><li><a class="link" href="cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a></li></ul></div> +<p> +</p> +</div> +<div class="refsect1" lang="en"> +<a name="id2674760"></a><div class="refsect2" lang="en"><a name="id2674761"></a></div> <hr> -<div class="refsect2" lang="en"><a name="id2671666"></a></div> +<div class="refsect2" lang="en"><a name="id2674762"></a></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 e199a85..dff77d8 100644 --- a/doc/public/html/cairo-cairo-surface-t.html +++ b/doc/public/html/cairo-cairo-surface-t.html @@ -10,8 +10,6 @@ <link rel="next" href="cairo-Image-Surfaces.html" title="Image Surfaces"> <meta name="generator" content="GTK-Doc V1.9 (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"> @@ -19,6 +17,7 @@ <link rel="index" href="ix01.html" title="Index"> <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2"> <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6"> <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"> @@ -30,16 +29,16 @@ <th width="100%" align="center">Cairo: A Vector Graphics Library</th> <td><a accesskey="n" href="cairo-Image-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="#id2577626" class="shortcut">Top</a> +<tr><td colspan="5" class="shortcuts"><nobr><a href="#id2628854" class="shortcut">Top</a>  |  - <a href="#id2656888" class="shortcut">Description</a></nobr></td></tr> + <a href="#id2658990" class="shortcut">Description</a></nobr></td></tr> </table> <div class="refentry" lang="en"> <a name="cairo-cairo-surface-t"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> <td valign="top"> <h2> -<a name="id2577626"></a><span class="refentrytitle">cairo_surface_t</span> +<a name="id2628854"></a><span class="refentrytitle">cairo_surface_t</span> </h2> <p>cairo_surface_t — Base class for surfaces</p> </td> @@ -90,22 +89,29 @@ unsigned int <a class="link" href="cairo-cairo-surface-t.html#cairo-surfa <a class="link" href="cairo-Types.html#cairo-destroy-func-t">cairo_destroy_func_t</a> destroy); void* <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-get-user-data">cairo_surface_get_user_data</a> (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface, const <a class="link" href="cairo-Types.html#cairo-user-data-key-t">cairo_user_data_key_t</a> *key); -<a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-copy-page">cairo_surface_copy_page</a> (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface); -<a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-show-page">cairo_surface_show_page</a> (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface); +void <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-copy-page">cairo_surface_copy_page</a> (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface); +void <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-show-page">cairo_surface_show_page</a> (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface); </pre> </div> <div class="refsect1" lang="en"> -<a name="id2656888"></a><h2>Description</h2> +<a name="id2658990"></a><h2>Description</h2> <p> - +<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t"><span class="type">cairo_surface_t</span></a> is the abstract type representing all different drawing +targets that cairo can render to. The actual drawings are +performed using a cairo <em class="firstterm">context</em>. +</p> +<p> +A cairo surface is created by using <em class="firstterm">backend</em>-specific +constructors, typically of the form +cairo_<span class="emphasis"><em>backend</em></span><code class="function">_surface_create()</code>. </p> </div> <div class="refsect1" lang="en"> -<a name="id2656904"></a><h2>Details</h2> +<a name="id2659039"></a><h2>Details</h2> <div class="refsect2" lang="en"> -<a name="id2656914"></a><h3> +<a name="id2659050"></a><h3> <a name="cairo-surface-t"></a>cairo_surface_t</h3> -<a class="indexterm" name="id2656927"></a><pre class="programlisting">typedef struct _cairo_surface cairo_surface_t; +<a class="indexterm" name="id2659062"></a><pre class="programlisting">typedef struct _cairo_surface cairo_surface_t; </pre> <p> A <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t"><span class="type">cairo_surface_t</span></a> represents an image, either as the destination @@ -128,9 +134,9 @@ Memory management of <a class="link" href="cairo-cairo-surface-t.html#cairo-surf </div> <hr> <div class="refsect2" lang="en"> -<a name="id2653728"></a><h3> +<a name="id2655612"></a><h3> <a name="cairo-content-t"></a>enum cairo_content_t</h3> -<a class="indexterm" name="id2653740"></a><pre class="programlisting">typedef enum _cairo_content { +<a class="indexterm" name="id2655624"></a><pre class="programlisting">typedef enum _cairo_content { CAIRO_CONTENT_COLOR = 0x1000, CAIRO_CONTENT_ALPHA = 0x2000, CAIRO_CONTENT_COLOR_ALPHA = 0x3000 @@ -142,8 +148,8 @@ contain, whether color information, alpha information (translucence vs. opacity), or both. </p> <p> -Note: The large values here are designed to keep cairo_content_t -values distinct from cairo_format_t values so that the +Note: The large values here are designed to keep <a class="link" href="cairo-cairo-surface-t.html#cairo-content-t"><span class="type">cairo_content_t</span></a> +values distinct from <a class="link" href="cairo-Image-Surfaces.html#cairo-format-t"><span class="type">cairo_format_t</span></a> values so that the implementation can detect the error if users confuse the two types.</p> <p> @@ -171,9 +177,9 @@ implementation can detect the error if users confuse the two types.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2653846"></a><h3> +<a name="id2655744"></a><h3> <a name="cairo-surface-create-similar"></a>cairo_surface_create_similar ()</h3> -<a class="indexterm" name="id2653857"></a><pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_surface_create_similar (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *other, +<a class="indexterm" name="id2655755"></a><pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_surface_create_similar (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *other, <a class="link" href="cairo-cairo-surface-t.html#cairo-content-t">cairo_content_t</a> content, int width, int height);</pre> @@ -217,7 +223,7 @@ have transparency, black otherwise.)</p> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> <td> a pointer to the newly allocated surface. The caller -owns the surface and should call cairo_surface_destroy when done +owns the surface and should call <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-destroy"><code class="function">cairo_surface_destroy()</code></a> when done with it. This function always returns a valid pointer, but it will return a @@ -230,9 +236,9 @@ or any other error occurs. </div> <hr> <div class="refsect2" lang="en"> -<a name="id2658731"></a><h3> +<a name="id2660827"></a><h3> <a name="cairo-surface-reference"></a>cairo_surface_reference ()</h3> -<a class="indexterm" name="id2658742"></a><pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_surface_reference (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> +<a class="indexterm" name="id2660837"></a><pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_surface_reference (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> <p> Increases the reference count on <em class="parameter"><code>surface</code></em> by one. This prevents <em class="parameter"><code>surface</code></em> from being destroyed until a matching call to @@ -262,9 +268,9 @@ The number of references to a <a class="link" href="cairo-cairo-surface-t.html#c </div> <hr> <div class="refsect2" lang="en"> -<a name="id2658853"></a><h3> +<a name="id2660954"></a><h3> <a name="cairo-surface-destroy"></a>cairo_surface_destroy ()</h3> -<a class="indexterm" name="id2658865"></a><pre class="programlisting">void cairo_surface_destroy (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> +<a class="indexterm" name="id2660966"></a><pre class="programlisting">void cairo_surface_destroy (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> <p> Decreases the reference count on <em class="parameter"><code>surface</code></em> by one. If the result is zero, then <em class="parameter"><code>surface</code></em> and all associated resources are freed. See @@ -283,9 +289,9 @@ zero, then <em class="parameter"><code>surface</code></em> and all associated re </div> <hr> <div class="refsect2" lang="en"> -<a name="id2658925"></a><h3> +<a name="id2661045"></a><h3> <a name="cairo-surface-status"></a>cairo_surface_status ()</h3> -<a class="indexterm" name="id2658935"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_surface_status (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> +<a class="indexterm" name="id2661056"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_surface_status (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> <p> Checks whether an error has previously occurred for this surface.</p> @@ -302,24 +308,10 @@ surface.</p> </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> -<td> <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS" -><code class="literal">CAIRO_STATUS_SUCCESS</code></a>, <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-NULL-POINTER:CAPS" -><code class="literal">CAIRO_STATUS_NULL_POINTER</code></a>, -<a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS" -><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a>, <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-READ-ERROR:CAPS" -><code class="literal">CAIRO_STATUS_READ_ERROR</code></a>, -<a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-INVALID-CONTENT:CAPS" -><code class="literal">CAIRO_STATUS_INVALID_CONTENT</code></a>, <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-INVALID-FORMAT:CAPS" -><code class="literal">CAIRO_STATUS_INVALID_FORMAT</code></a>, or -<a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-INVALID-VISUAL:CAPS" -><code class="literal">CAIRO_STATUS_INVALID_VISUAL</code></a>. +<td> <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a>, <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-NULL-POINTER:CAPS"><code class="literal">CAIRO_STATUS_NULL_POINTER</code></a>, +<a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a>, <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-READ-ERROR:CAPS"><code class="literal">CAIRO_STATUS_READ_ERROR</code></a>, +<a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-INVALID-CONTENT:CAPS"><code class="literal">CAIRO_STATUS_INVALID_CONTENT</code></a>, <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-INVALID-FORMAT:CAPS"><code class="literal">CAIRO_STATUS_INVALID_FORMAT</code></a>, or +<a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-INVALID-VISUAL:CAPS"><code class="literal">CAIRO_STATUS_INVALID_VISUAL</code></a>. </td> </tr> </tbody> @@ -327,9 +319,9 @@ href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-INVALID-VISUAL:CAPS" </div> <hr> <div class="refsect2" lang="en"> -<a name="id2659058"></a><h3> +<a name="id2661191"></a><h3> <a name="cairo-surface-finish"></a>cairo_surface_finish ()</h3> -<a class="indexterm" name="id2659068"></a><pre class="programlisting">void cairo_surface_finish (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> +<a class="indexterm" name="id2661202"></a><pre class="programlisting">void cairo_surface_finish (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> <p> This function finishes the surface and drops all references to external resources. For example, for the Xlib backend it means @@ -359,9 +351,9 @@ associated with the surface.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2659157"></a><h3> +<a name="id2661298"></a><h3> <a name="cairo-surface-flush"></a>cairo_surface_flush ()</h3> -<a class="indexterm" name="id2659167"></a><pre class="programlisting">void cairo_surface_flush (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> +<a class="indexterm" name="id2661310"></a><pre class="programlisting">void cairo_surface_flush (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> <p> Do any pending drawing for the surface and also restore any temporary modification's cairo has made to the surface's @@ -383,9 +375,9 @@ then this function does nothing.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2659223"></a><h3> +<a name="id2661373"></a><h3> <a name="cairo-surface-get-font-options"></a>cairo_surface_get_font_options ()</h3> -<a class="indexterm" name="id2659236"></a><pre class="programlisting">void cairo_surface_get_font_options (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface, +<a class="indexterm" name="id2661386"></a><pre class="programlisting">void cairo_surface_get_font_options (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface, <a class="link" href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);</pre> <p> Retrieves the default font rendering options for the surface. @@ -415,9 +407,9 @@ metrics and so forth. The result can then be used with </div> <hr> <div class="refsect2" lang="en"> -<a name="id2659326"></a><h3> +<a name="id2661485"></a><h3> <a name="cairo-surface-get-content"></a>cairo_surface_get_content ()</h3> -<a class="indexterm" name="id2659339"></a><pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-content-t">cairo_content_t</a> cairo_surface_get_content (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> +<a class="indexterm" name="id2661500"></a><pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-content-t">cairo_content_t</a> cairo_surface_get_content (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> <p> This function returns the content type of <em class="parameter"><code>surface</code></em> which indicates whether the surface contains color and/or alpha information. See @@ -446,9 +438,9 @@ whether the surface contains color and/or alpha information. See </div> <hr> <div class="refsect2" lang="en"> -<a name="id2659424"></a><h3> +<a name="id2661595"></a><h3> <a name="cairo-surface-mark-dirty"></a>cairo_surface_mark_dirty ()</h3> -<a class="indexterm" name="id2659434"></a><pre class="programlisting">void cairo_surface_mark_dirty (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> +<a class="indexterm" name="id2661606"></a><pre class="programlisting">void cairo_surface_mark_dirty (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> <p> Tells cairo that drawing has been done to surface using means other than cairo, and that cairo should reread any cached areas. Note @@ -467,9 +459,9 @@ that you must call <a class="link" href="cairo-cairo-surface-t.html#cairo-surfac </div> <hr> <div class="refsect2" lang="en"> -<a name="id2659496"></a><h3> +<a name="id2661658"></a><h3> <a name="cairo-surface-mark-dirty-rectangle"></a>cairo_surface_mark_dirty_rectangle ()</h3> -<a class="indexterm" name="id2659509"></a><pre class="programlisting">void cairo_surface_mark_dirty_rectangle (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface, +<a class="indexterm" name="id2661671"></a><pre class="programlisting">void cairo_surface_mark_dirty_rectangle (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface, int x, int y, int width, @@ -519,9 +511,9 @@ expect.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2659653"></a><h3> +<a name="id2661815"></a><h3> <a name="cairo-surface-set-device-offset"></a>cairo_surface_set_device_offset ()</h3> -<a class="indexterm" name="id2659666"></a><pre class="programlisting">void cairo_surface_set_device_offset (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface, +<a class="indexterm" name="id2661828"></a><pre class="programlisting">void cairo_surface_set_device_offset (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface, double x_offset, double y_offset);</pre> <p> @@ -563,9 +555,9 @@ using the surface in a source pattern.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2659798"></a><h3> +<a name="id2661960"></a><h3> <a name="cairo-surface-get-device-offset"></a>cairo_surface_get_device_offset ()</h3> -<a class="indexterm" name="id2659812"></a><pre class="programlisting">void cairo_surface_get_device_offset (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface, +<a class="indexterm" name="id2661974"></a><pre class="programlisting">void cairo_surface_get_device_offset (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface, double *x_offset, double *y_offset);</pre> <p> @@ -599,9 +591,9 @@ This function returns the previous device offset set by </div> <hr> <div class="refsect2" lang="en"> -<a name="id2659920"></a><h3> +<a name="id2662082"></a><h3> <a name="cairo-surface-set-fallback-resolution"></a>cairo_surface_set_fallback_resolution ()</h3> -<a class="indexterm" name="id2659935"></a><pre class="programlisting">void cairo_surface_set_fallback_resolution +<a class="indexterm" name="id2662097"></a><pre class="programlisting">void cairo_surface_set_fallback_resolution (<a class="link" 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> @@ -627,7 +619,7 @@ device resolution. So this function has no effect on those backends. </p> <p> -NOTE: The fallback resolution only takes effect at the time of +Note: The fallback resolution only takes effect at the time of completing a page (with <a class="link" href="cairo-cairo-t.html#cairo-show-page"><code class="function">cairo_show_page()</code></a> or <a class="link" href="cairo-cairo-t.html#cairo-copy-page"><code class="function">cairo_copy_page()</code></a>) so there is currently no way to have more than one fallback resolution in effect on a single page.</p> @@ -659,9 +651,9 @@ in effect on a single page.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2660079"></a><h3> +<a name="id2662240"></a><h3> <a name="cairo-surface-type-t"></a>enum cairo_surface_type_t</h3> -<a class="indexterm" name="id2660091"></a><pre class="programlisting">typedef enum _cairo_surface_type { +<a class="indexterm" name="id2662253"></a><pre class="programlisting">typedef enum _cairo_surface_type { CAIRO_SURFACE_TYPE_IMAGE, CAIRO_SURFACE_TYPE_PDF, CAIRO_SURFACE_TYPE_PS, @@ -684,14 +676,14 @@ backends" within cairo. </p> <p> The type of a surface is determined by the function used to create -it, which will generally be of the form cairo_<span class="emphasis"><em>type</em></span>_surface_create, -(though see cairo_surface_create_similar as well). +it, which will generally be of the form cairo_<span class="emphasis"><em>type</em></span><code class="function">_surface_create()</code>, +(though see <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-create-similar"><code class="function">cairo_surface_create_similar()</code></a> as well). </p> <p> The surface type can be queried with <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-get-type"><code class="function">cairo_surface_get_type()</code></a> </p> <p> -The various cairo_surface functions can be used with surfaces of +The various <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t"><span class="type">cairo_surface_t</span></a> functions can be used with surfaces of 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 @@ -781,9 +773,9 @@ New entries may be added in future versions.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2660450"></a><h3> +<a name="id2662633"></a><h3> <a name="cairo-surface-get-type"></a>cairo_surface_get_type ()</h3> -<a class="indexterm" name="id2660462"></a><pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-type-t">cairo_surface_type_t</a> cairo_surface_get_type (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> +<a class="indexterm" name="id2662645"></a><pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-type-t">cairo_surface_type_t</a> cairo_surface_get_type (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> <p> This function returns the type of the backend used to create a surface. See <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-type-t"><span class="type">cairo_surface_type_t</span></a> for available types.</p> @@ -811,9 +803,9 @@ a surface. See <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-ty </div> <hr> <div class="refsect2" lang="en"> -<a name="id2660541"></a><h3> +<a name="id2662724"></a><h3> <a name="cairo-surface-get-reference-count"></a>cairo_surface_get_reference_count ()</h3> -<a class="indexterm" name="id2660556"></a><pre class="programlisting">unsigned int cairo_surface_get_reference_count (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> +<a class="indexterm" name="id2662739"></a><pre class="programlisting">unsigned int cairo_surface_get_reference_count (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> <p> Returns the current reference count of <em class="parameter"><code>surface</code></em>.</p> <p> @@ -841,9 +833,9 @@ object is a nil object, 0 will be returned. </div> <hr> <div class="refsect2" lang="en"> -<a name="id2660636"></a><h3> +<a name="id2662819"></a><h3> <a name="cairo-surface-set-user-data"></a>cairo_surface_set_user_data ()</h3> -<a class="indexterm" name="id2660647"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_surface_set_user_data (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface, +<a class="indexterm" name="id2662830"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_surface_set_user_data (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface, const <a class="link" href="cairo-Types.html#cairo-user-data-key-t">cairo_user_data_key_t</a> *key, void *user_data, <a class="link" href="cairo-Types.html#cairo-destroy-func-t">cairo_destroy_func_t</a> destroy);</pre> @@ -881,11 +873,7 @@ same key. </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> -<td> <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS" -><code class="literal">CAIRO_STATUS_SUCCESS</code></a> or <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS" -><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a> if a +<td> <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> or <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a> if a slot could not be allocated for the user data. </td> </tr> @@ -894,9 +882,9 @@ slot could not be allocated for the user data. </div> <hr> <div class="refsect2" lang="en"> -<a name="id2660818"></a><h3> +<a name="id2663001"></a><h3> <a name="cairo-surface-get-user-data"></a>cairo_surface_get_user_data ()</h3> -<a class="indexterm" name="id2660829"></a><pre class="programlisting">void* cairo_surface_get_user_data (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface, +<a class="indexterm" name="id2663012"></a><pre class="programlisting">void* cairo_surface_get_user_data (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface, const <a class="link" href="cairo-Types.html#cairo-user-data-key-t">cairo_user_data_key_t</a> *key);</pre> <p> Return user data previously attached to <em class="parameter"><code>surface</code></em> using the specified @@ -929,9 +917,9 @@ attached to </div> <hr> <div class="refsect2" lang="en"> -<a name="id2660940"></a><h3> +<a name="id2663123"></a><h3> <a name="cairo-surface-copy-page"></a>cairo_surface_copy_page ()</h3> -<a class="indexterm" name="id2660953"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_surface_copy_page (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> +<a class="indexterm" name="id2663136"></a><pre class="programlisting">void cairo_surface_copy_page (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> <p> Emits the current page for backends that support multiple pages, but doesn't clear it, so that the contents of the current page will @@ -942,29 +930,20 @@ want to get an empty page after the emission.</p> </p> <div class="variablelist"><table border="0"> <col align="left" valign="top"> -<tbody> -<tr> +<tbody><tr> <td><p><span class="term"><em class="parameter"><code>surface</code></em> :</span></p></td> -<td> -</td> -</tr> -<tr> -<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> -<td> - - +<td> a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t"><span class="type">cairo_surface_t</span></a> </td> -</tr> -</tbody> +</tr></tbody> </table></div> <p class="since">Since 1.6 </p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2661024"></a><h3> +<a name="id2663204"></a><h3> <a name="cairo-surface-show-page"></a>cairo_surface_show_page ()</h3> -<a class="indexterm" name="id2661037"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_surface_show_page (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> +<a class="indexterm" name="id2663217"></a><pre class="programlisting">void cairo_surface_show_page (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre> <p> Emits and clears the current page for backends that support multiple pages. Use <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-copy-page"><code class="function">cairo_surface_copy_page()</code></a> if you don't want to clear the page.</p> @@ -973,29 +952,33 @@ pages. Use <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-copy- </p> <div class="variablelist"><table border="0"> <col align="left" valign="top"> -<tbody> -<tr> +<tbody><tr> <td><p><span class="term"><em class="parameter"><code>surface</code></em> :</span></p></td> <td> a <span class="type">cairo_Surface_t</span> </td> -</tr> -<tr> -<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> -<td> - - -</td> -</tr> -</tbody> +</tr></tbody> </table></div> <p class="since">Since 1.6 </p> </div> </div> <div class="refsect1" lang="en"> -<a name="id2661114"></a><div class="refsect2" lang="en"><a name="id2661115"></a></div> +<a name="id2663285"></a><h2>See Also</h2> +<p> +</p> +<div class="itemizedlist"><ul type="disc"> +<li>#<a class="link" href="cairo-cairo-t.html#cairo-t"><code class="function">cairo_t()</code></a> +</li> +<li>#<a class="link" href="cairo-Patterns.html#cairo-pattern-t"><code class="function">cairo_pattern_t()</code></a> +</li> +</ul></div> +<p> +</p> +</div> +<div class="refsect1" lang="en"> +<a name="id2663318"></a><div class="refsect2" lang="en"><a name="id2663319"></a></div> <hr> -<div class="refsect2" lang="en"><a name="id2661116"></a></div> +<div class="refsect2" lang="en"><a name="id2663320"></a></div> </div> </div> </body> diff --git a/doc/public/html/cairo-cairo-t.html b/doc/public/html/cairo-cairo-t.html index 892bcda..f90075a 100644 --- a/doc/public/html/cairo-cairo-t.html +++ b/doc/public/html/cairo-cairo-t.html @@ -10,8 +10,6 @@ <link rel="next" href="cairo-Paths.html" title="Paths"> <meta name="generator" content="GTK-Doc V1.9 (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"> @@ -19,6 +17,7 @@ <link rel="index" href="ix01.html" title="Index"> <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2"> <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6"> <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"> @@ -30,16 +29,16 @@ <th width="100%" align="center">Cairo: A Vector Graphics Library</th> <td><a accesskey="n" href="cairo-Paths.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="#id2592051" class="shortcut">Top</a> +<tr><td colspan="5" class="shortcuts"><nobr><a href="#id2592050" class="shortcut">Top</a>  |  - <a href="#id2630478" class="shortcut">Description</a></nobr></td></tr> + <a href="#id2631192" class="shortcut">Description</a></nobr></td></tr> </table> <div class="refentry" lang="en"> <a name="cairo-cairo-t"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> <td valign="top"> <h2> -<a name="id2592051"></a><span class="refentrytitle">cairo_t</span> +<a name="id2592050"></a><span class="refentrytitle">cairo_t</span> </h2> <p>cairo_t — The cairo drawing context</p> </td> @@ -172,7 +171,7 @@ void* <a class="link" href="cairo-cairo-t.html#cairo-get-user-data </pre> </div> <div class="refsect1" lang="en"> -<a name="id2630478"></a><h2>Description</h2> +<a name="id2631192"></a><h2>Description</h2> <p> <a class="link" 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 class="link" href="cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a>, set the target surface, @@ -187,11 +186,11 @@ void* <a class="link" href="cairo-cairo-t.html#cairo-get-user-data </p> </div> <div class="refsect1" lang="en"> -<a name="id2630575"></a><h2>Details</h2> +<a name="id2631303"></a><h2>Details</h2> <div class="refsect2" lang="en"> -<a name="id2630584"></a><h3> +<a name="id2631313"></a><h3> <a name="cairo-t"></a>cairo_t</h3> -<a class="indexterm" name="id2630595"></a><pre class="programlisting">typedef struct _cairo cairo_t; +<a class="indexterm" name="id2631325"></a><pre class="programlisting">typedef struct _cairo cairo_t; </pre> <p> A <a class="link" href="cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a> contains the current state of the rendering device, @@ -211,15 +210,15 @@ Memory management of <a class="link" href="cairo-cairo-t.html#cairo-t"><span cla </div> <hr> <div class="refsect2" lang="en"> -<a name="id2630664"></a><h3> +<a name="id2631403"></a><h3> <a name="cairo-create"></a>cairo_create ()</h3> -<a class="indexterm" name="id2630674"></a><pre class="programlisting"><a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a>* cairo_create (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *target);</pre> +<a class="indexterm" name="id2631415"></a><pre class="programlisting"><a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a>* cairo_create (<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *target);</pre> <p> Creates a new <a class="link" href="cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a> with all graphics state parameters set to default values and with <em class="parameter"><code>target</code></em> as a target surface. The target surface should be constructed with a backend-specific function such as <a class="link" href="cairo-Image-Surfaces.html#cairo-image-surface-create"><code class="function">cairo_image_surface_create()</code></a> (or any other -<code class="literal">cairo_<backend>_surface_create</code> variant). +cairo_<span class="emphasis"><em>backend</em></span>_surface_create variant). </p> <p> This function references <em class="parameter"><code>target</code></em>, so you can immediately @@ -243,9 +242,7 @@ maintain a separate reference to it.</p> with <a class="link" href="cairo-cairo-t.html#cairo-destroy"><code class="function">cairo_destroy()</code></a> when you are done using the <a class="link" href="cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a>. This function never returns <code class="literal">NULL</code>. If memory cannot be allocated, a special <a class="link" href="cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a> object will be returned on - which <a class="link" href="cairo-cairo-t.html#cairo-status"><code class="function">cairo_status()</code></a> returns <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS" -><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a>. + which <a class="link" href="cairo-cairo-t.html#cairo-status"><code class="function">cairo_status()</code></a> returns <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a>. You can use this object normally, but no drawing will be done. </td> @@ -255,9 +252,9 @@ href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS" </div> <hr> <div class="refsect2" lang="en"> -<a name="id2630834"></a><h3> +<a name="id2631587"></a><h3> <a name="cairo-reference"></a>cairo_reference ()</h3> -<a class="indexterm" name="id2630844"></a><pre class="programlisting"><a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a>* cairo_reference (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> +<a class="indexterm" name="id2631599"></a><pre class="programlisting"><a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a>* cairo_reference (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> <p> Increases the reference count on <em class="parameter"><code>cr</code></em> by one. This prevents <em class="parameter"><code>cr</code></em> from being destroyed until a matching call to <a class="link" href="cairo-cairo-t.html#cairo-destroy"><code class="function">cairo_destroy()</code></a> @@ -287,9 +284,9 @@ The number of references to a <a class="link" href="cairo-cairo-t.html#cairo-t"> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2630949"></a><h3> +<a name="id2631716"></a><h3> <a name="cairo-destroy"></a>cairo_destroy ()</h3> -<a class="indexterm" name="id2630959"></a><pre class="programlisting">void cairo_destroy (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> +<a class="indexterm" name="id2631729"></a><pre class="programlisting">void cairo_destroy (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> <p> Decreases the reference count on <em class="parameter"><code>cr</code></em> by one. If the result is zero, then <em class="parameter"><code>cr</code></em> and all associated resources are freed. @@ -308,9 +305,9 @@ See <a class="link" href="cairo-cairo-t.html#cairo-reference"><code class="funct </div> <hr> <div class="refsect2" lang="en"> -<a name="id2631030"></a><h3> +<a name="id2631808"></a><h3> <a name="cairo-status"></a>cairo_status ()</h3> -<a class="indexterm" name="id2631041"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_status (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> +<a class="indexterm" name="id2631821"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_status (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> <p> Checks whether an error has previously occurred for this context.</p> <p> @@ -326,7 +323,7 @@ Checks whether an error has previously occurred for this context.</p> </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> -<td>the current status of this context, see <a class="link" href="cairo-Error-Handling.html#cairo-status-t"><span class="type">cairo_status_t</span></a> +<td> the current status of this context, see <a class="link" href="cairo-Error-Handling.html#cairo-status-t"><span class="type">cairo_status_t</span></a> </td> </tr> </tbody> @@ -334,9 +331,9 @@ Checks whether an error has previously occurred for this context.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2631102"></a><h3> +<a name="id2631888"></a><h3> <a name="cairo-save"></a>cairo_save ()</h3> -<a class="indexterm" name="id2631113"></a><pre class="programlisting">void cairo_save (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> +<a class="indexterm" name="id2631901"></a><pre class="programlisting">void cairo_save (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> <p> Makes a copy of the current state of <em class="parameter"><code>cr</code></em> and saves it on an internal stack of saved states for <em class="parameter"><code>cr</code></em>. When @@ -364,9 +361,9 @@ any saved states will be freed along with the <a class="link" href="cairo-cairo- </div> <hr> <div class="refsect2" lang="en"> -<a name="id2631258"></a><h3> +<a name="id2632064"></a><h3> <a name="cairo-restore"></a>cairo_restore ()</h3> -<a class="indexterm" name="id2631269"></a><pre class="programlisting">void cairo_restore (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> +<a class="indexterm" name="id2632076"></a><pre class="programlisting">void cairo_restore (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> <p> Restores <em class="parameter"><code>cr</code></em> to the state saved by a preceding call to <a class="link" href="cairo-cairo-t.html#cairo-save"><code class="function">cairo_save()</code></a> and removes that state from the stack of @@ -385,9 +382,9 @@ saved states.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2631334"></a><h3> +<a name="id2632150"></a><h3> <a name="cairo-get-target"></a>cairo_get_target ()</h3> -<a class="indexterm" name="id2631345"></a><pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_get_target (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> +<a class="indexterm" name="id2632162"></a><pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_get_target (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> <p> Gets the target surface for the cairo context as passed to <a class="link" href="cairo-cairo-t.html#cairo-create"><code class="function">cairo_create()</code></a>. @@ -395,13 +392,9 @@ Gets the target surface for the cairo context as passed to <p> This function will always return a valid pointer, but the result can be a "nil" surface if <em class="parameter"><code>cr</code></em> is already in an error state, -(ie. <a class="link" href="cairo-cairo-t.html#cairo-status"><code class="function">cairo_status()</code></a> <code class="literal">!=</code> <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS" -><code class="literal">CAIRO_STATUS_SUCCESS</code></a>). +(ie. <a class="link" href="cairo-cairo-t.html#cairo-status"><code class="function">cairo_status()</code></a> <code class="literal">!=</code> <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a>). A nil surface is indicated by <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-status"><code class="function">cairo_surface_status()</code></a> -<code class="literal">!=</code> <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS" -><code class="literal">CAIRO_STATUS_SUCCESS</code></a>.</p> +<code class="literal">!=</code> <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a>.</p> <p> </p> @@ -424,9 +417,9 @@ keep a reference to it, you must call <a class="link" href="cairo-cairo-surface- </div> <hr> <div class="refsect2" lang="en"> -<a name="id2631473"></a><h3> +<a name="id2632304"></a><h3> <a name="cairo-push-group"></a>cairo_push_group ()</h3> -<a class="indexterm" name="id2631485"></a><pre class="programlisting">void cairo_push_group (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> +<a class="indexterm" name="id2632318"></a><pre class="programlisting">void cairo_push_group (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> <p> Temporarily redirects drawing to an intermediate surface known as a group. The redirection lasts until the group is completed by a call @@ -488,9 +481,9 @@ cairo_paint_with_alpha (cr, alpha); </div> <hr> <div class="refsect2" lang="en"> -<a name="id2631650"></a><h3> +<a name="id2632474"></a><h3> <a name="cairo-push-group-with-content"></a>cairo_push_group_with_content ()</h3> -<a class="indexterm" name="id2631664"></a><pre class="programlisting">void cairo_push_group_with_content (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2632488"></a><pre class="programlisting">void cairo_push_group_with_content (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, <a class="link" href="cairo-cairo-surface-t.html#cairo-content-t">cairo_content_t</a> content);</pre> <p> Temporarily redirects drawing to an intermediate surface known as a @@ -517,7 +510,7 @@ detailed description of group rendering.</p> </tr> <tr> <td><p><span class="term"><em class="parameter"><code>content</code></em> :</span></p></td> -<td> a <a class="link" href="cairo-cairo-surface-t.html#cairo-content-t"><code class="literal">cairo_content_t</code></a> indicating the type of group that +<td> a %<a class="link" href="cairo-cairo-surface-t.html#cairo-content-t"><span class="type">cairo_content_t</span></a> indicating the type of group that will be created </td> </tr> @@ -528,9 +521,9 @@ detailed description of group rendering.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2631786"></a><h3> +<a name="id2632608"></a><h3> <a name="cairo-pop-group"></a>cairo_pop_group ()</h3> -<a class="indexterm" name="id2631798"></a><pre class="programlisting"><a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a>* cairo_pop_group (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> +<a class="indexterm" name="id2632620"></a><pre class="programlisting"><a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a>* cairo_pop_group (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> <p> Terminates the redirection begun by a call to <a class="link" href="cairo-cairo-t.html#cairo-push-group"><code class="function">cairo_push_group()</code></a> or <a class="link" href="cairo-cairo-t.html#cairo-push-group-with-content"><code class="function">cairo_push_group_with_content()</code></a> and returns a new pattern @@ -569,9 +562,9 @@ caller owns the returned object and should call </div> <hr> <div class="refsect2" lang="en"> -<a name="id2631919"></a><h3> +<a name="id2632741"></a><h3> <a name="cairo-pop-group-to-source"></a>cairo_pop_group_to_source ()</h3> -<a class="indexterm" name="id2631932"></a><pre class="programlisting">void cairo_pop_group_to_source (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> +<a class="indexterm" name="id2632754"></a><pre class="programlisting">void cairo_pop_group_to_source (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> <p> Terminates the redirection begun by a call to <a class="link" href="cairo-cairo-t.html#cairo-push-group"><code class="function">cairo_push_group()</code></a> or <a class="link" href="cairo-cairo-t.html#cairo-push-group-with-content"><code class="function">cairo_push_group_with_content()</code></a> and installs the resulting pattern @@ -584,7 +577,7 @@ operations: <p> </p> <div class="informalexample"><pre class="programlisting"> -cairo_pattern_t *group = cairo_pop_group (cr); +<a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *group = cairo_pop_group (cr); cairo_set_source (cr, group); cairo_pattern_destroy (group); </pre></div> @@ -615,9 +608,9 @@ group.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2632054"></a><h3> +<a name="id2632881"></a><h3> <a name="cairo-get-group-target"></a>cairo_get_group_target ()</h3> -<a class="indexterm" name="id2632066"></a><pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_get_group_target (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> +<a class="indexterm" name="id2632893"></a><pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_get_group_target (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> <p> Gets the current destination surface for the context. This is either the original target surface as passed to <a class="link" href="cairo-cairo-t.html#cairo-create"><code class="function">cairo_create()</code></a> or the target @@ -627,13 +620,9 @@ surface for the current group as started by the most recent call to <p> This function will always return a valid pointer, but the result can be a "nil" surface if <em class="parameter"><code>cr</code></em> is already in an error state, -(ie. <a class="link" href="cairo-cairo-t.html#cairo-status"><code class="function">cairo_status()</code></a> <code class="literal">!=</code> <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS" -><code class="literal">CAIRO_STATUS_SUCCESS</code></a>). +(ie. <a class="link" href="cairo-cairo-t.html#cairo-status"><code class="function">cairo_status()</code></a> <code class="literal">!=</code> <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a>). A nil surface is indicated by <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-status"><code class="function">cairo_surface_status()</code></a> -<code class="literal">!=</code> <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS" -><code class="literal">CAIRO_STATUS_SUCCESS</code></a>.</p> +<code class="literal">!=</code> <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a>.</p> <p> </p> @@ -659,9 +648,9 @@ keep a reference to it, you must call <a class="link" href="cairo-cairo-surface- </div> <hr> <div class="refsect2" lang="en"> -<a name="id2632221"></a><h3> +<a name="id2633048"></a><h3> <a name="cairo-set-source-rgb"></a>cairo_set_source_rgb ()</h3> -<a class="indexterm" name="id2632231"></a><pre class="programlisting">void cairo_set_source_rgb (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2633058"></a><pre class="programlisting">void cairo_set_source_rgb (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, double red, double green, double blue);</pre> @@ -705,9 +694,9 @@ clamped.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2632346"></a><h3> +<a name="id2633173"></a><h3> <a name="cairo-set-source-rgba"></a>cairo_set_source_rgba ()</h3> -<a class="indexterm" name="id2632356"></a><pre class="programlisting">void cairo_set_source_rgba (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2633183"></a><pre class="programlisting">void cairo_set_source_rgba (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, double red, double green, double blue, @@ -757,9 +746,9 @@ will be clamped.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2632491"></a><h3> +<a name="id2633318"></a><h3> <a name="cairo-set-source"></a>cairo_set_source ()</h3> -<a class="indexterm" name="id2632501"></a><pre class="programlisting">void cairo_set_source (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2633328"></a><pre class="programlisting">void cairo_set_source (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, <a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *source);</pre> <p> Sets the source pattern within <em class="parameter"><code>cr</code></em> to <em class="parameter"><code>source</code></em>. This pattern @@ -798,9 +787,9 @@ subsequent drawing operations. </div> <hr> <div class="refsect2" lang="en"> -<a name="id2632614"></a><h3> +<a name="id2633441"></a><h3> <a name="cairo-set-source-surface"></a>cairo_set_source_surface ()</h3> -<a class="indexterm" name="id2632625"></a><pre class="programlisting">void cairo_set_source_surface (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2633452"></a><pre class="programlisting">void cairo_set_source_surface (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface, double x, double y);</pre> @@ -853,9 +842,9 @@ repeating pattern with <a class="link" href="cairo-Patterns.html#cairo-pattern-s </div> <hr> <div class="refsect2" lang="en"> -<a name="id2632830"></a><h3> +<a name="id2633640"></a><h3> <a name="cairo-get-source"></a>cairo_get_source ()</h3> -<a class="indexterm" name="id2632843"></a><pre class="programlisting"><a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a>* cairo_get_source (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> +<a class="indexterm" name="id2633650"></a><pre class="programlisting"><a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a>* cairo_get_source (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> <p> Gets the current source pattern for <em class="parameter"><code>cr</code></em>.</p> <p> @@ -881,9 +870,9 @@ cairo. To keep a reference to it, you must call </div> <hr> <div class="refsect2" lang="en"> -<a name="id2632922"></a><h3> +<a name="id2633720"></a><h3> <a name="cairo-antialias-t"></a>enum cairo_antialias_t</h3> -<a class="indexterm" name="id2632935"></a><pre class="programlisting">typedef enum _cairo_antialias { +<a class="indexterm" name="id2633730"></a><pre class="programlisting">typedef enum _cairo_antialias { CAIRO_ANTIALIAS_DEFAULT, CAIRO_ANTIALIAS_NONE, CAIRO_ANTIALIAS_GRAY, @@ -927,9 +916,9 @@ Specifies the type of antialiasing to do when rendering text or shapes.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2633060"></a><h3> +<a name="id2633839"></a><h3> <a name="cairo-set-antialias"></a>cairo_set_antialias ()</h3> -<a class="indexterm" name="id2633074"></a><pre class="programlisting">void cairo_set_antialias (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2633850"></a><pre class="programlisting">void cairo_set_antialias (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, <a class="link" href="cairo-cairo-t.html#cairo-antialias-t">cairo_antialias_t</a> antialias);</pre> <p> Set the antialiasing mode of the rasterizer used for drawing shapes. @@ -961,9 +950,9 @@ Note that this option does not affect text rendering, instead see </div> <hr> <div class="refsect2" lang="en"> -<a name="id2633180"></a><h3> +<a name="id2633945"></a><h3> <a name="cairo-get-antialias"></a>cairo_get_antialias ()</h3> -<a class="indexterm" name="id2633193"></a><pre class="programlisting"><a class="link" href="cairo-cairo-t.html#cairo-antialias-t">cairo_antialias_t</a> cairo_get_antialias (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> +<a class="indexterm" name="id2633955"></a><pre class="programlisting"><a class="link" href="cairo-cairo-t.html#cairo-antialias-t">cairo_antialias_t</a> cairo_get_antialias (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> <p> Gets the current shape antialiasing mode, as set by <code class="function">cairo_set_shape_antialias()</code>.</p> <p> @@ -987,9 +976,9 @@ Gets the current shape antialiasing mode, as set by <code class="function">cairo </div> <hr> <div class="refsect2" lang="en"> -<a name="id2633264"></a><h3> +<a name="id2634018"></a><h3> <a name="cairo-set-dash"></a>cairo_set_dash ()</h3> -<a class="indexterm" name="id2633277"></a><pre class="programlisting">void cairo_set_dash (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2634029"></a><pre class="programlisting">void cairo_set_dash (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, const double *dashes, int num_dashes, double offset);</pre> @@ -1003,7 +992,7 @@ the stroke begins. <p> 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 +of 0.0 with <a class="link" href="cairo-cairo-t.html#CAIRO-LINE-CAP-ROUND:CAPS"><code class="literal">CAIRO_LINE_CAP_ROUND</code></a> or <a class="link" href="cairo-cairo-t.html#CAIRO-LINE-CAP-SQUARE:CAPS"><code class="literal">CAIRO_LINE_CAP_SQUARE</code></a> in order to distributed dots or squares along a path. </p> <p> @@ -1021,10 +1010,8 @@ on and off portions of the size specified by the single value in </p> <p> If any value in <em class="parameter"><code>dashes</code></em> is negative, or if all values are 0, then -<em class="parameter"><code>cairo_t</code></em> will be put into an error state with a status of -<a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-INVALID-DASH:CAPS" -><span class="type">CAIRO_STATUS_INVALID_DASH</span></a>.</p> +<em class="parameter"><code>cr</code></em> will be put into an error state with a status of +#<a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-INVALID-DASH:CAPS"><code class="literal">CAIRO_STATUS_INVALID_DASH</code></a>.</p> <p> </p> @@ -1056,9 +1043,9 @@ href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-INVALID-DASH:CAPS" </div> <hr> <div class="refsect2" lang="en"> -<a name="id2633495"></a><h3> +<a name="id2634243"></a><h3> <a name="cairo-get-dash-count"></a>cairo_get_dash_count ()</h3> -<a class="indexterm" name="id2633510"></a><pre class="programlisting">int cairo_get_dash_count (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> +<a class="indexterm" name="id2634255"></a><pre class="programlisting">int cairo_get_dash_count (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> <p> This function returns the length of the dash array in <em class="parameter"><code>cr</code></em> (0 if dashing is not currently in effect). @@ -1089,9 +1076,9 @@ See also <a class="link" href="cairo-cairo-t.html#cairo-set-dash"><code class="f </div> <hr> <div class="refsect2" lang="en"> -<a name="id2633616"></a><h3> +<a name="id2634349"></a><h3> <a name="cairo-get-dash"></a>cairo_get_dash ()</h3> -<a class="indexterm" name="id2633632"></a><pre class="programlisting">void cairo_get_dash (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2634362"></a><pre class="programlisting">void cairo_get_dash (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, double *dashes, double *offset);</pre> <p> @@ -1126,9 +1113,9 @@ enough to hold at least the number of values returned by </div> <hr> <div class="refsect2" lang="en"> -<a name="id2633784"></a><h3> +<a name="id2634498"></a><h3> <a name="cairo-fill-rule-t"></a>enum cairo_fill_rule_t</h3> -<a class="indexterm" name="id2633798"></a><pre class="programlisting">typedef enum _cairo_fill_rule { +<a class="indexterm" name="id2634509"></a><pre class="programlisting">typedef enum _cairo_fill_rule { CAIRO_FILL_RULE_WINDING, CAIRO_FILL_RULE_EVEN_ODD } cairo_fill_rule_t; @@ -1173,9 +1160,9 @@ filled. </div> <hr> <div class="refsect2" lang="en"> -<a name="id2633897"></a><h3> +<a name="id2634599"></a><h3> <a name="cairo-set-fill-rule"></a>cairo_set_fill_rule ()</h3> -<a class="indexterm" name="id2633911"></a><pre class="programlisting">void cairo_set_fill_rule (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2634610"></a><pre class="programlisting">void cairo_set_fill_rule (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, <a class="link" href="cairo-cairo-t.html#cairo-fill-rule-t">cairo_fill_rule_t</a> fill_rule);</pre> <p> Set the current fill rule within the cairo context. The fill rule @@ -1204,9 +1191,9 @@ on the semantics of each available fill rule.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2634026"></a><h3> +<a name="id2634713"></a><h3> <a name="cairo-get-fill-rule"></a>cairo_get_fill_rule ()</h3> -<a class="indexterm" name="id2634040"></a><pre class="programlisting"><a class="link" href="cairo-cairo-t.html#cairo-fill-rule-t">cairo_fill_rule_t</a> cairo_get_fill_rule (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> +<a class="indexterm" name="id2634723"></a><pre class="programlisting"><a class="link" href="cairo-cairo-t.html#cairo-fill-rule-t">cairo_fill_rule_t</a> cairo_get_fill_rule (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> <p> Gets the current fill rule, as set by <a class="link" href="cairo-cairo-t.html#cairo-set-fill-rule"><code class="function">cairo_set_fill_rule()</code></a>.</p> <p> @@ -1230,9 +1217,9 @@ Gets the current fill rule, as set by <a class="link" href="cairo-cairo-t.html#c </div> <hr> <div class="refsect2" lang="en"> -<a name="id2634111"></a><h3> +<a name="id2634785"></a><h3> <a name="cairo-line-cap-t"></a>enum cairo_line_cap_t</h3> -<a class="indexterm" name="id2634124"></a><pre class="programlisting">typedef enum _cairo_line_cap { +<a class="indexterm" name="id2634796"></a><pre class="programlisting">typedef enum _cairo_line_cap { CAIRO_LINE_CAP_BUTT, CAIRO_LINE_CAP_ROUND, CAIRO_LINE_CAP_SQUARE @@ -1266,9 +1253,9 @@ Specifies how to render the endpoint of a line when stroking.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2634222"></a><h3> +<a name="id2634884"></a><h3> <a name="cairo-set-line-cap"></a>cairo_set_line_cap ()</h3> -<a class="indexterm" name="id2634236"></a><pre class="programlisting">void cairo_set_line_cap (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2634897"></a><pre class="programlisting">void cairo_set_line_cap (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, <a class="link" href="cairo-cairo-t.html#cairo-line-cap-t">cairo_line_cap_t</a> line_cap);</pre> <p> Sets the current line cap style within the cairo context. See @@ -1301,9 +1288,9 @@ construction.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2634351"></a><h3> +<a name="id2635012"></a><h3> <a name="cairo-get-line-cap"></a>cairo_get_line_cap ()</h3> -<a class="indexterm" name="id2634365"></a><pre class="programlisting"><a class="link" href="cairo-cairo-t.html#cairo-line-cap-t">cairo_line_cap_t</a> cairo_get_line_cap (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> +<a class="indexterm" name="id2635026"></a><pre class="programlisting"><a class="link" href="cairo-cairo-t.html#cairo-line-cap-t">cairo_line_cap_t</a> cairo_get_line_cap (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> <p> Gets the current line cap style, as set by <a class="link" href="cairo-cairo-t.html#cairo-set-line-cap"><code class="function">cairo_set_line_cap()</code></a>.</p> <p> @@ -1327,9 +1314,9 @@ Gets the current line cap style, as set by <a class="link" href="cairo-cairo-t.h </div> <hr> <div class="refsect2" lang="en"> -<a name="id2634436"></a><h3> +<a name="id2635097"></a><h3> <a name="cairo-line-join-t"></a>enum cairo_line_join_t</h3> -<a class="indexterm" name="id2634449"></a><pre class="programlisting">typedef enum _cairo_line_join { +<a class="indexterm" name="id2635110"></a><pre class="programlisting">typedef enum _cairo_line_join { CAIRO_LINE_JOIN_MITER, CAIRO_LINE_JOIN_ROUND, CAIRO_LINE_JOIN_BEVEL @@ -1366,9 +1353,9 @@ the line width from the joint point </div> <hr> <div class="refsect2" lang="en"> -<a name="id2634557"></a><h3> +<a name="id2635218"></a><h3> <a name="cairo-set-line-join"></a>cairo_set_line_join ()</h3> -<a class="indexterm" name="id2634570"></a><pre class="programlisting">void cairo_set_line_join (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2635232"></a><pre class="programlisting">void cairo_set_line_join (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, <a class="link" href="cairo-cairo-t.html#cairo-line-join-t">cairo_line_join_t</a> line_join);</pre> <p> Sets the current line join style within the cairo context. See @@ -1401,9 +1388,9 @@ construction.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2634686"></a><h3> +<a name="id2635347"></a><h3> <a name="cairo-get-line-join"></a>cairo_get_line_join ()</h3> -<a class="indexterm" name="id2634700"></a><pre class="programlisting"><a class="link" href="cairo-cairo-t.html#cairo-line-join-t">cairo_line_join_t</a> cairo_get_line_join (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> +<a class="indexterm" name="id2635361"></a><pre class="programlisting"><a class="link" href="cairo-cairo-t.html#cairo-line-join-t">cairo_line_join_t</a> cairo_get_line_join (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> <p> Gets the current line join style, as set by <a class="link" href="cairo-cairo-t.html#cairo-set-line-join"><code class="function">cairo_set_line_join()</code></a>.</p> <p> @@ -1427,9 +1414,9 @@ Gets the current line join style, as set by <a class="link" href="cairo-cairo-t. </div> <hr> <div class="refsect2" lang="en"> -<a name="id2634771"></a><h3> +<a name="id2635432"></a><h3> <a name="cairo-set-line-width"></a>cairo_set_line_width ()</h3> -<a class="indexterm" name="id2634784"></a><pre class="programlisting">void cairo_set_line_width (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2635445"></a><pre class="programlisting">void cairo_set_line_width (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, double width);</pre> <p> Sets the current line width within the cairo context. The line @@ -1476,9 +1463,9 @@ The default line width value is 2.0.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2634945"></a><h3> +<a name="id2635607"></a><h3> <a name="cairo-get-line-width"></a>cairo_get_line_width ()</h3> -<a class="indexterm" name="id2634959"></a><pre class="programlisting">double cairo_get_line_width (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> +<a class="indexterm" name="id2635620"></a><pre class="programlisting">double cairo_get_line_width (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> <p> This function returns the current line width value exactly as set by <a class="link" href="cairo-cairo-t.html#cairo-set-line-width"><code class="function">cairo_set_line_width()</code></a>. Note that the value is unchanged even if @@ -1505,9 +1492,9 @@ the CTM has changed between the calls to <a class="link" href="cairo-cairo-t.htm </div> <hr> <div class="refsect2" lang="en"> -<a name="id2635052"></a><h3> +<a name="id2635713"></a><h3> <a name="cairo-set-miter-limit"></a>cairo_set_miter_limit ()</h3> -<a class="indexterm" name="id2635065"></a><pre class="programlisting">void cairo_set_miter_limit (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2635726"></a><pre class="programlisting">void cairo_set_miter_limit (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, double limit);</pre> <p> Sets the current miter limit within the cairo context. @@ -1546,9 +1533,9 @@ construction.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2635200"></a><h3> +<a name="id2635862"></a><h3> <a name="cairo-get-miter-limit"></a>cairo_get_miter_limit ()</h3> -<a class="indexterm" name="id2635214"></a><pre class="programlisting">double cairo_get_miter_limit (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> +<a class="indexterm" name="id2635875"></a><pre class="programlisting">double cairo_get_miter_limit (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> <p> Gets the current miter limit, as set by <a class="link" href="cairo-cairo-t.html#cairo-set-miter-limit"><code class="function">cairo_set_miter_limit()</code></a>.</p> <p> @@ -1572,9 +1559,9 @@ Gets the current miter limit, as set by <a class="link" href="cairo-cairo-t.html </div> <hr> <div class="refsect2" lang="en"> -<a name="id2635285"></a><h3> +<a name="id2635946"></a><h3> <a name="cairo-operator-t"></a>enum cairo_operator_t</h3> -<a class="indexterm" name="id2635298"></a><pre class="programlisting">typedef enum _cairo_operator { +<a class="indexterm" name="id2635960"></a><pre class="programlisting">typedef enum _cairo_operator { CAIRO_OPERATOR_CLEAR, CAIRO_OPERATOR_SOURCE, @@ -1595,14 +1582,116 @@ Gets the current miter limit, as set by <a class="link" href="cairo-cairo-t.html } cairo_operator_t; </pre> <p> +<a class="link" href="cairo-cairo-t.html#cairo-operator-t"><span class="type">cairo_operator_t</span></a> is used to set the compositing operator for all cairo +drawing operations. +</p> +<p> +The operators marked as <em class="firstterm">unbounded</em> modify their +destination even outside of the mask layer (that is, their effect is not +bound by the mask layer). However, their effect can still be limited by +way of clipping. +</p> +<p> +To keep things simple, the operator descriptions here +document the behavior for when both source and destination are either fully +transparent or fully opaque. The actual implementation works for +translucent layers too. +For a more detailed explanation of the effects of each operator, including +the mathematical definitions, see +<a class="ulink" href="http://cairographics.org/operators/" target="_top">http://cairographics.org/operators/</a>.</p> +<p> </p> +<div class="variablelist"><table border="0"> +<col align="left" valign="top"> +<tbody> +<tr> +<td><p><span class="term"><a name="CAIRO-OPERATOR-CLEAR:CAPS"></a><code class="literal">CAIRO_OPERATOR_CLEAR</code></span></p></td> +<td> clear destination layer (bounded) +</td> +</tr> +<tr> +<td><p><span class="term"><a name="CAIRO-OPERATOR-SOURCE:CAPS"></a><code class="literal">CAIRO_OPERATOR_SOURCE</code></span></p></td> +<td> replace destination layer (bounded) +</td> +</tr> +<tr> +<td><p><span class="term"><a name="CAIRO-OPERATOR-OVER:CAPS"></a><code class="literal">CAIRO_OPERATOR_OVER</code></span></p></td> +<td> draw source layer on top of destination layer +(bounded) +</td> +</tr> +<tr> +<td><p><span class="term"><a name="CAIRO-OPERATOR-IN:CAPS"></a><code class="literal">CAIRO_OPERATOR_IN</code></span></p></td> +<td> draw source where there was destination content +(unbounded) +</td> +</tr> +<tr> +<td><p><span class="term"><a name="CAIRO-OPERATOR-OUT:CAPS"></a><code class="literal">CAIRO_OPERATOR_OUT</code></span></p></td> +<td> draw source where there was no destination +content (unbounded) +</td> +</tr> +<tr> +<td><p><span class="term"><a name="CAIRO-OPERATOR-ATOP:CAPS"></a><code class="literal">CAIRO_OPERATOR_ATOP</code></span></p></td> +<td> draw source on top of destination content and +only there +</td> +</tr> +<tr> +<td><p><span class="term"><a name="CAIRO-OPERATOR-DEST:CAPS"></a><code class="literal">CAIRO_OPERATOR_DEST</code></span></p></td> +<td> ignore the source +</td> +</tr> +<tr> +<td><p><span class="term"><a name="CAIRO-OPERATOR-DEST-OVER:CAPS"></a><code class="literal">CAIRO_OPERATOR_DEST_OVER</code></span></p></td> +<td> draw destination on top of source +</td> +</tr> +<tr> +<td><p><span class="term"><a name="CAIRO-OPERATOR-DEST-IN:CAPS"></a><code class="literal">CAIRO_OPERATOR_DEST_IN</code></span></p></td> +<td> leave destination only where there was +source content (unbounded) +</td> +</tr> +<tr> +<td><p><span class="term"><a name="CAIRO-OPERATOR-DEST-OUT:CAPS"></a><code class="literal">CAIRO_OPERATOR_DEST_OUT</code></span></p></td> +<td> leave destination only where there was no +source content +</td> +</tr> +<tr> +<td><p><span class="term"><a name="CAIRO-OPERATOR-DEST-ATOP:CAPS"></a><code class="literal">CAIRO_OPERATOR_DEST_ATOP</code></span></p></td> +<td> leave destination on top of source content +and only there (unbounded) +</td> +</tr> +<tr> +<td><p><span class="term"><a name="CAIRO-OPERATOR-XOR:CAPS"></a><code class="literal">CAIRO_OPERATOR_XOR</code></span></p></td> +<td> source and destination are shown where there is only +one of them +</td> +</tr> +<tr> +<td><p><span class="term"><a name="CAIRO-OPERATOR-ADD:CAPS"></a><code class="literal">CAIRO_OPERATOR_ADD</code></span></p></td> +<td> source and destination layers are accumulated +</td> +</tr> +<tr> +<td><p><span class="term"><a name="CAIRO-OPERATOR-SATURATE:CAPS"></a><code class="literal">CAIRO_OPERATOR_SATURATE</code></span></p></td> +<td> like over, but assuming source and dest are +disjoint geometries +</td> +</tr> +</tbody> +</table></div> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2635321"></a><h3> +<a name="id2636358"></a><h3> <a name="cairo-set-operator"></a>cairo_set_operator ()</h3> -<a class="indexterm" name="id2635335"></a><pre class="programlisting">void cairo_set_operator (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2636372"></a><pre class="programlisting">void cairo_set_operator (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, <a class="link" href="cairo-cairo-t.html#cairo-operator-t">cairo_operator_t</a> op);</pre> <p> Sets the compositing operator to be used for all drawing @@ -1634,9 +1723,9 @@ that if such a section existed? (cworth).</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2635436"></a><h3> +<a name="id2636473"></a><h3> <a name="cairo-get-operator"></a>cairo_get_operator ()</h3> -<a class="indexterm" name="id2635450"></a><pre class="programlisting"><a class="link" href="cairo-cairo-t.html#cairo-operator-t">cairo_operator_t</a> cairo_get_operator (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> +<a class="indexterm" name="id2636487"></a><pre class="programlisting"><a class="link" href="cairo-cairo-t.html#cairo-operator-t">cairo_operator_t</a> cairo_get_operator (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> <p> Gets the current compositing operator for a cairo context.</p> <p> @@ -1660,9 +1749,9 @@ Gets the current compositing operator for a cairo context.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2635511"></a><h3> +<a name="id2636548"></a><h3> <a name="cairo-set-tolerance"></a>cairo_set_tolerance ()</h3> -<a class="indexterm" name="id2635525"></a><pre class="programlisting">void cairo_set_tolerance (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2636561"></a><pre class="programlisting">void cairo_set_tolerance (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, double tolerance);</pre> <p> Sets the tolerance used when converting paths into trapezoids. @@ -1693,9 +1782,9 @@ is unlikely to improve appearance significantly.)</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2635616"></a><h3> +<a name="id2636652"></a><h3> <a name="cairo-get-tolerance"></a>cairo_get_tolerance ()</h3> -<a class="indexterm" name="id2635630"></a><pre class="programlisting">double cairo_get_tolerance (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> +<a class="indexterm" name="id2636666"></a><pre class="programlisting">double cairo_get_tolerance (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> <p> Gets the current tolerance value, as set by <a class="link" href="cairo-cairo-t.html#cairo-set-tolerance"><code class="function">cairo_set_tolerance()</code></a>.</p> <p> @@ -1719,16 +1808,16 @@ Gets the current tolerance value, as set by <a class="link" href="cairo-cairo-t. </div> <hr> <div class="refsect2" lang="en"> -<a name="id2635700"></a><h3> +<a name="id2636737"></a><h3> <a name="cairo-clip"></a>cairo_clip ()</h3> -<a class="indexterm" name="id2635713"></a><pre class="programlisting">void cairo_clip (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> +<a class="indexterm" name="id2636750"></a><pre class="programlisting">void cairo_clip (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> <p> Establishes a new clip region by intersecting the current clip region with the current path as it would be filled by <a class="link" href="cairo-cairo-t.html#cairo-fill"><code class="function">cairo_fill()</code></a> and according to the current fill rule (see <a class="link" href="cairo-cairo-t.html#cairo-set-fill-rule"><code class="function">cairo_set_fill_rule()</code></a>). </p> <p> -After cairo_clip, the current path will be cleared from the cairo +After <a class="link" href="cairo-cairo-t.html#cairo-clip"><code class="function">cairo_clip()</code></a>, the current path will be cleared from the cairo context. </p> <p> @@ -1757,16 +1846,16 @@ region is <a class="link" href="cairo-cairo-t.html#cairo-reset-clip"><code class </div> <hr> <div class="refsect2" lang="en"> -<a name="id2635851"></a><h3> +<a name="id2636897"></a><h3> <a name="cairo-clip-preserve"></a>cairo_clip_preserve ()</h3> -<a class="indexterm" name="id2635865"></a><pre class="programlisting">void cairo_clip_preserve (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> +<a class="indexterm" name="id2636911"></a><pre class="programlisting">void cairo_clip_preserve (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> <p> Establishes a new clip region by intersecting the current clip region with the current path as it would be filled by <a class="link" href="cairo-cairo-t.html#cairo-fill"><code class="function">cairo_fill()</code></a> and according to the current fill rule (see <a class="link" href="cairo-cairo-t.html#cairo-set-fill-rule"><code class="function">cairo_set_fill_rule()</code></a>). </p> <p> -Unlike <a class="link" href="cairo-cairo-t.html#cairo-clip"><code class="function">cairo_clip()</code></a>, cairo_clip_preserve preserves the path within +Unlike <a class="link" href="cairo-cairo-t.html#cairo-clip"><code class="function">cairo_clip()</code></a>, <a class="link" href="cairo-cairo-t.html#cairo-clip-preserve"><code class="function">cairo_clip_preserve()</code></a> preserves the path within the cairo context. </p> <p> @@ -1795,9 +1884,9 @@ region is <a class="link" href="cairo-cairo-t.html#cairo-reset-clip"><code class </div> <hr> <div class="refsect2" lang="en"> -<a name="id2636012"></a><h3> +<a name="id2637067"></a><h3> <a name="cairo-clip-extents"></a>cairo_clip_extents ()</h3> -<a class="indexterm" name="id2636028"></a><pre class="programlisting">void cairo_clip_extents (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2637083"></a><pre class="programlisting">void cairo_clip_extents (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, double *x1, double *y1, double *x2, @@ -1843,9 +1932,9 @@ current clip.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2636172"></a><h3> +<a name="id2637228"></a><h3> <a name="cairo-reset-clip"></a>cairo_reset_clip ()</h3> -<a class="indexterm" name="id2636185"></a><pre class="programlisting">void cairo_reset_clip (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> +<a class="indexterm" name="id2637241"></a><pre class="programlisting">void cairo_reset_clip (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> <p> Reset the current clip region to its original, unrestricted state. That is, set the clip region to an infinitely large shape @@ -1873,9 +1962,9 @@ robust means of temporarily restricting the clip region.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2636294"></a><h3> +<a name="id2637350"></a><h3> <a name="cairo-rectangle-t"></a>cairo_rectangle_t</h3> -<a class="indexterm" name="id2636310"></a><pre class="programlisting">typedef struct { +<a class="indexterm" name="id2637365"></a><pre class="programlisting">typedef struct { double x, y, width, height; } cairo_rectangle_t; </pre> @@ -1914,9 +2003,9 @@ A data structure for holding a rectangle.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2636427"></a><h3> +<a name="id2637482"></a><h3> <a name="cairo-rectangle-list-t"></a>cairo_rectangle_list_t</h3> -<a class="indexterm" name="id2636443"></a><pre class="programlisting">typedef struct { +<a class="indexterm" name="id2637498"></a><pre class="programlisting">typedef struct { cairo_status_t status; cairo_rectangle_t *rectangles; int num_rectangles; @@ -1953,9 +2042,9 @@ array of rectangles.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2636542"></a><h3> +<a name="id2637597"></a><h3> <a name="cairo-rectangle-list-destroy"></a>cairo_rectangle_list_destroy ()</h3> -<a class="indexterm" name="id2636558"></a><pre class="programlisting">void cairo_rectangle_list_destroy (<a class="link" href="cairo-cairo-t.html#cairo-rectangle-list-t">cairo_rectangle_list_t</a> *rectangle_list);</pre> +<a class="indexterm" name="id2637613"></a><pre class="programlisting">void cairo_rectangle_list_destroy (<a class="link" href="cairo-cairo-t.html#cairo-rectangle-list-t">cairo_rectangle_list_t</a> *rectangle_list);</pre> <p> Unconditionally frees <em class="parameter"><code>rectangle_list</code></em> and all associated references. After this call, the <em class="parameter"><code>rectangle_list</code></em> pointer must not @@ -1976,22 +2065,18 @@ be dereferenced.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2636640"></a><h3> +<a name="id2637695"></a><h3> <a name="cairo-copy-clip-rectangle-list"></a>cairo_copy_clip_rectangle_list ()</h3> -<a class="indexterm" name="id2636656"></a><pre class="programlisting"><a class="link" href="cairo-cairo-t.html#cairo-rectangle-list-t">cairo_rectangle_list_t</a>* cairo_copy_clip_rectangle_list (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> +<a class="indexterm" name="id2637712"></a><pre class="programlisting"><a class="link" href="cairo-cairo-t.html#cairo-rectangle-list-t">cairo_rectangle_list_t</a>* cairo_copy_clip_rectangle_list (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> <p> Gets the current clip region as a list of rectangles in user coordinates. Never returns <code class="literal">NULL</code>. </p> <p> -The status in the list may be CAIRO_STATUS_CLIP_NOT_REPRESENTABLE to +The status in the list may be <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-CLIP-NOT-REPRESENTABLE:CAPS"><code class="literal">CAIRO_STATUS_CLIP_NOT_REPRESENTABLE</code></a> to indicate that the clip region cannot be represented as a list of user-space rectangles. The status may have other values to indicate -other errors. -</p> -<p> -The caller must always call cairo_rectangle_list_destroy on the result of -this function.</p> +other errors.</p> <p> </p> @@ -2005,7 +2090,8 @@ this function.</p> </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> -<td> the current clip region as a list of rectangles in user coordinates. +<td> the current clip region as a list of rectangles in user coordinates, +which should be destroyed using <a class="link" href="cairo-cairo-t.html#cairo-rectangle-list-destroy"><code class="function">cairo_rectangle_list_destroy()</code></a>. </td> </tr> @@ -2016,13 +2102,13 @@ this function.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2636748"></a><h3> +<a name="id2637819"></a><h3> <a name="cairo-fill"></a>cairo_fill ()</h3> -<a class="indexterm" name="id2636761"></a><pre class="programlisting">void cairo_fill (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> +<a class="indexterm" name="id2637831"></a><pre class="programlisting">void cairo_fill (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> <p> A drawing operator that fills the current path according to the current fill rule, (each sub-path is implicitly closed before being -filled). After cairo_fill, the current path will be cleared from +filled). After <a class="link" href="cairo-cairo-t.html#cairo-fill"><code class="function">cairo_fill()</code></a>, the current path will be cleared from the cairo context. See <a class="link" href="cairo-cairo-t.html#cairo-set-fill-rule"><code class="function">cairo_set_fill_rule()</code></a> and <a class="link" href="cairo-cairo-t.html#cairo-fill-preserve"><code class="function">cairo_fill_preserve()</code></a>.</p> <p> @@ -2039,13 +2125,13 @@ the cairo context. See <a class="link" href="cairo-cairo-t.html#cairo-set-fill-r </div> <hr> <div class="refsect2" lang="en"> -<a name="id2636834"></a><h3> +<a name="id2637914"></a><h3> <a name="cairo-fill-preserve"></a>cairo_fill_preserve ()</h3> -<a class="indexterm" name="id2636847"></a><pre class="programlisting">void cairo_fill_preserve (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> +<a class="indexterm" name="id2637927"></a><pre class="programlisting">void cairo_fill_preserve (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> <p> A drawing operator that fills the current path according to the current fill rule, (each sub-path is implicitly closed before being -filled). Unlike <a class="link" href="cairo-cairo-t.html#cairo-fill"><code class="function">cairo_fill()</code></a>, cairo_fill_preserve preserves the +filled). Unlike <a class="link" href="cairo-cairo-t.html#cairo-fill"><code class="function">cairo_fill()</code></a>, <a class="link" href="cairo-cairo-t.html#cairo-fill-preserve"><code class="function">cairo_fill_preserve()</code></a> preserves the path within the cairo context. </p> <p> @@ -2064,19 +2150,24 @@ See <a class="link" href="cairo-cairo-t.html#cairo-set-fill-rule"><code class="f </div> <hr> <div class="refsect2" lang="en"> -<a name="id2636933"></a><h3> +<a name="id2638022"></a><h3> <a name="cairo-fill-extents"></a>cairo_fill_extents ()</h3> -<a class="indexterm" name="id2636946"></a><pre class="programlisting">void cairo_fill_extents (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2638035"></a><pre class="programlisting">void cairo_fill_extents (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, double *x1, double *y1, double *x2, double *y2);</pre> <p> Computes a bounding box in user coordinates covering the area that -would be affected by a <a class="link" href="cairo-cairo-t.html#cairo-fill"><code class="function">cairo_fill()</code></a> operation given the current path -and fill parameters. If the current path is empty, returns an empty -rectangle (0,0, 0,0). Surface dimensions and clipping are not taken -into account. +would be affected, (the "inked" area), by a <a class="link" href="cairo-cairo-t.html#cairo-fill"><code class="function">cairo_fill()</code></a> operation +given the current path and fill parameters. If the current path is +empty, returns an empty rectangle ((0,0), (0,0)). Surface +dimensions and clipping are not taken into account. +</p> +<p> +Contrast with <a class="link" href="cairo-Paths.html#cairo-path-extents"><code class="function">cairo_path_extents()</code></a>, which is similar, but returns +non-zero extents for some paths no inked area, (such as a simple +line segment). </p> <p> See <a class="link" href="cairo-cairo-t.html#cairo-fill"><code class="function">cairo_fill()</code></a>, <a class="link" href="cairo-cairo-t.html#cairo-set-fill-rule"><code class="function">cairo_set_fill_rule()</code></a> and <a class="link" href="cairo-cairo-t.html#cairo-fill-preserve"><code class="function">cairo_fill_preserve()</code></a>.</p> @@ -2116,9 +2207,9 @@ See <a class="link" href="cairo-cairo-t.html#cairo-fill"><code class="function"> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2637128"></a><h3> +<a name="id2638234"></a><h3> <a name="cairo-in-fill"></a>cairo_in_fill ()</h3> -<a class="indexterm" name="id2637142"></a><pre class="programlisting"><a class="link" href="cairo-Types.html#cairo-bool-t">cairo_bool_t</a> cairo_in_fill (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2638247"></a><pre class="programlisting"><a class="link" href="cairo-Types.html#cairo-bool-t">cairo_bool_t</a> cairo_in_fill (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, double x, double y);</pre> <p> @@ -2161,9 +2252,9 @@ outside. </div> <hr> <div class="refsect2" lang="en"> -<a name="id2637292"></a><h3> +<a name="id2638397"></a><h3> <a name="cairo-mask"></a>cairo_mask ()</h3> -<a class="indexterm" name="id2637305"></a><pre class="programlisting">void cairo_mask (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2638410"></a><pre class="programlisting">void cairo_mask (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, <a class="link" href="cairo-Patterns.html#cairo-pattern-t">cairo_pattern_t</a> *pattern);</pre> <p> A drawing operator that paints the current source @@ -2191,9 +2282,9 @@ areas are not painted.)</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2637398"></a><h3> +<a name="id2638503"></a><h3> <a name="cairo-mask-surface"></a>cairo_mask_surface ()</h3> -<a class="indexterm" name="id2637412"></a><pre class="programlisting">void cairo_mask_surface (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2638517"></a><pre class="programlisting">void cairo_mask_surface (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface, double surface_x, double surface_y);</pre> @@ -2233,9 +2324,9 @@ areas are not painted.)</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2637561"></a><h3> +<a name="id2638666"></a><h3> <a name="cairo-paint"></a>cairo_paint ()</h3> -<a class="indexterm" name="id2637574"></a><pre class="programlisting">void cairo_paint (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> +<a class="indexterm" name="id2638679"></a><pre class="programlisting">void cairo_paint (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> <p> A drawing operator that paints the current source everywhere within the current clip region.</p> @@ -2253,9 +2344,9 @@ the current clip region.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2637626"></a><h3> +<a name="id2638731"></a><h3> <a name="cairo-paint-with-alpha"></a>cairo_paint_with_alpha ()</h3> -<a class="indexterm" name="id2637639"></a><pre class="programlisting">void cairo_paint_with_alpha (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2638744"></a><pre class="programlisting">void cairo_paint_with_alpha (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, double alpha);</pre> <p> A drawing operator that paints the current source everywhere within @@ -2283,9 +2374,9 @@ is faded out using the alpha value.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2637730"></a><h3> +<a name="id2638835"></a><h3> <a name="cairo-stroke"></a>cairo_stroke ()</h3> -<a class="indexterm" name="id2637743"></a><pre class="programlisting">void cairo_stroke (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> +<a class="indexterm" name="id2638848"></a><pre class="programlisting">void cairo_stroke (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> <p> A drawing operator that strokes the current path according to the current line width, line join, line cap, and dash settings. After @@ -2301,9 +2392,9 @@ situations: </p> <p> 1. Zero-length "on" segments set in <a class="link" href="cairo-cairo-t.html#cairo-set-dash"><code class="function">cairo_set_dash()</code></a>. If the cap -style is CAIRO_LINE_CAP_ROUND or CAIRO_LINE_CAP_SQUARE then these +style is <a class="link" href="cairo-cairo-t.html#CAIRO-LINE-CAP-ROUND:CAPS"><code class="literal">CAIRO_LINE_CAP_ROUND</code></a> or <a class="link" href="cairo-cairo-t.html#CAIRO-LINE-CAP-SQUARE:CAPS"><code class="literal">CAIRO_LINE_CAP_SQUARE</code></a> 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 +the case of <a class="link" href="cairo-cairo-t.html#CAIRO-LINE-CAP-SQUARE:CAPS"><code class="literal">CAIRO_LINE_CAP_SQUARE</code></a>, the orientation of the squares is determined by the direction of the underlying path. </p> <p> @@ -2311,12 +2402,12 @@ is determined by the direction of the underlying path. <a class="link" href="cairo-Paths.html#cairo-close-path"><code class="function">cairo_close_path()</code></a> or one or more calls to <a class="link" href="cairo-Paths.html#cairo-line-to"><code class="function">cairo_line_to()</code></a> to the same coordinate as the <a class="link" href="cairo-Paths.html#cairo-move-to"><code class="function">cairo_move_to()</code></a>. 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 +dots. Note that in the case of <a class="link" href="cairo-cairo-t.html#CAIRO-LINE-CAP-SQUARE:CAPS"><code class="literal">CAIRO_LINE_CAP_SQUARE</code></a> a degenerate sub-path will not be drawn at all, (since the correct orientation is indeterminate). </p> <p> -In no case will a cap style of CAIRO_LINE_CAP_BUTT cause anything +In no case will a cap style of <a class="link" href="cairo-cairo-t.html#CAIRO-LINE-CAP-BUTT:CAPS"><code class="literal">CAIRO_LINE_CAP_BUTT</code></a> cause anything to be drawn in the case of either degenerate segments or sub-paths.</p> <p> @@ -2332,13 +2423,13 @@ to be drawn in the case of either degenerate segments or sub-paths.</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2637922"></a><h3> +<a name="id2639074"></a><h3> <a name="cairo-stroke-preserve"></a>cairo_stroke_preserve ()</h3> -<a class="indexterm" name="id2637936"></a><pre class="programlisting">void cairo_stroke_preserve (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> +<a class="indexterm" name="id2639088"></a><pre class="programlisting">void cairo_stroke_preserve (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> <p> A drawing operator that strokes the current path according to the current line width, line join, line cap, and dash settings. Unlike -<a class="link" href="cairo-cairo-t.html#cairo-stroke"><code class="function">cairo_stroke()</code></a>, cairo_stroke_preserve preserves the path within the +<a class="link" href="cairo-cairo-t.html#cairo-stroke"><code class="function">cairo_stroke()</code></a>, <a class="link" href="cairo-cairo-t.html#cairo-stroke-preserve"><code class="function">cairo_stroke_preserve()</code></a> preserves the path within the cairo context. </p> <p> @@ -2359,17 +2450,31 @@ See <a class="link" href="cairo-cairo-t.html#cairo-set-line-width"><code class=" </div> <hr> <div class="refsect2" lang="en"> -<a name="id2638051"></a><h3> +<a name="id2639212"></a><h3> <a name="cairo-stroke-extents"></a>cairo_stroke_extents ()</h3> -<a class="indexterm" name="id2638064"></a><pre class="programlisting">void cairo_stroke_extents (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2639226"></a><pre class="programlisting">void cairo_stroke_extents (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, double *x1, double *y1, double *x2, double *y2);</pre> <p> Computes a bounding box in user coordinates covering the area that -would be affected by a <a class="link" href="cairo-cairo-t.html#cairo-stroke"><code class="function">cairo_stroke()</code></a> operation operation given the -current path and stroke parameters. If the current path is empty,</p> +would be affected, (the "inked" area), by a <a class="link" href="cairo-cairo-t.html#cairo-stroke"><code class="function">cairo_stroke()</code></a> +operation operation given the current path and stroke +parameters. If the current path is empty, returns an empty +rectangle ((0,0), (0,0)). Surface dimensions and clipping are not +taken into account. +</p> +<p> +Note that if the line width is set to exactly zero, then +cairo_stroke_extents will return an empty rectangle. Contrast with +<a class="link" href="cairo-Paths.html#cairo-path-extents"><code class="function">cairo_path_extents()</code></a> which can be used to compute the non-empty +bounds as the line width approaches zero. +</p> +<p> +See <a class="link" href="cairo-cairo-t.html#cairo-stroke"><code class="function">cairo_stroke()</code></a>, <a class="link" href="cairo-cairo-t.html#cairo-set-line-width"><code class="function">cairo_set_line_width()</code></a>, <a class="link" href="cairo-cairo-t.html#cairo-set-line-join"><code class="function">cairo_set_line_join()</code></a>, +<a class="link" href="cairo-cairo-t.html#cairo-set-line-cap"><code class="function">cairo_set_line_cap()</code></a>, <a class="link" href="cairo-cairo-t.html#cairo-set-dash"><code class="function">cairo_set_dash()</code></a>, and +<a class="link" href="cairo-cairo-t.html#cairo-stroke-preserve"><code class="function">cairo_stroke_preserve()</code></a>.</p> <p> </p> @@ -2406,9 +2511,9 @@ current path and stroke parameters. If the current path is empty,</p> </div> <hr> <div class="refsect2" lang="en"> -<a name="id2638213"></a><h3> +<a name="id2639456"></a><h3> <a name="cairo-in-stroke"></a>cairo_in_stroke ()</h3> -<a class="indexterm" name="id2638226"></a><pre class="programlisting"><a class="link" href="cairo-Types.html#cairo-bool-t">cairo_bool_t</a> cairo_in_stroke (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2639469"></a><pre class="programlisting"><a class="link" href="cairo-Types.html#cairo-bool-t">cairo_bool_t</a> cairo_in_stroke (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, double x, double y);</pre> <p> @@ -2453,9 +2558,9 @@ outside. </div> <hr> <div class="refsect2" lang="en"> -<a name="id2638406"></a><h3> +<a name="id2639648"></a><h3> <a name="cairo-copy-page"></a>cairo_copy_page ()</h3> -<a class="indexterm" name="id2638420"></a><pre class="programlisting">void cairo_copy_page (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> +<a class="indexterm" name="id2639662"></a><pre class="programlisting">void cairo_copy_page (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> <p> Emits the current page for backends that support multiple pages, but doesn't clear it, so, the contents of the current page will be retained @@ -2479,9 +2584,9 @@ This is a convenience function that simply calls </div> <hr> <div class="refsect2" lang="en"> -<a name="id2638503"></a><h3> +<a name="id2639745"></a><h3> <a name="cairo-show-page"></a>cairo_show_page ()</h3> -<a class="indexterm" name="id2638516"></a><pre class="programlisting">void cairo_show_page (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> +<a class="indexterm" name="id2639758"></a><pre class="programlisting">void cairo_show_page (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> <p> Emits and clears the current page for backends that support multiple pages. Use <a class="link" href="cairo-cairo-t.html#cairo-copy-page"><code class="function">cairo_copy_page()</code></a> if you don't want to clear the page. @@ -2503,9 +2608,9 @@ This is a convenience function that simply calls </div> <hr> <div class="refsect2" lang="en"> -<a name="id2638597"></a><h3> +<a name="id2639840"></a><h3> <a name="cairo-get-reference-count"></a>cairo_get_reference_count ()</h3> -<a class="indexterm" name="id2638614"></a><pre class="programlisting">unsigned int cairo_get_reference_count (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> +<a class="indexterm" name="id2639856"></a><pre class="programlisting">unsigned int cairo_get_reference_count (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr);</pre> <p> Returns the current reference count of <em class="parameter"><code>cr</code></em>.</p> <p> @@ -2533,9 +2638,9 @@ object is a nil object, 0 will be returned. </div> <hr> <div class="refsect2" lang="en"> -<a name="id2638703"></a><h3> +<a name="id2639945"></a><h3> <a name="cairo-set-user-data"></a>cairo_set_user_data ()</h3> -<a class="indexterm" name="id2638719"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_set_user_data (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2639961"></a><pre class="programlisting"><a class="link" href="cairo-Error-Handling.html#cairo-status-t">cairo_status_t</a> cairo_set_user_data (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, const <a class="link" href="cairo-Types.html#cairo-user-data-key-t">cairo_user_data_key_t</a> *key, void *user_data, <a class="link" href="cairo-Types.html#cairo-destroy-func-t">cairo_destroy_func_t</a> destroy);</pre> @@ -2573,11 +2678,7 @@ same key. </tr> <tr> <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td> -<td> <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS" -><code class="literal">CAIRO_STATUS_SUCCESS</code></a> or <a -href="../cairo/cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS" -><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a> if a +<td> <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> or <a class="link" href="cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a> if a slot could not be allocated for the user data. </td> @@ -2589,9 +2690,9 @@ slot could not be allocated for the user data. </div> <hr> <div class="refsect2" lang="en"> -<a name="id2638933"></a><h3> +<a name="id2640176"></a><h3> <a name="cairo-get-user-data"></a>cairo_get_user_data ()</h3> -<a class="indexterm" name="id2638949"></a><pre class="programlisting">void* cairo_get_user_data (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, +<a class="indexterm" name="id2640192"></a><pre class="programlisting">void* cairo_get_user_data (<a class="link" href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr, const <a class="link" href="cairo-Types.html#cairo-user-data-key-t">cairo_user_data_key_t</a> *key);</pre> <p> Return user data previously attached to <em class="parameter"><code>cr</code></em> using the specified @@ -2627,9 +2728,17 @@ attached to </div> </div> <div class="refsect1" lang="en"> -<a name="id2639082"></a><div class="refsect2" lang="en"><a name="id2639083"></a></div> +<a name="id2640324"></a><h2>See Also</h2> +<p> +</p> +<div class="itemizedlist"><ul type="disc"><li><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t"><span class="type">cairo_surface_t</span></a></li></ul></div> +<p> +</p> +</div> +<div class="refsect1" lang="en"> +<a name="id2640348"></a><div class="refsect2" lang="en"><a name="id2640349"></a></div> <hr> -<div class="refsect2" lang="en"><a name="id2639084"></a></div> +<div class="refsect2" lang="en"><a name="id2640350"></a></div> </div> </div> </body> diff --git a/doc/public/html/cairo.devhelp b/doc/public/html/cairo.devhelp index cf9d1d2..03e8225 100644 --- a/doc/public/html/cairo.devhelp +++ b/doc/public/html/cairo.devhelp @@ -2,42 +2,40 @@ <!DOCTYPE book PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" ""> <book xmlns="http://www.devhelp.net/book" title="Cairo: A Vector Graphics Library" link="index.html" author="" name="cairo"> <chapters> - <sub name="Tutorial" link="pt01.html"/> - <sub name="Reference" link="pt02.html"> - <sub name="Drawing" link="Drawing.html"> - <sub name="cairo_t" link="cairo-cairo-t.html"/> - <sub name="Paths" link="cairo-Paths.html"/> - <sub name="Patterns" link="cairo-Patterns.html"/> - <sub name="Transformations" link="cairo-Transformations.html"/> - <sub name="Text" link="cairo-Text.html"/> - </sub> - <sub name="Fonts" link="Fonts.html"> - <sub name="cairo_font_face_t" link="cairo-cairo-font-face-t.html"/> - <sub name="Scaled Fonts" link="cairo-Scaled-Fonts.html"/> - <sub name="Font Options" link="cairo-Font-Options.html"/> - <sub name="FreeType Fonts" link="cairo-FreeType-Fonts.html"/> - <sub name="Win32 Fonts" link="cairo-Win32-Fonts.html"/> - </sub> - <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="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="SVG Surfaces" link="cairo-SVG-Surfaces.html"/> - <sub name="XLib Surfaces" link="cairo-XLib-Surfaces.html"/> - </sub> - <sub name="Utilities" link="Support.html"> - <sub name="cairo_matrix_t" link="cairo-cairo-matrix-t.html"/> - <sub name="Error handling" link="cairo-Error-Handling.html"/> - <sub name="Version Information" link="cairo-Version-Information.html"/> - <sub name="Types" link="cairo-Types.html"/> - </sub> + <sub name="Drawing" link="Drawing.html"> + <sub name="cairo_t" link="cairo-cairo-t.html"/> + <sub name="Paths" link="cairo-Paths.html"/> + <sub name="cairo_pattern_t" link="cairo-Patterns.html"/> + <sub name="Transformations" link="cairo-Transformations.html"/> + <sub name="Text" link="cairo-Text.html"/> + </sub> + <sub name="Fonts" link="Fonts.html"> + <sub name="cairo_font_face_t" link="cairo-cairo-font-face-t.html"/> + <sub name="cairo_scaled_font_t" link="cairo-Scaled-Fonts.html"/> + <sub name="cairo_font_options_t" link="cairo-Font-Options.html"/> + <sub name="FreeType Fonts" link="cairo-FreeType-Fonts.html"/> + <sub name="Win32 Fonts" link="cairo-Win32-Fonts.html"/> + </sub> + <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="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="SVG Surfaces" link="cairo-SVG-Surfaces.html"/> + <sub name="XLib Surfaces" link="cairo-XLib-Surfaces.html"/> + </sub> + <sub name="Utilities" link="Support.html"> + <sub name="cairo_matrix_t" link="cairo-cairo-matrix-t.html"/> + <sub name="Error handling" link="cairo-Error-Handling.html"/> + <sub name="Version Information" link="cairo-Version-Information.html"/> + <sub name="Types" link="cairo-Types.html"/> </sub> <sub name="Index" link="ix01.html"/> <sub name="Index of new symbols in 1.2" link="index-1.2.html"/> <sub name="Index of new symbols in 1.4" link="index-1.4.html"/> + <sub name="Index of new symbols in 1.6" link="index-1.6.html"/> <sub name="Creating a language binding for cairo" link="language-bindings.html"> <sub name="General considerations" link="language-bindings.html#bindings-general"/> <sub name="Memory management" link="bindings-memory.html"/> @@ -119,8 +117,8 @@ <function name="cairo_get_reference_count ()" link="cairo-cairo-t.html#cairo-get-reference-count"/> <function name="cairo_set_user_data ()" link="cairo-cairo-t.html#cairo-set-user-data"/> <function name="cairo_get_user_data ()" link="cairo-cairo-t.html#cairo-get-user-data"/> - <function name="" link="cairo-cairo-t.html#id2639083"/> - <function name="" link="cairo-cairo-t.html#id2639084"/> + <function name="" link="cairo-cairo-t.html#id2640349"/> + <function name="" link="cairo-cairo-t.html#id2640350"/> <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"/> @@ -143,8 +141,9 @@ <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="" link="cairo-Paths.html#id2581700"/> - <function name="" link="cairo-Paths.html#id2581701"/> + <function name="cairo_path_extents ()" link="cairo-Paths.html#cairo-path-extents"/> + <function name="" link="cairo-Paths.html#id2581997"/> + <function name="" link="cairo-Paths.html#id2581998"/> <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"/> @@ -175,8 +174,8 @@ <function name="cairo_pattern_get_reference_count ()" link="cairo-Patterns.html#cairo-pattern-get-reference-count"/> <function name="cairo_pattern_set_user_data ()" link="cairo-Patterns.html#cairo-pattern-set-user-data"/> <function name="cairo_pattern_get_user_data ()" link="cairo-Patterns.html#cairo-pattern-get-user-data"/> - <function name="" link="cairo-Patterns.html#id2645152"/> - <function name="" link="cairo-Patterns.html#id2645153"/> + <function name="" link="cairo-Patterns.html#id2646903"/> + <function name="" link="cairo-Patterns.html#id2646904"/> <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"/> @@ -188,8 +187,8 @@ <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="" link="cairo-Transformations.html#id2628282"/> - <function name="" link="cairo-Transformations.html#id2628283"/> + <function name="" link="cairo-Transformations.html#id2594106"/> + <function name="" link="cairo-Transformations.html#id2594107"/> <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"/> @@ -208,8 +207,8 @@ <function name="cairo_font_extents ()" link="cairo-Text.html#cairo-font-extents"/> <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="" link="cairo-Text.html#id2646738"/> - <function name="" link="cairo-Text.html#id2646739"/> + <function name="" link="cairo-Text.html#id2648369"/> + <function name="" link="cairo-Text.html#id2648370"/> <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"/> @@ -219,8 +218,8 @@ <function name="cairo_font_face_get_reference_count ()" link="cairo-cairo-font-face-t.html#cairo-font-face-get-reference-count"/> <function name="cairo_font_face_set_user_data ()" link="cairo-cairo-font-face-t.html#cairo-font-face-set-user-data"/> <function name="cairo_font_face_get_user_data ()" link="cairo-cairo-font-face-t.html#cairo-font-face-get-user-data"/> - <function name="" link="cairo-cairo-font-face-t.html#id2594368"/> - <function name="" link="cairo-cairo-font-face-t.html#id2594369"/> + <function name="" link="cairo-cairo-font-face-t.html#id2626810"/> + <function name="" link="cairo-cairo-font-face-t.html#id2626812"/> <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"/> @@ -239,8 +238,8 @@ <function name="cairo_scaled_font_get_reference_count ()" link="cairo-Scaled-Fonts.html#cairo-scaled-font-get-reference-count"/> <function name="cairo_scaled_font_set_user_data ()" link="cairo-Scaled-Fonts.html#cairo-scaled-font-set-user-data"/> <function name="cairo_scaled_font_get_user_data ()" link="cairo-Scaled-Fonts.html#cairo-scaled-font-get-user-data"/> - <function name="" link="cairo-Scaled-Fonts.html#id2651562"/> - <function name="" link="cairo-Scaled-Fonts.html#id2651563"/> + <function name="" link="cairo-Scaled-Fonts.html#id2653446"/> + <function name="" link="cairo-Scaled-Fonts.html#id2653447"/> <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"/> @@ -260,15 +259,17 @@ <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="" link="cairo-Font-Options.html#id2653670"/> - <function name="" link="cairo-Font-Options.html#id2653671"/> + <function name="" link="cairo-Font-Options.html#id2655525"/> + <function name="" link="cairo-Font-Options.html#id2655526"/> + <function name="CAIRO_HAS_FT_FONT" link="cairo-FreeType-Fonts.html#CAIRO-HAS-FT-FONT:CAPS"/> <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="" link="cairo-FreeType-Fonts.html#id2649040"/> - <function name="" link="cairo-FreeType-Fonts.html#id2649041"/> + <function name="" link="cairo-FreeType-Fonts.html#id2648482"/> + <function name="" link="cairo-FreeType-Fonts.html#id2648483"/> + <function name="CAIRO_HAS_WIN32_FONT" link="cairo-Win32-Fonts.html#CAIRO-HAS-WIN32-FONT:CAPS"/> <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_font_face_create_for_logfontw_hfont ()" link="cairo-Win32-Fonts.html#cairo-win32-font-face-create-for-logfontw-hfont"/> @@ -277,8 +278,8 @@ <function name="cairo_win32_scaled_font_get_metrics_factor ()" link="cairo-Win32-Fonts.html#cairo-win32-scaled-font-get-metrics-factor"/> <function name="cairo_win32_scaled_font_get_logical_to_device ()" link="cairo-Win32-Fonts.html#cairo-win32-scaled-font-get-logical-to-device"/> <function name="cairo_win32_scaled_font_get_device_to_logical ()" link="cairo-Win32-Fonts.html#cairo-win32-scaled-font-get-device-to-logical"/> - <function name="" link="cairo-Win32-Fonts.html#id2648269"/> - <function name="" link="cairo-Win32-Fonts.html#id2648270"/> + <function name="" link="cairo-Win32-Fonts.html#id2657187"/> + <function name="" link="cairo-Win32-Fonts.html#id2657188"/> <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"/> @@ -301,9 +302,10 @@ <function name="cairo_surface_get_user_data ()" link="cairo-cairo-surface-t.html#cairo-surface-get-user-data"/> <function name="cairo_surface_copy_page ()" link="cairo-cairo-surface-t.html#cairo-surface-copy-page"/> <function name="cairo_surface_show_page ()" link="cairo-cairo-surface-t.html#cairo-surface-show-page"/> - <function name="" link="cairo-cairo-surface-t.html#id2661115"/> - <function name="" link="cairo-cairo-surface-t.html#id2661116"/> + <function name="" link="cairo-cairo-surface-t.html#id2663319"/> + <function name="" link="cairo-cairo-surface-t.html#id2663320"/> <function name="enum cairo_format_t" link="cairo-Image-Surfaces.html#cairo-format-t"/> + <function name="cairo_format_stride_for_width ()" link="cairo-Image-Surfaces.html#cairo-format-stride-for-width"/> <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"/> @@ -311,21 +313,24 @@ <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="" link="cairo-Image-Surfaces.html#id2656586"/> - <function name="" link="cairo-Image-Surfaces.html#id2656587"/> + <function name="" link="cairo-Image-Surfaces.html#id2660134"/> + <function name="" link="cairo-Image-Surfaces.html#id2660136"/> + <function name="CAIRO_HAS_PDF_SURFACE" link="cairo-PDF-Surfaces.html#CAIRO-HAS-PDF-SURFACE:CAPS"/> <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="" link="cairo-PDF-Surfaces.html#id2657946"/> - <function name="" link="cairo-PDF-Surfaces.html#id2657947"/> + <function name="" link="cairo-PDF-Surfaces.html#id2656772"/> + <function name="" link="cairo-PDF-Surfaces.html#id2656774"/> + <function name="CAIRO_HAS_PNG_FUNCTIONS" link="cairo-PNG-Support.html#CAIRO-HAS-PNG-FUNCTIONS:CAPS"/> <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_surface_write_to_png_stream ()" link="cairo-PNG-Support.html#cairo-surface-write-to-png-stream"/> - <function name="" link="cairo-PNG-Support.html#id2654697"/> - <function name="" link="cairo-PNG-Support.html#id2654698"/> + <function name="" link="cairo-PNG-Support.html#id2658062"/> + <function name="" link="cairo-PNG-Support.html#id2658063"/> + <function name="CAIRO_HAS_PS_SURFACE" link="cairo-PostScript-Surfaces.html#CAIRO-HAS-PS-SURFACE:CAPS"/> <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_restrict_to_level ()" link="cairo-PostScript-Surfaces.html#cairo-ps-surface-restrict-to-level"/> @@ -338,24 +343,27 @@ <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="" link="cairo-PostScript-Surfaces.html#id2665202"/> - <function name="" link="cairo-PostScript-Surfaces.html#id2665203"/> + <function name="" link="cairo-PostScript-Surfaces.html#id2668014"/> + <function name="" link="cairo-PostScript-Surfaces.html#id2668015"/> + <function name="CAIRO_HAS_WIN32_SURFACE" link="cairo-Win32-Surfaces.html#CAIRO-HAS-WIN32-SURFACE:CAPS"/> <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_create_with_ddb ()" link="cairo-Win32-Surfaces.html#cairo-win32-surface-create-with-ddb"/> <function name="cairo_win32_printing_surface_create ()" link="cairo-Win32-Surfaces.html#cairo-win32-printing-surface-create"/> <function name="cairo_win32_surface_get_dc ()" link="cairo-Win32-Surfaces.html#cairo-win32-surface-get-dc"/> <function name="cairo_win32_surface_get_image ()" link="cairo-Win32-Surfaces.html#cairo-win32-surface-get-image"/> - <function name="" link="cairo-Win32-Surfaces.html#id2663542"/> - <function name="" link="cairo-Win32-Surfaces.html#id2663543"/> + <function name="" link="cairo-Win32-Surfaces.html#id2663375"/> + <function name="" link="cairo-Win32-Surfaces.html#id2663376"/> + <function name="CAIRO_HAS_SVG_SURFACE" link="cairo-SVG-Surfaces.html#CAIRO-HAS-SVG-SURFACE:CAPS"/> <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="" link="cairo-SVG-Surfaces.html#id2661558"/> - <function name="" link="cairo-SVG-Surfaces.html#id2661560"/> + <function name="" link="cairo-SVG-Surfaces.html#id2664557"/> + <function name="" link="cairo-SVG-Surfaces.html#id2664558"/> + <function name="CAIRO_HAS_XLIB_SURFACE" link="cairo-XLib-Surfaces.html#CAIRO-HAS-XLIB-SURFACE:CAPS"/> <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"/> @@ -367,8 +375,8 @@ <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="" link="cairo-XLib-Surfaces.html#id2668198"/> - <function name="" link="cairo-XLib-Surfaces.html#id2668199"/> + <function name="" link="cairo-XLib-Surfaces.html#id2671287"/> + <function name="" link="cairo-XLib-Surfaces.html#id2671288"/> <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"/> @@ -382,15 +390,15 @@ <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="" link="cairo-cairo-matrix-t.html#id2671665"/> - <function name="" link="cairo-cairo-matrix-t.html#id2671666"/> - <function name="cairo_status_t ()" link="cairo-Error-Handling.html#cairo-status-t"/> + <function name="" link="cairo-cairo-matrix-t.html#id2674761"/> + <function name="" link="cairo-cairo-matrix-t.html#id2674762"/> + <function name="enum cairo_status_t" link="cairo-Error-Handling.html#cairo-status-t"/> <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="" link="cairo-Error-Handling.html#id2665646"/> - <function name="" link="cairo-Error-Handling.html#id2665647"/> - <function name="Compatibility" link="cairo-Version-Information.html#id2666698"/> - <function name="Examining the version" link="cairo-Version-Information.html#id2666737"/> + <function name="" link="cairo-Error-Handling.html#id2672970"/> + <function name="" link="cairo-Error-Handling.html#id2672971"/> + <function name="Compatibility" link="cairo-Version-Information.html#id2670371"/> + <function name="Examining the version" link="cairo-Version-Information.html#id2670409"/> <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"/> @@ -399,12 +407,12 @@ <function name="CAIRO_VERSION_ENCODE()" link="cairo-Version-Information.html#CAIRO-VERSION-ENCODE:CAPS"/> <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="" link="cairo-Version-Information.html#id2669653"/> - <function name="" link="cairo-Version-Information.html#id2669654"/> + <function name="" link="cairo-Version-Information.html#id2669232"/> + <function name="" link="cairo-Version-Information.html#id2669233"/> <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"/> - <function name="" link="cairo-Types.html#id2669894"/> - <function name="" link="cairo-Types.html#id2669895"/> + <function name="" link="cairo-Types.html#id2589694"/> + <function name="" link="cairo-Types.html#id2589695"/> </functions> </book> diff --git a/doc/public/html/cairo.devhelp2 b/doc/public/html/cairo.devhelp2 index 0715daa..4942b1f 100644 --- a/doc/public/html/cairo.devhelp2 +++ b/doc/public/html/cairo.devhelp2 @@ -2,42 +2,40 @@ <!DOCTYPE book PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" ""> <book xmlns="http://www.devhelp.net/book" title="Cairo: A Vector Graphics Library" link="index.html" author="" name="cairo" version="2"> <chapters> - <sub name="Tutorial" link="pt01.html"/> - <sub name="Reference" link="pt02.html"> - <sub name="Drawing" link="Drawing.html"> - <sub name="cairo_t" link="cairo-cairo-t.html"/> - <sub name="Paths" link="cairo-Paths.html"/> - <sub name="Patterns" link="cairo-Patterns.html"/> - <sub name="Transformations" link="cairo-Transformations.html"/> - <sub name="Text" link="cairo-Text.html"/> - </sub> - <sub name="Fonts" link="Fonts.html"> - <sub name="cairo_font_face_t" link="cairo-cairo-font-face-t.html"/> - <sub name="Scaled Fonts" link="cairo-Scaled-Fonts.html"/> - <sub name="Font Options" link="cairo-Font-Options.html"/> - <sub name="FreeType Fonts" link="cairo-FreeType-Fonts.html"/> - <sub name="Win32 Fonts" link="cairo-Win32-Fonts.html"/> - </sub> - <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="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="SVG Surfaces" link="cairo-SVG-Surfaces.html"/> - <sub name="XLib Surfaces" link="cairo-XLib-Surfaces.html"/> - </sub> - <sub name="Utilities" link="Support.html"> - <sub name="cairo_matrix_t" link="cairo-cairo-matrix-t.html"/> - <sub name="Error handling" link="cairo-Error-Handling.html"/> - <sub name="Version Information" link="cairo-Version-Information.html"/> - <sub name="Types" link="cairo-Types.html"/> - </sub> + <sub name="Drawing" link="Drawing.html"> + <sub name="cairo_t" link="cairo-cairo-t.html"/> + <sub name="Paths" link="cairo-Paths.html"/> + <sub name="cairo_pattern_t" link="cairo-Patterns.html"/> + <sub name="Transformations" link="cairo-Transformations.html"/> + <sub name="Text" link="cairo-Text.html"/> + </sub> + <sub name="Fonts" link="Fonts.html"> + <sub name="cairo_font_face_t" link="cairo-cairo-font-face-t.html"/> + <sub name="cairo_scaled_font_t" link="cairo-Scaled-Fonts.html"/> + <sub name="cairo_font_options_t" link="cairo-Font-Options.html"/> + <sub name="FreeType Fonts" link="cairo-FreeType-Fonts.html"/> + <sub name="Win32 Fonts" link="cairo-Win32-Fonts.html"/> + </sub> + <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="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="SVG Surfaces" link="cairo-SVG-Surfaces.html"/> + <sub name="XLib Surfaces" link="cairo-XLib-Surfaces.html"/> + </sub> + <sub name="Utilities" link="Support.html"> + <sub name="cairo_matrix_t" link="cairo-cairo-matrix-t.html"/> + <sub name="Error handling" link="cairo-Error-Handling.html"/> + <sub name="Version Information" link="cairo-Version-Information.html"/> + <sub name="Types" link="cairo-Types.html"/> </sub> <sub name="Index" link="ix01.html"/> <sub name="Index of new symbols in 1.2" link="index-1.2.html"/> <sub name="Index of new symbols in 1.4" link="index-1.4.html"/> + <sub name="Index of new symbols in 1.6" link="index-1.6.html"/> <sub name="Creating a language binding for cairo" link="language-bindings.html"> <sub name="General considerations" link="language-bindings.html#bindings-general"/> <sub name="Memory management" link="bindings-memory.html"/> @@ -119,8 +117,8 @@ <keyword type="function" name="cairo_get_reference_count ()" link="cairo-cairo-t.html#cairo-get-reference-count" since="1.4"/> <keyword type="function" name="cairo_set_user_data ()" link="cairo-cairo-t.html#cairo-set-user-data" since="1.4"/> <keyword type="function" name="cairo_get_user_data ()" link="cairo-cairo-t.html#cairo-get-user-data" since="1.4"/> - <keyword type="" name="" link="cairo-cairo-t.html#id2639083"/> - <keyword type="" name="" link="cairo-cairo-t.html#id2639084"/> + <keyword type="" name="" link="cairo-cairo-t.html#id2640349"/> + <keyword type="" name="" link="cairo-cairo-t.html#id2640350"/> <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"/> @@ -143,8 +141,9 @@ <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="" name="" link="cairo-Paths.html#id2581700"/> - <keyword type="" name="" link="cairo-Paths.html#id2581701"/> + <keyword type="function" name="cairo_path_extents ()" link="cairo-Paths.html#cairo-path-extents" since="1.6"/> + <keyword type="" name="" link="cairo-Paths.html#id2581997"/> + <keyword type="" name="" link="cairo-Paths.html#id2581998"/> <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"/> @@ -175,8 +174,8 @@ <keyword type="function" name="cairo_pattern_get_reference_count ()" link="cairo-Patterns.html#cairo-pattern-get-reference-count" since="1.4"/> <keyword type="function" name="cairo_pattern_set_user_data ()" link="cairo-Patterns.html#cairo-pattern-set-user-data" since="1.4"/> <keyword type="function" name="cairo_pattern_get_user_data ()" link="cairo-Patterns.html#cairo-pattern-get-user-data" since="1.4"/> - <keyword type="" name="" link="cairo-Patterns.html#id2645152"/> - <keyword type="" name="" link="cairo-Patterns.html#id2645153"/> + <keyword type="" name="" link="cairo-Patterns.html#id2646903"/> + <keyword type="" name="" link="cairo-Patterns.html#id2646904"/> <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"/> @@ -188,8 +187,8 @@ <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="" name="" link="cairo-Transformations.html#id2628282"/> - <keyword type="" name="" link="cairo-Transformations.html#id2628283"/> + <keyword type="" name="" link="cairo-Transformations.html#id2594106"/> + <keyword type="" name="" link="cairo-Transformations.html#id2594107"/> <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"/> @@ -208,8 +207,8 @@ <keyword type="function" name="cairo_font_extents ()" link="cairo-Text.html#cairo-font-extents"/> <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="" name="" link="cairo-Text.html#id2646738"/> - <keyword type="" name="" link="cairo-Text.html#id2646739"/> + <keyword type="" name="" link="cairo-Text.html#id2648369"/> + <keyword type="" name="" link="cairo-Text.html#id2648370"/> <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"/> @@ -219,8 +218,8 @@ <keyword type="function" name="cairo_font_face_get_reference_count ()" link="cairo-cairo-font-face-t.html#cairo-font-face-get-reference-count" since="1.4"/> <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="function" name="cairo_font_face_get_user_data ()" link="cairo-cairo-font-face-t.html#cairo-font-face-get-user-data"/> - <keyword type="" name="" link="cairo-cairo-font-face-t.html#id2594368"/> - <keyword type="" name="" link="cairo-cairo-font-face-t.html#id2594369"/> + <keyword type="" name="" link="cairo-cairo-font-face-t.html#id2626810"/> + <keyword type="" name="" link="cairo-cairo-font-face-t.html#id2626812"/> <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"/> @@ -239,8 +238,8 @@ <keyword type="function" name="cairo_scaled_font_get_reference_count ()" link="cairo-Scaled-Fonts.html#cairo-scaled-font-get-reference-count" since="1.4"/> <keyword type="function" name="cairo_scaled_font_set_user_data ()" link="cairo-Scaled-Fonts.html#cairo-scaled-font-set-user-data" since="1.4"/> <keyword type="function" name="cairo_scaled_font_get_user_data ()" link="cairo-Scaled-Fonts.html#cairo-scaled-font-get-user-data" since="1.4"/> - <keyword type="" name="" link="cairo-Scaled-Fonts.html#id2651562"/> - <keyword type="" name="" link="cairo-Scaled-Fonts.html#id2651563"/> + <keyword type="" name="" link="cairo-Scaled-Fonts.html#id2653446"/> + <keyword type="" name="" link="cairo-Scaled-Fonts.html#id2653447"/> <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"/> @@ -260,15 +259,17 @@ <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="" name="" link="cairo-Font-Options.html#id2653670"/> - <keyword type="" name="" link="cairo-Font-Options.html#id2653671"/> + <keyword type="" name="" link="cairo-Font-Options.html#id2655525"/> + <keyword type="" name="" link="cairo-Font-Options.html#id2655526"/> + <keyword type="macro" name="CAIRO_HAS_FT_FONT" link="cairo-FreeType-Fonts.html#CAIRO-HAS-FT-FONT:CAPS"/> <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="" name="" link="cairo-FreeType-Fonts.html#id2649040"/> - <keyword type="" name="" link="cairo-FreeType-Fonts.html#id2649041"/> + <keyword type="" name="" link="cairo-FreeType-Fonts.html#id2648482"/> + <keyword type="" name="" link="cairo-FreeType-Fonts.html#id2648483"/> + <keyword type="macro" name="CAIRO_HAS_WIN32_FONT" link="cairo-Win32-Fonts.html#CAIRO-HAS-WIN32-FONT:CAPS"/> <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_font_face_create_for_logfontw_hfont ()" link="cairo-Win32-Fonts.html#cairo-win32-font-face-create-for-logfontw-hfont"/> @@ -277,8 +278,8 @@ <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="function" name="cairo_win32_scaled_font_get_logical_to_device ()" link="cairo-Win32-Fonts.html#cairo-win32-scaled-font-get-logical-to-device" since="1.4"/> <keyword type="function" name="cairo_win32_scaled_font_get_device_to_logical ()" link="cairo-Win32-Fonts.html#cairo-win32-scaled-font-get-device-to-logical" since="1.4"/> - <keyword type="" name="" link="cairo-Win32-Fonts.html#id2648269"/> - <keyword type="" name="" link="cairo-Win32-Fonts.html#id2648270"/> + <keyword type="" name="" link="cairo-Win32-Fonts.html#id2657187"/> + <keyword type="" name="" link="cairo-Win32-Fonts.html#id2657188"/> <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"/> @@ -301,9 +302,10 @@ <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_copy_page ()" link="cairo-cairo-surface-t.html#cairo-surface-copy-page" since="1.6"/> <keyword type="function" name="cairo_surface_show_page ()" link="cairo-cairo-surface-t.html#cairo-surface-show-page" since="1.6"/> - <keyword type="" name="" link="cairo-cairo-surface-t.html#id2661115"/> - <keyword type="" name="" link="cairo-cairo-surface-t.html#id2661116"/> + <keyword type="" name="" link="cairo-cairo-surface-t.html#id2663319"/> + <keyword type="" name="" link="cairo-cairo-surface-t.html#id2663320"/> <keyword type="enum" name="enum cairo_format_t" link="cairo-Image-Surfaces.html#cairo-format-t"/> + <keyword type="function" name="cairo_format_stride_for_width ()" link="cairo-Image-Surfaces.html#cairo-format-stride-for-width" since="1.6"/> <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"/> @@ -311,21 +313,24 @@ <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="" name="" link="cairo-Image-Surfaces.html#id2656586"/> - <keyword type="" name="" link="cairo-Image-Surfaces.html#id2656587"/> + <keyword type="" name="" link="cairo-Image-Surfaces.html#id2660134"/> + <keyword type="" name="" link="cairo-Image-Surfaces.html#id2660136"/> + <keyword type="macro" name="CAIRO_HAS_PDF_SURFACE" link="cairo-PDF-Surfaces.html#CAIRO-HAS-PDF-SURFACE:CAPS"/> <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="" name="" link="cairo-PDF-Surfaces.html#id2657946"/> - <keyword type="" name="" link="cairo-PDF-Surfaces.html#id2657947"/> + <keyword type="" name="" link="cairo-PDF-Surfaces.html#id2656772"/> + <keyword type="" name="" link="cairo-PDF-Surfaces.html#id2656774"/> + <keyword type="macro" name="CAIRO_HAS_PNG_FUNCTIONS" link="cairo-PNG-Support.html#CAIRO-HAS-PNG-FUNCTIONS:CAPS"/> <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="function" name="cairo_surface_write_to_png_stream ()" link="cairo-PNG-Support.html#cairo-surface-write-to-png-stream"/> - <keyword type="" name="" link="cairo-PNG-Support.html#id2654697"/> - <keyword type="" name="" link="cairo-PNG-Support.html#id2654698"/> + <keyword type="" name="" link="cairo-PNG-Support.html#id2658062"/> + <keyword type="" name="" link="cairo-PNG-Support.html#id2658063"/> + <keyword type="macro" name="CAIRO_HAS_PS_SURFACE" link="cairo-PostScript-Surfaces.html#CAIRO-HAS-PS-SURFACE:CAPS"/> <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_restrict_to_level ()" link="cairo-PostScript-Surfaces.html#cairo-ps-surface-restrict-to-level" since="1.6"/> @@ -338,24 +343,27 @@ <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="" name="" link="cairo-PostScript-Surfaces.html#id2665202"/> - <keyword type="" name="" link="cairo-PostScript-Surfaces.html#id2665203"/> + <keyword type="" name="" link="cairo-PostScript-Surfaces.html#id2668014"/> + <keyword type="" name="" link="cairo-PostScript-Surfaces.html#id2668015"/> + <keyword type="macro" name="CAIRO_HAS_WIN32_SURFACE" link="cairo-Win32-Surfaces.html#CAIRO-HAS-WIN32-SURFACE:CAPS"/> <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_create_with_ddb ()" link="cairo-Win32-Surfaces.html#cairo-win32-surface-create-with-ddb" since="1.4"/> <keyword type="function" name="cairo_win32_printing_surface_create ()" link="cairo-Win32-Surfaces.html#cairo-win32-printing-surface-create"/> <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_win32_surface_get_image ()" link="cairo-Win32-Surfaces.html#cairo-win32-surface-get-image" since="1.4"/> - <keyword type="" name="" link="cairo-Win32-Surfaces.html#id2663542"/> - <keyword type="" name="" link="cairo-Win32-Surfaces.html#id2663543"/> + <keyword type="" name="" link="cairo-Win32-Surfaces.html#id2663375"/> + <keyword type="" name="" link="cairo-Win32-Surfaces.html#id2663376"/> + <keyword type="macro" name="CAIRO_HAS_SVG_SURFACE" link="cairo-SVG-Surfaces.html#CAIRO-HAS-SVG-SURFACE:CAPS"/> <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="" name="" link="cairo-SVG-Surfaces.html#id2661558"/> - <keyword type="" name="" link="cairo-SVG-Surfaces.html#id2661560"/> + <keyword type="" name="" link="cairo-SVG-Surfaces.html#id2664557"/> + <keyword type="" name="" link="cairo-SVG-Surfaces.html#id2664558"/> + <keyword type="macro" name="CAIRO_HAS_XLIB_SURFACE" link="cairo-XLib-Surfaces.html#CAIRO-HAS-XLIB-SURFACE:CAPS"/> <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"/> @@ -367,8 +375,8 @@ <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="" name="" link="cairo-XLib-Surfaces.html#id2668198"/> - <keyword type="" name="" link="cairo-XLib-Surfaces.html#id2668199"/> + <keyword type="" name="" link="cairo-XLib-Surfaces.html#id2671287"/> + <keyword type="" name="" link="cairo-XLib-Surfaces.html#id2671288"/> <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"/> @@ -382,15 +390,15 @@ <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="" name="" link="cairo-cairo-matrix-t.html#id2671665"/> - <keyword type="" name="" link="cairo-cairo-matrix-t.html#id2671666"/> - <keyword type="function" name="cairo_status_t ()" link="cairo-Error-Handling.html#cairo-status-t"/> + <keyword type="" name="" link="cairo-cairo-matrix-t.html#id2674761"/> + <keyword type="" name="" link="cairo-cairo-matrix-t.html#id2674762"/> + <keyword type="enum" name="enum cairo_status_t" link="cairo-Error-Handling.html#cairo-status-t"/> <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="" link="cairo-Error-Handling.html#id2665646"/> - <keyword type="" name="" link="cairo-Error-Handling.html#id2665647"/> - <keyword type="" name="Compatibility" link="cairo-Version-Information.html#id2666698"/> - <keyword type="" name="Examining the version" link="cairo-Version-Information.html#id2666737"/> + <keyword type="" name="" link="cairo-Error-Handling.html#id2672970"/> + <keyword type="" name="" link="cairo-Error-Handling.html#id2672971"/> + <keyword type="" name="Compatibility" link="cairo-Version-Information.html#id2670371"/> + <keyword type="" name="Examining the version" link="cairo-Version-Information.html#id2670409"/> <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"/> @@ -399,12 +407,12 @@ <keyword type="macro" name="CAIRO_VERSION_ENCODE()" link="cairo-Version-Information.html#CAIRO-VERSION-ENCODE:CAPS"/> <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="" name="" link="cairo-Version-Information.html#id2669653"/> - <keyword type="" name="" link="cairo-Version-Information.html#id2669654"/> + <keyword type="" name="" link="cairo-Version-Information.html#id2669232"/> + <keyword type="" name="" link="cairo-Version-Information.html#id2669233"/> <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"/> - <keyword type="" name="" link="cairo-Types.html#id2669894"/> - <keyword type="" name="" link="cairo-Types.html#id2669895"/> + <keyword type="" name="" link="cairo-Types.html#id2589694"/> + <keyword type="" name="" link="cairo-Types.html#id2589695"/> </functions> </book> diff --git a/doc/public/html/index-1.2.html b/doc/public/html/index-1.2.html index 11a1b1a..fb30693 100644 --- a/doc/public/html/index-1.2.html +++ b/doc/public/html/index-1.2.html @@ -10,8 +10,6 @@ <link rel="next" href="index-1.4.html" title="Index of new symbols in 1.4"> <meta name="generator" content="GTK-Doc V1.9 (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"> @@ -19,6 +17,7 @@ <link rel="index" href="ix01.html" title="Index"> <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2"> <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6"> <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"> @@ -35,101 +34,101 @@ <div class="index"><div class="indexdiv"> <h3>C</h3> <dl> -<dt>cairo_font_face_get_type, <a class="indexterm" href="cairo-cairo-font-face-t.html#id2639537">cairo_font_face_get_type ()</a> +<dt>cairo_font_face_get_type, <a class="indexterm" href="cairo-cairo-font-face-t.html#id2577309">cairo_font_face_get_type ()</a> </dt> -<dt>cairo_font_type_t, <a class="indexterm" href="cairo-cairo-font-face-t.html#id2639334">enum cairo_font_type_t</a> +<dt>cairo_font_type_t, <a class="indexterm" href="cairo-cairo-font-face-t.html#id2640830">enum cairo_font_type_t</a> </dt> -<dt>cairo_get_group_target, <a class="indexterm" href="cairo-cairo-t.html#id2632054">cairo_get_group_target ()</a> +<dt>cairo_get_group_target, <a class="indexterm" href="cairo-cairo-t.html#id2632881">cairo_get_group_target ()</a> </dt> -<dt>cairo_image_surface_get_data, <a class="indexterm" href="cairo-Image-Surfaces.html#id2657234">cairo_image_surface_get_data ()</a> +<dt>cairo_image_surface_get_data, <a class="indexterm" href="cairo-Image-Surfaces.html#id2655996">cairo_image_surface_get_data ()</a> </dt> -<dt>cairo_image_surface_get_format, <a class="indexterm" href="cairo-Image-Surfaces.html#id2656231">cairo_image_surface_get_format ()</a> +<dt>cairo_image_surface_get_format, <a class="indexterm" href="cairo-Image-Surfaces.html#id2656104">cairo_image_surface_get_format ()</a> </dt> -<dt>cairo_image_surface_get_stride, <a class="indexterm" href="cairo-Image-Surfaces.html#id2656484">cairo_image_surface_get_stride ()</a> +<dt>cairo_image_surface_get_stride, <a class="indexterm" href="cairo-Image-Surfaces.html#id2660009">cairo_image_surface_get_stride ()</a> </dt> -<dt>cairo_new_sub_path, <a class="indexterm" href="cairo-Paths.html#id2579147">cairo_new_sub_path ()</a> +<dt>cairo_new_sub_path, <a class="indexterm" href="cairo-Paths.html#id2579156">cairo_new_sub_path ()</a> </dt> -<dt>cairo_pattern_get_type, <a class="indexterm" href="cairo-Patterns.html#id2644557">cairo_pattern_get_type ()</a> +<dt>cairo_pattern_get_type, <a class="indexterm" href="cairo-Patterns.html#id2646276">cairo_pattern_get_type ()</a> </dt> -<dt>cairo_pattern_type_t, <a class="indexterm" href="cairo-Patterns.html#id2644329">enum cairo_pattern_type_t</a> +<dt>cairo_pattern_type_t, <a class="indexterm" href="cairo-Patterns.html#id2646041">enum cairo_pattern_type_t</a> </dt> -<dt>cairo_pdf_surface_create, <a class="indexterm" href="cairo-PDF-Surfaces.html#id2622684">cairo_pdf_surface_create ()</a> +<dt>cairo_pdf_surface_create, <a class="indexterm" href="cairo-PDF-Surfaces.html#id2653894">cairo_pdf_surface_create ()</a> </dt> -<dt>cairo_pdf_surface_create_for_stream, <a class="indexterm" href="cairo-PDF-Surfaces.html#id2588757">cairo_pdf_surface_create_for_stream ()</a> +<dt>cairo_pdf_surface_create_for_stream, <a class="indexterm" href="cairo-PDF-Surfaces.html#id2640922">cairo_pdf_surface_create_for_stream ()</a> </dt> -<dt>cairo_pdf_surface_set_size, <a class="indexterm" href="cairo-PDF-Surfaces.html#id2656659">cairo_pdf_surface_set_size ()</a> +<dt>cairo_pdf_surface_set_size, <a class="indexterm" href="cairo-PDF-Surfaces.html#id2659529">cairo_pdf_surface_set_size ()</a> </dt> -<dt>cairo_pop_group, <a class="indexterm" href="cairo-cairo-t.html#id2631786">cairo_pop_group ()</a> +<dt>cairo_pop_group, <a class="indexterm" href="cairo-cairo-t.html#id2632608">cairo_pop_group ()</a> </dt> -<dt>cairo_pop_group_to_source, <a class="indexterm" href="cairo-cairo-t.html#id2631919">cairo_pop_group_to_source ()</a> +<dt>cairo_pop_group_to_source, <a class="indexterm" href="cairo-cairo-t.html#id2632741">cairo_pop_group_to_source ()</a> </dt> -<dt>cairo_ps_surface_create, <a class="indexterm" href="cairo-PostScript-Surfaces.html#id2654725">cairo_ps_surface_create ()</a> +<dt>cairo_ps_surface_create, <a class="indexterm" href="cairo-PostScript-Surfaces.html#id2665765">cairo_ps_surface_create ()</a> </dt> -<dt>cairo_ps_surface_create_for_stream, <a class="indexterm" href="cairo-PostScript-Surfaces.html#id2654895">cairo_ps_surface_create_for_stream ()</a> +<dt>cairo_ps_surface_create_for_stream, <a class="indexterm" href="cairo-PostScript-Surfaces.html#id2657350">cairo_ps_surface_create_for_stream ()</a> </dt> -<dt>cairo_ps_surface_dsc_begin_page_setup, <a class="indexterm" href="cairo-PostScript-Surfaces.html#id2664654">cairo_ps_surface_dsc_begin_page_setup ()</a> +<dt>cairo_ps_surface_dsc_begin_page_setup, <a class="indexterm" href="cairo-PostScript-Surfaces.html#id2667443">cairo_ps_surface_dsc_begin_page_setup ()</a> </dt> -<dt>cairo_ps_surface_dsc_begin_setup, <a class="indexterm" href="cairo-PostScript-Surfaces.html#id2664539">cairo_ps_surface_dsc_begin_setup ()</a> +<dt>cairo_ps_surface_dsc_begin_setup, <a class="indexterm" href="cairo-PostScript-Surfaces.html#id2667320">cairo_ps_surface_dsc_begin_setup ()</a> </dt> -<dt>cairo_ps_surface_dsc_comment, <a class="indexterm" href="cairo-PostScript-Surfaces.html#id2664771">cairo_ps_surface_dsc_comment ()</a> +<dt>cairo_ps_surface_dsc_comment, <a class="indexterm" href="cairo-PostScript-Surfaces.html#id2667566">cairo_ps_surface_dsc_comment ()</a> </dt> -<dt>cairo_ps_surface_set_size, <a class="indexterm" href="cairo-PostScript-Surfaces.html#id2664395">cairo_ps_surface_set_size ()</a> +<dt>cairo_ps_surface_set_size, <a class="indexterm" href="cairo-PostScript-Surfaces.html#id2667169">cairo_ps_surface_set_size ()</a> </dt> -<dt>cairo_push_group, <a class="indexterm" href="cairo-cairo-t.html#id2631473">cairo_push_group ()</a> +<dt>cairo_push_group, <a class="indexterm" href="cairo-cairo-t.html#id2632304">cairo_push_group ()</a> </dt> -<dt>cairo_push_group_with_content, <a class="indexterm" href="cairo-cairo-t.html#id2631650">cairo_push_group_with_content ()</a> +<dt>cairo_push_group_with_content, <a class="indexterm" href="cairo-cairo-t.html#id2632474">cairo_push_group_with_content ()</a> </dt> -<dt>cairo_scaled_font_get_ctm, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2650935">cairo_scaled_font_get_ctm ()</a> +<dt>cairo_scaled_font_get_ctm, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2652784">cairo_scaled_font_get_ctm ()</a> </dt> -<dt>cairo_scaled_font_get_font_face, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2650636">cairo_scaled_font_get_font_face ()</a> +<dt>cairo_scaled_font_get_font_face, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2652482">cairo_scaled_font_get_font_face ()</a> </dt> -<dt>cairo_scaled_font_get_font_matrix, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2650832">cairo_scaled_font_get_font_matrix ()</a> +<dt>cairo_scaled_font_get_font_matrix, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2652682">cairo_scaled_font_get_font_matrix ()</a> </dt> -<dt>cairo_scaled_font_get_font_options, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2650730">cairo_scaled_font_get_font_options ()</a> +<dt>cairo_scaled_font_get_font_options, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2652588">cairo_scaled_font_get_font_options ()</a> </dt> -<dt>cairo_scaled_font_get_type, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2651034">cairo_scaled_font_get_type ()</a> +<dt>cairo_scaled_font_get_type, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2652884">cairo_scaled_font_get_type ()</a> </dt> -<dt>cairo_scaled_font_text_extents, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2650300">cairo_scaled_font_text_extents ()</a> +<dt>cairo_scaled_font_text_extents, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2652126">cairo_scaled_font_text_extents ()</a> </dt> -<dt>cairo_set_scaled_font, <a class="indexterm" href="cairo-Text.html#id2645877">cairo_set_scaled_font ()</a> +<dt>cairo_set_scaled_font, <a class="indexterm" href="cairo-Text.html#id2647440">cairo_set_scaled_font ()</a> </dt> -<dt>cairo_surface_get_content, <a class="indexterm" href="cairo-cairo-surface-t.html#id2659326">cairo_surface_get_content ()</a> +<dt>cairo_surface_get_content, <a class="indexterm" href="cairo-cairo-surface-t.html#id2661485">cairo_surface_get_content ()</a> </dt> -<dt>cairo_surface_get_device_offset, <a class="indexterm" href="cairo-cairo-surface-t.html#id2659798">cairo_surface_get_device_offset ()</a> +<dt>cairo_surface_get_device_offset, <a class="indexterm" href="cairo-cairo-surface-t.html#id2661960">cairo_surface_get_device_offset ()</a> </dt> -<dt>cairo_surface_get_type, <a class="indexterm" href="cairo-cairo-surface-t.html#id2660450">cairo_surface_get_type ()</a> +<dt>cairo_surface_get_type, <a class="indexterm" href="cairo-cairo-surface-t.html#id2662633">cairo_surface_get_type ()</a> </dt> -<dt>cairo_surface_set_fallback_resolution, <a class="indexterm" href="cairo-cairo-surface-t.html#id2659920">cairo_surface_set_fallback_resolution ()</a> +<dt>cairo_surface_set_fallback_resolution, <a class="indexterm" href="cairo-cairo-surface-t.html#id2662082">cairo_surface_set_fallback_resolution ()</a> </dt> -<dt>cairo_surface_type_t, <a class="indexterm" href="cairo-cairo-surface-t.html#id2660079">enum cairo_surface_type_t</a> +<dt>cairo_surface_type_t, <a class="indexterm" href="cairo-cairo-surface-t.html#id2662240">enum cairo_surface_type_t</a> </dt> -<dt>cairo_svg_get_versions, <a class="indexterm" href="cairo-SVG-Surfaces.html#id2661348">cairo_svg_get_versions ()</a> +<dt>cairo_svg_get_versions, <a class="indexterm" href="cairo-SVG-Surfaces.html#id2664311">cairo_svg_get_versions ()</a> </dt> -<dt>cairo_svg_surface_create, <a class="indexterm" href="cairo-SVG-Surfaces.html#id2663007">cairo_svg_surface_create ()</a> +<dt>cairo_svg_surface_create, <a class="indexterm" href="cairo-SVG-Surfaces.html#id2663555">cairo_svg_surface_create ()</a> </dt> -<dt>cairo_svg_surface_create_for_stream, <a class="indexterm" href="cairo-SVG-Surfaces.html#id2655736">cairo_svg_surface_create_for_stream ()</a> +<dt>cairo_svg_surface_create_for_stream, <a class="indexterm" href="cairo-SVG-Surfaces.html#id2663710">cairo_svg_surface_create_for_stream ()</a> </dt> -<dt>cairo_svg_surface_restrict_to_version, <a class="indexterm" href="cairo-SVG-Surfaces.html#id2655922">cairo_svg_surface_restrict_to_version ()</a> +<dt>cairo_svg_surface_restrict_to_version, <a class="indexterm" href="cairo-SVG-Surfaces.html#id2663904">cairo_svg_surface_restrict_to_version ()</a> </dt> -<dt>cairo_svg_version_to_string, <a class="indexterm" href="cairo-SVG-Surfaces.html#id2661451">cairo_svg_version_to_string ()</a> +<dt>cairo_svg_version_to_string, <a class="indexterm" href="cairo-SVG-Surfaces.html#id2664414">cairo_svg_version_to_string ()</a> </dt> -<dt>cairo_win32_surface_create_with_dib, <a class="indexterm" href="cairo-Win32-Surfaces.html#id2655349">cairo_win32_surface_create_with_dib ()</a> +<dt>cairo_win32_surface_create_with_dib, <a class="indexterm" href="cairo-Win32-Surfaces.html#id2665506">cairo_win32_surface_create_with_dib ()</a> </dt> -<dt>cairo_win32_surface_get_dc, <a class="indexterm" href="cairo-Win32-Surfaces.html#id2663340">cairo_win32_surface_get_dc ()</a> +<dt>cairo_win32_surface_get_dc, <a class="indexterm" href="cairo-Win32-Surfaces.html#id2658433">cairo_win32_surface_get_dc ()</a> </dt> -<dt>cairo_xlib_surface_get_depth, <a class="indexterm" href="cairo-XLib-Surfaces.html#id2668113">cairo_xlib_surface_get_depth ()</a> +<dt>cairo_xlib_surface_get_depth, <a class="indexterm" href="cairo-XLib-Surfaces.html#id2671181">cairo_xlib_surface_get_depth ()</a> </dt> -<dt>cairo_xlib_surface_get_display, <a class="indexterm" href="cairo-XLib-Surfaces.html#id2667491">cairo_xlib_surface_get_display ()</a> +<dt>cairo_xlib_surface_get_display, <a class="indexterm" href="cairo-XLib-Surfaces.html#id2670563">cairo_xlib_surface_get_display ()</a> </dt> -<dt>cairo_xlib_surface_get_drawable, <a class="indexterm" href="cairo-XLib-Surfaces.html#id2667783">cairo_xlib_surface_get_drawable ()</a> +<dt>cairo_xlib_surface_get_drawable, <a class="indexterm" href="cairo-XLib-Surfaces.html#id2670852">cairo_xlib_surface_get_drawable ()</a> </dt> -<dt>cairo_xlib_surface_get_height, <a class="indexterm" href="cairo-XLib-Surfaces.html#id2668030">cairo_xlib_surface_get_height ()</a> +<dt>cairo_xlib_surface_get_height, <a class="indexterm" href="cairo-XLib-Surfaces.html#id2671098">cairo_xlib_surface_get_height ()</a> </dt> -<dt>cairo_xlib_surface_get_screen, <a class="indexterm" href="cairo-XLib-Surfaces.html#id2667573">cairo_xlib_surface_get_screen ()</a> +<dt>cairo_xlib_surface_get_screen, <a class="indexterm" href="cairo-XLib-Surfaces.html#id2670643">cairo_xlib_surface_get_screen ()</a> </dt> -<dt>cairo_xlib_surface_get_visual, <a class="indexterm" href="cairo-XLib-Surfaces.html#id2667865">cairo_xlib_surface_get_visual ()</a> +<dt>cairo_xlib_surface_get_visual, <a class="indexterm" href="cairo-XLib-Surfaces.html#id2670934">cairo_xlib_surface_get_visual ()</a> </dt> -<dt>cairo_xlib_surface_get_width, <a class="indexterm" href="cairo-XLib-Surfaces.html#id2667947">cairo_xlib_surface_get_width ()</a> +<dt>cairo_xlib_surface_get_width, <a class="indexterm" href="cairo-XLib-Surfaces.html#id2671016">cairo_xlib_surface_get_width ()</a> </dt> </dl> </div></div> diff --git a/doc/public/html/index-1.4.html b/doc/public/html/index-1.4.html index cc1fdc0..4b89213 100644 --- a/doc/public/html/index-1.4.html +++ b/doc/public/html/index-1.4.html @@ -7,11 +7,9 @@ <link rel="start" href="index.html" title="Cairo: A Vector Graphics Library"> <link rel="up" href="index.html" title="Cairo: A Vector Graphics Library"> <link rel="prev" href="index-1.2.html" title="Index of new symbols in 1.2"> -<link rel="next" href="language-bindings.html" title="Appendix A. Creating a language binding for cairo"> +<link rel="next" href="index-1.6.html" title="Index of new symbols in 1.6"> <meta name="generator" content="GTK-Doc V1.9 (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"> @@ -19,6 +17,7 @@ <link rel="index" href="ix01.html" title="Index"> <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2"> <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6"> <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"> @@ -27,7 +26,7 @@ <td> </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="language-bindings.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +<td><a accesskey="n" href="index-1.6.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> </tr></table> <div class="index"> <div class="titlepage"><div><div><h2 class="title"> @@ -35,63 +34,63 @@ <div class="index"><div class="indexdiv"> <h3>C</h3> <dl> -<dt>cairo_clip_extents, <a class="indexterm" href="cairo-cairo-t.html#id2636012">cairo_clip_extents ()</a> +<dt>cairo_clip_extents, <a class="indexterm" href="cairo-cairo-t.html#id2637067">cairo_clip_extents ()</a> </dt> -<dt>cairo_copy_clip_rectangle_list, <a class="indexterm" href="cairo-cairo-t.html#id2636640">cairo_copy_clip_rectangle_list ()</a> +<dt>cairo_copy_clip_rectangle_list, <a class="indexterm" href="cairo-cairo-t.html#id2637695">cairo_copy_clip_rectangle_list ()</a> </dt> -<dt>cairo_font_face_get_reference_count, <a class="indexterm" href="cairo-cairo-font-face-t.html#id2639632">cairo_font_face_get_reference_count ()</a> +<dt>cairo_font_face_get_reference_count, <a class="indexterm" href="cairo-cairo-font-face-t.html#id2577404">cairo_font_face_get_reference_count ()</a> </dt> -<dt>cairo_get_dash, <a class="indexterm" href="cairo-cairo-t.html#id2633616">cairo_get_dash ()</a> +<dt>cairo_get_dash, <a class="indexterm" href="cairo-cairo-t.html#id2634349">cairo_get_dash ()</a> </dt> -<dt>cairo_get_dash_count, <a class="indexterm" href="cairo-cairo-t.html#id2633495">cairo_get_dash_count ()</a> +<dt>cairo_get_dash_count, <a class="indexterm" href="cairo-cairo-t.html#id2634243">cairo_get_dash_count ()</a> </dt> -<dt>cairo_get_reference_count, <a class="indexterm" href="cairo-cairo-t.html#id2638597">cairo_get_reference_count ()</a> +<dt>cairo_get_reference_count, <a class="indexterm" href="cairo-cairo-t.html#id2639840">cairo_get_reference_count ()</a> </dt> -<dt>cairo_get_scaled_font, <a class="indexterm" href="cairo-Text.html#id2645992">cairo_get_scaled_font ()</a> +<dt>cairo_get_scaled_font, <a class="indexterm" href="cairo-Text.html#id2647572">cairo_get_scaled_font ()</a> </dt> -<dt>cairo_get_user_data, <a class="indexterm" href="cairo-cairo-t.html#id2638933">cairo_get_user_data ()</a> +<dt>cairo_get_user_data, <a class="indexterm" href="cairo-cairo-t.html#id2640176">cairo_get_user_data ()</a> </dt> -<dt>cairo_pattern_get_color_stop_count, <a class="indexterm" href="cairo-Patterns.html#id2641174">cairo_pattern_get_color_stop_count ()</a> +<dt>cairo_pattern_get_color_stop_count, <a class="indexterm" href="cairo-Patterns.html#id2642609">cairo_pattern_get_color_stop_count ()</a> </dt> -<dt>cairo_pattern_get_color_stop_rgba, <a class="indexterm" href="cairo-Patterns.html#id2641323">cairo_pattern_get_color_stop_rgba ()</a> +<dt>cairo_pattern_get_color_stop_rgba, <a class="indexterm" href="cairo-Patterns.html#id2642758">cairo_pattern_get_color_stop_rgba ()</a> </dt> -<dt>cairo_pattern_get_linear_points, <a class="indexterm" href="cairo-Patterns.html#id2642536">cairo_pattern_get_linear_points ()</a> +<dt>cairo_pattern_get_linear_points, <a class="indexterm" href="cairo-Patterns.html#id2644071">cairo_pattern_get_linear_points ()</a> </dt> -<dt>cairo_pattern_get_radial_circles, <a class="indexterm" href="cairo-Patterns.html#id2642984">cairo_pattern_get_radial_circles ()</a> +<dt>cairo_pattern_get_radial_circles, <a class="indexterm" href="cairo-Patterns.html#id2644526">cairo_pattern_get_radial_circles ()</a> </dt> -<dt>cairo_pattern_get_reference_count, <a class="indexterm" href="cairo-Patterns.html#id2644663">cairo_pattern_get_reference_count ()</a> +<dt>cairo_pattern_get_reference_count, <a class="indexterm" href="cairo-Patterns.html#id2646382">cairo_pattern_get_reference_count ()</a> </dt> -<dt>cairo_pattern_get_rgba, <a class="indexterm" href="cairo-Patterns.html#id2641898">cairo_pattern_get_rgba ()</a> +<dt>cairo_pattern_get_rgba, <a class="indexterm" href="cairo-Patterns.html#id2643419">cairo_pattern_get_rgba ()</a> </dt> -<dt>cairo_pattern_get_surface, <a class="indexterm" href="cairo-Patterns.html#id2642204">cairo_pattern_get_surface ()</a> +<dt>cairo_pattern_get_surface, <a class="indexterm" href="cairo-Patterns.html#id2643734">cairo_pattern_get_surface ()</a> </dt> -<dt>cairo_pattern_get_user_data, <a class="indexterm" href="cairo-Patterns.html#id2645001">cairo_pattern_get_user_data ()</a> +<dt>cairo_pattern_get_user_data, <a class="indexterm" href="cairo-Patterns.html#id2646720">cairo_pattern_get_user_data ()</a> </dt> -<dt>cairo_pattern_set_user_data, <a class="indexterm" href="cairo-Patterns.html#id2644769">cairo_pattern_set_user_data ()</a> +<dt>cairo_pattern_set_user_data, <a class="indexterm" href="cairo-Patterns.html#id2646488">cairo_pattern_set_user_data ()</a> </dt> -<dt>cairo_rectangle_list_destroy, <a class="indexterm" href="cairo-cairo-t.html#id2636542">cairo_rectangle_list_destroy ()</a> +<dt>cairo_rectangle_list_destroy, <a class="indexterm" href="cairo-cairo-t.html#id2637597">cairo_rectangle_list_destroy ()</a> </dt> -<dt>cairo_rectangle_list_t, <a class="indexterm" href="cairo-cairo-t.html#id2636427">cairo_rectangle_list_t</a> +<dt>cairo_rectangle_list_t, <a class="indexterm" href="cairo-cairo-t.html#id2637482">cairo_rectangle_list_t</a> </dt> -<dt>cairo_rectangle_t, <a class="indexterm" href="cairo-cairo-t.html#id2636294">cairo_rectangle_t</a> +<dt>cairo_rectangle_t, <a class="indexterm" href="cairo-cairo-t.html#id2637350">cairo_rectangle_t</a> </dt> -<dt>cairo_scaled_font_get_reference_count, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2651126">cairo_scaled_font_get_reference_count ()</a> +<dt>cairo_scaled_font_get_reference_count, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2652975">cairo_scaled_font_get_reference_count ()</a> </dt> -<dt>cairo_scaled_font_get_user_data, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2651427">cairo_scaled_font_get_user_data ()</a> +<dt>cairo_scaled_font_get_user_data, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2653276">cairo_scaled_font_get_user_data ()</a> </dt> -<dt>cairo_scaled_font_set_user_data, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2651222">cairo_scaled_font_set_user_data ()</a> +<dt>cairo_scaled_font_set_user_data, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2653072">cairo_scaled_font_set_user_data ()</a> </dt> -<dt>cairo_set_user_data, <a class="indexterm" href="cairo-cairo-t.html#id2638703">cairo_set_user_data ()</a> +<dt>cairo_set_user_data, <a class="indexterm" href="cairo-cairo-t.html#id2639945">cairo_set_user_data ()</a> </dt> -<dt>cairo_surface_get_reference_count, <a class="indexterm" href="cairo-cairo-surface-t.html#id2660541">cairo_surface_get_reference_count ()</a> +<dt>cairo_surface_get_reference_count, <a class="indexterm" href="cairo-cairo-surface-t.html#id2662724">cairo_surface_get_reference_count ()</a> </dt> -<dt>cairo_win32_scaled_font_get_device_to_logical, <a class="indexterm" href="cairo-Win32-Fonts.html#id2648162">cairo_win32_scaled_font_get_device_to_logical ()</a> +<dt>cairo_win32_scaled_font_get_device_to_logical, <a class="indexterm" href="cairo-Win32-Fonts.html#id2649925">cairo_win32_scaled_font_get_device_to_logical ()</a> </dt> -<dt>cairo_win32_scaled_font_get_logical_to_device, <a class="indexterm" href="cairo-Win32-Fonts.html#id2648058">cairo_win32_scaled_font_get_logical_to_device ()</a> +<dt>cairo_win32_scaled_font_get_logical_to_device, <a class="indexterm" href="cairo-Win32-Fonts.html#id2649821">cairo_win32_scaled_font_get_logical_to_device ()</a> </dt> -<dt>cairo_win32_surface_create_with_ddb, <a class="indexterm" href="cairo-Win32-Surfaces.html#id2662687">cairo_win32_surface_create_with_ddb ()</a> +<dt>cairo_win32_surface_create_with_ddb, <a class="indexterm" href="cairo-Win32-Surfaces.html#id2666021">cairo_win32_surface_create_with_ddb ()</a> </dt> -<dt>cairo_win32_surface_get_image, <a class="indexterm" href="cairo-Win32-Surfaces.html#id2663431">cairo_win32_surface_get_image ()</a> +<dt>cairo_win32_surface_get_image, <a class="indexterm" href="cairo-Win32-Surfaces.html#id2658551">cairo_win32_surface_get_image ()</a> </dt> </dl> </div></div> diff --git a/doc/public/html/index-1.6.html b/doc/public/html/index-1.6.html new file mode 100644 index 0000000..472a125 --- /dev/null +++ b/doc/public/html/index-1.6.html @@ -0,0 +1,59 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Index of new symbols in 1.6</title> +<meta name="generator" content="DocBook XSL Stylesheets V1.73.2"> +<link rel="start" href="index.html" title="Cairo: A Vector Graphics Library"> +<link rel="up" href="index.html" title="Cairo: A Vector Graphics Library"> +<link rel="prev" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="next" href="language-bindings.html" title="Appendix A. Creating a language binding for cairo"> +<meta name="generator" content="GTK-Doc V1.9 (XML mode)"> +<link rel="stylesheet" href="style.css" type="text/css"> +<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="index" href="index-1.2.html" title="Index of new symbols in 1.2"> +<link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6"> +<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="index-1.4.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> +<td> </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="language-bindings.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> +</tr></table> +<div class="index"> +<div class="titlepage"><div><div><h2 class="title"> +<a name="index-1.6"></a>Index of new symbols in 1.6</h2></div></div></div> +<div class="index"><div class="indexdiv"> +<h3>C</h3> +<dl> +<dt>cairo_format_stride_for_width, <a class="indexterm" href="cairo-Image-Surfaces.html#id2656587">cairo_format_stride_for_width ()</a> +</dt> +<dt>cairo_path_extents, <a class="indexterm" href="cairo-Paths.html#id2581725">cairo_path_extents ()</a> +</dt> +<dt>cairo_ps_get_levels, <a class="indexterm" href="cairo-PostScript-Surfaces.html#id2666718">cairo_ps_get_levels ()</a> +</dt> +<dt>cairo_ps_level_to_string, <a class="indexterm" href="cairo-PostScript-Surfaces.html#id2666821">cairo_ps_level_to_string ()</a> +</dt> +<dt>cairo_ps_surface_get_eps, <a class="indexterm" href="cairo-PostScript-Surfaces.html#id2667069">cairo_ps_surface_get_eps ()</a> +</dt> +<dt>cairo_ps_surface_restrict_to_level, <a class="indexterm" href="cairo-PostScript-Surfaces.html#id2657566">cairo_ps_surface_restrict_to_level ()</a> +</dt> +<dt>cairo_ps_surface_set_eps, <a class="indexterm" href="cairo-PostScript-Surfaces.html#id2666936">cairo_ps_surface_set_eps ()</a> +</dt> +<dt>cairo_surface_copy_page, <a class="indexterm" href="cairo-cairo-surface-t.html#id2663123">cairo_surface_copy_page ()</a> +</dt> +<dt>cairo_surface_show_page, <a class="indexterm" href="cairo-cairo-surface-t.html#id2663204">cairo_surface_show_page ()</a> +</dt> +</dl> +</div></div> +</div> +</body> +</html> diff --git a/doc/public/html/index.html b/doc/public/html/index.html index d5eaabe..fe2761c 100644 --- a/doc/public/html/index.html +++ b/doc/public/html/index.html @@ -5,11 +5,9 @@ <title>Cairo: A Vector Graphics Library</title> <meta name="generator" content="DocBook XSL Stylesheets V1.73.2"> <link rel="start" href="index.html" title="Cairo: A Vector Graphics Library"> -<link rel="next" href="pt01.html" title="Part I. Tutorial"> +<link rel="next" href="Drawing.html" title="Drawing"> <meta name="generator" content="GTK-Doc V1.9 (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"> @@ -17,21 +15,19 @@ <link rel="index" href="ix01.html" title="Index"> <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2"> <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6"> <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"><div class="book" lang="en"> <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.5.6 +<div><p class="releaseinfo">for Cairo 1.5.8 </p></div> </div> <hr> </div> <div class="toc"><dl> -<dt><span class="part"><a href="pt01.html">I. Tutorial</a></span></dt> -<dt><span class="part"><a href="pt02.html">II. Reference</a></span></dt> -<dd><dl> <dt><span class="chapter"><a href="Drawing.html">Drawing</a></span></dt> <dd><dl> <dt> @@ -41,25 +37,25 @@ <span class="refentrytitle"><a href="cairo-Paths.html">Paths</a></span><span class="refpurpose"> — Creating paths and manipulating path data</span> </dt> <dt> -<span class="refentrytitle"><a href="cairo-Patterns.html">Patterns</a></span><span class="refpurpose"> — Gradients and filtered sources</span> +<span class="refentrytitle"><a href="cairo-Patterns.html">cairo_pattern_t</a></span><span class="refpurpose"> — Sources for drawing</span> </dt> <dt> <span class="refentrytitle"><a href="cairo-Transformations.html">Transformations</a></span><span class="refpurpose"> — Manipulating the current transformation matrix</span> </dt> <dt> -<span class="refentrytitle"><a href="cairo-Text.html">Text</a></span><span class="refpurpose"> — Rendering text and sets of glyphs</span> +<span class="refentrytitle"><a href="cairo-Text.html">Text</a></span><span class="refpurpose"> — Rendering text and glyphs</span> </dt> </dl></dd> <dt><span class="chapter"><a href="Fonts.html">Fonts</a></span></dt> <dd><dl> <dt> -<span class="refentrytitle"><a href="cairo-cairo-font-face-t.html">cairo_font_face_t</a></span><span class="refpurpose"> — Base class for fonts</span> +<span class="refentrytitle"><a href="cairo-cairo-font-face-t.html">cairo_font_face_t</a></span><span class="refpurpose"> — Base class for font faces</span> </dt> <dt> -<span class="refentrytitle"><a href="cairo-Scaled-Fonts.html">Scaled Fonts</a></span><span class="refpurpose"> — Caching metrics for a particular font size</span> +<span class="refentrytitle"><a href="cairo-Scaled-Fonts.html">cairo_scaled_font_t</a></span><span class="refpurpose"> — Font face at particular size and options</span> </dt> <dt> -<span class="refentrytitle"><a href="cairo-Font-Options.html">Font Options</a></span><span class="refpurpose"> — How a font should be rendered</span> +<span class="refentrytitle"><a href="cairo-Font-Options.html">cairo_font_options_t</a></span><span class="refpurpose"> — How a font should be rendered</span> </dt> <dt> <span class="refentrytitle"><a href="cairo-FreeType-Fonts.html">FreeType Fonts</a></span><span class="refpurpose"> — Font support for FreeType</span> @@ -107,13 +103,13 @@ <span class="refentrytitle"><a href="cairo-Version-Information.html">Version Information</a></span><span class="refpurpose"> — Compile-time and run-time version checks.</span> </dt> <dt> -<span class="refentrytitle"><a href="cairo-Types.html">Types</a></span><span class="refpurpose"> — Generic data types used in the cairo API</span> +<span class="refentrytitle"><a href="cairo-Types.html">Types</a></span><span class="refpurpose"> — Generic data types</span> </dt> </dl></dd> -</dl></dd> <dt><span class="index"><a href="ix01.html">Index</a></span></dt> <dt><span class="index"><a href="index-1.2.html">Index of new symbols in 1.2</a></span></dt> <dt><span class="index"><a href="index-1.4.html">Index of new symbols in 1.4</a></span></dt> +<dt><span class="index"><a href="index-1.6.html">Index of new symbols in 1.6</a></span></dt> <dt><span class="appendix"><a href="language-bindings.html">A. Creating a language binding for cairo</a></span></dt> <dd><dl> <dt><span class="sect1"><a href="language-bindings.html#bindings-general">General considerations</a></span></dt> diff --git a/doc/public/html/index.sgml b/doc/public/html/index.sgml index b26427c..1831539 100644 --- a/doc/public/html/index.sgml +++ b/doc/public/html/index.sgml @@ -49,6 +49,20 @@ <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-OPERATOR-CLEAR:CAPS" href="cairo/cairo-cairo-t.html#CAIRO-OPERATOR-CLEAR:CAPS"> +<ANCHOR id="CAIRO-OPERATOR-SOURCE:CAPS" href="cairo/cairo-cairo-t.html#CAIRO-OPERATOR-SOURCE:CAPS"> +<ANCHOR id="CAIRO-OPERATOR-OVER:CAPS" href="cairo/cairo-cairo-t.html#CAIRO-OPERATOR-OVER:CAPS"> +<ANCHOR id="CAIRO-OPERATOR-IN:CAPS" href="cairo/cairo-cairo-t.html#CAIRO-OPERATOR-IN:CAPS"> +<ANCHOR id="CAIRO-OPERATOR-OUT:CAPS" href="cairo/cairo-cairo-t.html#CAIRO-OPERATOR-OUT:CAPS"> +<ANCHOR id="CAIRO-OPERATOR-ATOP:CAPS" href="cairo/cairo-cairo-t.html#CAIRO-OPERATOR-ATOP:CAPS"> +<ANCHOR id="CAIRO-OPERATOR-DEST:CAPS" href="cairo/cairo-cairo-t.html#CAIRO-OPERATOR-DEST:CAPS"> +<ANCHOR id="CAIRO-OPERATOR-DEST-OVER:CAPS" href="cairo/cairo-cairo-t.html#CAIRO-OPERATOR-DEST-OVER:CAPS"> +<ANCHOR id="CAIRO-OPERATOR-DEST-IN:CAPS" href="cairo/cairo-cairo-t.html#CAIRO-OPERATOR-DEST-IN:CAPS"> +<ANCHOR id="CAIRO-OPERATOR-DEST-OUT:CAPS" href="cairo/cairo-cairo-t.html#CAIRO-OPERATOR-DEST-OUT:CAPS"> +<ANCHOR id="CAIRO-OPERATOR-DEST-ATOP:CAPS" href="cairo/cairo-cairo-t.html#CAIRO-OPERATOR-DEST-ATOP:CAPS"> +<ANCHOR id="CAIRO-OPERATOR-XOR:CAPS" href="cairo/cairo-cairo-t.html#CAIRO-OPERATOR-XOR:CAPS"> +<ANCHOR id="CAIRO-OPERATOR-ADD:CAPS" href="cairo/cairo-cairo-t.html#CAIRO-OPERATOR-ADD:CAPS"> +<ANCHOR id="CAIRO-OPERATOR-SATURATE:CAPS" href="cairo/cairo-cairo-t.html#CAIRO-OPERATOR-SATURATE:CAPS"> <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"> @@ -105,6 +119,7 @@ <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-path-extents" href="cairo/cairo-Paths.html#cairo-path-extents"> <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"> @@ -131,6 +146,12 @@ <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-FILTER-FAST:CAPS" href="cairo/cairo-Patterns.html#CAIRO-FILTER-FAST:CAPS"> +<ANCHOR id="CAIRO-FILTER-GOOD:CAPS" href="cairo/cairo-Patterns.html#CAIRO-FILTER-GOOD:CAPS"> +<ANCHOR id="CAIRO-FILTER-BEST:CAPS" href="cairo/cairo-Patterns.html#CAIRO-FILTER-BEST:CAPS"> +<ANCHOR id="CAIRO-FILTER-NEAREST:CAPS" href="cairo/cairo-Patterns.html#CAIRO-FILTER-NEAREST:CAPS"> +<ANCHOR id="CAIRO-FILTER-BILINEAR:CAPS" href="cairo/cairo-Patterns.html#CAIRO-FILTER-BILINEAR:CAPS"> +<ANCHOR id="CAIRO-FILTER-GAUSSIAN:CAPS" href="cairo/cairo-Patterns.html#CAIRO-FILTER-GAUSSIAN:CAPS"> <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"> @@ -247,12 +268,14 @@ <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-HAS-FT-FONT:CAPS" href="cairo/cairo-FreeType-Fonts.html#CAIRO-HAS-FT-FONT:CAPS"> <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-HAS-WIN32-FONT:CAPS" href="cairo/cairo-Win32-Fonts.html#CAIRO-HAS-WIN32-FONT:CAPS"> <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-font-face-create-for-logfontw-hfont" href="cairo/cairo-Win32-Fonts.html#cairo-win32-font-face-create-for-logfontw-hfont"> @@ -306,6 +329,7 @@ <ANCHOR id="CAIRO-FORMAT-RGB24:CAPS" href="cairo/cairo-Image-Surfaces.html#CAIRO-FORMAT-RGB24:CAPS"> <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-stride-for-width" href="cairo/cairo-Image-Surfaces.html#cairo-format-stride-for-width"> <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"> @@ -314,10 +338,12 @@ <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-HAS-PDF-SURFACE:CAPS" href="cairo/cairo-PDF-Surfaces.html#CAIRO-HAS-PDF-SURFACE:CAPS"> <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-HAS-PNG-FUNCTIONS:CAPS" href="cairo/cairo-PNG-Support.html#CAIRO-HAS-PNG-FUNCTIONS:CAPS"> <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"> @@ -325,6 +351,7 @@ <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-HAS-PS-SURFACE:CAPS" href="cairo/cairo-PostScript-Surfaces.html#CAIRO-HAS-PS-SURFACE:CAPS"> <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-restrict-to-level" href="cairo/cairo-PostScript-Surfaces.html#cairo-ps-surface-restrict-to-level"> @@ -340,6 +367,7 @@ <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-HAS-WIN32-SURFACE:CAPS" href="cairo/cairo-Win32-Surfaces.html#CAIRO-HAS-WIN32-SURFACE:CAPS"> <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-create-with-ddb" href="cairo/cairo-Win32-Surfaces.html#cairo-win32-surface-create-with-ddb"> @@ -347,6 +375,7 @@ <ANCHOR id="cairo-win32-surface-get-dc" href="cairo/cairo-Win32-Surfaces.html#cairo-win32-surface-get-dc"> <ANCHOR id="cairo-win32-surface-get-image" href="cairo/cairo-Win32-Surfaces.html#cairo-win32-surface-get-image"> <ANCHOR id="cairo-SVG-Surfaces" href="cairo/cairo-SVG-Surfaces.html"> +<ANCHOR id="CAIRO-HAS-SVG-SURFACE:CAPS" href="cairo/cairo-SVG-Surfaces.html#CAIRO-HAS-SVG-SURFACE:CAPS"> <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"> @@ -356,6 +385,7 @@ <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-HAS-XLIB-SURFACE:CAPS" href="cairo/cairo-XLib-Surfaces.html#CAIRO-HAS-XLIB-SURFACE:CAPS"> <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"> @@ -383,6 +413,31 @@ <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"> +<ANCHOR id="CAIRO-STATUS-NO-MEMORY:CAPS" href="cairo/cairo-Error-Handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"> +<ANCHOR id="CAIRO-STATUS-INVALID-RESTORE:CAPS" href="cairo/cairo-Error-Handling.html#CAIRO-STATUS-INVALID-RESTORE:CAPS"> +<ANCHOR id="CAIRO-STATUS-INVALID-POP-GROUP:CAPS" href="cairo/cairo-Error-Handling.html#CAIRO-STATUS-INVALID-POP-GROUP:CAPS"> +<ANCHOR id="CAIRO-STATUS-NO-CURRENT-POINT:CAPS" href="cairo/cairo-Error-Handling.html#CAIRO-STATUS-NO-CURRENT-POINT:CAPS"> +<ANCHOR id="CAIRO-STATUS-INVALID-MATRIX:CAPS" href="cairo/cairo-Error-Handling.html#CAIRO-STATUS-INVALID-MATRIX:CAPS"> +<ANCHOR id="CAIRO-STATUS-INVALID-STATUS:CAPS" href="cairo/cairo-Error-Handling.html#CAIRO-STATUS-INVALID-STATUS:CAPS"> +<ANCHOR id="CAIRO-STATUS-NULL-POINTER:CAPS" href="cairo/cairo-Error-Handling.html#CAIRO-STATUS-NULL-POINTER:CAPS"> +<ANCHOR id="CAIRO-STATUS-INVALID-STRING:CAPS" href="cairo/cairo-Error-Handling.html#CAIRO-STATUS-INVALID-STRING:CAPS"> +<ANCHOR id="CAIRO-STATUS-INVALID-PATH-DATA:CAPS" href="cairo/cairo-Error-Handling.html#CAIRO-STATUS-INVALID-PATH-DATA:CAPS"> +<ANCHOR id="CAIRO-STATUS-READ-ERROR:CAPS" href="cairo/cairo-Error-Handling.html#CAIRO-STATUS-READ-ERROR:CAPS"> +<ANCHOR id="CAIRO-STATUS-WRITE-ERROR:CAPS" href="cairo/cairo-Error-Handling.html#CAIRO-STATUS-WRITE-ERROR:CAPS"> +<ANCHOR id="CAIRO-STATUS-SURFACE-FINISHED:CAPS" href="cairo/cairo-Error-Handling.html#CAIRO-STATUS-SURFACE-FINISHED:CAPS"> +<ANCHOR id="CAIRO-STATUS-SURFACE-TYPE-MISMATCH:CAPS" href="cairo/cairo-Error-Handling.html#CAIRO-STATUS-SURFACE-TYPE-MISMATCH:CAPS"> +<ANCHOR id="CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS" href="cairo/cairo-Error-Handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS"> +<ANCHOR id="CAIRO-STATUS-INVALID-CONTENT:CAPS" href="cairo/cairo-Error-Handling.html#CAIRO-STATUS-INVALID-CONTENT:CAPS"> +<ANCHOR id="CAIRO-STATUS-INVALID-FORMAT:CAPS" href="cairo/cairo-Error-Handling.html#CAIRO-STATUS-INVALID-FORMAT:CAPS"> +<ANCHOR id="CAIRO-STATUS-INVALID-VISUAL:CAPS" href="cairo/cairo-Error-Handling.html#CAIRO-STATUS-INVALID-VISUAL:CAPS"> +<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-INVALID-INDEX:CAPS" href="cairo/cairo-Error-Handling.html#CAIRO-STATUS-INVALID-INDEX:CAPS"> +<ANCHOR id="CAIRO-STATUS-CLIP-NOT-REPRESENTABLE:CAPS" href="cairo/cairo-Error-Handling.html#CAIRO-STATUS-CLIP-NOT-REPRESENTABLE:CAPS"> +<ANCHOR id="CAIRO-STATUS-TEMP-FILE-ERROR:CAPS" href="cairo/cairo-Error-Handling.html#CAIRO-STATUS-TEMP-FILE-ERROR:CAPS"> +<ANCHOR id="CAIRO-STATUS-INVALID-STRIDE:CAPS" href="cairo/cairo-Error-Handling.html#CAIRO-STATUS-INVALID-STRIDE: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"> diff --git a/doc/public/html/ix01.html b/doc/public/html/ix01.html index 9ebaddb..87160ae 100644 --- a/doc/public/html/ix01.html +++ b/doc/public/html/ix01.html @@ -10,8 +10,6 @@ <link rel="next" href="index-1.2.html" title="Index of new symbols in 1.2"> <meta name="generator" content="GTK-Doc V1.9 (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"> @@ -19,6 +17,7 @@ <link rel="index" href="ix01.html" title="Index"> <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2"> <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6"> <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"> @@ -31,643 +30,648 @@ </tr></table> <div class="index"> <div class="titlepage"><div><div><h2 class="title"> -<a name="id2528115"></a>Index</h2></div></div></div> -<div class="index"> -<div class="indexdiv"> -<h3></h3> -<dl><dt>, <a class="indexterm" href="cairo-cairo-matrix-t.html#id2665296">Description</a> -</dt></dl> -</div> -<div class="indexdiv"> +<a name="id2528101"></a>Index</h2></div></div></div> +<div class="index"><div class="indexdiv"> <h3>C</h3> <dl> -<dt>cairo_antialias_t, <a class="indexterm" href="cairo-cairo-t.html#id2632922">enum cairo_antialias_t</a> +<dt>cairo_antialias_t, <a class="indexterm" href="cairo-cairo-t.html#id2633720">enum cairo_antialias_t</a> </dt> -<dt>cairo_append_path, <a class="indexterm" href="cairo-Paths.html#id2578620">cairo_append_path ()</a> +<dt>cairo_append_path, <a class="indexterm" href="cairo-Paths.html#id2578580">cairo_append_path ()</a> </dt> -<dt>cairo_arc, <a class="indexterm" href="cairo-Paths.html#id2579395">cairo_arc ()</a> +<dt>cairo_arc, <a class="indexterm" href="cairo-Paths.html#id2579423">cairo_arc ()</a> </dt> -<dt>cairo_arc_negative, <a class="indexterm" href="cairo-Paths.html#id2579728">cairo_arc_negative ()</a> +<dt>cairo_arc_negative, <a class="indexterm" href="cairo-Paths.html#id2579755">cairo_arc_negative ()</a> </dt> -<dt>cairo_bool_t, <a class="indexterm" href="cairo-Types.html#id2669682">cairo_bool_t</a> +<dt>cairo_bool_t, <a class="indexterm" href="cairo-Types.html#id2615257">cairo_bool_t</a> </dt> -<dt>cairo_clip, <a class="indexterm" href="cairo-cairo-t.html#id2635700">cairo_clip ()</a> +<dt>cairo_clip, <a class="indexterm" href="cairo-cairo-t.html#id2636737">cairo_clip ()</a> </dt> -<dt>cairo_clip_extents, <a class="indexterm" href="cairo-cairo-t.html#id2636012">cairo_clip_extents ()</a> +<dt>cairo_clip_extents, <a class="indexterm" href="cairo-cairo-t.html#id2637067">cairo_clip_extents ()</a> </dt> -<dt>cairo_clip_preserve, <a class="indexterm" href="cairo-cairo-t.html#id2635851">cairo_clip_preserve ()</a> +<dt>cairo_clip_preserve, <a class="indexterm" href="cairo-cairo-t.html#id2636897">cairo_clip_preserve ()</a> </dt> -<dt>cairo_close_path, <a class="indexterm" href="cairo-Paths.html#id2579268">cairo_close_path ()</a> +<dt>cairo_close_path, <a class="indexterm" href="cairo-Paths.html#id2579277">cairo_close_path ()</a> </dt> -<dt>cairo_content_t, <a class="indexterm" href="cairo-cairo-surface-t.html#id2653728">enum cairo_content_t</a> +<dt>cairo_content_t, <a class="indexterm" href="cairo-cairo-surface-t.html#id2655612">enum cairo_content_t</a> </dt> -<dt>cairo_copy_clip_rectangle_list, <a class="indexterm" href="cairo-cairo-t.html#id2636640">cairo_copy_clip_rectangle_list ()</a> +<dt>cairo_copy_clip_rectangle_list, <a class="indexterm" href="cairo-cairo-t.html#id2637695">cairo_copy_clip_rectangle_list ()</a> </dt> -<dt>cairo_copy_page, <a class="indexterm" href="cairo-cairo-t.html#id2638406">cairo_copy_page ()</a> +<dt>cairo_copy_page, <a class="indexterm" href="cairo-cairo-t.html#id2639648">cairo_copy_page ()</a> </dt> -<dt>cairo_copy_path, <a class="indexterm" href="cairo-Paths.html#id2578099">cairo_copy_path ()</a> +<dt>cairo_copy_path, <a class="indexterm" href="cairo-Paths.html#id2578036">cairo_copy_path ()</a> </dt> -<dt>cairo_copy_path_flat, <a class="indexterm" href="cairo-Paths.html#id2578296">cairo_copy_path_flat ()</a> +<dt>cairo_copy_path_flat, <a class="indexterm" href="cairo-Paths.html#id2578241">cairo_copy_path_flat ()</a> </dt> -<dt>cairo_create, <a class="indexterm" href="cairo-cairo-t.html#id2630664">cairo_create ()</a> +<dt>cairo_create, <a class="indexterm" href="cairo-cairo-t.html#id2631403">cairo_create ()</a> </dt> -<dt>cairo_curve_to, <a class="indexterm" href="cairo-Paths.html#id2579961">cairo_curve_to ()</a> +<dt>cairo_curve_to, <a class="indexterm" href="cairo-Paths.html#id2579988">cairo_curve_to ()</a> </dt> -<dt>cairo_debug_reset_static_data, <a class="indexterm" href="cairo-Error-Handling.html#id2662401">cairo_debug_reset_static_data ()</a> +<dt>cairo_debug_reset_static_data, <a class="indexterm" href="cairo-Error-Handling.html#id2669766">cairo_debug_reset_static_data ()</a> </dt> -<dt>cairo_destroy, <a class="indexterm" href="cairo-cairo-t.html#id2630949">cairo_destroy ()</a> +<dt>cairo_destroy, <a class="indexterm" href="cairo-cairo-t.html#id2631716">cairo_destroy ()</a> </dt> -<dt>cairo_destroy_func_t, <a class="indexterm" href="cairo-Types.html#id2669821">cairo_destroy_func_t ()</a> +<dt>cairo_destroy_func_t, <a class="indexterm" href="cairo-Types.html#id2658734">cairo_destroy_func_t ()</a> </dt> -<dt>cairo_device_to_user, <a class="indexterm" href="cairo-Transformations.html#id2628931">cairo_device_to_user ()</a> +<dt>cairo_device_to_user, <a class="indexterm" href="cairo-Transformations.html#id2586203">cairo_device_to_user ()</a> </dt> -<dt>cairo_device_to_user_distance, <a class="indexterm" href="cairo-Transformations.html#id2629037">cairo_device_to_user_distance ()</a> +<dt>cairo_device_to_user_distance, <a class="indexterm" href="cairo-Transformations.html#id2586309">cairo_device_to_user_distance ()</a> </dt> -<dt>cairo_extend_t, <a class="indexterm" href="cairo-Patterns.html#id2643558">enum cairo_extend_t</a> +<dt>cairo_extend_t, <a class="indexterm" href="cairo-Patterns.html#id2645100">enum cairo_extend_t</a> </dt> -<dt>cairo_fill, <a class="indexterm" href="cairo-cairo-t.html#id2636748">cairo_fill ()</a> +<dt>cairo_fill, <a class="indexterm" href="cairo-cairo-t.html#id2637819">cairo_fill ()</a> </dt> -<dt>cairo_fill_extents, <a class="indexterm" href="cairo-cairo-t.html#id2636933">cairo_fill_extents ()</a> +<dt>cairo_fill_extents, <a class="indexterm" href="cairo-cairo-t.html#id2638022">cairo_fill_extents ()</a> </dt> -<dt>cairo_fill_preserve, <a class="indexterm" href="cairo-cairo-t.html#id2636834">cairo_fill_preserve ()</a> +<dt>cairo_fill_preserve, <a class="indexterm" href="cairo-cairo-t.html#id2637914">cairo_fill_preserve ()</a> </dt> -<dt>cairo_fill_rule_t, <a class="indexterm" href="cairo-cairo-t.html#id2633784">enum cairo_fill_rule_t</a> +<dt>cairo_fill_rule_t, <a class="indexterm" href="cairo-cairo-t.html#id2634498">enum cairo_fill_rule_t</a> </dt> -<dt>cairo_filter_t, <a class="indexterm" href="cairo-Patterns.html#id2643860">enum cairo_filter_t</a> +<dt>cairo_filter_t, <a class="indexterm" href="cairo-Patterns.html#id2645402">enum cairo_filter_t</a> </dt> -<dt>cairo_font_extents, <a class="indexterm" href="cairo-Text.html#id2646354">cairo_font_extents ()</a> +<dt>cairo_font_extents, <a class="indexterm" href="cairo-Text.html#id2647940">cairo_font_extents ()</a> </dt> -<dt>cairo_font_extents_t, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2649786">cairo_font_extents_t</a> +<dt>cairo_font_extents_t, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2651611">cairo_font_extents_t</a> </dt> -<dt>cairo_font_face_destroy, <a class="indexterm" href="cairo-cairo-font-face-t.html#id2639148">cairo_font_face_destroy ()</a> +<dt>cairo_font_face_destroy, <a class="indexterm" href="cairo-cairo-font-face-t.html#id2640645">cairo_font_face_destroy ()</a> </dt> -<dt>cairo_font_face_get_reference_count, <a class="indexterm" href="cairo-cairo-font-face-t.html#id2639632">cairo_font_face_get_reference_count ()</a> +<dt>cairo_font_face_get_reference_count, <a class="indexterm" href="cairo-cairo-font-face-t.html#id2577404">cairo_font_face_get_reference_count ()</a> </dt> -<dt>cairo_font_face_get_type, <a class="indexterm" href="cairo-cairo-font-face-t.html#id2639537">cairo_font_face_get_type ()</a> +<dt>cairo_font_face_get_type, <a class="indexterm" href="cairo-cairo-font-face-t.html#id2577309">cairo_font_face_get_type ()</a> </dt> -<dt>cairo_font_face_get_user_data, <a class="indexterm" href="cairo-cairo-font-face-t.html#id2594229">cairo_font_face_get_user_data ()</a> +<dt>cairo_font_face_get_user_data, <a class="indexterm" href="cairo-cairo-font-face-t.html#id2626648">cairo_font_face_get_user_data ()</a> </dt> -<dt>cairo_font_face_reference, <a class="indexterm" href="cairo-cairo-font-face-t.html#id2582070">cairo_font_face_reference ()</a> +<dt>cairo_font_face_reference, <a class="indexterm" href="cairo-cairo-font-face-t.html#id2641917">cairo_font_face_reference ()</a> </dt> -<dt>cairo_font_face_set_user_data, <a class="indexterm" href="cairo-cairo-font-face-t.html#id2639737">cairo_font_face_set_user_data ()</a> +<dt>cairo_font_face_set_user_data, <a class="indexterm" href="cairo-cairo-font-face-t.html#id2577509">cairo_font_face_set_user_data ()</a> </dt> -<dt>cairo_font_face_status, <a class="indexterm" href="cairo-cairo-font-face-t.html#id2639237">cairo_font_face_status ()</a> +<dt>cairo_font_face_status, <a class="indexterm" href="cairo-cairo-font-face-t.html#id2640734">cairo_font_face_status ()</a> </dt> -<dt>cairo_font_face_t, <a class="indexterm" href="cairo-cairo-font-face-t.html#id2640068">cairo_font_face_t</a> +<dt>cairo_font_face_t, <a class="indexterm" href="cairo-cairo-font-face-t.html#id2589155">cairo_font_face_t</a> </dt> -<dt>cairo_font_options_copy, <a class="indexterm" href="cairo-Font-Options.html#id2649289">cairo_font_options_copy ()</a> +<dt>cairo_font_options_copy, <a class="indexterm" href="cairo-Font-Options.html#id2650946">cairo_font_options_copy ()</a> </dt> -<dt>cairo_font_options_create, <a class="indexterm" href="cairo-Font-Options.html#id2649210">cairo_font_options_create ()</a> +<dt>cairo_font_options_create, <a class="indexterm" href="cairo-Font-Options.html#id2650865">cairo_font_options_create ()</a> </dt> -<dt>cairo_font_options_destroy, <a class="indexterm" href="cairo-Font-Options.html#id2588222">cairo_font_options_destroy ()</a> +<dt>cairo_font_options_destroy, <a class="indexterm" href="cairo-Font-Options.html#id2651058">cairo_font_options_destroy ()</a> </dt> -<dt>cairo_font_options_equal, <a class="indexterm" href="cairo-Font-Options.html#id2652451">cairo_font_options_equal ()</a> +<dt>cairo_font_options_equal, <a class="indexterm" href="cairo-Font-Options.html#id2654266">cairo_font_options_equal ()</a> </dt> -<dt>cairo_font_options_get_antialias, <a class="indexterm" href="cairo-Font-Options.html#id2652659">cairo_font_options_get_antialias ()</a> +<dt>cairo_font_options_get_antialias, <a class="indexterm" href="cairo-Font-Options.html#id2654474">cairo_font_options_get_antialias ()</a> </dt> -<dt>cairo_font_options_get_hint_metrics, <a class="indexterm" href="cairo-Font-Options.html#id2653585">cairo_font_options_get_hint_metrics ()</a> +<dt>cairo_font_options_get_hint_metrics, <a class="indexterm" href="cairo-Font-Options.html#id2655420">cairo_font_options_get_hint_metrics ()</a> </dt> -<dt>cairo_font_options_get_hint_style, <a class="indexterm" href="cairo-Font-Options.html#id2653313">cairo_font_options_get_hint_style ()</a> +<dt>cairo_font_options_get_hint_style, <a class="indexterm" href="cairo-Font-Options.html#id2655148">cairo_font_options_get_hint_style ()</a> </dt> -<dt>cairo_font_options_get_subpixel_order, <a class="indexterm" href="cairo-Font-Options.html#id2652989">cairo_font_options_get_subpixel_order ()</a> +<dt>cairo_font_options_get_subpixel_order, <a class="indexterm" href="cairo-Font-Options.html#id2654832">cairo_font_options_get_subpixel_order ()</a> </dt> -<dt>cairo_font_options_hash, <a class="indexterm" href="cairo-Font-Options.html#id2652374">cairo_font_options_hash ()</a> +<dt>cairo_font_options_hash, <a class="indexterm" href="cairo-Font-Options.html#id2654184">cairo_font_options_hash ()</a> </dt> -<dt>cairo_font_options_merge, <a class="indexterm" href="cairo-Font-Options.html#id2588411">cairo_font_options_merge ()</a> +<dt>cairo_font_options_merge, <a class="indexterm" href="cairo-Font-Options.html#id2651246">cairo_font_options_merge ()</a> </dt> -<dt>cairo_font_options_set_antialias, <a class="indexterm" href="cairo-Font-Options.html#id2652566">cairo_font_options_set_antialias ()</a> +<dt>cairo_font_options_set_antialias, <a class="indexterm" href="cairo-Font-Options.html#id2654382">cairo_font_options_set_antialias ()</a> </dt> -<dt>cairo_font_options_set_hint_metrics, <a class="indexterm" href="cairo-Font-Options.html#id2653494">cairo_font_options_set_hint_metrics ()</a> +<dt>cairo_font_options_set_hint_metrics, <a class="indexterm" href="cairo-Font-Options.html#id2655328">cairo_font_options_set_hint_metrics ()</a> </dt> -<dt>cairo_font_options_set_hint_style, <a class="indexterm" href="cairo-Font-Options.html#id2653221">cairo_font_options_set_hint_style ()</a> +<dt>cairo_font_options_set_hint_style, <a class="indexterm" href="cairo-Font-Options.html#id2655056">cairo_font_options_set_hint_style ()</a> </dt> -<dt>cairo_font_options_set_subpixel_order, <a class="indexterm" href="cairo-Font-Options.html#id2652886">cairo_font_options_set_subpixel_order ()</a> +<dt>cairo_font_options_set_subpixel_order, <a class="indexterm" href="cairo-Font-Options.html#id2654721">cairo_font_options_set_subpixel_order ()</a> </dt> -<dt>cairo_font_options_status, <a class="indexterm" href="cairo-Font-Options.html#id2588314">cairo_font_options_status ()</a> +<dt>cairo_font_options_status, <a class="indexterm" href="cairo-Font-Options.html#id2651149">cairo_font_options_status ()</a> </dt> -<dt>cairo_font_options_t, <a class="indexterm" href="cairo-Font-Options.html#id2649086">cairo_font_options_t</a> +<dt>cairo_font_options_t, <a class="indexterm" href="cairo-Font-Options.html#id2650739">cairo_font_options_t</a> </dt> -<dt>cairo_font_slant_t, <a class="indexterm" href="cairo-Text.html#id2640355">enum cairo_font_slant_t</a> +<dt>cairo_font_slant_t, <a class="indexterm" href="cairo-Text.html#id2594120">enum cairo_font_slant_t</a> </dt> -<dt>cairo_font_type_t, <a class="indexterm" href="cairo-cairo-font-face-t.html#id2639334">enum cairo_font_type_t</a> +<dt>cairo_font_type_t, <a class="indexterm" href="cairo-cairo-font-face-t.html#id2640830">enum cairo_font_type_t</a> </dt> -<dt>cairo_font_weight_t, <a class="indexterm" href="cairo-Text.html#id2628358">enum cairo_font_weight_t</a> +<dt>cairo_font_weight_t, <a class="indexterm" href="cairo-Text.html#id2594220">enum cairo_font_weight_t</a> </dt> -<dt>cairo_format_t, <a class="indexterm" href="cairo-Image-Surfaces.html#id2653958">enum cairo_format_t</a> +<dt>cairo_format_stride_for_width, <a class="indexterm" href="cairo-Image-Surfaces.html#id2656587">cairo_format_stride_for_width ()</a> </dt> -<dt>cairo_ft_font_face_create_for_ft_face, <a class="indexterm" href="cairo-FreeType-Fonts.html#id2648738">cairo_ft_font_face_create_for_ft_face ()</a> +<dt>cairo_format_t, <a class="indexterm" href="cairo-Image-Surfaces.html#id2656437">enum cairo_format_t</a> </dt> -<dt>cairo_ft_font_face_create_for_pattern, <a class="indexterm" href="cairo-FreeType-Fonts.html#id2651845">cairo_ft_font_face_create_for_pattern ()</a> +<dt>cairo_ft_font_face_create_for_ft_face, <a class="indexterm" href="cairo-FreeType-Fonts.html#id2653920">cairo_ft_font_face_create_for_ft_face ()</a> </dt> -<dt>cairo_ft_font_options_substitute, <a class="indexterm" href="cairo-FreeType-Fonts.html#id2649407">cairo_ft_font_options_substitute ()</a> +<dt>cairo_ft_font_face_create_for_pattern, <a class="indexterm" href="cairo-FreeType-Fonts.html#id2651321">cairo_ft_font_face_create_for_pattern ()</a> </dt> -<dt>cairo_ft_scaled_font_lock_face, <a class="indexterm" href="cairo-FreeType-Fonts.html#id2649540">cairo_ft_scaled_font_lock_face ()</a> +<dt>cairo_ft_font_options_substitute, <a class="indexterm" href="cairo-FreeType-Fonts.html#id2650219">cairo_ft_font_options_substitute ()</a> </dt> -<dt>cairo_ft_scaled_font_unlock_face, <a class="indexterm" href="cairo-FreeType-Fonts.html#id2648924">cairo_ft_scaled_font_unlock_face ()</a> +<dt>cairo_ft_scaled_font_lock_face, <a class="indexterm" href="cairo-FreeType-Fonts.html#id2628578">cairo_ft_scaled_font_lock_face ()</a> </dt> -<dt>cairo_get_antialias, <a class="indexterm" href="cairo-cairo-t.html#id2633180">cairo_get_antialias ()</a> +<dt>cairo_ft_scaled_font_unlock_face, <a class="indexterm" href="cairo-FreeType-Fonts.html#id2628762">cairo_ft_scaled_font_unlock_face ()</a> </dt> -<dt>cairo_get_current_point, <a class="indexterm" href="cairo-Paths.html#id2578757">cairo_get_current_point ()</a> +<dt>cairo_get_antialias, <a class="indexterm" href="cairo-cairo-t.html#id2633945">cairo_get_antialias ()</a> </dt> -<dt>cairo_get_dash, <a class="indexterm" href="cairo-cairo-t.html#id2633616">cairo_get_dash ()</a> +<dt>cairo_get_current_point, <a class="indexterm" href="cairo-Paths.html#id2578718">cairo_get_current_point ()</a> </dt> -<dt>cairo_get_dash_count, <a class="indexterm" href="cairo-cairo-t.html#id2633495">cairo_get_dash_count ()</a> +<dt>cairo_get_dash, <a class="indexterm" href="cairo-cairo-t.html#id2634349">cairo_get_dash ()</a> </dt> -<dt>cairo_get_fill_rule, <a class="indexterm" href="cairo-cairo-t.html#id2634026">cairo_get_fill_rule ()</a> +<dt>cairo_get_dash_count, <a class="indexterm" href="cairo-cairo-t.html#id2634243">cairo_get_dash_count ()</a> </dt> -<dt>cairo_get_font_face, <a class="indexterm" href="cairo-Text.html#id2645740">cairo_get_font_face ()</a> +<dt>cairo_get_fill_rule, <a class="indexterm" href="cairo-cairo-t.html#id2634713">cairo_get_fill_rule ()</a> </dt> -<dt>cairo_get_font_matrix, <a class="indexterm" href="cairo-Text.html#id2645275">cairo_get_font_matrix ()</a> +<dt>cairo_get_font_face, <a class="indexterm" href="cairo-Text.html#id2647310">cairo_get_font_face ()</a> </dt> -<dt>cairo_get_font_options, <a class="indexterm" href="cairo-Text.html#id2645489">cairo_get_font_options ()</a> +<dt>cairo_get_font_matrix, <a class="indexterm" href="cairo-Text.html#id2641304">cairo_get_font_matrix ()</a> </dt> -<dt>cairo_get_group_target, <a class="indexterm" href="cairo-cairo-t.html#id2632054">cairo_get_group_target ()</a> +<dt>cairo_get_font_options, <a class="indexterm" href="cairo-Text.html#id2647084">cairo_get_font_options ()</a> </dt> -<dt>cairo_get_line_cap, <a class="indexterm" href="cairo-cairo-t.html#id2634351">cairo_get_line_cap ()</a> +<dt>cairo_get_group_target, <a class="indexterm" href="cairo-cairo-t.html#id2632881">cairo_get_group_target ()</a> </dt> -<dt>cairo_get_line_join, <a class="indexterm" href="cairo-cairo-t.html#id2634686">cairo_get_line_join ()</a> +<dt>cairo_get_line_cap, <a class="indexterm" href="cairo-cairo-t.html#id2635012">cairo_get_line_cap ()</a> </dt> -<dt>cairo_get_line_width, <a class="indexterm" href="cairo-cairo-t.html#id2634945">cairo_get_line_width ()</a> +<dt>cairo_get_line_join, <a class="indexterm" href="cairo-cairo-t.html#id2635347">cairo_get_line_join ()</a> </dt> -<dt>cairo_get_matrix, <a class="indexterm" href="cairo-Transformations.html#id2626647">cairo_get_matrix ()</a> +<dt>cairo_get_line_width, <a class="indexterm" href="cairo-cairo-t.html#id2635607">cairo_get_line_width ()</a> </dt> -<dt>cairo_get_miter_limit, <a class="indexterm" href="cairo-cairo-t.html#id2635200">cairo_get_miter_limit ()</a> +<dt>cairo_get_matrix, <a class="indexterm" href="cairo-Transformations.html#id2625952">cairo_get_matrix ()</a> </dt> -<dt>cairo_get_operator, <a class="indexterm" href="cairo-cairo-t.html#id2635436">cairo_get_operator ()</a> +<dt>cairo_get_miter_limit, <a class="indexterm" href="cairo-cairo-t.html#id2635862">cairo_get_miter_limit ()</a> </dt> -<dt>cairo_get_reference_count, <a class="indexterm" href="cairo-cairo-t.html#id2638597">cairo_get_reference_count ()</a> +<dt>cairo_get_operator, <a class="indexterm" href="cairo-cairo-t.html#id2636473">cairo_get_operator ()</a> </dt> -<dt>cairo_get_scaled_font, <a class="indexterm" href="cairo-Text.html#id2645992">cairo_get_scaled_font ()</a> +<dt>cairo_get_reference_count, <a class="indexterm" href="cairo-cairo-t.html#id2639840">cairo_get_reference_count ()</a> </dt> -<dt>cairo_get_source, <a class="indexterm" href="cairo-cairo-t.html#id2632830">cairo_get_source ()</a> +<dt>cairo_get_scaled_font, <a class="indexterm" href="cairo-Text.html#id2647572">cairo_get_scaled_font ()</a> </dt> -<dt>cairo_get_target, <a class="indexterm" href="cairo-cairo-t.html#id2631334">cairo_get_target ()</a> +<dt>cairo_get_source, <a class="indexterm" href="cairo-cairo-t.html#id2633640">cairo_get_source ()</a> </dt> -<dt>cairo_get_tolerance, <a class="indexterm" href="cairo-cairo-t.html#id2635616">cairo_get_tolerance ()</a> +<dt>cairo_get_target, <a class="indexterm" href="cairo-cairo-t.html#id2632150">cairo_get_target ()</a> </dt> -<dt>cairo_get_user_data, <a class="indexterm" href="cairo-cairo-t.html#id2638933">cairo_get_user_data ()</a> +<dt>cairo_get_tolerance, <a class="indexterm" href="cairo-cairo-t.html#id2636652">cairo_get_tolerance ()</a> </dt> -<dt>cairo_glyph_extents, <a class="indexterm" href="cairo-Text.html#id2646580">cairo_glyph_extents ()</a> +<dt>cairo_get_user_data, <a class="indexterm" href="cairo-cairo-t.html#id2640176">cairo_get_user_data ()</a> </dt> -<dt>cairo_glyph_path, <a class="indexterm" href="cairo-Paths.html#id2580696">cairo_glyph_path ()</a> +<dt>cairo_glyph_extents, <a class="indexterm" href="cairo-Text.html#id2648166">cairo_glyph_extents ()</a> </dt> -<dt>cairo_glyph_t, <a class="indexterm" href="cairo-Text.html#id2640234">cairo_glyph_t</a> +<dt>cairo_glyph_path, <a class="indexterm" href="cairo-Paths.html#id2580723">cairo_glyph_path ()</a> </dt> -<dt>cairo_hint_metrics_t, <a class="indexterm" href="cairo-Font-Options.html#id2653395">enum cairo_hint_metrics_t</a> +<dt>cairo_glyph_t, <a class="indexterm" href="cairo-Text.html#id2641664">cairo_glyph_t</a> </dt> -<dt>cairo_hint_style_t, <a class="indexterm" href="cairo-Font-Options.html#id2653072">enum cairo_hint_style_t</a> +<dt>CAIRO_HAS_FT_FONT, <a class="indexterm" href="cairo-FreeType-Fonts.html#id2628424">CAIRO_HAS_FT_FONT</a> </dt> -<dt>cairo_identity_matrix, <a class="indexterm" href="cairo-Transformations.html#id2626737">cairo_identity_matrix ()</a> +<dt>CAIRO_HAS_PDF_SURFACE, <a class="indexterm" href="cairo-PDF-Surfaces.html#id2653866">CAIRO_HAS_PDF_SURFACE</a> </dt> -<dt>cairo_image_surface_create, <a class="indexterm" href="cairo-Image-Surfaces.html#id2654108">cairo_image_surface_create ()</a> +<dt>CAIRO_HAS_PNG_FUNCTIONS, <a class="indexterm" href="cairo-PNG-Support.html#id2660178">CAIRO_HAS_PNG_FUNCTIONS</a> </dt> -<dt>cairo_image_surface_create_for_data, <a class="indexterm" href="cairo-Image-Surfaces.html#id2656999">cairo_image_surface_create_for_data ()</a> +<dt>CAIRO_HAS_PS_SURFACE, <a class="indexterm" href="cairo-PostScript-Surfaces.html#id2665736">CAIRO_HAS_PS_SURFACE</a> </dt> -<dt>cairo_image_surface_create_from_png, <a class="indexterm" href="cairo-PNG-Support.html#id2658092">cairo_image_surface_create_from_png ()</a> +<dt>CAIRO_HAS_SVG_SURFACE, <a class="indexterm" href="cairo-SVG-Surfaces.html#id2663527">CAIRO_HAS_SVG_SURFACE</a> </dt> -<dt>cairo_image_surface_create_from_png_stream, <a class="indexterm" href="cairo-PNG-Support.html#id2658304">cairo_image_surface_create_from_png_stream ()</a> +<dt>CAIRO_HAS_WIN32_FONT, <a class="indexterm" href="cairo-Win32-Fonts.html#id2629108">CAIRO_HAS_WIN32_FONT</a> </dt> -<dt>cairo_image_surface_get_data, <a class="indexterm" href="cairo-Image-Surfaces.html#id2657234">cairo_image_surface_get_data ()</a> +<dt>CAIRO_HAS_WIN32_SURFACE, <a class="indexterm" href="cairo-Win32-Surfaces.html#id2665403">CAIRO_HAS_WIN32_SURFACE</a> </dt> -<dt>cairo_image_surface_get_format, <a class="indexterm" href="cairo-Image-Surfaces.html#id2656231">cairo_image_surface_get_format ()</a> +<dt>CAIRO_HAS_XLIB_SURFACE, <a class="indexterm" href="cairo-XLib-Surfaces.html#id2668802">CAIRO_HAS_XLIB_SURFACE</a> </dt> -<dt>cairo_image_surface_get_height, <a class="indexterm" href="cairo-Image-Surfaces.html#id2656402">cairo_image_surface_get_height ()</a> +<dt>cairo_hint_metrics_t, <a class="indexterm" href="cairo-Font-Options.html#id2655230">enum cairo_hint_metrics_t</a> </dt> -<dt>cairo_image_surface_get_stride, <a class="indexterm" href="cairo-Image-Surfaces.html#id2656484">cairo_image_surface_get_stride ()</a> +<dt>cairo_hint_style_t, <a class="indexterm" href="cairo-Font-Options.html#id2654907">enum cairo_hint_style_t</a> </dt> -<dt>cairo_image_surface_get_width, <a class="indexterm" href="cairo-Image-Surfaces.html#id2656321">cairo_image_surface_get_width ()</a> +<dt>cairo_identity_matrix, <a class="indexterm" href="cairo-Transformations.html#id2588257">cairo_identity_matrix ()</a> </dt> -<dt>cairo_in_fill, <a class="indexterm" href="cairo-cairo-t.html#id2637128">cairo_in_fill ()</a> +<dt>cairo_image_surface_create, <a class="indexterm" href="cairo-Image-Surfaces.html#id2656931">cairo_image_surface_create ()</a> </dt> -<dt>cairo_in_stroke, <a class="indexterm" href="cairo-cairo-t.html#id2638213">cairo_in_stroke ()</a> +<dt>cairo_image_surface_create_for_data, <a class="indexterm" href="cairo-Image-Surfaces.html#id2657070">cairo_image_surface_create_for_data ()</a> </dt> -<dt>cairo_line_cap_t, <a class="indexterm" href="cairo-cairo-t.html#id2634111">enum cairo_line_cap_t</a> +<dt>cairo_image_surface_create_from_png, <a class="indexterm" href="cairo-PNG-Support.html#id2660206">cairo_image_surface_create_from_png ()</a> </dt> -<dt>cairo_line_join_t, <a class="indexterm" href="cairo-cairo-t.html#id2634436">enum cairo_line_join_t</a> +<dt>cairo_image_surface_create_from_png_stream, <a class="indexterm" href="cairo-PNG-Support.html#id2660419">cairo_image_surface_create_from_png_stream ()</a> </dt> -<dt>cairo_line_to, <a class="indexterm" href="cairo-Paths.html#id2580238">cairo_line_to ()</a> +<dt>cairo_image_surface_get_data, <a class="indexterm" href="cairo-Image-Surfaces.html#id2655996">cairo_image_surface_get_data ()</a> </dt> -<dt>cairo_mask, <a class="indexterm" href="cairo-cairo-t.html#id2637292">cairo_mask ()</a> +<dt>cairo_image_surface_get_format, <a class="indexterm" href="cairo-Image-Surfaces.html#id2656104">cairo_image_surface_get_format ()</a> </dt> -<dt>cairo_mask_surface, <a class="indexterm" href="cairo-cairo-t.html#id2637398">cairo_mask_surface ()</a> +<dt>cairo_image_surface_get_height, <a class="indexterm" href="cairo-Image-Surfaces.html#id2659927">cairo_image_surface_get_height ()</a> </dt> -<dt>cairo_matrix_init, <a class="indexterm" href="cairo-cairo-matrix-t.html#id2662108">cairo_matrix_init ()</a> +<dt>cairo_image_surface_get_stride, <a class="indexterm" href="cairo-Image-Surfaces.html#id2660009">cairo_image_surface_get_stride ()</a> </dt> -<dt>cairo_matrix_init_identity, <a class="indexterm" href="cairo-cairo-matrix-t.html#id2670192">cairo_matrix_init_identity ()</a> +<dt>cairo_image_surface_get_width, <a class="indexterm" href="cairo-Image-Surfaces.html#id2656194">cairo_image_surface_get_width ()</a> </dt> -<dt>cairo_matrix_init_rotate, <a class="indexterm" href="cairo-cairo-matrix-t.html#id2670496">cairo_matrix_init_rotate ()</a> +<dt>cairo_in_fill, <a class="indexterm" href="cairo-cairo-t.html#id2638234">cairo_in_fill ()</a> </dt> -<dt>cairo_matrix_init_scale, <a class="indexterm" href="cairo-cairo-matrix-t.html#id2670374">cairo_matrix_init_scale ()</a> +<dt>cairo_in_stroke, <a class="indexterm" href="cairo-cairo-t.html#id2639456">cairo_in_stroke ()</a> </dt> -<dt>cairo_matrix_init_translate, <a class="indexterm" href="cairo-cairo-matrix-t.html#id2670257">cairo_matrix_init_translate ()</a> +<dt>cairo_line_cap_t, <a class="indexterm" href="cairo-cairo-t.html#id2634785">enum cairo_line_cap_t</a> </dt> -<dt>cairo_matrix_invert, <a class="indexterm" href="cairo-cairo-matrix-t.html#id2670989">cairo_matrix_invert ()</a> +<dt>cairo_line_join_t, <a class="indexterm" href="cairo-cairo-t.html#id2635097">enum cairo_line_join_t</a> </dt> -<dt>cairo_matrix_multiply, <a class="indexterm" href="cairo-cairo-matrix-t.html#id2671111">cairo_matrix_multiply ()</a> +<dt>cairo_line_to, <a class="indexterm" href="cairo-Paths.html#id2580265">cairo_line_to ()</a> </dt> -<dt>cairo_matrix_rotate, <a class="indexterm" href="cairo-cairo-matrix-t.html#id2670874">cairo_matrix_rotate ()</a> +<dt>cairo_mask, <a class="indexterm" href="cairo-cairo-t.html#id2638397">cairo_mask ()</a> </dt> -<dt>cairo_matrix_scale, <a class="indexterm" href="cairo-cairo-matrix-t.html#id2670731">cairo_matrix_scale ()</a> +<dt>cairo_mask_surface, <a class="indexterm" href="cairo-cairo-t.html#id2638503">cairo_mask_surface ()</a> </dt> -<dt>cairo_matrix_t, <a class="indexterm" href="cairo-cairo-matrix-t.html#id2665411">cairo_matrix_t</a> +<dt>cairo_matrix_init, <a class="indexterm" href="cairo-cairo-matrix-t.html#id2668229">cairo_matrix_init ()</a> </dt> -<dt>cairo_matrix_transform_distance, <a class="indexterm" href="cairo-cairo-matrix-t.html#id2671290">cairo_matrix_transform_distance ()</a> +<dt>cairo_matrix_init_identity, <a class="indexterm" href="cairo-cairo-matrix-t.html#id2673228">cairo_matrix_init_identity ()</a> </dt> -<dt>cairo_matrix_transform_point, <a class="indexterm" href="cairo-cairo-matrix-t.html#id2671530">cairo_matrix_transform_point ()</a> +<dt>cairo_matrix_init_rotate, <a class="indexterm" href="cairo-cairo-matrix-t.html#id2673548">cairo_matrix_init_rotate ()</a> </dt> -<dt>cairo_matrix_translate, <a class="indexterm" href="cairo-cairo-matrix-t.html#id2670595">cairo_matrix_translate ()</a> +<dt>cairo_matrix_init_scale, <a class="indexterm" href="cairo-cairo-matrix-t.html#id2673418">cairo_matrix_init_scale ()</a> </dt> -<dt>cairo_move_to, <a class="indexterm" href="cairo-Paths.html#id2580403">cairo_move_to ()</a> +<dt>cairo_matrix_init_translate, <a class="indexterm" href="cairo-cairo-matrix-t.html#id2673294">cairo_matrix_init_translate ()</a> </dt> -<dt>cairo_new_path, <a class="indexterm" href="cairo-Paths.html#id2579085">cairo_new_path ()</a> +<dt>cairo_matrix_invert, <a class="indexterm" href="cairo-cairo-matrix-t.html#id2674055">cairo_matrix_invert ()</a> </dt> -<dt>cairo_new_sub_path, <a class="indexterm" href="cairo-Paths.html#id2579147">cairo_new_sub_path ()</a> +<dt>cairo_matrix_multiply, <a class="indexterm" href="cairo-cairo-matrix-t.html#id2674178">cairo_matrix_multiply ()</a> </dt> -<dt>cairo_operator_t, <a class="indexterm" href="cairo-cairo-t.html#id2635285">enum cairo_operator_t</a> +<dt>cairo_matrix_rotate, <a class="indexterm" href="cairo-cairo-matrix-t.html#id2673941">cairo_matrix_rotate ()</a> </dt> -<dt>cairo_paint, <a class="indexterm" href="cairo-cairo-t.html#id2637561">cairo_paint ()</a> +<dt>cairo_matrix_scale, <a class="indexterm" href="cairo-cairo-matrix-t.html#id2673797">cairo_matrix_scale ()</a> </dt> -<dt>cairo_paint_with_alpha, <a class="indexterm" href="cairo-cairo-t.html#id2637626">cairo_paint_with_alpha ()</a> +<dt>cairo_matrix_t, <a class="indexterm" href="cairo-cairo-matrix-t.html#id2668051">cairo_matrix_t</a> </dt> -<dt>cairo_path_data_t, <a class="indexterm" href="cairo-Paths.html#id2624920">union cairo_path_data_t</a> +<dt>cairo_matrix_transform_distance, <a class="indexterm" href="cairo-cairo-matrix-t.html#id2674359">cairo_matrix_transform_distance ()</a> </dt> -<dt>cairo_path_data_type_t, <a class="indexterm" href="cairo-Paths.html#id2614928">enum cairo_path_data_type_t</a> +<dt>cairo_matrix_transform_point, <a class="indexterm" href="cairo-cairo-matrix-t.html#id2674604">cairo_matrix_transform_point ()</a> </dt> -<dt>cairo_path_destroy, <a class="indexterm" href="cairo-Paths.html#id2578503">cairo_path_destroy ()</a> +<dt>cairo_matrix_translate, <a class="indexterm" href="cairo-cairo-matrix-t.html#id2673654">cairo_matrix_translate ()</a> </dt> -<dt>cairo_path_t, <a class="indexterm" href="cairo-Paths.html#id2624765">cairo_path_t</a> +<dt>cairo_move_to, <a class="indexterm" href="cairo-Paths.html#id2580430">cairo_move_to ()</a> </dt> -<dt>cairo_pattern_add_color_stop_rgb, <a class="indexterm" href="cairo-Patterns.html#id2640756">cairo_pattern_add_color_stop_rgb ()</a> +<dt>cairo_new_path, <a class="indexterm" href="cairo-Paths.html#id2579094">cairo_new_path ()</a> </dt> -<dt>cairo_pattern_add_color_stop_rgba, <a class="indexterm" href="cairo-Patterns.html#id2640954">cairo_pattern_add_color_stop_rgba ()</a> +<dt>cairo_new_sub_path, <a class="indexterm" href="cairo-Paths.html#id2579156">cairo_new_sub_path ()</a> </dt> -<dt>cairo_pattern_create_for_surface, <a class="indexterm" href="cairo-Patterns.html#id2642109">cairo_pattern_create_for_surface ()</a> +<dt>cairo_operator_t, <a class="indexterm" href="cairo-cairo-t.html#id2635946">enum cairo_operator_t</a> </dt> -<dt>cairo_pattern_create_linear, <a class="indexterm" href="cairo-Patterns.html#id2642347">cairo_pattern_create_linear ()</a> +<dt>cairo_paint, <a class="indexterm" href="cairo-cairo-t.html#id2638666">cairo_paint ()</a> </dt> -<dt>cairo_pattern_create_radial, <a class="indexterm" href="cairo-Patterns.html#id2642755">cairo_pattern_create_radial ()</a> +<dt>cairo_paint_with_alpha, <a class="indexterm" href="cairo-cairo-t.html#id2638731">cairo_paint_with_alpha ()</a> </dt> -<dt>cairo_pattern_create_rgb, <a class="indexterm" href="cairo-Patterns.html#id2641606">cairo_pattern_create_rgb ()</a> +<dt>cairo_path_data_t, <a class="indexterm" href="cairo-Paths.html#id2577718">union cairo_path_data_t</a> </dt> -<dt>cairo_pattern_create_rgba, <a class="indexterm" href="cairo-Patterns.html#id2641742">cairo_pattern_create_rgba ()</a> +<dt>cairo_path_data_type_t, <a class="indexterm" href="cairo-Paths.html#id2610055">enum cairo_path_data_type_t</a> </dt> -<dt>cairo_pattern_destroy, <a class="indexterm" href="cairo-Patterns.html#id2643379">cairo_pattern_destroy ()</a> +<dt>cairo_path_destroy, <a class="indexterm" href="cairo-Paths.html#id2578454">cairo_path_destroy ()</a> </dt> -<dt>cairo_pattern_get_color_stop_count, <a class="indexterm" href="cairo-Patterns.html#id2641174">cairo_pattern_get_color_stop_count ()</a> +<dt>cairo_path_extents, <a class="indexterm" href="cairo-Paths.html#id2581725">cairo_path_extents ()</a> </dt> -<dt>cairo_pattern_get_color_stop_rgba, <a class="indexterm" href="cairo-Patterns.html#id2641323">cairo_pattern_get_color_stop_rgba ()</a> +<dt>cairo_path_t, <a class="indexterm" href="cairo-Paths.html#id2624840">cairo_path_t</a> </dt> -<dt>cairo_pattern_get_extend, <a class="indexterm" href="cairo-Patterns.html#id2643781">cairo_pattern_get_extend ()</a> +<dt>cairo_pattern_add_color_stop_rgb, <a class="indexterm" href="cairo-Patterns.html#id2642190">cairo_pattern_add_color_stop_rgb ()</a> </dt> -<dt>cairo_pattern_get_filter, <a class="indexterm" href="cairo-Patterns.html#id2643983">cairo_pattern_get_filter ()</a> +<dt>cairo_pattern_add_color_stop_rgba, <a class="indexterm" href="cairo-Patterns.html#id2642389">cairo_pattern_add_color_stop_rgba ()</a> </dt> -<dt>cairo_pattern_get_linear_points, <a class="indexterm" href="cairo-Patterns.html#id2642536">cairo_pattern_get_linear_points ()</a> +<dt>cairo_pattern_create_for_surface, <a class="indexterm" href="cairo-Patterns.html#id2643633">cairo_pattern_create_for_surface ()</a> </dt> -<dt>cairo_pattern_get_matrix, <a class="indexterm" href="cairo-Patterns.html#id2644229">cairo_pattern_get_matrix ()</a> +<dt>cairo_pattern_create_linear, <a class="indexterm" href="cairo-Patterns.html#id2643876">cairo_pattern_create_linear ()</a> </dt> -<dt>cairo_pattern_get_radial_circles, <a class="indexterm" href="cairo-Patterns.html#id2642984">cairo_pattern_get_radial_circles ()</a> +<dt>cairo_pattern_create_radial, <a class="indexterm" href="cairo-Patterns.html#id2644291">cairo_pattern_create_radial ()</a> </dt> -<dt>cairo_pattern_get_reference_count, <a class="indexterm" href="cairo-Patterns.html#id2644663">cairo_pattern_get_reference_count ()</a> +<dt>cairo_pattern_create_rgb, <a class="indexterm" href="cairo-Patterns.html#id2643086">cairo_pattern_create_rgb ()</a> </dt> -<dt>cairo_pattern_get_rgba, <a class="indexterm" href="cairo-Patterns.html#id2641898">cairo_pattern_get_rgba ()</a> +<dt>cairo_pattern_create_rgba, <a class="indexterm" href="cairo-Patterns.html#id2643241">cairo_pattern_create_rgba ()</a> </dt> -<dt>cairo_pattern_get_surface, <a class="indexterm" href="cairo-Patterns.html#id2642204">cairo_pattern_get_surface ()</a> +<dt>cairo_pattern_destroy, <a class="indexterm" href="cairo-Patterns.html#id2644921">cairo_pattern_destroy ()</a> </dt> -<dt>cairo_pattern_get_type, <a class="indexterm" href="cairo-Patterns.html#id2644557">cairo_pattern_get_type ()</a> +<dt>cairo_pattern_get_color_stop_count, <a class="indexterm" href="cairo-Patterns.html#id2642609">cairo_pattern_get_color_stop_count ()</a> </dt> -<dt>cairo_pattern_get_user_data, <a class="indexterm" href="cairo-Patterns.html#id2645001">cairo_pattern_get_user_data ()</a> +<dt>cairo_pattern_get_color_stop_rgba, <a class="indexterm" href="cairo-Patterns.html#id2642758">cairo_pattern_get_color_stop_rgba ()</a> </dt> -<dt>cairo_pattern_reference, <a class="indexterm" href="cairo-Patterns.html#id2643263">cairo_pattern_reference ()</a> +<dt>cairo_pattern_get_extend, <a class="indexterm" href="cairo-Patterns.html#id2645323">cairo_pattern_get_extend ()</a> </dt> -<dt>cairo_pattern_set_extend, <a class="indexterm" href="cairo-Patterns.html#id2643685">cairo_pattern_set_extend ()</a> +<dt>cairo_pattern_get_filter, <a class="indexterm" href="cairo-Patterns.html#id2645727">cairo_pattern_get_filter ()</a> </dt> -<dt>cairo_pattern_set_filter, <a class="indexterm" href="cairo-Patterns.html#id2643888">cairo_pattern_set_filter ()</a> +<dt>cairo_pattern_get_linear_points, <a class="indexterm" href="cairo-Patterns.html#id2644071">cairo_pattern_get_linear_points ()</a> </dt> -<dt>cairo_pattern_set_matrix, <a class="indexterm" href="cairo-Patterns.html#id2644068">cairo_pattern_set_matrix ()</a> +<dt>cairo_pattern_get_matrix, <a class="indexterm" href="cairo-Patterns.html#id2645949">cairo_pattern_get_matrix ()</a> </dt> -<dt>cairo_pattern_set_user_data, <a class="indexterm" href="cairo-Patterns.html#id2644769">cairo_pattern_set_user_data ()</a> +<dt>cairo_pattern_get_radial_circles, <a class="indexterm" href="cairo-Patterns.html#id2644526">cairo_pattern_get_radial_circles ()</a> </dt> -<dt>cairo_pattern_status, <a class="indexterm" href="cairo-Patterns.html#id2643461">cairo_pattern_status ()</a> +<dt>cairo_pattern_get_reference_count, <a class="indexterm" href="cairo-Patterns.html#id2646382">cairo_pattern_get_reference_count ()</a> </dt> -<dt>cairo_pattern_t, <a class="indexterm" href="cairo-Patterns.html#id2640646">cairo_pattern_t</a> +<dt>cairo_pattern_get_rgba, <a class="indexterm" href="cairo-Patterns.html#id2643419">cairo_pattern_get_rgba ()</a> </dt> -<dt>cairo_pattern_type_t, <a class="indexterm" href="cairo-Patterns.html#id2644329">enum cairo_pattern_type_t</a> +<dt>cairo_pattern_get_surface, <a class="indexterm" href="cairo-Patterns.html#id2643734">cairo_pattern_get_surface ()</a> </dt> -<dt>cairo_pdf_surface_create, <a class="indexterm" href="cairo-PDF-Surfaces.html#id2622684">cairo_pdf_surface_create ()</a> +<dt>cairo_pattern_get_type, <a class="indexterm" href="cairo-Patterns.html#id2646276">cairo_pattern_get_type ()</a> </dt> -<dt>cairo_pdf_surface_create_for_stream, <a class="indexterm" href="cairo-PDF-Surfaces.html#id2588757">cairo_pdf_surface_create_for_stream ()</a> +<dt>cairo_pattern_get_user_data, <a class="indexterm" href="cairo-Patterns.html#id2646720">cairo_pattern_get_user_data ()</a> </dt> -<dt>cairo_pdf_surface_set_size, <a class="indexterm" href="cairo-PDF-Surfaces.html#id2656659">cairo_pdf_surface_set_size ()</a> +<dt>cairo_pattern_reference, <a class="indexterm" href="cairo-Patterns.html#id2644805">cairo_pattern_reference ()</a> </dt> -<dt>cairo_pop_group, <a class="indexterm" href="cairo-cairo-t.html#id2631786">cairo_pop_group ()</a> +<dt>cairo_pattern_set_extend, <a class="indexterm" href="cairo-Patterns.html#id2645227">cairo_pattern_set_extend ()</a> </dt> -<dt>cairo_pop_group_to_source, <a class="indexterm" href="cairo-cairo-t.html#id2631919">cairo_pop_group_to_source ()</a> +<dt>cairo_pattern_set_filter, <a class="indexterm" href="cairo-Patterns.html#id2645591">cairo_pattern_set_filter ()</a> </dt> -<dt>cairo_ps_get_levels, <a class="indexterm" href="cairo-PostScript-Surfaces.html#id2664004">cairo_ps_get_levels ()</a> +<dt>cairo_pattern_set_matrix, <a class="indexterm" href="cairo-Patterns.html#id2645806">cairo_pattern_set_matrix ()</a> </dt> -<dt>cairo_ps_level_t, <a class="indexterm" href="cairo-PostScript-Surfaces.html#id2655229">enum cairo_ps_level_t</a> +<dt>cairo_pattern_set_user_data, <a class="indexterm" href="cairo-Patterns.html#id2646488">cairo_pattern_set_user_data ()</a> </dt> -<dt>cairo_ps_level_to_string, <a class="indexterm" href="cairo-PostScript-Surfaces.html#id2664098">cairo_ps_level_to_string ()</a> +<dt>cairo_pattern_status, <a class="indexterm" href="cairo-Patterns.html#id2645003">cairo_pattern_status ()</a> </dt> -<dt>cairo_ps_surface_create, <a class="indexterm" href="cairo-PostScript-Surfaces.html#id2654725">cairo_ps_surface_create ()</a> +<dt>cairo_pattern_t, <a class="indexterm" href="cairo-Patterns.html#id2642080">cairo_pattern_t</a> </dt> -<dt>cairo_ps_surface_create_for_stream, <a class="indexterm" href="cairo-PostScript-Surfaces.html#id2654895">cairo_ps_surface_create_for_stream ()</a> +<dt>cairo_pattern_type_t, <a class="indexterm" href="cairo-Patterns.html#id2646041">enum cairo_pattern_type_t</a> </dt> -<dt>cairo_ps_surface_dsc_begin_page_setup, <a class="indexterm" href="cairo-PostScript-Surfaces.html#id2664654">cairo_ps_surface_dsc_begin_page_setup ()</a> +<dt>cairo_pdf_surface_create, <a class="indexterm" href="cairo-PDF-Surfaces.html#id2653894">cairo_pdf_surface_create ()</a> </dt> -<dt>cairo_ps_surface_dsc_begin_setup, <a class="indexterm" href="cairo-PostScript-Surfaces.html#id2664539">cairo_ps_surface_dsc_begin_setup ()</a> +<dt>cairo_pdf_surface_create_for_stream, <a class="indexterm" href="cairo-PDF-Surfaces.html#id2640922">cairo_pdf_surface_create_for_stream ()</a> </dt> -<dt>cairo_ps_surface_dsc_comment, <a class="indexterm" href="cairo-PostScript-Surfaces.html#id2664771">cairo_ps_surface_dsc_comment ()</a> +<dt>cairo_pdf_surface_set_size, <a class="indexterm" href="cairo-PDF-Surfaces.html#id2659529">cairo_pdf_surface_set_size ()</a> </dt> -<dt>cairo_ps_surface_get_eps, <a class="indexterm" href="cairo-PostScript-Surfaces.html#id2664312">cairo_ps_surface_get_eps ()</a> +<dt>cairo_pop_group, <a class="indexterm" href="cairo-cairo-t.html#id2632608">cairo_pop_group ()</a> </dt> -<dt>cairo_ps_surface_restrict_to_level, <a class="indexterm" href="cairo-PostScript-Surfaces.html#id2655104">cairo_ps_surface_restrict_to_level ()</a> +<dt>cairo_pop_group_to_source, <a class="indexterm" href="cairo-cairo-t.html#id2632741">cairo_pop_group_to_source ()</a> </dt> -<dt>cairo_ps_surface_set_eps, <a class="indexterm" href="cairo-PostScript-Surfaces.html#id2664204">cairo_ps_surface_set_eps ()</a> +<dt>cairo_ps_get_levels, <a class="indexterm" href="cairo-PostScript-Surfaces.html#id2666718">cairo_ps_get_levels ()</a> </dt> -<dt>cairo_ps_surface_set_size, <a class="indexterm" href="cairo-PostScript-Surfaces.html#id2664395">cairo_ps_surface_set_size ()</a> +<dt>cairo_ps_level_t, <a class="indexterm" href="cairo-PostScript-Surfaces.html#id2666634">enum cairo_ps_level_t</a> </dt> -<dt>cairo_push_group, <a class="indexterm" href="cairo-cairo-t.html#id2631473">cairo_push_group ()</a> +<dt>cairo_ps_level_to_string, <a class="indexterm" href="cairo-PostScript-Surfaces.html#id2666821">cairo_ps_level_to_string ()</a> </dt> -<dt>cairo_push_group_with_content, <a class="indexterm" href="cairo-cairo-t.html#id2631650">cairo_push_group_with_content ()</a> +<dt>cairo_ps_surface_create, <a class="indexterm" href="cairo-PostScript-Surfaces.html#id2665765">cairo_ps_surface_create ()</a> </dt> -<dt>cairo_read_func_t, <a class="indexterm" href="cairo-PNG-Support.html#id2658176">cairo_read_func_t ()</a> +<dt>cairo_ps_surface_create_for_stream, <a class="indexterm" href="cairo-PostScript-Surfaces.html#id2657350">cairo_ps_surface_create_for_stream ()</a> </dt> -<dt>cairo_rectangle, <a class="indexterm" href="cairo-Paths.html#id2580522">cairo_rectangle ()</a> +<dt>cairo_ps_surface_dsc_begin_page_setup, <a class="indexterm" href="cairo-PostScript-Surfaces.html#id2667443">cairo_ps_surface_dsc_begin_page_setup ()</a> </dt> -<dt>cairo_rectangle_list_destroy, <a class="indexterm" href="cairo-cairo-t.html#id2636542">cairo_rectangle_list_destroy ()</a> +<dt>cairo_ps_surface_dsc_begin_setup, <a class="indexterm" href="cairo-PostScript-Surfaces.html#id2667320">cairo_ps_surface_dsc_begin_setup ()</a> </dt> -<dt>cairo_rectangle_list_t, <a class="indexterm" href="cairo-cairo-t.html#id2636427">cairo_rectangle_list_t</a> +<dt>cairo_ps_surface_dsc_comment, <a class="indexterm" href="cairo-PostScript-Surfaces.html#id2667566">cairo_ps_surface_dsc_comment ()</a> </dt> -<dt>cairo_rectangle_t, <a class="indexterm" href="cairo-cairo-t.html#id2636294">cairo_rectangle_t</a> +<dt>cairo_ps_surface_get_eps, <a class="indexterm" href="cairo-PostScript-Surfaces.html#id2667069">cairo_ps_surface_get_eps ()</a> </dt> -<dt>cairo_reference, <a class="indexterm" href="cairo-cairo-t.html#id2630834">cairo_reference ()</a> +<dt>cairo_ps_surface_restrict_to_level, <a class="indexterm" href="cairo-PostScript-Surfaces.html#id2657566">cairo_ps_surface_restrict_to_level ()</a> </dt> -<dt>cairo_rel_curve_to, <a class="indexterm" href="cairo-Paths.html#id2580977">cairo_rel_curve_to ()</a> +<dt>cairo_ps_surface_set_eps, <a class="indexterm" href="cairo-PostScript-Surfaces.html#id2666936">cairo_ps_surface_set_eps ()</a> </dt> -<dt>cairo_rel_line_to, <a class="indexterm" href="cairo-Paths.html#id2581332">cairo_rel_line_to ()</a> +<dt>cairo_ps_surface_set_size, <a class="indexterm" href="cairo-PostScript-Surfaces.html#id2667169">cairo_ps_surface_set_size ()</a> </dt> -<dt>cairo_rel_move_to, <a class="indexterm" href="cairo-Paths.html#id2581527">cairo_rel_move_to ()</a> +<dt>cairo_push_group, <a class="indexterm" href="cairo-cairo-t.html#id2632304">cairo_push_group ()</a> </dt> -<dt>cairo_reset_clip, <a class="indexterm" href="cairo-cairo-t.html#id2636172">cairo_reset_clip ()</a> +<dt>cairo_push_group_with_content, <a class="indexterm" href="cairo-cairo-t.html#id2632474">cairo_push_group_with_content ()</a> </dt> -<dt>cairo_restore, <a class="indexterm" href="cairo-cairo-t.html#id2631258">cairo_restore ()</a> +<dt>cairo_read_func_t, <a class="indexterm" href="cairo-PNG-Support.html#id2660291">cairo_read_func_t ()</a> </dt> -<dt>cairo_rotate, <a class="indexterm" href="cairo-Transformations.html#id2576746">cairo_rotate ()</a> +<dt>cairo_rectangle, <a class="indexterm" href="cairo-Paths.html#id2580549">cairo_rectangle ()</a> </dt> -<dt>cairo_save, <a class="indexterm" href="cairo-cairo-t.html#id2631102">cairo_save ()</a> +<dt>cairo_rectangle_list_destroy, <a class="indexterm" href="cairo-cairo-t.html#id2637597">cairo_rectangle_list_destroy ()</a> </dt> -<dt>cairo_scale, <a class="indexterm" href="cairo-Transformations.html#id2576553">cairo_scale ()</a> +<dt>cairo_rectangle_list_t, <a class="indexterm" href="cairo-cairo-t.html#id2637482">cairo_rectangle_list_t</a> </dt> -<dt>cairo_scaled_font_create, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2648572">cairo_scaled_font_create ()</a> +<dt>cairo_rectangle_t, <a class="indexterm" href="cairo-cairo-t.html#id2637350">cairo_rectangle_t</a> </dt> -<dt>cairo_scaled_font_destroy, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2594622">cairo_scaled_font_destroy ()</a> +<dt>cairo_reference, <a class="indexterm" href="cairo-cairo-t.html#id2631587">cairo_reference ()</a> </dt> -<dt>cairo_scaled_font_extents, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2650005">cairo_scaled_font_extents ()</a> +<dt>cairo_rel_curve_to, <a class="indexterm" href="cairo-Paths.html#id2581004">cairo_rel_curve_to ()</a> </dt> -<dt>cairo_scaled_font_get_ctm, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2650935">cairo_scaled_font_get_ctm ()</a> +<dt>cairo_rel_line_to, <a class="indexterm" href="cairo-Paths.html#id2581359">cairo_rel_line_to ()</a> </dt> -<dt>cairo_scaled_font_get_font_face, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2650636">cairo_scaled_font_get_font_face ()</a> +<dt>cairo_rel_move_to, <a class="indexterm" href="cairo-Paths.html#id2581554">cairo_rel_move_to ()</a> </dt> -<dt>cairo_scaled_font_get_font_matrix, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2650832">cairo_scaled_font_get_font_matrix ()</a> +<dt>cairo_reset_clip, <a class="indexterm" href="cairo-cairo-t.html#id2637228">cairo_reset_clip ()</a> </dt> -<dt>cairo_scaled_font_get_font_options, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2650730">cairo_scaled_font_get_font_options ()</a> +<dt>cairo_restore, <a class="indexterm" href="cairo-cairo-t.html#id2632064">cairo_restore ()</a> </dt> -<dt>cairo_scaled_font_get_reference_count, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2651126">cairo_scaled_font_get_reference_count ()</a> +<dt>cairo_rotate, <a class="indexterm" href="cairo-Transformations.html#id2576503">cairo_rotate ()</a> </dt> -<dt>cairo_scaled_font_get_type, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2651034">cairo_scaled_font_get_type ()</a> +<dt>cairo_save, <a class="indexterm" href="cairo-cairo-t.html#id2631888">cairo_save ()</a> </dt> -<dt>cairo_scaled_font_get_user_data, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2651427">cairo_scaled_font_get_user_data ()</a> +<dt>cairo_scale, <a class="indexterm" href="cairo-Transformations.html#id2576384">cairo_scale ()</a> </dt> -<dt>cairo_scaled_font_glyph_extents, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2650472">cairo_scaled_font_glyph_extents ()</a> +<dt>cairo_scaled_font_create, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2626922">cairo_scaled_font_create ()</a> </dt> -<dt>cairo_scaled_font_reference, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2594492">cairo_scaled_font_reference ()</a> +<dt>cairo_scaled_font_destroy, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2651434">cairo_scaled_font_destroy ()</a> </dt> -<dt>cairo_scaled_font_set_user_data, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2651222">cairo_scaled_font_set_user_data ()</a> +<dt>cairo_scaled_font_extents, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2651831">cairo_scaled_font_extents ()</a> </dt> -<dt>cairo_scaled_font_status, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2649695">cairo_scaled_font_status ()</a> +<dt>cairo_scaled_font_get_ctm, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2652784">cairo_scaled_font_get_ctm ()</a> </dt> -<dt>cairo_scaled_font_t, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2648481">cairo_scaled_font_t</a> +<dt>cairo_scaled_font_get_font_face, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2652482">cairo_scaled_font_get_font_face ()</a> </dt> -<dt>cairo_scaled_font_text_extents, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2650300">cairo_scaled_font_text_extents ()</a> +<dt>cairo_scaled_font_get_font_matrix, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2652682">cairo_scaled_font_get_font_matrix ()</a> </dt> -<dt>cairo_select_font_face, <a class="indexterm" href="cairo-Text.html#id2628438">cairo_select_font_face ()</a> +<dt>cairo_scaled_font_get_font_options, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2652588">cairo_scaled_font_get_font_options ()</a> </dt> -<dt>cairo_set_antialias, <a class="indexterm" href="cairo-cairo-t.html#id2633060">cairo_set_antialias ()</a> +<dt>cairo_scaled_font_get_reference_count, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2652975">cairo_scaled_font_get_reference_count ()</a> </dt> -<dt>cairo_set_dash, <a class="indexterm" href="cairo-cairo-t.html#id2633264">cairo_set_dash ()</a> +<dt>cairo_scaled_font_get_type, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2652884">cairo_scaled_font_get_type ()</a> </dt> -<dt>cairo_set_fill_rule, <a class="indexterm" href="cairo-cairo-t.html#id2633897">cairo_set_fill_rule ()</a> +<dt>cairo_scaled_font_get_user_data, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2653276">cairo_scaled_font_get_user_data ()</a> </dt> -<dt>cairo_set_font_face, <a class="indexterm" href="cairo-Text.html#id2645604">cairo_set_font_face ()</a> +<dt>cairo_scaled_font_glyph_extents, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2652297">cairo_scaled_font_glyph_extents ()</a> </dt> -<dt>cairo_set_font_matrix, <a class="indexterm" href="cairo-Text.html#id2645170">cairo_set_font_matrix ()</a> +<dt>cairo_scaled_font_reference, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2627116">cairo_scaled_font_reference ()</a> </dt> -<dt>cairo_set_font_options, <a class="indexterm" href="cairo-Text.html#id2645376">cairo_set_font_options ()</a> +<dt>cairo_scaled_font_set_user_data, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2653072">cairo_scaled_font_set_user_data ()</a> </dt> -<dt>cairo_set_font_size, <a class="indexterm" href="cairo-Text.html#id2628576">cairo_set_font_size ()</a> +<dt>cairo_scaled_font_status, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2651516">cairo_scaled_font_status ()</a> </dt> -<dt>cairo_set_line_cap, <a class="indexterm" href="cairo-cairo-t.html#id2634222">cairo_set_line_cap ()</a> +<dt>cairo_scaled_font_t, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2626825">cairo_scaled_font_t</a> </dt> -<dt>cairo_set_line_join, <a class="indexterm" href="cairo-cairo-t.html#id2634557">cairo_set_line_join ()</a> +<dt>cairo_scaled_font_text_extents, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2652126">cairo_scaled_font_text_extents ()</a> </dt> -<dt>cairo_set_line_width, <a class="indexterm" href="cairo-cairo-t.html#id2634771">cairo_set_line_width ()</a> +<dt>cairo_select_font_face, <a class="indexterm" href="cairo-Text.html#id2594302">cairo_select_font_face ()</a> </dt> -<dt>cairo_set_matrix, <a class="indexterm" href="cairo-Transformations.html#id2626555">cairo_set_matrix ()</a> +<dt>cairo_set_antialias, <a class="indexterm" href="cairo-cairo-t.html#id2633839">cairo_set_antialias ()</a> </dt> -<dt>cairo_set_miter_limit, <a class="indexterm" href="cairo-cairo-t.html#id2635052">cairo_set_miter_limit ()</a> +<dt>cairo_set_dash, <a class="indexterm" href="cairo-cairo-t.html#id2634018">cairo_set_dash ()</a> </dt> -<dt>cairo_set_operator, <a class="indexterm" href="cairo-cairo-t.html#id2635321">cairo_set_operator ()</a> +<dt>cairo_set_fill_rule, <a class="indexterm" href="cairo-cairo-t.html#id2634599">cairo_set_fill_rule ()</a> </dt> -<dt>cairo_set_scaled_font, <a class="indexterm" href="cairo-Text.html#id2645877">cairo_set_scaled_font ()</a> +<dt>cairo_set_font_face, <a class="indexterm" href="cairo-Text.html#id2647189">cairo_set_font_face ()</a> </dt> -<dt>cairo_set_source, <a class="indexterm" href="cairo-cairo-t.html#id2632491">cairo_set_source ()</a> +<dt>cairo_set_font_matrix, <a class="indexterm" href="cairo-Text.html#id2641187">cairo_set_font_matrix ()</a> </dt> -<dt>cairo_set_source_rgb, <a class="indexterm" href="cairo-cairo-t.html#id2632221">cairo_set_source_rgb ()</a> +<dt>cairo_set_font_options, <a class="indexterm" href="cairo-Text.html#id2646981">cairo_set_font_options ()</a> </dt> -<dt>cairo_set_source_rgba, <a class="indexterm" href="cairo-cairo-t.html#id2632346">cairo_set_source_rgba ()</a> +<dt>cairo_set_font_size, <a class="indexterm" href="cairo-Text.html#id2641053">cairo_set_font_size ()</a> </dt> -<dt>cairo_set_source_surface, <a class="indexterm" href="cairo-cairo-t.html#id2632614">cairo_set_source_surface ()</a> +<dt>cairo_set_line_cap, <a class="indexterm" href="cairo-cairo-t.html#id2634884">cairo_set_line_cap ()</a> </dt> -<dt>cairo_set_tolerance, <a class="indexterm" href="cairo-cairo-t.html#id2635511">cairo_set_tolerance ()</a> +<dt>cairo_set_line_join, <a class="indexterm" href="cairo-cairo-t.html#id2635218">cairo_set_line_join ()</a> </dt> -<dt>cairo_set_user_data, <a class="indexterm" href="cairo-cairo-t.html#id2638703">cairo_set_user_data ()</a> +<dt>cairo_set_line_width, <a class="indexterm" href="cairo-cairo-t.html#id2635432">cairo_set_line_width ()</a> </dt> -<dt>cairo_show_glyphs, <a class="indexterm" href="cairo-Text.html#id2646259">cairo_show_glyphs ()</a> +<dt>cairo_set_matrix, <a class="indexterm" href="cairo-Transformations.html#id2625860">cairo_set_matrix ()</a> </dt> -<dt>cairo_show_page, <a class="indexterm" href="cairo-cairo-t.html#id2638503">cairo_show_page ()</a> +<dt>cairo_set_miter_limit, <a class="indexterm" href="cairo-cairo-t.html#id2635713">cairo_set_miter_limit ()</a> </dt> -<dt>cairo_show_text, <a class="indexterm" href="cairo-Text.html#id2646133">cairo_show_text ()</a> +<dt>cairo_set_operator, <a class="indexterm" href="cairo-cairo-t.html#id2636358">cairo_set_operator ()</a> </dt> -<dt>cairo_status, <a class="indexterm" href="cairo-cairo-t.html#id2631030">cairo_status ()</a> +<dt>cairo_set_scaled_font, <a class="indexterm" href="cairo-Text.html#id2647440">cairo_set_scaled_font ()</a> </dt> -<dt>cairo_status_t, <a class="indexterm" href="cairo-Error-Handling.html#id2663656">cairo_status_t ()</a> +<dt>cairo_set_source, <a class="indexterm" href="cairo-cairo-t.html#id2633318">cairo_set_source ()</a> </dt> -<dt>cairo_status_to_string, <a class="indexterm" href="cairo-Error-Handling.html#id2662323">cairo_status_to_string ()</a> +<dt>cairo_set_source_rgb, <a class="indexterm" href="cairo-cairo-t.html#id2633048">cairo_set_source_rgb ()</a> </dt> -<dt>cairo_stroke, <a class="indexterm" href="cairo-cairo-t.html#id2637730">cairo_stroke ()</a> +<dt>cairo_set_source_rgba, <a class="indexterm" href="cairo-cairo-t.html#id2633173">cairo_set_source_rgba ()</a> </dt> -<dt>cairo_stroke_extents, <a class="indexterm" href="cairo-cairo-t.html#id2638051">cairo_stroke_extents ()</a> +<dt>cairo_set_source_surface, <a class="indexterm" href="cairo-cairo-t.html#id2633441">cairo_set_source_surface ()</a> </dt> -<dt>cairo_stroke_preserve, <a class="indexterm" href="cairo-cairo-t.html#id2637922">cairo_stroke_preserve ()</a> +<dt>cairo_set_tolerance, <a class="indexterm" href="cairo-cairo-t.html#id2636548">cairo_set_tolerance ()</a> </dt> -<dt>cairo_subpixel_order_t, <a class="indexterm" href="cairo-Font-Options.html#id2652740">enum cairo_subpixel_order_t</a> +<dt>cairo_set_user_data, <a class="indexterm" href="cairo-cairo-t.html#id2639945">cairo_set_user_data ()</a> </dt> -<dt>cairo_surface_copy_page, <a class="indexterm" href="cairo-cairo-surface-t.html#id2660940">cairo_surface_copy_page ()</a> +<dt>cairo_show_glyphs, <a class="indexterm" href="cairo-Text.html#id2647844">cairo_show_glyphs ()</a> </dt> -<dt>cairo_surface_create_similar, <a class="indexterm" href="cairo-cairo-surface-t.html#id2653846">cairo_surface_create_similar ()</a> +<dt>cairo_show_page, <a class="indexterm" href="cairo-cairo-t.html#id2639745">cairo_show_page ()</a> </dt> -<dt>cairo_surface_destroy, <a class="indexterm" href="cairo-cairo-surface-t.html#id2658853">cairo_surface_destroy ()</a> +<dt>cairo_show_text, <a class="indexterm" href="cairo-Text.html#id2647719">cairo_show_text ()</a> </dt> -<dt>cairo_surface_finish, <a class="indexterm" href="cairo-cairo-surface-t.html#id2659058">cairo_surface_finish ()</a> +<dt>cairo_status, <a class="indexterm" href="cairo-cairo-t.html#id2631808">cairo_status ()</a> </dt> -<dt>cairo_surface_flush, <a class="indexterm" href="cairo-cairo-surface-t.html#id2659157">cairo_surface_flush ()</a> +<dt>cairo_status_t, <a class="indexterm" href="cairo-Error-Handling.html#id2668491">enum cairo_status_t</a> </dt> -<dt>cairo_surface_get_content, <a class="indexterm" href="cairo-cairo-surface-t.html#id2659326">cairo_surface_get_content ()</a> +<dt>cairo_status_to_string, <a class="indexterm" href="cairo-Error-Handling.html#id2669684">cairo_status_to_string ()</a> </dt> -<dt>cairo_surface_get_device_offset, <a class="indexterm" href="cairo-cairo-surface-t.html#id2659798">cairo_surface_get_device_offset ()</a> +<dt>cairo_stroke, <a class="indexterm" href="cairo-cairo-t.html#id2638835">cairo_stroke ()</a> </dt> -<dt>cairo_surface_get_font_options, <a class="indexterm" href="cairo-cairo-surface-t.html#id2659223">cairo_surface_get_font_options ()</a> +<dt>cairo_stroke_extents, <a class="indexterm" href="cairo-cairo-t.html#id2639212">cairo_stroke_extents ()</a> </dt> -<dt>cairo_surface_get_reference_count, <a class="indexterm" href="cairo-cairo-surface-t.html#id2660541">cairo_surface_get_reference_count ()</a> +<dt>cairo_stroke_preserve, <a class="indexterm" href="cairo-cairo-t.html#id2639074">cairo_stroke_preserve ()</a> </dt> -<dt>cairo_surface_get_type, <a class="indexterm" href="cairo-cairo-surface-t.html#id2660450">cairo_surface_get_type ()</a> +<dt>cairo_subpixel_order_t, <a class="indexterm" href="cairo-Font-Options.html#id2654555">enum cairo_subpixel_order_t</a> </dt> -<dt>cairo_surface_get_user_data, <a class="indexterm" href="cairo-cairo-surface-t.html#id2660818">cairo_surface_get_user_data ()</a> +<dt>cairo_surface_copy_page, <a class="indexterm" href="cairo-cairo-surface-t.html#id2663123">cairo_surface_copy_page ()</a> </dt> -<dt>cairo_surface_mark_dirty, <a class="indexterm" href="cairo-cairo-surface-t.html#id2659424">cairo_surface_mark_dirty ()</a> +<dt>cairo_surface_create_similar, <a class="indexterm" href="cairo-cairo-surface-t.html#id2655744">cairo_surface_create_similar ()</a> </dt> -<dt>cairo_surface_mark_dirty_rectangle, <a class="indexterm" href="cairo-cairo-surface-t.html#id2659496">cairo_surface_mark_dirty_rectangle ()</a> +<dt>cairo_surface_destroy, <a class="indexterm" href="cairo-cairo-surface-t.html#id2660954">cairo_surface_destroy ()</a> </dt> -<dt>cairo_surface_reference, <a class="indexterm" href="cairo-cairo-surface-t.html#id2658731">cairo_surface_reference ()</a> +<dt>cairo_surface_finish, <a class="indexterm" href="cairo-cairo-surface-t.html#id2661191">cairo_surface_finish ()</a> </dt> -<dt>cairo_surface_set_device_offset, <a class="indexterm" href="cairo-cairo-surface-t.html#id2659653">cairo_surface_set_device_offset ()</a> +<dt>cairo_surface_flush, <a class="indexterm" href="cairo-cairo-surface-t.html#id2661298">cairo_surface_flush ()</a> </dt> -<dt>cairo_surface_set_fallback_resolution, <a class="indexterm" href="cairo-cairo-surface-t.html#id2659920">cairo_surface_set_fallback_resolution ()</a> +<dt>cairo_surface_get_content, <a class="indexterm" href="cairo-cairo-surface-t.html#id2661485">cairo_surface_get_content ()</a> </dt> -<dt>cairo_surface_set_user_data, <a class="indexterm" href="cairo-cairo-surface-t.html#id2660636">cairo_surface_set_user_data ()</a> +<dt>cairo_surface_get_device_offset, <a class="indexterm" href="cairo-cairo-surface-t.html#id2661960">cairo_surface_get_device_offset ()</a> </dt> -<dt>cairo_surface_show_page, <a class="indexterm" href="cairo-cairo-surface-t.html#id2661024">cairo_surface_show_page ()</a> +<dt>cairo_surface_get_font_options, <a class="indexterm" href="cairo-cairo-surface-t.html#id2661373">cairo_surface_get_font_options ()</a> </dt> -<dt>cairo_surface_status, <a class="indexterm" href="cairo-cairo-surface-t.html#id2658925">cairo_surface_status ()</a> +<dt>cairo_surface_get_reference_count, <a class="indexterm" href="cairo-cairo-surface-t.html#id2662724">cairo_surface_get_reference_count ()</a> </dt> -<dt>cairo_surface_t, <a class="indexterm" href="cairo-cairo-surface-t.html#id2656914">cairo_surface_t</a> +<dt>cairo_surface_get_type, <a class="indexterm" href="cairo-cairo-surface-t.html#id2662633">cairo_surface_get_type ()</a> </dt> -<dt>cairo_surface_type_t, <a class="indexterm" href="cairo-cairo-surface-t.html#id2660079">enum cairo_surface_type_t</a> +<dt>cairo_surface_get_user_data, <a class="indexterm" href="cairo-cairo-surface-t.html#id2663001">cairo_surface_get_user_data ()</a> </dt> -<dt>cairo_surface_write_to_png, <a class="indexterm" href="cairo-PNG-Support.html#id2658431">cairo_surface_write_to_png ()</a> +<dt>cairo_surface_mark_dirty, <a class="indexterm" href="cairo-cairo-surface-t.html#id2661595">cairo_surface_mark_dirty ()</a> </dt> -<dt>cairo_surface_write_to_png_stream, <a class="indexterm" href="cairo-PNG-Support.html#id2654560">cairo_surface_write_to_png_stream ()</a> +<dt>cairo_surface_mark_dirty_rectangle, <a class="indexterm" href="cairo-cairo-surface-t.html#id2661658">cairo_surface_mark_dirty_rectangle ()</a> </dt> -<dt>cairo_svg_get_versions, <a class="indexterm" href="cairo-SVG-Surfaces.html#id2661348">cairo_svg_get_versions ()</a> +<dt>cairo_surface_reference, <a class="indexterm" href="cairo-cairo-surface-t.html#id2660827">cairo_surface_reference ()</a> </dt> -<dt>cairo_svg_surface_create, <a class="indexterm" href="cairo-SVG-Surfaces.html#id2663007">cairo_svg_surface_create ()</a> +<dt>cairo_surface_set_device_offset, <a class="indexterm" href="cairo-cairo-surface-t.html#id2661815">cairo_surface_set_device_offset ()</a> </dt> -<dt>cairo_svg_surface_create_for_stream, <a class="indexterm" href="cairo-SVG-Surfaces.html#id2655736">cairo_svg_surface_create_for_stream ()</a> +<dt>cairo_surface_set_fallback_resolution, <a class="indexterm" href="cairo-cairo-surface-t.html#id2662082">cairo_surface_set_fallback_resolution ()</a> </dt> -<dt>cairo_svg_surface_restrict_to_version, <a class="indexterm" href="cairo-SVG-Surfaces.html#id2655922">cairo_svg_surface_restrict_to_version ()</a> +<dt>cairo_surface_set_user_data, <a class="indexterm" href="cairo-cairo-surface-t.html#id2662819">cairo_surface_set_user_data ()</a> </dt> -<dt>cairo_svg_version_t, <a class="indexterm" href="cairo-SVG-Surfaces.html#id2656044">enum cairo_svg_version_t</a> +<dt>cairo_surface_show_page, <a class="indexterm" href="cairo-cairo-surface-t.html#id2663204">cairo_surface_show_page ()</a> </dt> -<dt>cairo_svg_version_to_string, <a class="indexterm" href="cairo-SVG-Surfaces.html#id2661451">cairo_svg_version_to_string ()</a> +<dt>cairo_surface_status, <a class="indexterm" href="cairo-cairo-surface-t.html#id2661045">cairo_surface_status ()</a> </dt> -<dt>cairo_t, <a class="indexterm" href="cairo-cairo-t.html#id2630584">cairo_t</a> +<dt>cairo_surface_t, <a class="indexterm" href="cairo-cairo-surface-t.html#id2659050">cairo_surface_t</a> </dt> -<dt>cairo_text_extents, <a class="indexterm" href="cairo-Text.html#id2646442">cairo_text_extents ()</a> +<dt>cairo_surface_type_t, <a class="indexterm" href="cairo-cairo-surface-t.html#id2662240">enum cairo_surface_type_t</a> </dt> -<dt>cairo_text_extents_t, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2650109">cairo_text_extents_t</a> +<dt>cairo_surface_write_to_png, <a class="indexterm" href="cairo-PNG-Support.html#id2660546">cairo_surface_write_to_png ()</a> </dt> -<dt>cairo_text_path, <a class="indexterm" href="cairo-Paths.html#id2580812">cairo_text_path ()</a> +<dt>cairo_surface_write_to_png_stream, <a class="indexterm" href="cairo-PNG-Support.html#id2657885">cairo_surface_write_to_png_stream ()</a> </dt> -<dt>cairo_transform, <a class="indexterm" href="cairo-Transformations.html#id2576841">cairo_transform ()</a> +<dt>cairo_svg_get_versions, <a class="indexterm" href="cairo-SVG-Surfaces.html#id2664311">cairo_svg_get_versions ()</a> </dt> -<dt>cairo_translate, <a class="indexterm" href="cairo-Transformations.html#id2576431">cairo_translate ()</a> +<dt>cairo_svg_surface_create, <a class="indexterm" href="cairo-SVG-Surfaces.html#id2663555">cairo_svg_surface_create ()</a> </dt> -<dt>cairo_user_data_key_t, <a class="indexterm" href="cairo-Types.html#id2669741">cairo_user_data_key_t</a> +<dt>cairo_svg_surface_create_for_stream, <a class="indexterm" href="cairo-SVG-Surfaces.html#id2663710">cairo_svg_surface_create_for_stream ()</a> </dt> -<dt>cairo_user_to_device, <a class="indexterm" href="cairo-Transformations.html#id2626801">cairo_user_to_device ()</a> +<dt>cairo_svg_surface_restrict_to_version, <a class="indexterm" href="cairo-SVG-Surfaces.html#id2663904">cairo_svg_surface_restrict_to_version ()</a> </dt> -<dt>cairo_user_to_device_distance, <a class="indexterm" href="cairo-Transformations.html#id2628803">cairo_user_to_device_distance ()</a> +<dt>cairo_svg_version_t, <a class="indexterm" href="cairo-SVG-Surfaces.html#id2664222">enum cairo_svg_version_t</a> </dt> -<dt>CAIRO_VERSION, <a class="indexterm" href="cairo-Version-Information.html#id2666796">CAIRO_VERSION</a> +<dt>cairo_svg_version_to_string, <a class="indexterm" href="cairo-SVG-Surfaces.html#id2664414">cairo_svg_version_to_string ()</a> </dt> -<dt>cairo_version, <a class="indexterm" href="cairo-Version-Information.html#id2669443">cairo_version ()</a> +<dt>cairo_t, <a class="indexterm" href="cairo-cairo-t.html#id2631313">cairo_t</a> </dt> -<dt>CAIRO_VERSION_ENCODE, <a class="indexterm" href="cairo-Version-Information.html#id2669345">CAIRO_VERSION_ENCODE()</a> +<dt>cairo_text_extents, <a class="indexterm" href="cairo-Text.html#id2648028">cairo_text_extents ()</a> </dt> -<dt>CAIRO_VERSION_MAJOR, <a class="indexterm" href="cairo-Version-Information.html#id2666833">CAIRO_VERSION_MAJOR</a> +<dt>cairo_text_extents_t, <a class="indexterm" href="cairo-Scaled-Fonts.html#id2651934">cairo_text_extents_t</a> </dt> -<dt>CAIRO_VERSION_MICRO, <a class="indexterm" href="cairo-Version-Information.html#id2669288">CAIRO_VERSION_MICRO</a> +<dt>cairo_text_path, <a class="indexterm" href="cairo-Paths.html#id2580839">cairo_text_path ()</a> </dt> -<dt>CAIRO_VERSION_MINOR, <a class="indexterm" href="cairo-Version-Information.html#id2666861">CAIRO_VERSION_MINOR</a> +<dt>cairo_transform, <a class="indexterm" href="cairo-Transformations.html#id2576598">cairo_transform ()</a> </dt> -<dt>CAIRO_VERSION_STRING, <a class="indexterm" href="cairo-Version-Information.html#id2669317">CAIRO_VERSION_STRING</a> +<dt>cairo_translate, <a class="indexterm" href="cairo-Transformations.html#id2586851">cairo_translate ()</a> </dt> -<dt>cairo_version_string, <a class="indexterm" href="cairo-Version-Information.html#id2669547">cairo_version_string ()</a> +<dt>cairo_user_data_key_t, <a class="indexterm" href="cairo-Types.html#id2659580">cairo_user_data_key_t</a> </dt> -<dt>cairo_win32_font_face_create_for_hfont, <a class="indexterm" href="cairo-Win32-Fonts.html#id2646879">cairo_win32_font_face_create_for_hfont ()</a> +<dt>cairo_user_to_device, <a class="indexterm" href="cairo-Transformations.html#id2588322">cairo_user_to_device ()</a> </dt> -<dt>cairo_win32_font_face_create_for_logfontw, <a class="indexterm" href="cairo-Win32-Fonts.html#id2588565">cairo_win32_font_face_create_for_logfontw ()</a> +<dt>cairo_user_to_device_distance, <a class="indexterm" href="cairo-Transformations.html#id2588427">cairo_user_to_device_distance ()</a> </dt> -<dt>cairo_win32_font_face_create_for_logfontw_hfont, <a class="indexterm" href="cairo-Win32-Fonts.html#id2647030">cairo_win32_font_face_create_for_logfontw_hfont ()</a> +<dt>CAIRO_VERSION, <a class="indexterm" href="cairo-Version-Information.html#id2673036">CAIRO_VERSION</a> </dt> -<dt>cairo_win32_printing_surface_create, <a class="indexterm" href="cairo-Win32-Surfaces.html#id2662836">cairo_win32_printing_surface_create ()</a> +<dt>cairo_version, <a class="indexterm" href="cairo-Version-Information.html#id2669031">cairo_version ()</a> </dt> -<dt>cairo_win32_scaled_font_done_font, <a class="indexterm" href="cairo-Win32-Fonts.html#id2647897">cairo_win32_scaled_font_done_font ()</a> +<dt>CAIRO_VERSION_ENCODE, <a class="indexterm" href="cairo-Version-Information.html#id2668933">CAIRO_VERSION_ENCODE()</a> </dt> -<dt>cairo_win32_scaled_font_get_device_to_logical, <a class="indexterm" href="cairo-Win32-Fonts.html#id2648162">cairo_win32_scaled_font_get_device_to_logical ()</a> +<dt>CAIRO_VERSION_MAJOR, <a class="indexterm" href="cairo-Version-Information.html#id2673073">CAIRO_VERSION_MAJOR</a> </dt> -<dt>cairo_win32_scaled_font_get_logical_to_device, <a class="indexterm" href="cairo-Win32-Fonts.html#id2648058">cairo_win32_scaled_font_get_logical_to_device ()</a> +<dt>CAIRO_VERSION_MICRO, <a class="indexterm" href="cairo-Version-Information.html#id2673130">CAIRO_VERSION_MICRO</a> </dt> -<dt>cairo_win32_scaled_font_get_metrics_factor, <a class="indexterm" href="cairo-Win32-Fonts.html#id2647968">cairo_win32_scaled_font_get_metrics_factor ()</a> +<dt>CAIRO_VERSION_MINOR, <a class="indexterm" href="cairo-Version-Information.html#id2673102">CAIRO_VERSION_MINOR</a> </dt> -<dt>cairo_win32_scaled_font_select_font, <a class="indexterm" href="cairo-Win32-Fonts.html#id2647711">cairo_win32_scaled_font_select_font ()</a> +<dt>CAIRO_VERSION_STRING, <a class="indexterm" href="cairo-Version-Information.html#id2668905">CAIRO_VERSION_STRING</a> </dt> -<dt>cairo_win32_surface_create, <a class="indexterm" href="cairo-Win32-Surfaces.html#id2655274">cairo_win32_surface_create ()</a> +<dt>cairo_version_string, <a class="indexterm" href="cairo-Version-Information.html#id2669144">cairo_version_string ()</a> </dt> -<dt>cairo_win32_surface_create_with_ddb, <a class="indexterm" href="cairo-Win32-Surfaces.html#id2662687">cairo_win32_surface_create_with_ddb ()</a> +<dt>cairo_win32_font_face_create_for_hfont, <a class="indexterm" href="cairo-Win32-Fonts.html#id2648659">cairo_win32_font_face_create_for_hfont ()</a> </dt> -<dt>cairo_win32_surface_create_with_dib, <a class="indexterm" href="cairo-Win32-Surfaces.html#id2655349">cairo_win32_surface_create_with_dib ()</a> +<dt>cairo_win32_font_face_create_for_logfontw, <a class="indexterm" href="cairo-Win32-Fonts.html#id2648508">cairo_win32_font_face_create_for_logfontw ()</a> </dt> -<dt>cairo_win32_surface_get_dc, <a class="indexterm" href="cairo-Win32-Surfaces.html#id2663340">cairo_win32_surface_get_dc ()</a> +<dt>cairo_win32_font_face_create_for_logfontw_hfont, <a class="indexterm" href="cairo-Win32-Fonts.html#id2648809">cairo_win32_font_face_create_for_logfontw_hfont ()</a> </dt> -<dt>cairo_win32_surface_get_image, <a class="indexterm" href="cairo-Win32-Surfaces.html#id2663431">cairo_win32_surface_get_image ()</a> +<dt>cairo_win32_printing_surface_create, <a class="indexterm" href="cairo-Win32-Surfaces.html#id2666172">cairo_win32_printing_surface_create ()</a> </dt> -<dt>cairo_write_func_t, <a class="indexterm" href="cairo-PNG-Support.html#id2654431">cairo_write_func_t ()</a> +<dt>cairo_win32_scaled_font_done_font, <a class="indexterm" href="cairo-Win32-Fonts.html#id2649657">cairo_win32_scaled_font_done_font ()</a> </dt> -<dt>cairo_xlib_surface_create, <a class="indexterm" href="cairo-XLib-Surfaces.html#id2661584">cairo_xlib_surface_create ()</a> +<dt>cairo_win32_scaled_font_get_device_to_logical, <a class="indexterm" href="cairo-Win32-Fonts.html#id2649925">cairo_win32_scaled_font_get_device_to_logical ()</a> </dt> -<dt>cairo_xlib_surface_create_for_bitmap, <a class="indexterm" href="cairo-XLib-Surfaces.html#id2661785">cairo_xlib_surface_create_for_bitmap ()</a> +<dt>cairo_win32_scaled_font_get_logical_to_device, <a class="indexterm" href="cairo-Win32-Fonts.html#id2649821">cairo_win32_scaled_font_get_logical_to_device ()</a> </dt> -<dt>cairo_xlib_surface_get_depth, <a class="indexterm" href="cairo-XLib-Surfaces.html#id2668113">cairo_xlib_surface_get_depth ()</a> +<dt>cairo_win32_scaled_font_get_metrics_factor, <a class="indexterm" href="cairo-Win32-Fonts.html#id2649730">cairo_win32_scaled_font_get_metrics_factor ()</a> </dt> -<dt>cairo_xlib_surface_get_display, <a class="indexterm" href="cairo-XLib-Surfaces.html#id2667491">cairo_xlib_surface_get_display ()</a> +<dt>cairo_win32_scaled_font_select_font, <a class="indexterm" href="cairo-Win32-Fonts.html#id2649472">cairo_win32_scaled_font_select_font ()</a> </dt> -<dt>cairo_xlib_surface_get_drawable, <a class="indexterm" href="cairo-XLib-Surfaces.html#id2667783">cairo_xlib_surface_get_drawable ()</a> +<dt>cairo_win32_surface_create, <a class="indexterm" href="cairo-Win32-Surfaces.html#id2665431">cairo_win32_surface_create ()</a> </dt> -<dt>cairo_xlib_surface_get_height, <a class="indexterm" href="cairo-XLib-Surfaces.html#id2668030">cairo_xlib_surface_get_height ()</a> +<dt>cairo_win32_surface_create_with_ddb, <a class="indexterm" href="cairo-Win32-Surfaces.html#id2666021">cairo_win32_surface_create_with_ddb ()</a> </dt> -<dt>cairo_xlib_surface_get_screen, <a class="indexterm" href="cairo-XLib-Surfaces.html#id2667573">cairo_xlib_surface_get_screen ()</a> +<dt>cairo_win32_surface_create_with_dib, <a class="indexterm" href="cairo-Win32-Surfaces.html#id2665506">cairo_win32_surface_create_with_dib ()</a> </dt> -<dt>cairo_xlib_surface_get_visual, <a class="indexterm" href="cairo-XLib-Surfaces.html#id2667865">cairo_xlib_surface_get_visual ()</a> +<dt>cairo_win32_surface_get_dc, <a class="indexterm" href="cairo-Win32-Surfaces.html#id2658433">cairo_win32_surface_get_dc ()</a> </dt> -<dt>cairo_xlib_surface_get_width, <a class="indexterm" href="cairo-XLib-Surfaces.html#id2667947">cairo_xlib_surface_get_width ()</a> +<dt>cairo_win32_surface_get_image, <a class="indexterm" href="cairo-Win32-Surfaces.html#id2658551">cairo_win32_surface_get_image ()</a> </dt> -<dt>cairo_xlib_surface_set_drawable, <a class="indexterm" href="cairo-XLib-Surfaces.html#id2667655">cairo_xlib_surface_set_drawable ()</a> +<dt>cairo_write_func_t, <a class="indexterm" href="cairo-PNG-Support.html#id2657755">cairo_write_func_t ()</a> </dt> -<dt>cairo_xlib_surface_set_size, <a class="indexterm" href="cairo-XLib-Surfaces.html#id2661960">cairo_xlib_surface_set_size ()</a> +<dt>cairo_xlib_surface_create, <a class="indexterm" href="cairo-XLib-Surfaces.html#id2668830">cairo_xlib_surface_create ()</a> +</dt> +<dt>cairo_xlib_surface_create_for_bitmap, <a class="indexterm" href="cairo-XLib-Surfaces.html#id2664714">cairo_xlib_surface_create_for_bitmap ()</a> +</dt> +<dt>cairo_xlib_surface_get_depth, <a class="indexterm" href="cairo-XLib-Surfaces.html#id2671181">cairo_xlib_surface_get_depth ()</a> +</dt> +<dt>cairo_xlib_surface_get_display, <a class="indexterm" href="cairo-XLib-Surfaces.html#id2670563">cairo_xlib_surface_get_display ()</a> +</dt> +<dt>cairo_xlib_surface_get_drawable, <a class="indexterm" href="cairo-XLib-Surfaces.html#id2670852">cairo_xlib_surface_get_drawable ()</a> +</dt> +<dt>cairo_xlib_surface_get_height, <a class="indexterm" href="cairo-XLib-Surfaces.html#id2671098">cairo_xlib_surface_get_height ()</a> +</dt> +<dt>cairo_xlib_surface_get_screen, <a class="indexterm" href="cairo-XLib-Surfaces.html#id2670643">cairo_xlib_surface_get_screen ()</a> +</dt> +<dt>cairo_xlib_surface_get_visual, <a class="indexterm" href="cairo-XLib-Surfaces.html#id2670934">cairo_xlib_surface_get_visual ()</a> +</dt> +<dt>cairo_xlib_surface_get_width, <a class="indexterm" href="cairo-XLib-Surfaces.html#id2671016">cairo_xlib_surface_get_width ()</a> +</dt> +<dt>cairo_xlib_surface_set_drawable, <a class="indexterm" href="cairo-XLib-Surfaces.html#id2670725">cairo_xlib_surface_set_drawable ()</a> +</dt> +<dt>cairo_xlib_surface_set_size, <a class="indexterm" href="cairo-XLib-Surfaces.html#id2664898">cairo_xlib_surface_set_size ()</a> </dt> </dl> -</div> -<div class="indexdiv"> -<h3>T</h3> -<dl> -<dt>types</dt> -<dd><dl><dt>cairo_matrix, <a class="indexterm" href="cairo-cairo-matrix-t.html#id2665296">Description</a> -</dt></dl></dd> -</dl> -</div> -</div> +</div></div> </div> </body> </html> diff --git a/doc/public/html/language-bindings.html b/doc/public/html/language-bindings.html index ba8da86..ddf7526 100644 --- a/doc/public/html/language-bindings.html +++ b/doc/public/html/language-bindings.html @@ -6,12 +6,10 @@ <meta name="generator" content="DocBook XSL Stylesheets V1.73.2"> <link rel="start" href="index.html" title="Cairo: A Vector Graphics Library"> <link rel="up" href="index.html" title="Cairo: A Vector Graphics Library"> -<link rel="prev" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="prev" href="index-1.6.html" title="Index of new symbols in 1.6"> <link rel="next" href="bindings-memory.html" title="Memory management"> <meta name="generator" content="GTK-Doc V1.9 (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"> @@ -19,11 +17,12 @@ <link rel="index" href="ix01.html" title="Index"> <link rel="index" href="index-1.2.html" title="Index of new symbols in 1.2"> <link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> +<link rel="index" href="index-1.6.html" title="Index of new symbols in 1.6"> <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="index-1.4.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> +<td><a accesskey="p" href="index-1.6.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> <td> </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> diff --git a/doc/public/html/pt01.html b/doc/public/html/pt01.html deleted file mode 100644 index 72672a0..0000000 --- a/doc/public/html/pt01.html +++ /dev/null @@ -1,35 +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>Part I. Tutorial</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.73.2"> -<link rel="start" href="index.html" title="Cairo: A Vector Graphics Library"> -<link rel="up" href="index.html" title="Cairo: A Vector Graphics Library"> -<link rel="prev" href="index.html" title="Cairo: A Vector Graphics Library"> -<link rel="next" href="pt02.html" title="Part II. Reference"> -<meta name="generator" content="GTK-Doc V1.9 (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="index" href="index-1.2.html" title="Index of new symbols in 1.2"> -<link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> -<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="index.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td> </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="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="id2566365"></a>Part I. Tutorial</h1></div></div></div></div> -</body> -</html> diff --git a/doc/public/html/pt02.html b/doc/public/html/pt02.html deleted file mode 100644 index 6494e0a..0000000 --- a/doc/public/html/pt02.html +++ /dev/null @@ -1,120 +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>Part II. Reference</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.73.2"> -<link rel="start" href="index.html" title="Cairo: A Vector Graphics Library"> -<link rel="up" href="index.html" title="Cairo: A Vector Graphics Library"> -<link rel="prev" href="pt01.html" title="Part I. Tutorial"> -<link rel="next" href="Drawing.html" title="Drawing"> -<meta name="generator" content="GTK-Doc V1.9 (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="index" href="index-1.2.html" title="Index of new symbols in 1.2"> -<link rel="index" href="index-1.4.html" title="Index of new symbols in 1.4"> -<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="pt01.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td> </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="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="id2566321"></a>Part II. Reference</h1></div></div></div> -<div class="toc"> -<p><b>Table of Contents</b></p> -<dl> -<dt><span class="chapter"><a href="Drawing.html">Drawing</a></span></dt> -<dd><dl> -<dt> -<span class="refentrytitle"><a href="cairo-cairo-t.html">cairo_t</a></span><span class="refpurpose"> — The cairo drawing context</span> -</dt> -<dt> -<span class="refentrytitle"><a href="cairo-Paths.html">Paths</a></span><span class="refpurpose"> — Creating paths and manipulating path data</span> -</dt> -<dt> -<span class="refentrytitle"><a href="cairo-Patterns.html">Patterns</a></span><span class="refpurpose"> — Gradients and filtered sources</span> -</dt> -<dt> -<span class="refentrytitle"><a href="cairo-Transformations.html">Transformations</a></span><span class="refpurpose"> — Manipulating the current transformation matrix</span> -</dt> -<dt> -<span class="refentrytitle"><a href="cairo-Text.html">Text</a></span><span class="refpurpose"> — Rendering text and sets of glyphs</span> -</dt> -</dl></dd> -<dt><span class="chapter"><a href="Fonts.html">Fonts</a></span></dt> -<dd><dl> -<dt> -<span class="refentrytitle"><a href="cairo-cairo-font-face-t.html">cairo_font_face_t</a></span><span class="refpurpose"> — Base class for fonts</span> -</dt> -<dt> -<span class="refentrytitle"><a href="cairo-Scaled-Fonts.html">Scaled Fonts</a></span><span class="refpurpose"> — Caching metrics for a particular font size</span> -</dt> -<dt> -<span class="refentrytitle"><a href="cairo-Font-Options.html">Font Options</a></span><span class="refpurpose"> — How a font should be rendered</span> -</dt> -<dt> -<span class="refentrytitle"><a href="cairo-FreeType-Fonts.html">FreeType Fonts</a></span><span class="refpurpose"> — Font support for FreeType</span> -</dt> -<dt> -<span class="refentrytitle"><a href="cairo-Win32-Fonts.html">Win32 Fonts</a></span><span class="refpurpose"> — Font support for Microsoft Windows</span> -</dt> -</dl></dd> -<dt><span class="chapter"><a href="Surfaces.html">Surfaces</a></span></dt> -<dd><dl> -<dt> -<span class="refentrytitle"><a href="cairo-cairo-surface-t.html">cairo_surface_t</a></span><span class="refpurpose"> — Base class for surfaces</span> -</dt> -<dt> -<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-PDF-Surfaces.html">PDF Surfaces</a></span><span class="refpurpose"> — Rendering PDF documents</span> -</dt> -<dt> -<span class="refentrytitle"><a href="cairo-PNG-Support.html">PNG Support</a></span><span class="refpurpose"> — Reading and writing PNG images</span> -</dt> -<dt> -<span class="refentrytitle"><a href="cairo-PostScript-Surfaces.html">PostScript Surfaces</a></span><span class="refpurpose"> — Rendering PostScript documents</span> -</dt> -<dt> -<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-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></dd> -<dt><span class="chapter"><a href="Support.html">Utilities</a></span></dt> -<dd><dl> -<dt> -<span class="refentrytitle"><a href="cairo-cairo-matrix-t.html">cairo_matrix_t</a></span><span class="refpurpose"> — Generic matrix operations</span> -</dt> -<dt> -<span class="refentrytitle"><a href="cairo-Error-Handling.html">Error handling</a></span><span class="refpurpose"> — Decoding cairo's status</span> -</dt> -<dt> -<span class="refentrytitle"><a href="cairo-Version-Information.html">Version Information</a></span><span class="refpurpose"> — Compile-time and run-time version checks.</span> -</dt> -<dt> -<span class="refentrytitle"><a href="cairo-Types.html">Types</a></span><span class="refpurpose"> — Generic data types used in the cairo API</span> -</dt> -</dl></dd> -</dl> -</div> -</div> -</body> -</html> diff --git a/doc/public/tmpl/cairo-atsui.sgml b/doc/public/tmpl/cairo-atsui.sgml index fb91793..434bec6 100644 --- a/doc/public/tmpl/cairo-atsui.sgml +++ b/doc/public/tmpl/cairo-atsui.sgml @@ -6,12 +6,14 @@ Font support for ATSUI on OS X <!-- ##### SECTION Long_Description ##### --> <para> - +The ATSUI font backend is primarily used to render text on Apple OS X systems. </para> <!-- ##### SECTION See_Also ##### --> <para> - +<itemizedlist> +<listitem>#cairo_font_face_t</listitem> +</itemizedlist> </para> <!-- ##### SECTION Stability_Level ##### --> diff --git a/doc/public/tmpl/cairo-beos.sgml b/doc/public/tmpl/cairo-beos.sgml index 707d7e1..d4fbc09 100644 --- a/doc/public/tmpl/cairo-beos.sgml +++ b/doc/public/tmpl/cairo-beos.sgml @@ -6,12 +6,15 @@ BeOS surface support <!-- ##### SECTION Long_Description ##### --> <para> - +The BeOS surface is used to render cairo graphics to +BeOS views and bitmaps. </para> <!-- ##### SECTION See_Also ##### --> <para> - +<itemizedlist> +<listitem>#cairo_surface_t</listitem> +</itemizedlist> </para> <!-- ##### SECTION Stability_Level ##### --> diff --git a/doc/public/tmpl/cairo-font.sgml b/doc/public/tmpl/cairo-font-face.sgml index add99ec..8a4e809 100644 --- a/doc/public/tmpl/cairo-font.sgml +++ b/doc/public/tmpl/cairo-font-face.sgml @@ -2,16 +2,27 @@ cairo_font_face_t <!-- ##### SECTION Short_Description ##### --> -Base class for fonts +Base class for font faces <!-- ##### SECTION Long_Description ##### --> <para> - +#cairo_font_face_t represents a particular font at a particular weight, +slant, and other characteristic but no size, transformation, or size. +</para> +<para> +Font faces are created using <firstterm>font-backend</firstterm>-specific +constructors, typically of the form +cairo_<emphasis>backend</emphasis>_font_face_create(), +or implicitly using the <firstterm>toy</firstterm> text API by way of +cairo_select_font_face(). The resulting face can be accessed using +cairo_get_font_face(). </para> <!-- ##### SECTION See_Also ##### --> <para> - +<itemizedlist> +<listitem>#cairo_scaled_font_t</listitem> +</itemizedlist> </para> <!-- ##### SECTION Stability_Level ##### --> diff --git a/doc/public/tmpl/cairo-font-options.sgml b/doc/public/tmpl/cairo-font-options.sgml index 8e15f2a..501abf4 100644 --- a/doc/public/tmpl/cairo-font-options.sgml +++ b/doc/public/tmpl/cairo-font-options.sgml @@ -1,17 +1,22 @@ <!-- ##### SECTION Title ##### --> -Font Options +cairo_font_options_t <!-- ##### SECTION Short_Description ##### --> How a font should be rendered <!-- ##### SECTION Long_Description ##### --> <para> - +The font options specify how fonts should be rendered. Most of the time the +font options implied by a surface are just right and do not need any changes, +but for pixel-based targets tweaking font options may result in superior +output on a particular display. </para> <!-- ##### SECTION See_Also ##### --> <para> - +<itemizedlist> +<listitem>#cairo_scaled_font_t</listitem> +</itemizedlist> </para> <!-- ##### SECTION Stability_Level ##### --> diff --git a/doc/public/tmpl/cairo-ft.sgml b/doc/public/tmpl/cairo-ft.sgml index db92840..68a3fd4 100644 --- a/doc/public/tmpl/cairo-ft.sgml +++ b/doc/public/tmpl/cairo-ft.sgml @@ -6,17 +6,28 @@ Font support for FreeType <!-- ##### SECTION Long_Description ##### --> <para> - +The FreeType font backend is primarily used to render text on GNU/Linux +systems, but can be used on other platforms too. </para> <!-- ##### SECTION See_Also ##### --> <para> - +<itemizedlist> +<listitem>#cairo_font_face_t</listitem> +</itemizedlist> </para> <!-- ##### SECTION Stability_Level ##### --> +<!-- ##### MACRO CAIRO_HAS_FT_FONT ##### --> +<para> +Defined if the FreeType font backend is available. +This macro can be used to conditionally compile backend-specific code. +</para> + + + <!-- ##### FUNCTION cairo_ft_font_face_create_for_ft_face ##### --> <para> diff --git a/doc/public/tmpl/cairo-glitz.sgml b/doc/public/tmpl/cairo-glitz.sgml index 437c71e..f7270c2 100644 --- a/doc/public/tmpl/cairo-glitz.sgml +++ b/doc/public/tmpl/cairo-glitz.sgml @@ -6,12 +6,15 @@ OpenGL accelerated rendering using the Glitz library <!-- ##### SECTION Long_Description ##### --> <para> - +The Glitz surface is used to render cairo graphics targeting the +OpenGL hardware using the Glitz library. </para> <!-- ##### SECTION See_Also ##### --> <para> - +<itemizedlist> +<listitem>#cairo_surface_t</listitem> +</itemizedlist> </para> <!-- ##### SECTION Stability_Level ##### --> diff --git a/doc/public/tmpl/cairo-image.sgml b/doc/public/tmpl/cairo-image.sgml index b72732f..c15cc66 100644 --- a/doc/public/tmpl/cairo-image.sgml +++ b/doc/public/tmpl/cairo-image.sgml @@ -5,16 +5,17 @@ Image Surfaces Rendering to memory buffers <!-- ##### SECTION Long_Description ##### --> - - <para> - Image surfaces provide the ability to render to memory buffers - either allocated by cairo or by the calling code. The supported - image formats are those defined in #cairo_format_t. - </para> +<para> +Image surfaces provide the ability to render to memory buffers +either allocated by cairo or by the calling code. The supported +image formats are those defined in #cairo_format_t. +</para> <!-- ##### SECTION See_Also ##### --> <para> - +<itemizedlist> +<listitem>#cairo_surface_t</listitem> +</itemizedlist> </para> <!-- ##### SECTION Stability_Level ##### --> @@ -30,6 +31,16 @@ Rendering to memory buffers @CAIRO_FORMAT_A8: @CAIRO_FORMAT_A1: +<!-- ##### FUNCTION cairo_format_stride_for_width ##### --> +<para> + +</para> + +@format: +@width: +@Returns: + + <!-- ##### FUNCTION cairo_image_surface_create ##### --> <para> diff --git a/doc/public/tmpl/cairo-matrix.sgml b/doc/public/tmpl/cairo-matrix.sgml index 26f7fe3..720cdac 100644 --- a/doc/public/tmpl/cairo-matrix.sgml +++ b/doc/public/tmpl/cairo-matrix.sgml @@ -5,8 +5,7 @@ cairo_matrix_t Generic matrix operations <!-- ##### SECTION Long_Description ##### --> - - <para><indexterm><primary>types</primary><secondary>cairo_matrix</secondary></indexterm><indexterm><primary/></indexterm> + <para> #cairo_matrix_t is used throughout cairo to convert between different coordinate spaces. A #cairo_matrix_t holds an affine transformation, such as a scale, rotation, shear, or a combination of these. @@ -26,7 +25,9 @@ Generic matrix operations <!-- ##### SECTION See_Also ##### --> <para> - +<itemizedlist> +<listitem>#cairo_t</listitem> +</itemizedlist> </para> <!-- ##### SECTION Stability_Level ##### --> diff --git a/doc/public/tmpl/cairo-paths.sgml b/doc/public/tmpl/cairo-paths.sgml index 3be71a4..d302cbc 100644 --- a/doc/public/tmpl/cairo-paths.sgml +++ b/doc/public/tmpl/cairo-paths.sgml @@ -6,7 +6,8 @@ Creating paths and manipulating path data <!-- ##### SECTION Long_Description ##### --> <para> - +Paths are the most basic drawing tools and are primarily used to implicitly +generate simple masks. </para> <!-- ##### SECTION See_Also ##### --> @@ -85,6 +86,7 @@ Creating paths and manipulating path data @cr: @x: @y: +@Returns: <!-- ##### FUNCTION cairo_new_path ##### --> @@ -236,3 +238,15 @@ Creating paths and manipulating path data @dy: +<!-- ##### FUNCTION cairo_path_extents ##### --> +<para> + +</para> + +@cr: +@x1: +@y1: +@x2: +@y2: + + diff --git a/doc/public/tmpl/cairo-pattern.sgml b/doc/public/tmpl/cairo-pattern.sgml index 8925b11..adcff66 100644 --- a/doc/public/tmpl/cairo-pattern.sgml +++ b/doc/public/tmpl/cairo-pattern.sgml @@ -1,17 +1,28 @@ <!-- ##### SECTION Title ##### --> -Patterns +cairo_pattern_t <!-- ##### SECTION Short_Description ##### --> -Gradients and filtered sources +Sources for drawing <!-- ##### SECTION Long_Description ##### --> <para> - +#cairo_pattern_t is the paint with which cairo draws. +The primary use of patterns is as the source for all cairo drawing operations, +although they can also be used as masks, that is, as the brush too. +</para> +<para> +A cairo pattern is created by using one of the many constructors, +of the form cairo_pattern_create_<emphasis>type</emphasis>() +or implicitly through +cairo_set_source_<emphasis>type</emphasis>() functions. </para> <!-- ##### SECTION See_Also ##### --> <para> - +<itemizedlist> +<listitem>#cairo_t</listitem> +<listitem>#cairo_surface_t</listitem> +</itemizedlist> </para> <!-- ##### SECTION Stability_Level ##### --> diff --git a/doc/public/tmpl/cairo-pdf.sgml b/doc/public/tmpl/cairo-pdf.sgml index 49f3fc1..fabb8d7 100644 --- a/doc/public/tmpl/cairo-pdf.sgml +++ b/doc/public/tmpl/cairo-pdf.sgml @@ -6,17 +6,28 @@ Rendering PDF documents <!-- ##### SECTION Long_Description ##### --> <para> - +The PDF surface is used to render cairo graphics to Adobe +PDF files and is a multi-page vector surface backend. </para> <!-- ##### SECTION See_Also ##### --> <para> - +<itemizedlist> +<listitem>#cairo_surface_t</listitem> +</itemizedlist> </para> <!-- ##### SECTION Stability_Level ##### --> +<!-- ##### MACRO CAIRO_HAS_PDF_SURFACE ##### --> +<para> +Defined if the PDF surface backend is available. +This macro can be used to conditionally compile backend-specific code. +</para> + + + <!-- ##### FUNCTION cairo_pdf_surface_create ##### --> <para> diff --git a/doc/public/tmpl/cairo-png.sgml b/doc/public/tmpl/cairo-png.sgml index d2e93f7..ef52dce 100644 --- a/doc/public/tmpl/cairo-png.sgml +++ b/doc/public/tmpl/cairo-png.sgml @@ -6,17 +6,29 @@ Reading and writing PNG images <!-- ##### SECTION Long_Description ##### --> <para> - +The PNG functions allow reading PNG images into image surfaces, and writing +any surface to a PNG file. </para> <!-- ##### SECTION See_Also ##### --> <para> - +<itemizedlist> +<listitem>#cairo_surface_t</listitem> +</itemizedlist> </para> <!-- ##### SECTION Stability_Level ##### --> +<!-- ##### MACRO CAIRO_HAS_PNG_FUNCTIONS ##### --> +<para> +Defined if the PNG functions are available. +This macro can be used to conditionally compile code using the cairo +PNG functions. +</para> + + + <!-- ##### FUNCTION cairo_image_surface_create_from_png ##### --> <para> diff --git a/doc/public/tmpl/cairo-ps.sgml b/doc/public/tmpl/cairo-ps.sgml index 3cf66be..b6bc3ff 100644 --- a/doc/public/tmpl/cairo-ps.sgml +++ b/doc/public/tmpl/cairo-ps.sgml @@ -6,17 +6,28 @@ Rendering PostScript documents <!-- ##### SECTION Long_Description ##### --> <para> - +The PostScript surface is used to render cairo graphics to Adobe +PostScript files and is a multi-page vector surface backend. </para> <!-- ##### SECTION See_Also ##### --> <para> - +<itemizedlist> +<listitem>#cairo_surface_t</listitem> +</itemizedlist> </para> <!-- ##### SECTION Stability_Level ##### --> +<!-- ##### MACRO CAIRO_HAS_PS_SURFACE ##### --> +<para> +Defined if the PostScript surface backend is available. +This macro can be used to conditionally compile backend-specific code. +</para> + + + <!-- ##### FUNCTION cairo_ps_surface_create ##### --> <para> diff --git a/doc/public/tmpl/cairo-quartz.sgml b/doc/public/tmpl/cairo-quartz.sgml index 02a69d9..1c5e71f 100644 --- a/doc/public/tmpl/cairo-quartz.sgml +++ b/doc/public/tmpl/cairo-quartz.sgml @@ -6,12 +6,15 @@ Rendering to Quartz surfaces <!-- ##### SECTION Long_Description ##### --> <para> - +The Quartz surface is used to render cairo graphics targeting the +Apple OS X Quartz rendering system. </para> <!-- ##### SECTION See_Also ##### --> <para> - +<itemizedlist> +<listitem>#cairo_surface_t</listitem> +</itemizedlist> </para> <!-- ##### SECTION Stability_Level ##### --> diff --git a/doc/public/tmpl/cairo-scaled-font.sgml b/doc/public/tmpl/cairo-scaled-font.sgml index 4175d19..4c8ee6c 100644 --- a/doc/public/tmpl/cairo-scaled-font.sgml +++ b/doc/public/tmpl/cairo-scaled-font.sgml @@ -1,17 +1,22 @@ <!-- ##### SECTION Title ##### --> -Scaled Fonts +cairo_scaled_font_t <!-- ##### SECTION Short_Description ##### --> -Caching metrics for a particular font size +Font face at particular size and options <!-- ##### SECTION Long_Description ##### --> <para> - +#cairo_scaled_font_t represents a realization of a font face at a particular +size and transformation and a certain set of font options. </para> <!-- ##### SECTION See_Also ##### --> <para> - +<itemizedlist> +<listitem>#cairo_font_face_t</listitem> +<listitem>#cairo_matrix_t</listitem> +<listitem>#cairo_font_options_t</listitem> +</itemizedlist> </para> <!-- ##### SECTION Stability_Level ##### --> diff --git a/doc/public/tmpl/cairo-status.sgml b/doc/public/tmpl/cairo-status.sgml index ada6333..9b2bbe1 100644 --- a/doc/public/tmpl/cairo-status.sgml +++ b/doc/public/tmpl/cairo-status.sgml @@ -6,24 +6,63 @@ Decoding cairo's status <!-- ##### SECTION Long_Description ##### --> <para> - +Cairo uses a single status type to represent all kinds of errors. A status +value of %CAIRO_STATUS_SUCCESS represents no error and has an integer value +of zero. All other status values represent an error. +</para> +<para> +Cairo's error handling is designed to be easy to use and safe. All major +cairo objects <firstterm>retain</firstterm> an error status internally which +can be queried anytime by the users using cairo*_status() calls. In +the mean time, it is safe to call all cairo functions normally even if the +underlying object is in an error status. This means that no error handling +code is required before or after each individual cairo function call. </para> <!-- ##### SECTION See_Also ##### --> <para> - +<itemizedlist> +<listitem>cairo_status()</listitem> +<listitem>cairo_surface_status()</listitem> +<listitem>cairo_pattern_status()</listitem> +<listitem>cairo_font_face_status()</listitem> +<listitem>cairo_scaled_font_status()</listitem> +</itemizedlist> </para> <!-- ##### SECTION Stability_Level ##### --> -<!-- ##### FUNCTION cairo_status_t ##### --> +<!-- ##### ENUM cairo_status_t ##### --> <para> </para> -@Returns: - +@CAIRO_STATUS_SUCCESS: +@CAIRO_STATUS_NO_MEMORY: +@CAIRO_STATUS_INVALID_RESTORE: +@CAIRO_STATUS_INVALID_POP_GROUP: +@CAIRO_STATUS_NO_CURRENT_POINT: +@CAIRO_STATUS_INVALID_MATRIX: +@CAIRO_STATUS_INVALID_STATUS: +@CAIRO_STATUS_NULL_POINTER: +@CAIRO_STATUS_INVALID_STRING: +@CAIRO_STATUS_INVALID_PATH_DATA: +@CAIRO_STATUS_READ_ERROR: +@CAIRO_STATUS_WRITE_ERROR: +@CAIRO_STATUS_SURFACE_FINISHED: +@CAIRO_STATUS_SURFACE_TYPE_MISMATCH: +@CAIRO_STATUS_PATTERN_TYPE_MISMATCH: +@CAIRO_STATUS_INVALID_CONTENT: +@CAIRO_STATUS_INVALID_FORMAT: +@CAIRO_STATUS_INVALID_VISUAL: +@CAIRO_STATUS_FILE_NOT_FOUND: +@CAIRO_STATUS_INVALID_DASH: +@CAIRO_STATUS_INVALID_DSC_COMMENT: +@CAIRO_STATUS_INVALID_INDEX: +@CAIRO_STATUS_CLIP_NOT_REPRESENTABLE: +@CAIRO_STATUS_TEMP_FILE_ERROR: +@CAIRO_STATUS_INVALID_STRIDE: <!-- ##### FUNCTION cairo_status_to_string ##### --> <para> diff --git a/doc/public/tmpl/cairo-surface.sgml b/doc/public/tmpl/cairo-surface.sgml index b230791..20d8569 100644 --- a/doc/public/tmpl/cairo-surface.sgml +++ b/doc/public/tmpl/cairo-surface.sgml @@ -6,12 +6,22 @@ Base class for surfaces <!-- ##### SECTION Long_Description ##### --> <para> - +#cairo_surface_t is the abstract type representing all different drawing +targets that cairo can render to. The actual drawings are +performed using a cairo <firstterm>context</firstterm>. +</para> +<para> +A cairo surface is created by using <firstterm>backend</firstterm>-specific +constructors, typically of the form +cairo_<emphasis>backend</emphasis>_surface_create(). </para> <!-- ##### SECTION See_Also ##### --> <para> - +<itemizedlist> +<listitem>#cairo_t()</listitem> +<listitem>#cairo_pattern_t()</listitem> +</itemizedlist> </para> <!-- ##### SECTION Stability_Level ##### --> @@ -219,7 +229,6 @@ Base class for surfaces </para> @surface: -@Returns: <!-- ##### FUNCTION cairo_surface_show_page ##### --> @@ -228,6 +237,5 @@ Base class for surfaces </para> @surface: -@Returns: diff --git a/doc/public/tmpl/cairo-svg.sgml b/doc/public/tmpl/cairo-svg.sgml index 4e496e1..09b413d 100644 --- a/doc/public/tmpl/cairo-svg.sgml +++ b/doc/public/tmpl/cairo-svg.sgml @@ -6,17 +6,28 @@ Rendering SVG documents <!-- ##### SECTION Long_Description ##### --> <para> - +The SVG surface is used to render cairo graphics to +SVG files and is a multi-page vector surface backend. </para> <!-- ##### SECTION See_Also ##### --> <para> - +<itemizedlist> +<listitem>#cairo_surface_t()</listitem> +</itemizedlist> </para> <!-- ##### SECTION Stability_Level ##### --> +<!-- ##### MACRO CAIRO_HAS_SVG_SURFACE ##### --> +<para> +Defined if the SVG surface backend is available. +This macro can be used to conditionally compile backend-specific code. +</para> + + + <!-- ##### FUNCTION cairo_svg_surface_create ##### --> <para> diff --git a/doc/public/tmpl/cairo-text.sgml b/doc/public/tmpl/cairo-text.sgml index 00366f2..8de82ad 100644 --- a/doc/public/tmpl/cairo-text.sgml +++ b/doc/public/tmpl/cairo-text.sgml @@ -2,16 +2,44 @@ Text <!-- ##### SECTION Short_Description ##### --> -Rendering text and sets of glyphs +Rendering text and glyphs <!-- ##### SECTION Long_Description ##### --> <para> - +Cairo has two sets of text rendering capabilities: +<itemizedlist> + <listitem> + The functions with <emphasis>text</emphasis> in their name form cairo's + <firstterm>toy</firstterm> text API. The toy API takes UTF-8 encoded + text and is limited in its functionality to rendering simple + left-to-right text with no advanced features. That means for example + that most complex scripts like Hebrew, Arabic, and Indic scripts are + out of question. No kerning or correct positioning of diacritical marks + either. The font selection is pretty limited too and doesn't handle the + case that the selected font does not cover the characters in the text. + This set of functions are really that, a toy text API, for testing and + demonstration purposes. Any serious application should avoid them. + </listitem> + <listitem> + The functions with <emphasis>glyphs</emphasis> in their name form cairo's + <firstterm>low-level</firstterm> text API. The low-level API relies on + the user to convert text to a set of glyph indexes and positions. This + is a very hard problem and is best handled by external libraries, like + the pangocairo that is part of the Pango text layout and rendering library. + Pango is available from <ulink + url="http://www.pango.org/">http://www.pango.org/</ulink>. + </listitem> +</itemizedlist> </para> <!-- ##### SECTION See_Also ##### --> <para> - +<itemizedlist> +<listitem>#cairo_font_face_t</listitem> +<listitem>#cairo_scaled_font_t</listitem> +<listitem>cairo_text_path()</listitem> +<listitem>cairo_glyph_path()</listitem> +</itemizedlist> </para> <!-- ##### SECTION Stability_Level ##### --> diff --git a/doc/public/tmpl/cairo-transforms.sgml b/doc/public/tmpl/cairo-transforms.sgml index b14adcc..60c8ad9 100644 --- a/doc/public/tmpl/cairo-transforms.sgml +++ b/doc/public/tmpl/cairo-transforms.sgml @@ -6,12 +6,18 @@ Manipulating the current transformation matrix <!-- ##### SECTION Long_Description ##### --> <para> - +The current transformation matrix, <firstterm>ctm</firstterm>, is a +two-dimensional affine transformation that maps all coordinates and other +drawing instruments from the <firstterm>user space</firstterm> into the +surface's canonical coordinate system, also known as the <firstterm>device +space</firstterm>. </para> <!-- ##### SECTION See_Also ##### --> <para> - +<itemizedlist> +<listitem>#cairo_matrix_t</listitem> +</itemizedlist> </para> <!-- ##### SECTION Stability_Level ##### --> diff --git a/doc/public/tmpl/cairo-types.sgml b/doc/public/tmpl/cairo-types.sgml index c0c14fa..e79bc7a 100644 --- a/doc/public/tmpl/cairo-types.sgml +++ b/doc/public/tmpl/cairo-types.sgml @@ -2,11 +2,11 @@ Types <!-- ##### SECTION Short_Description ##### --> -Generic data types used in the cairo API +Generic data types <!-- ##### SECTION Long_Description ##### --> <para> - +Generic data types used in the cairo API </para> <!-- ##### SECTION See_Also ##### --> diff --git a/doc/public/tmpl/cairo-unused.sgml b/doc/public/tmpl/cairo-unused.sgml index 280c3d3..9314cbb 100644 --- a/doc/public/tmpl/cairo-unused.sgml +++ b/doc/public/tmpl/cairo-unused.sgml @@ -1,12 +1,14 @@ <!-- ##### SECTION ./tmpl/cairo-atsui.sgml:Long_Description ##### --> <para> - +The ATSUI font backend is primarily used to render text on Apple OS X systems. </para> <!-- ##### SECTION ./tmpl/cairo-atsui.sgml:See_Also ##### --> <para> - +<itemizedlist> +<listitem>#cairo_font_face_t</listitem> +</itemizedlist> </para> @@ -24,13 +26,16 @@ ATSUI Fonts <!-- ##### SECTION ./tmpl/cairo-beos.sgml:Long_Description ##### --> <para> - +The BeOS surface is used to render cairo graphics to +BeOS views and bitmaps. </para> <!-- ##### SECTION ./tmpl/cairo-beos.sgml:See_Also ##### --> <para> - +<itemizedlist> +<listitem>#cairo_surface_t</listitem> +</itemizedlist> </para> @@ -48,13 +53,16 @@ BeOS Surfaces <!-- ##### SECTION ./tmpl/cairo-glitz.sgml:Long_Description ##### --> <para> - +The Glitz surface is used to render cairo graphics targeting the +OpenGL hardware using the Glitz library. </para> <!-- ##### SECTION ./tmpl/cairo-glitz.sgml:See_Also ##### --> <para> - +<itemizedlist> +<listitem>#cairo_surface_t</listitem> +</itemizedlist> </para> @@ -72,13 +80,16 @@ Glitz Surfaces <!-- ##### SECTION ./tmpl/cairo-quartz.sgml:Long_Description ##### --> <para> - +The Quartz surface is used to render cairo graphics targeting the +Apple OS X Quartz rendering system. </para> <!-- ##### SECTION ./tmpl/cairo-quartz.sgml:See_Also ##### --> <para> - +<itemizedlist> +<listitem>#cairo_surface_t</listitem> +</itemizedlist> </para> @@ -96,18 +107,25 @@ Quartz Surfaces <!-- ##### SECTION ./tmpl/cairo-xcb-xrender.sgml:Long_Description ##### --> <para> - +The XCB surface is used to render cairo graphics to X Window System +windows and pixmaps using the XCB library and its X Render extension. +</para> +<para> +Note that the XCB surface automatically takes advantage of the X Render +extension if it is available. </para> <!-- ##### SECTION ./tmpl/cairo-xcb-xrender.sgml:See_Also ##### --> <para> - +<itemizedlist> +<listitem>#cairo_surface_t</listitem> +</itemizedlist> </para> <!-- ##### SECTION ./tmpl/cairo-xcb-xrender.sgml:Short_Description ##### --> -X Window System rendering using the XCB library +X Window System rendering using the XCB library and the X Render extension <!-- ##### SECTION ./tmpl/cairo-xcb-xrender.sgml:Stability_Level ##### --> @@ -120,13 +138,20 @@ XCB Surfaces <!-- ##### SECTION ./tmpl/cairo-xcb.sgml:Long_Description ##### --> <para> - +The XCB surface is used to render cairo graphics to X Window System +windows and pixmaps using the XCB library. +</para> +<para> +Note that the XCB surface automatically takes advantage of the X render +extension if it is available. </para> <!-- ##### SECTION ./tmpl/cairo-xcb.sgml:See_Also ##### --> <para> - +<itemizedlist> +<listitem>#cairo_surface_t</listitem> +</itemizedlist> </para> diff --git a/doc/public/tmpl/cairo-version.sgml b/doc/public/tmpl/cairo-version.sgml index 012b5fa..62de21d 100644 --- a/doc/public/tmpl/cairo-version.sgml +++ b/doc/public/tmpl/cairo-version.sgml @@ -77,7 +77,7 @@ rather the many states between snapshots and releases. 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 an encoded form suitable for direct comparison. Cairo also provides a -macro (CAIRO_VERSION_ENCODE) to perform the encoding. +macro (CAIRO_VERSION_ENCODE()) to perform the encoding. </para> <para> @@ -100,7 +100,7 @@ to 1.0.0 could be achieved at compile-time or run-time as follows: <informalexample><programlisting> ##if %CAIRO_VERSION >= %CAIRO_VERSION_ENCODE(1, 0, 0) -printf ("Compiling with suitable cairo version: %%s\n", CAIRO_VERSION_STRING); +printf ("Compiling with suitable cairo version: %%s\n", %CAIRO_VERSION_STRING); ##endif if (cairo_version() >= %CAIRO_VERSION_ENCODE(1, 0, 0)) diff --git a/doc/public/tmpl/cairo-win32-fonts.sgml b/doc/public/tmpl/cairo-win32-fonts.sgml index 5581e01..fd7ef3d 100644 --- a/doc/public/tmpl/cairo-win32-fonts.sgml +++ b/doc/public/tmpl/cairo-win32-fonts.sgml @@ -6,17 +6,28 @@ Font support for Microsoft Windows <!-- ##### SECTION Long_Description ##### --> <para> - +The Microsoft Windows font backend is primarily used to render text on +Microsoft Windows systems. </para> <!-- ##### SECTION See_Also ##### --> <para> - +<itemizedlist> +<listitem>#cairo_font_face_t</listitem> +</itemizedlist> </para> <!-- ##### SECTION Stability_Level ##### --> +<!-- ##### MACRO CAIRO_HAS_WIN32_FONT ##### --> +<para> +Defined if the Microsoft Windows font backend is available. +This macro can be used to conditionally compile backend-specific code. +</para> + + + <!-- ##### FUNCTION cairo_win32_font_face_create_for_logfontw ##### --> <para> diff --git a/doc/public/tmpl/cairo-win32.sgml b/doc/public/tmpl/cairo-win32.sgml index fb03d83..e7901f8 100644 --- a/doc/public/tmpl/cairo-win32.sgml +++ b/doc/public/tmpl/cairo-win32.sgml @@ -6,17 +6,37 @@ Microsoft Windows surface support <!-- ##### SECTION Long_Description ##### --> <para> - +The Microsoft Windows surface is used to render cairo graphics to +Microsoft Windows windows, bitmaps, and printing device contexts. +</para> +<para> +The surface returned by cairo_win32_printing_surface_create() is of surface +type %CAIRO_SURFACE_TYPE_WIN32_PRINTING and is a multi-page vector surface +type. +</para> +<para> +The surface returned by the other win32 constructors is of surface type +%CAIRO_SURFACE_TYPE_WIN32 and is a raster surface type. </para> <!-- ##### SECTION See_Also ##### --> <para> - +<itemizedlist> +<listitem>#cairo_surface_t</listitem> +</itemizedlist> </para> <!-- ##### SECTION Stability_Level ##### --> +<!-- ##### MACRO CAIRO_HAS_WIN32_SURFACE ##### --> +<para> +Defined if the Microsoft Windows surface backend is available. +This macro can be used to conditionally compile backend-specific code. +</para> + + + <!-- ##### FUNCTION cairo_win32_surface_create ##### --> <para> diff --git a/doc/public/tmpl/cairo-xcb-xrender.sgml b/doc/public/tmpl/cairo-xcb-xrender.sgml index fc24323..993caff 100644 --- a/doc/public/tmpl/cairo-xcb-xrender.sgml +++ b/doc/public/tmpl/cairo-xcb-xrender.sgml @@ -2,16 +2,23 @@ XCB Surfaces <!-- ##### SECTION Short_Description ##### --> -X Window System rendering using the XCB library +X Window System rendering using the XCB library and the X Render extension <!-- ##### SECTION Long_Description ##### --> <para> - +The XCB surface is used to render cairo graphics to X Window System +windows and pixmaps using the XCB library and its X Render extension. +</para> +<para> +Note that the XCB surface automatically takes advantage of the X Render +extension if it is available. </para> <!-- ##### SECTION See_Also ##### --> <para> - +<itemizedlist> +<listitem>#cairo_surface_t</listitem> +</itemizedlist> </para> <!-- ##### SECTION Stability_Level ##### --> diff --git a/doc/public/tmpl/cairo-xcb.sgml b/doc/public/tmpl/cairo-xcb.sgml index fc24323..845b9a1 100644 --- a/doc/public/tmpl/cairo-xcb.sgml +++ b/doc/public/tmpl/cairo-xcb.sgml @@ -6,12 +6,19 @@ X Window System rendering using the XCB library <!-- ##### SECTION Long_Description ##### --> <para> - +The XCB surface is used to render cairo graphics to X Window System +windows and pixmaps using the XCB library. +</para> +<para> +Note that the XCB surface automatically takes advantage of the X render +extension if it is available. </para> <!-- ##### SECTION See_Also ##### --> <para> - +<itemizedlist> +<listitem>#cairo_surface_t</listitem> +</itemizedlist> </para> <!-- ##### SECTION Stability_Level ##### --> diff --git a/doc/public/tmpl/cairo-xlib-xrender.sgml b/doc/public/tmpl/cairo-xlib-xrender.sgml index 398900e..a92805d 100644 --- a/doc/public/tmpl/cairo-xlib-xrender.sgml +++ b/doc/public/tmpl/cairo-xlib-xrender.sgml @@ -1,22 +1,37 @@ <!-- ##### SECTION Title ##### --> -XLib/Xrender Backend +XLib/XRender Backend <!-- ##### SECTION Short_Description ##### --> - +X Window System rendering using XLib and the X Render extension <!-- ##### SECTION Long_Description ##### --> <para> - +The XLib surface is used to render cairo graphics to X Window System +windows and pixmaps using the XLib and Xrender libraries. +</para> +<para> +Note that the XLib surface automatically takes advantage of X Render extension +if it is available. </para> <!-- ##### SECTION See_Also ##### --> <para> - +<itemizedlist> +<listitem>#cairo_surface_t</listitem> +</itemizedlist> </para> <!-- ##### SECTION Stability_Level ##### --> +<!-- ##### MACRO CAIRO_HAS_XLIB_XRENDER_SURFACE ##### --> +<para> +Defined if the XLib/XRender surface functions are available. +This macro can be used to conditionally compile backend-specific code. +</para> + + + <!-- ##### FUNCTION cairo_xlib_surface_create_with_xrender_format ##### --> <para> @@ -31,3 +46,12 @@ XLib/Xrender Backend @Returns: +<!-- ##### FUNCTION cairo_xlib_surface_get_xrender_format ##### --> +<para> + +</para> + +@surface: +@Returns: + + diff --git a/doc/public/tmpl/cairo-xlib.sgml b/doc/public/tmpl/cairo-xlib.sgml index 4abbd56..df6977c 100644 --- a/doc/public/tmpl/cairo-xlib.sgml +++ b/doc/public/tmpl/cairo-xlib.sgml @@ -6,17 +6,32 @@ X Window System rendering using XLib <!-- ##### SECTION Long_Description ##### --> <para> - +The XLib surface is used to render cairo graphics to X Window System +windows and pixmaps using the XLib library. +</para> +<para> +Note that the XLib surface automatically takes advantage of X render extension +if it is available. </para> <!-- ##### SECTION See_Also ##### --> <para> - +<itemizedlist> +<listitem>#cairo_surface_t</listitem> +</itemizedlist> </para> <!-- ##### SECTION Stability_Level ##### --> +<!-- ##### MACRO CAIRO_HAS_XLIB_SURFACE ##### --> +<para> +Defined if the XLib surface backend is available. +This macro can be used to conditionally compile backend-specific code. +</para> + + + <!-- ##### FUNCTION cairo_xlib_surface_create ##### --> <para> diff --git a/doc/public/tmpl/cairo.sgml b/doc/public/tmpl/cairo.sgml index 2f5c637..6faef6c 100644 --- a/doc/public/tmpl/cairo.sgml +++ b/doc/public/tmpl/cairo.sgml @@ -21,7 +21,9 @@ The cairo drawing context <!-- ##### SECTION See_Also ##### --> <para> - +<itemizedlist> +<listitem>#cairo_surface_t</listitem> +</itemizedlist> </para> <!-- ##### SECTION Stability_Level ##### --> diff --git a/doc/public/version.xml b/doc/public/version.xml index eac1e0a..1cc9c18 100644 --- a/doc/public/version.xml +++ b/doc/public/version.xml @@ -1 +1 @@ -1.5.6 +1.5.8 diff --git a/doc/public/xml/cairo-font-face.xml b/doc/public/xml/cairo-font-face.xml new file mode 100644 index 0000000..8d502d2 --- /dev/null +++ b/doc/public/xml/cairo-font-face.xml @@ -0,0 +1,311 @@ +<?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-cairo-font-face-t"> +<refmeta> +<refentrytitle role="top_of_page">cairo_font_face_t</refentrytitle> +<manvolnum>3</manvolnum> +<refmiscinfo>CAIRO Library</refmiscinfo> +</refmeta> + +<refnamediv> +<refname>cairo_font_face_t</refname> +<refpurpose>Base class for font faces</refpurpose> +<!--[<xref linkend="desc" endterm="desc.title"/>]--> +</refnamediv> + +<refsynopsisdiv role="synopsis"> +<title role="synopsis.title">Synopsis</title> + +<synopsis> + + + +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); +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); +unsigned <link linkend="int">int</link> <link linkend="cairo-font-face-get-reference-count">cairo_font_face_get_reference_count</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-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); +<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); +</synopsis> +</refsynopsisdiv> + + + + + + + + + +<refsect1 role="desc"> +<title role="desc.title">Description</title> +<para> +<link linkend="cairo-font-face-t"><type>cairo_font_face_t</type></link> represents a particular font at a particular weight, +slant, and other characteristic but no size, transformation, or size. +</para> +<para> +Font faces are created using <firstterm>font-backend</firstterm>-specific +constructors, typically of the form +cairo_<emphasis>backend</emphasis><link linkend="font-face-create"><function>_font_face_create()</function></link>, +or implicitly using the <firstterm>toy</firstterm> text API by way of +<link linkend="cairo-select-font-face"><function>cairo_select_font_face()</function></link>. The resulting face can be accessed using +<link linkend="cairo-get-font-face"><function>cairo_get_font_face()</function></link>. +</para> +</refsect1> + +<refsect1 role="details"> +<title role="details.title">Details</title> +<refsect2> +<title><anchor id="cairo-font-face-t" role="typedef"/>cairo_font_face_t</title> +<indexterm><primary>cairo_font_face_t</primary></indexterm><programlisting>typedef struct _cairo_font_face cairo_font_face_t; +</programlisting> +<para> +A <link linkend="cairo-font-face-t"><type>cairo_font_face_t</type></link> 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 <link linkend="cairo-t"><type>cairo_t</type></link> by using +<link linkend="cairo-set-font-face"><function>cairo_set_font_face()</function></link>; the size and font matrix are set with +<link linkend="cairo-set-font-size"><function>cairo_set_font_size()</function></link> and <link linkend="cairo-set-font-matrix"><function>cairo_set_font_matrix()</function></link>. +</para> +<para> +There are various types of font faces, depending on the +<firstterm>font backend</firstterm> they use. The type of a +font face can be queried using <link linkend="cairo-font-face-get-type"><function>cairo_font_face_get_type()</function></link>. +</para> +<para> +Memory management of <link linkend="cairo-font-face-t"><type>cairo_font_face_t</type></link> is done with +<link linkend="cairo-font-face-reference"><function>cairo_font_face_reference()</function></link> and <link linkend="cairo-font-face-destroy"><function>cairo_font_face_destroy()</function></link>.</para> +<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> +<para> +Increases the reference count on <parameter>font_face</parameter> by one. This prevents +<parameter>font_face</parameter> from being destroyed until a matching call to +<link linkend="cairo-font-face-destroy"><function>cairo_font_face_destroy()</function></link> is made. +</para> +<para> +The number of references to a <link linkend="cairo-font-face-t"><type>cairo_font_face_t</type></link> can be get using +<link linkend="cairo-font-face-get-reference-count"><function>cairo_font_face_get_reference_count()</function></link>.</para> +<para> + +</para><variablelist role="params"> +<varlistentry><term><parameter>font_face</parameter> :</term> +<listitem><simpara> a <link linkend="cairo-font-face-t"><type>cairo_font_face_t</type></link>, (may be <link linkend="NULL:CAPS"><literal>NULL</literal></link> in which case this +function does nothing). +</simpara></listitem></varlistentry> +<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the referenced <link linkend="cairo-font-face-t"><type>cairo_font_face_t</type></link>. +</simpara></listitem></varlistentry> +</variablelist></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> +<para> +Decreases the reference count on <parameter>font_face</parameter> by one. If the result +is zero, then <parameter>font_face</parameter> and all associated resources are freed. +See <link linkend="cairo-font-face-reference"><function>cairo_font_face_reference()</function></link>.</para> +<para> + +</para><variablelist role="params"> +<varlistentry><term><parameter>font_face</parameter> :</term> +<listitem><simpara> a <link linkend="cairo-font-face-t"><type>cairo_font_face_t</type></link> +</simpara></listitem></varlistentry> +</variablelist></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> +<para> +Checks whether an error has previously occurred for this +font face</para> +<para> + +</para><variablelist role="params"> +<varlistentry><term><parameter>font_face</parameter> :</term> +<listitem><simpara> a <link linkend="cairo-font-face-t"><type>cairo_font_face_t</type></link> +</simpara></listitem></varlistentry> +<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <link linkend="CAIRO-STATUS-SUCCESS:CAPS"><literal>CAIRO_STATUS_SUCCESS</literal></link> or another error such as + <link linkend="CAIRO-STATUS-NO-MEMORY:CAPS"><literal>CAIRO_STATUS_NO_MEMORY</literal></link>. +</simpara></listitem></varlistentry> +</variablelist></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> +<link linkend="cairo-font-type-t"><type>cairo_font_type_t</type></link> 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. +</para> +<para> +The type of a font face is determined by the function used to +create it, which will generally be of the form +cairo_<emphasis>type</emphasis>_font_face_create. The font face type can be queried +with <link linkend="cairo-font-face-get-type"><function>cairo_font_face_get_type()</function></link> +</para> +<para> +The various <link linkend="cairo-font-face-t"><type>cairo_font_face_t</type></link> functions can be used with a font face +of any type. +</para> +<para> +The type of a scaled font is determined by the type of the font +face passed to <link linkend="cairo-scaled-font-create"><function>cairo_scaled_font_create()</function></link>. The scaled font type can +be queried with <link linkend="cairo-scaled-font-get-type"><function>cairo_scaled_font_get_type()</function></link> +</para> +<para> +The various <link linkend="cairo-scaled-font-t"><type>cairo_scaled_font_t</type></link> functions can be used with scaled +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_<emphasis>type</emphasis>_scaled_font such as <link linkend="cairo-ft-scaled-font-lock-face"><function>cairo_ft_scaled_font_lock_face()</function></link>. +</para> +<para> +The behavior of calling a type-specific function with a scaled font +of the wrong type is undefined. +</para> +<para> +New entries may be added in future versions.</para> +<para> + +</para><variablelist role="enum"> +<varlistentry> +<term><anchor id="CAIRO-FONT-TYPE-TOY:CAPS" role="constant"/><literal>CAIRO_FONT_TYPE_TOY</literal></term> +<listitem><simpara> The font was created using cairo's toy font api +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-FONT-TYPE-FT:CAPS" role="constant"/><literal>CAIRO_FONT_TYPE_FT</literal></term> +<listitem><simpara> The font is of type FreeType +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-FONT-TYPE-WIN32:CAPS" role="constant"/><literal>CAIRO_FONT_TYPE_WIN32</literal></term> +<listitem><simpara> The font is of type Win32 +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-FONT-TYPE-ATSUI:CAPS" role="constant"/><literal>CAIRO_FONT_TYPE_ATSUI</literal></term> +<listitem><simpara> The font is of type ATSUI +</simpara></listitem> +</varlistentry> +</variablelist><para role="since">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> +This function returns the type of the backend used to create +a font face. See <link linkend="cairo-font-type-t"><type>cairo_font_type_t</type></link> for available types.</para> +<para> + +</para><variablelist role="params"> +<varlistentry><term><parameter>font_face</parameter> :</term> +<listitem><simpara> a font face +</simpara></listitem></varlistentry> +<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> The type of <parameter>font_face</parameter>. + +</simpara></listitem></varlistentry> +</variablelist><para role="since">Since 1.2 +</para></refsect2> +<refsect2> +<title><anchor id="cairo-font-face-get-reference-count" role="function" condition="since:1.4"/>cairo_font_face_get_reference_count ()</title> +<indexterm role="1.4"><primary>cairo_font_face_get_reference_count</primary></indexterm><programlisting>unsigned <link linkend="int">int</link> cairo_font_face_get_reference_count (<link linkend="cairo-font-face-t">cairo_font_face_t</link> *font_face);</programlisting> +<para> +Returns the current reference count of <parameter>font_face</parameter>.</para> +<para> + +</para><variablelist role="params"> +<varlistentry><term><parameter>font_face</parameter> :</term> +<listitem><simpara> a <link linkend="cairo-font-face-t"><type>cairo_font_face_t</type></link> +</simpara></listitem></varlistentry> +<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the current reference count of <parameter>font_face</parameter>. If the +object is a nil object, 0 will be returned. + +</simpara></listitem></varlistentry> +</variablelist><para role="since">Since 1.4 +</para></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> +<para> +Attach user data to <parameter>font_face</parameter>. To remove user data from a font face, +call this function with the key that was used to set it and <link linkend="NULL:CAPS"><literal>NULL</literal></link> +for <parameter>data</parameter>.</para> +<para> + +</para><variablelist role="params"> +<varlistentry><term><parameter>font_face</parameter> :</term> +<listitem><simpara> a <link linkend="cairo-font-face-t"><type>cairo_font_face_t</type></link> +</simpara></listitem></varlistentry> +<varlistentry><term><parameter>key</parameter> :</term> +<listitem><simpara> the address of a <link linkend="cairo-user-data-key-t"><type>cairo_user_data_key_t</type></link> to attach the user data to +</simpara></listitem></varlistentry> +<varlistentry><term><parameter>user_data</parameter> :</term> +<listitem><simpara> the user data to attach to the font face +</simpara></listitem></varlistentry> +<varlistentry><term><parameter>destroy</parameter> :</term> +<listitem><simpara> a <link linkend="cairo-destroy-func-t"><type>cairo_destroy_func_t</type></link> which will be called when the +font face is destroyed or when new user data is attached using the +same key. +</simpara></listitem></varlistentry> +<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <link linkend="CAIRO-STATUS-SUCCESS:CAPS"><literal>CAIRO_STATUS_SUCCESS</literal></link> or <link linkend="CAIRO-STATUS-NO-MEMORY:CAPS"><literal>CAIRO_STATUS_NO_MEMORY</literal></link> if a +slot could not be allocated for the user data. +</simpara></listitem></varlistentry> +</variablelist></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> +<para> +Return user data previously attached to <parameter>font_face</parameter> using the specified +key. If no user data has been attached with the given key this +function returns <link linkend="NULL:CAPS"><literal>NULL</literal></link>.</para> +<para> + +</para><variablelist role="params"> +<varlistentry><term><parameter>font_face</parameter> :</term> +<listitem><simpara> a <link linkend="cairo-font-face-t"><type>cairo_font_face_t</type></link> +</simpara></listitem></varlistentry> +<varlistentry><term><parameter>key</parameter> :</term> +<listitem><simpara> the address of the <link linkend="cairo-user-data-key-t"><type>cairo_user_data_key_t</type></link> the user data was +attached to +</simpara></listitem></varlistentry> +<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the user data previously attached or <link linkend="NULL:CAPS"><literal>NULL</literal></link>. +</simpara></listitem></varlistentry> +</variablelist></refsect2> + +</refsect1> + + + +<refsect1> +<title>See Also</title> +<para> +<itemizedlist> +<listitem><link linkend="cairo-scaled-font-t"><type>cairo_scaled_font_t</type></link></listitem> +</itemizedlist> +</para> +</refsect1> + + +<refsect1><refsect2 /><refsect2 /></refsect1> +</refentry> diff --git a/doc/public/xml/cairo-font-options.xml b/doc/public/xml/cairo-font-options.xml index 0b77d87..1a3e018 100644 --- a/doc/public/xml/cairo-font-options.xml +++ b/doc/public/xml/cairo-font-options.xml @@ -5,13 +5,13 @@ ]> <refentry id="cairo-Font-Options"> <refmeta> -<refentrytitle role="top_of_page">Font Options</refentrytitle> +<refentrytitle role="top_of_page">cairo_font_options_t</refentrytitle> <manvolnum>3</manvolnum> <refmiscinfo>CAIRO Library</refmiscinfo> </refmeta> <refnamediv> -<refname>Font Options</refname> +<refname>cairo_font_options_t</refname> <refpurpose>How a font should be rendered</refpurpose> <!--[<xref linkend="desc" endterm="desc.title"/>]--> </refnamediv> @@ -65,7 +65,10 @@ enum <link linkend="cairo-hint-metrics-t">cairo_hint_metrics_t</l <refsect1 role="desc"> <title role="desc.title">Description</title> <para> - +The font options specify how fonts should be rendered. Most of the time the +font options implied by a surface are just right and do not need any changes, +but for pixel-based targets tweaking font options may result in superior +output on a particular display. </para> </refsect1> @@ -184,7 +187,7 @@ of <link linkend="CAIRO-OPERATION-OVER:CAPS"><literal>CAIRO_OPERATION_OVER</lite <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> <para> Compute a hash for the font options object; this value will -be useful when storing an object containing a cairo_font_options_t +be useful when storing an object containing a <link linkend="cairo-font-options-t"><type>cairo_font_options_t</type></link> in a hash table.</para> <para> @@ -493,6 +496,14 @@ See the documentation for <link linkend="cairo-hint-metrics-t"><type>cairo_hint_ +<refsect1> +<title>See Also</title> +<para> +<itemizedlist> +<listitem><link linkend="cairo-scaled-font-t"><type>cairo_scaled_font_t</type></link></listitem> +</itemizedlist> +</para> +</refsect1> <refsect1><refsect2 /><refsect2 /></refsect1> diff --git a/doc/public/xml/cairo-ft.xml b/doc/public/xml/cairo-ft.xml index b5fc7c0..16c3810 100644 --- a/doc/public/xml/cairo-ft.xml +++ b/doc/public/xml/cairo-ft.xml @@ -23,6 +23,7 @@ +#define <link linkend="CAIRO-HAS-FT-FONT:CAPS">CAIRO_HAS_FT_FONT</link> <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); @@ -46,13 +47,22 @@ <refsect1 role="desc"> <title role="desc.title">Description</title> <para> - +The FreeType font backend is primarily used to render text on GNU/Linux +systems, but can be used on other platforms too. </para> </refsect1> <refsect1 role="details"> <title role="details.title">Details</title> <refsect2> +<title><anchor id="CAIRO-HAS-FT-FONT:CAPS" role="macro"/>CAIRO_HAS_FT_FONT</title> +<indexterm><primary>CAIRO_HAS_FT_FONT</primary></indexterm><programlisting>#define CAIRO_HAS_FT_FONT 1 +</programlisting> +<para> +Defined if the FreeType font backend is available. +This macro can be used to conditionally compile backend-specific code. +</para></refsect2> +<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, @@ -199,6 +209,14 @@ Releases a face obtained with <link linkend="cairo-ft-scaled-font-lock-face"><fu +<refsect1> +<title>See Also</title> +<para> +<itemizedlist> +<listitem><link linkend="cairo-font-face-t"><type>cairo_font_face_t</type></link></listitem> +</itemizedlist> +</para> +</refsect1> <refsect1><refsect2 /><refsect2 /></refsect1> diff --git a/doc/public/xml/cairo-image.xml b/doc/public/xml/cairo-image.xml index a54cf86..d7efa0f 100644 --- a/doc/public/xml/cairo-image.xml +++ b/doc/public/xml/cairo-image.xml @@ -24,6 +24,8 @@ enum <link linkend="cairo-format-t">cairo_format_t</link>; +<link linkend="int">int</link> <link linkend="cairo-format-stride-for-width">cairo_format_stride_for_width</link> (<link linkend="cairo-format-t">cairo_format_t</link> format, + <link linkend="int">int</link> width); <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); @@ -50,12 +52,11 @@ unsigned <link linkend="char">char</link>* <link linkend="cairo-image-surfa <refsect1 role="desc"> <title role="desc.title">Description</title> - - <para> - Image surfaces provide the ability to render to memory buffers - either allocated by cairo or by the calling code. The supported - image formats are those defined in <link linkend="cairo-format-t"><type>cairo_format_t</type></link>. - </para> +<para> +Image surfaces provide the ability to render to memory buffers +either allocated by cairo or by the calling code. The supported +image formats are those defined in <link linkend="cairo-format-t"><type>cairo_format_t</type></link>. +</para> </refsect1> <refsect1 role="details"> @@ -116,6 +117,41 @@ New entries may be added in future versions.</para> </varlistentry> </variablelist></refsect2> <refsect2> +<title><anchor id="cairo-format-stride-for-width" role="function" condition="since:1.6"/>cairo_format_stride_for_width ()</title> +<indexterm role="1.6"><primary>cairo_format_stride_for_width</primary></indexterm><programlisting><link linkend="int">int</link> cairo_format_stride_for_width (<link linkend="cairo-format-t">cairo_format_t</link> format, + <link linkend="int">int</link> width);</programlisting> +<para> +This function provides a stride value that will respect all +alignment requirements of the accelerated image-rendering code +within cairo. Typical usage will be of the form: +</para> +<para> +<informalexample><programlisting> +int stride; +unsigned char *data; +<link linkend="cairo-surface-t">cairo_surface_t</link> *surface; + +stride = cairo_format_stride_for_width (format, width); +data = malloc (stride * height); +surface = cairo_image_surface_create_for_data (data, format, + width, height); +</programlisting></informalexample></para> +<para> + +</para><variablelist role="params"> +<varlistentry><term><parameter>format</parameter> :</term> +<listitem><simpara> A <link linkend="cairo-format-t"><type>cairo_format_t</type></link> value +</simpara></listitem></varlistentry> +<varlistentry><term><parameter>width</parameter> :</term> +<listitem><simpara> The desired width of an image surface to be created. +</simpara></listitem></varlistentry> +<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the appropriate stride to use given the desired +format and width. + +</simpara></listitem></varlistentry> +</variablelist><para role="since">Since 1.6 +</para></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, @@ -139,7 +175,7 @@ but not belonging to the given format are undefined).</para> <listitem><simpara> height of the surface, in pixels </simpara></listitem></varlistentry> <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a pointer to the newly created surface. The caller -owns the surface and should call cairo_surface_destroy when done +owns the surface and should call <link linkend="cairo-surface-destroy"><function>cairo_surface_destroy()</function></link> when done with it. This function always returns a valid pointer, but it will return a @@ -160,13 +196,24 @@ buffer must be kept around until the <link linkend="cairo-surface-t"><type>cairo or <link linkend="cairo-surface-finish"><function>cairo_surface_finish()</function></link> is called on the surface. The initial contents of <parameter>buffer</parameter> will be used as the initial image contents; you must explicitly clear the buffer, using, for example, -<link linkend="cairo-rectangle"><function>cairo_rectangle()</function></link> and <link linkend="cairo-fill"><function>cairo_fill()</function></link> if you want it cleared.</para> +<link linkend="cairo-rectangle"><function>cairo_rectangle()</function></link> and <link linkend="cairo-fill"><function>cairo_fill()</function></link> if you want it cleared. +</para> +<para> +Note that the stride may be larger than +width*bytes_per_pixel to provide proper alignment for each pixel +and row. This alignment is required to allow high-performance rendering +within cairo. The correct way to obtain a legal stride value is to +call <link linkend="cairo-format-stride-for-width"><function>cairo_format_stride_for_width()</function></link> with the desired format and +maximum image width value, and the use the resulting stride value +to allocate the data and to create the image surface. See +<link linkend="cairo-format-stride-for-width"><function>cairo_format_stride_for_width()</function></link> for example code.</para> <para> </para><variablelist role="params"> <varlistentry><term><parameter>data</parameter> :</term> -<listitem><simpara> a pointer to a buffer supplied by the application - in which to write contents. +<listitem><simpara> a pointer to a buffer supplied by the application in which + to write contents. This pointer must be suitably aligned for any + kind of variable, (for example, a pointer returned by malloc). </simpara></listitem></varlistentry> <varlistentry><term><parameter>format</parameter> :</term> <listitem><simpara> the format of pixels in the buffer @@ -178,18 +225,21 @@ must explicitly clear the buffer, using, for example, <listitem><simpara> the height of the image to be stored in the buffer </simpara></listitem></varlistentry> <varlistentry><term><parameter>stride</parameter> :</term> -<listitem><simpara> the number of bytes between the start of rows - in the buffer. Having this be specified separate from <parameter>width</parameter> - allows for padding at the end of rows, or for writing - to a subportion of a larger image. +<listitem><simpara> the number of bytes between the start of rows in the + buffer as allocated. This value should always be computed by + <link linkend="cairo-format-stride-for-width"><function>cairo_format_stride_for_width()</function></link> before allocating the data + buffer. </simpara></listitem></varlistentry> <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a pointer to the newly created surface. The caller -owns the surface and should call cairo_surface_destroy when done +owns the surface and should call <link linkend="cairo-surface-destroy"><function>cairo_surface_destroy()</function></link> when done with it. 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 <link linkend="cairo-surface-status"><function>cairo_surface_status()</function></link> to check for this. +pointer to a "nil" surface in the case of an error such as out of +memory or an invalid stride value. In case of invalid stride value +the error status of the returned surface will be +<link linkend="CAIRO-STATUS-INVALID-STRIDE:CAPS"><literal>CAIRO_STATUS_INVALID_STRIDE</literal></link>. You can use +<link linkend="cairo-surface-status"><function>cairo_surface_status()</function></link> to check for this. See <link linkend="cairo-surface-set-user-data"><function>cairo_surface_set_user_data()</function></link> for a means of attaching a destroy-notification fallback to the surface if necessary. @@ -207,7 +257,7 @@ inspection or modification.</para> <varlistentry><term><parameter>surface</parameter> :</term> <listitem><simpara> a <link linkend="cairo-image-surface-t"><type>cairo_image_surface_t</type></link> </simpara></listitem></varlistentry> -<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a pointer to the image data of this surface or NULL +<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a pointer to the image data of this surface or <link linkend="NULL:CAPS"><literal>NULL</literal></link> if <parameter>surface</parameter> is not an image surface. </simpara></listitem></varlistentry> @@ -281,6 +331,14 @@ beginning of the next row. +<refsect1> +<title>See Also</title> +<para> +<itemizedlist> +<listitem><link linkend="cairo-surface-t"><type>cairo_surface_t</type></link></listitem> +</itemizedlist> +</para> +</refsect1> <refsect1><refsect2 /><refsect2 /></refsect1> diff --git a/doc/public/xml/cairo-matrix.xml b/doc/public/xml/cairo-matrix.xml index 993f401..ea284e3 100644 --- a/doc/public/xml/cairo-matrix.xml +++ b/doc/public/xml/cairo-matrix.xml @@ -71,8 +71,7 @@ <refsect1 role="desc"> <title role="desc.title">Description</title> - - <para><indexterm><primary>types</primary><secondary>cairo_matrix</secondary></indexterm><indexterm><primary/></indexterm> + <para> <link linkend="cairo-matrix-t"><type>cairo_matrix_t</type></link> is used throughout cairo to convert between different coordinate spaces. A <link linkend="cairo-matrix-t"><type>cairo_matrix_t</type></link> holds an affine transformation, such as a scale, rotation, shear, or a combination of these. @@ -164,7 +163,7 @@ by: </para><variablelist role="params"> <varlistentry><term><parameter>matrix</parameter> :</term> -<listitem><simpara> a cairo_matrix_t +<listitem><simpara> a <link linkend="cairo-matrix-t"><type>cairo_matrix_t</type></link> </simpara></listitem></varlistentry> <varlistentry><term><parameter>xx</parameter> :</term> <listitem><simpara> xx component of the affine transformation @@ -209,7 +208,7 @@ Initializes <parameter>matrix</parameter> to a transformation that translates by </para><variablelist role="params"> <varlistentry><term><parameter>matrix</parameter> :</term> -<listitem><simpara> a cairo_matrix_t +<listitem><simpara> a <link linkend="cairo-matrix-t"><type>cairo_matrix_t</type></link> </simpara></listitem></varlistentry> <varlistentry><term><parameter>tx</parameter> :</term> <listitem><simpara> amount to translate in the X direction @@ -230,7 +229,7 @@ in the X and Y dimensions, respectively.</para> </para><variablelist role="params"> <varlistentry><term><parameter>matrix</parameter> :</term> -<listitem><simpara> a cairo_matrix_t +<listitem><simpara> a <link linkend="cairo-matrix-t"><type>cairo_matrix_t</type></link> </simpara></listitem></varlistentry> <varlistentry><term><parameter>sx</parameter> :</term> <listitem><simpara> scale factor in the X direction @@ -249,7 +248,7 @@ Initialized <parameter>matrix</parameter> to a transformation that rotates by <p </para><variablelist role="params"> <varlistentry><term><parameter>matrix</parameter> :</term> -<listitem><simpara> a cairo_matrix_t +<listitem><simpara> a <link linkend="cairo-matrix-t"><type>cairo_matrix_t</type></link> </simpara></listitem></varlistentry> <varlistentry><term><parameter>radians</parameter> :</term> <listitem><simpara> angle of rotation, in radians. The direction of rotation @@ -273,7 +272,7 @@ to the coordinates.</para> </para><variablelist role="params"> <varlistentry><term><parameter>matrix</parameter> :</term> -<listitem><simpara> a cairo_matrix_t +<listitem><simpara> a <link linkend="cairo-matrix-t"><type>cairo_matrix_t</type></link> </simpara></listitem></varlistentry> <varlistentry><term><parameter>tx</parameter> :</term> <listitem><simpara> amount to translate in the X direction @@ -433,6 +432,14 @@ Transforms the point (<parameter>x</parameter>, <parameter>y</parameter>) by <pa +<refsect1> +<title>See Also</title> +<para> +<itemizedlist> +<listitem><link linkend="cairo-t"><type>cairo_t</type></link></listitem> +</itemizedlist> +</para> +</refsect1> <refsect1><refsect2 /><refsect2 /></refsect1> diff --git a/doc/public/xml/cairo-paths.xml b/doc/public/xml/cairo-paths.xml index c41efe8..9048f36 100644 --- a/doc/public/xml/cairo-paths.xml +++ b/doc/public/xml/cairo-paths.xml @@ -31,7 +31,7 @@ enum <link linkend="cairo-path-data-type-t">cairo_path_data_type_ <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, const <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="cairo-status-t">cairo_status_t</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); @@ -85,6 +85,11 @@ enum <link linkend="cairo-path-data-type-t">cairo_path_data_type_ <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); +<link linkend="void">void</link> <link linkend="cairo-path-extents">cairo_path_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); </synopsis> </refsynopsisdiv> @@ -99,7 +104,8 @@ enum <link linkend="cairo-path-data-type-t">cairo_path_data_type_ <refsect1 role="desc"> <title role="desc.title">Description</title> <para> - +Paths are the most basic drawing tools and are primarily used to implicitly +generate simple masks. </para> </refsect1> @@ -194,26 +200,26 @@ Here is sample code for iterating through a <link linkend="cairo-path-t--"><type <para> <informalexample><programlisting> int i; - cairo_path_t *path; - cairo_path_data_t *data; + <link linkend="cairo-path-t">cairo_path_t</link> *path; + <link linkend="cairo-path-data-t">cairo_path_data_t</link> *data; path = cairo_copy_path (cr); for (i=0; i < path->num_data; i += path->data[i].header.length) { data = &path->data[i]; switch (data->header.type) { - case CAIRO_PATH_MOVE_TO: + case %CAIRO_PATH_MOVE_TO: do_move_to_things (data[1].point.x, data[1].point.y); break; - case CAIRO_PATH_LINE_TO: + case %CAIRO_PATH_LINE_TO: do_line_to_things (data[1].point.x, data[1].point.y); break; - case CAIRO_PATH_CURVE_TO: + case %CAIRO_PATH_CURVE_TO: do_curve_to_things (data[1].point.x, data[1].point.y, data[2].point.x, data[2].point.y, data[3].point.x, data[3].point.y); break; - case CAIRO_PATH_CLOSE_PATH: + case %CAIRO_PATH_CLOSE_PATH: do_close_path_things (); break; } @@ -279,7 +285,7 @@ over the returned data structure. </para> <para> This function will always return a valid pointer, but the result -will have no data (<literal>data==NULL</literal> and +will have no data (<literal>data==<link linkend="NULL:CAPS"><literal>NULL</literal></link></literal> and <literal>num_data==0</literal>), if either of the following conditions hold: </para> @@ -326,7 +332,7 @@ series of <link linkend="CAIRO-PATH-LINE-TO:CAPS"><literal>CAIRO_PATH_LINE_TO</l </para> <para> This function will always return a valid pointer, but the result -will have no data (<literal>data==NULL</literal> and +will have no data (<literal>data==<link linkend="NULL:CAPS"><literal>NULL</literal></link></literal> and <literal>num_data==0</literal>), if either of the following conditions hold: </para> @@ -359,7 +365,7 @@ to <link linkend="cairo-path-destroy"><function>cairo_path_destroy()</function>< should not be used further. </para> <para> -NOTE: cairo_path_destroy function should only be called with a +Note: <link linkend="cairo-path-destroy"><function>cairo_path_destroy()</function></link> should only be called with a pointer to a <link linkend="cairo-path-t"><type>cairo_path_t</type></link> returned by a cairo function. Any path that is created manually (ie. outside of cairo) should be destroyed manually as well.</para> @@ -394,7 +400,7 @@ initialized to <link linkend="CAIRO-STATUS-SUCCESS:CAPS"><literal>CAIRO_STATUS_S </variablelist></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, +<indexterm><primary>cairo_get_current_point</primary></indexterm><programlisting><link linkend="cairo-status-t">cairo_status_t</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> <para> @@ -436,6 +442,12 @@ Some functions unset the current path and as a result, current point: <varlistentry><term><parameter>y</parameter> :</term> <listitem><simpara> return value for Y coordinate of the current point </simpara></listitem></varlistentry> +<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <link linkend="CAIRO-STATUS-SUCCESS:CAPS"><literal>CAIRO_STATUS_SUCCESS</literal></link> if current point was successfully +retrieved. Otherwise, if <parameter>cr</parameter> has been in an error status, that status +is returned, otherwise <link linkend="CAIRO-STATUS-NO-CURRENT-POINT:CAPS"><literal>CAIRO_STATUS_NO_CURRENT_POINT</literal></link> is returned if +no current point exists. In all error cases, both <parameter>x</parameter> and <parameter>y</parameter> will be +set to 0.0. +</simpara></listitem></varlistentry> </variablelist></refsect2> <refsect2> <title><anchor id="cairo-new-path" role="function"/>cairo_new_path ()</title> @@ -492,11 +504,11 @@ the ends of the sub-path. Instead, there is a line join connecting the final and initial segments of the sub-path. </para> <para> -If there is no current point before the call to cairo_close_path, +If there is no current point before the call to <link linkend="cairo-close-path"><function>cairo_close_path()</function></link>, this function will have no effect. </para> <para> -Note: As of cairo version 1.2.4 any call to cairo_close_path will +Note: As of cairo version 1.2.4 any call to <link linkend="cairo-close-path"><function>cairo_close_path()</function></link> will place an explicit MOVE_TO element into the path immediately after the CLOSE_PATH element, (which can be seen in <link linkend="cairo-copy-path"><function>cairo_copy_path()</function></link> for example). This can simplify path processing in some cases as it may @@ -797,7 +809,7 @@ This allows for chaining multiple calls to to <link linkend="cairo-text-path"><f without having to set current point in between. </para> <para> -NOTE: The <link linkend="cairo-text-path"><function>cairo_text_path()</function></link> function call is part of what the cairo +Note: The <link linkend="cairo-text-path"><function>cairo_text_path()</function></link> function call is part of what the cairo designers call the "toy" text API. It is convenient for short demos and simple programs, but it is not expected to be adequate for serious text-using applications. See <link linkend="cairo-glyph-path"><function>cairo_glyph_path()</function></link> for the @@ -926,6 +938,57 @@ CAIRO_STATUS_NO_CURRENT_POINT.</para> <listitem><simpara> the Y offset </simpara></listitem></varlistentry> </variablelist></refsect2> +<refsect2> +<title><anchor id="cairo-path-extents" role="function" condition="since:1.6"/>cairo_path_extents ()</title> +<indexterm role="1.6"><primary>cairo_path_extents</primary></indexterm><programlisting><link linkend="void">void</link> cairo_path_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> +<para> +Computes a bounding box in user-space coordinates covering the +points on the current path. If the current path is empty, returns +an empty rectangle ((0,0), (0,0)). Stroke parameters, fill rule, +surface dimensions and clipping are not taken into account. +</para> +<para> +Contrast with <link linkend="cairo-fill-extents"><function>cairo_fill_extents()</function></link> and <link linkend="cairo-stroke-extents"><function>cairo_stroke_extents()</function></link> which +return the extents of only the area that would be "inked" by +the corresponding drawing operations. +</para> +<para> +The result of <link linkend="cairo-path-extents"><function>cairo_path_extents()</function></link> is defined as equivalent to the +limit of <link linkend="cairo-stroke-extents"><function>cairo_stroke_extents()</function></link> with <link linkend="CAIRO-LINE-CAP-ROUND:CAPS"><literal>CAIRO_LINE_CAP_ROUND</literal></link> as the +line width approaches 0.0, (but never reaching the empty-rectangle +returned by <link linkend="cairo-stroke-extents"><function>cairo_stroke_extents()</function></link> for a line width of 0.0). +</para> +<para> +Specifically, this means that zero-area sub-paths such as +<link linkend="cairo-move-to"><function>cairo_move_to()</function></link>;<link linkend="cairo-line-to"><function>cairo_line_to()</function></link> segments, (even degenerate cases +where the coordinates to both calls are identical), will be +considered as contributing to the extents. However, a lone +<link linkend="cairo-move-to"><function>cairo_move_to()</function></link> will not contribute to the results of +<link linkend="cairo-path-extents"><function>cairo_path_extents()</function></link>.</para> +<para> + +</para><variablelist role="params"> +<varlistentry><term><parameter>cr</parameter> :</term> +<listitem><simpara> a cairo context +</simpara></listitem></varlistentry> +<varlistentry><term><parameter>x1</parameter> :</term> +<listitem><simpara> left of the resulting extents +</simpara></listitem></varlistentry> +<varlistentry><term><parameter>y1</parameter> :</term> +<listitem><simpara> top of the resulting extents +</simpara></listitem></varlistentry> +<varlistentry><term><parameter>x2</parameter> :</term> +<listitem><simpara> right of the resulting extents +</simpara></listitem></varlistentry> +<varlistentry><term><parameter>y2</parameter> :</term> +<listitem><simpara> bottom of the resulting extents +</simpara></listitem></varlistentry> +</variablelist><para role="since">Since 1.6 +</para></refsect2> </refsect1> diff --git a/doc/public/xml/cairo-pattern.xml b/doc/public/xml/cairo-pattern.xml index 512be83..71cf156 100644 --- a/doc/public/xml/cairo-pattern.xml +++ b/doc/public/xml/cairo-pattern.xml @@ -5,14 +5,14 @@ ]> <refentry id="cairo-Patterns"> <refmeta> -<refentrytitle role="top_of_page">Patterns</refentrytitle> +<refentrytitle role="top_of_page">cairo_pattern_t</refentrytitle> <manvolnum>3</manvolnum> <refmiscinfo>CAIRO Library</refmiscinfo> </refmeta> <refnamediv> -<refname>Patterns</refname> -<refpurpose>Gradients and filtered sources</refpurpose> +<refname>cairo_pattern_t</refname> +<refpurpose>Sources for drawing</refpurpose> <!--[<xref linkend="desc" endterm="desc.title"/>]--> </refnamediv> @@ -119,7 +119,15 @@ unsigned <link linkend="int">int</link> <link linkend="cairo-pattern-get- <refsect1 role="desc"> <title role="desc.title">Description</title> <para> - +<link linkend="cairo-pattern-t"><type>cairo_pattern_t</type></link> is the paint with which cairo draws. +The primary use of patterns is as the source for all cairo drawing operations, +although they can also be used as masks, that is, as the brush too. +</para> +<para> +A cairo pattern is created by using one of the many constructors, +of the form cairo_pattern_create_<emphasis>type</emphasis>() +or implicitly through +cairo_set_source_<emphasis>type</emphasis>() functions. </para> </refsect1> @@ -137,9 +145,9 @@ for different types of sources; for example, opaque color. </para> <para> -Other than various cairo_pattern_create_<emphasis>type</emphasis> +Other than various cairo_pattern_create_<emphasis>type</emphasis>() functions, some of the pattern types can be implicitly created -using vairous cairo_set_source_<emphasis>type</emphasis> functions; +using various cairo_set_source_<emphasis>type</emphasis>() functions; for example <link linkend="cairo-set-source-rgb"><function>cairo_set_source_rgb()</function></link>. </para> <para> @@ -323,7 +331,7 @@ returned. <link linkend="double">double</link> green, <link linkend="double">double</link> blue);</programlisting> <para> -Creates a new cairo_pattern_t corresponding to an opaque color. The +Creates a new <link linkend="cairo-pattern-t"><type>cairo_pattern_t</type></link> corresponding to an opaque color. The color components are floating point numbers in the range 0 to 1. If the values passed in are outside that range, they will be clamped.</para> @@ -356,7 +364,7 @@ the status of a pattern use <link linkend="cairo-pattern-status"><function>cairo <link linkend="double">double</link> blue, <link linkend="double">double</link> alpha);</programlisting> <para> -Creates a new cairo_pattern_t corresponding to a translucent color. +Creates a new <link linkend="cairo-pattern-t"><type>cairo_pattern_t</type></link> corresponding to a translucent color. The color components are floating point numbers in the range 0 to 1. If the values passed in are outside that range, they will be clamped.</para> @@ -423,7 +431,7 @@ color pattern. <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> <para> -Create a new cairo_pattern_t for the given surface.</para> +Create a new <link linkend="cairo-pattern-t"><type>cairo_pattern_t</type></link> for the given surface.</para> <para> </para><variablelist role="params"> @@ -471,7 +479,7 @@ pattern. <link linkend="double">double</link> x1, <link linkend="double">double</link> y1);</programlisting> <para> -Create a new linear gradient cairo_pattern_t along the line defined +Create a new linear gradient <link linkend="cairo-pattern-t"><type>cairo_pattern_t</type></link> along the line defined by (x0, y0) and (x1, y1). Before using the gradient pattern, a number of color stops should be defined using <link linkend="cairo-pattern-add-color-stop-rgb"><function>cairo_pattern_add_color_stop_rgb()</function></link> or @@ -549,7 +557,7 @@ gradient pattern. <link linkend="double">double</link> cy1, <link linkend="double">double</link> radius1);</programlisting> <para> -Creates a new radial gradient cairo_pattern_t between the two +Creates a new radial gradient <link linkend="cairo-pattern-t"><type>cairo_pattern_t</type></link> between the two circles defined by (cx0, cy0, radius0) and (cx1, cy1, radius1). Before using the gradient pattern, a number of color stops should be defined using <link linkend="cairo-pattern-add-color-stop-rgb"><function>cairo_pattern_add_color_stop_rgb()</function></link> or @@ -773,15 +781,68 @@ pattern. } cairo_filter_t; </programlisting> <para> +<link linkend="cairo-filter-t"><type>cairo_filter_t</type></link> is used to indicate what filtering should be +applied when reading pixel values from patterns. See +<link linkend="cairo-pattern-set-source"><function>cairo_pattern_set_source()</function></link> for indicating the desired filter to be +used with a particular pattern.</para> +<para> -</para></refsect2> +</para><variablelist role="enum"> +<varlistentry> +<term><anchor id="CAIRO-FILTER-FAST:CAPS" role="constant"/><literal>CAIRO_FILTER_FAST</literal></term> +<listitem><simpara> A high-performance filter, with quality similar + to <link linkend="CAIRO-FILTER-NEAREST:CAPS"><literal>CAIRO_FILTER_NEAREST</literal></link> +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-FILTER-GOOD:CAPS" role="constant"/><literal>CAIRO_FILTER_GOOD</literal></term> +<listitem><simpara> A reasonable-performance filter, with quality + similar to <link linkend="CAIRO-FILTER-BILINEAR:CAPS"><literal>CAIRO_FILTER_BILINEAR</literal></link> +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-FILTER-BEST:CAPS" role="constant"/><literal>CAIRO_FILTER_BEST</literal></term> +<listitem><simpara> The highest-quality available, performance may + not be suitable for interactive use. +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-FILTER-NEAREST:CAPS" role="constant"/><literal>CAIRO_FILTER_NEAREST</literal></term> +<listitem><simpara> Nearest-neighbor filtering +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-FILTER-BILINEAR:CAPS" role="constant"/><literal>CAIRO_FILTER_BILINEAR</literal></term> +<listitem><simpara> Linear interpolation in two dimensions +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-FILTER-GAUSSIAN:CAPS" role="constant"/><literal>CAIRO_FILTER_GAUSSIAN</literal></term> +<listitem><simpara> This filter value is currently + unimplemented, and should not be used in current code. +</simpara></listitem> +</varlistentry> +</variablelist></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> <para> Sets the filter to be used for resizing when using this pattern. -See <link linkend="cairo-filter-t"><type>cairo_filter_t</type></link> for details on each filter.</para> +See <link linkend="cairo-filter-t"><type>cairo_filter_t</type></link> for details on each filter. +</para> +<para> +* Note that you might want to control filtering even when you do not +have an explicit <link linkend="cairo-pattern-t"><type>cairo_pattern_t</type></link> object, (for example when using +<link linkend="cairo-set-source-surface"><function>cairo_set_source_surface()</function></link>). In these cases, it is convenient to +use <link linkend="cairo-get-source"><function>cairo_get_source()</function></link> to get access to the pattern that cairo +creates implicitly. For example: +</para> +<para> +<informalexample><programlisting> +cairo_set_source_surface (cr, image, x, y); +cairo_pattern_set_filter (cairo_get_source (cr), %CAIRO_FILTER_NEAREST); +</programlisting></informalexample></para> <para> </para><variablelist role="params"> @@ -894,7 +955,7 @@ ways. The pattern type can be queried with <link linkend="cairo-pattern-get-type"><function>cairo_pattern_get_type()</function></link> </para> <para> -Most cairo_pattern functions can be called with a pattern of any +Most <link linkend="cairo-pattern-t"><type>cairo_pattern_t</type></link> functions can be called with a pattern of any type, (though trying to change the extend or filter for a solid pattern will have no effect). A notable exception is <link linkend="cairo-pattern-add-color-stop-rgb"><function>cairo_pattern_add_color_stop_rgb()</function></link> and @@ -1025,6 +1086,15 @@ attached to +<refsect1> +<title>See Also</title> +<para> +<itemizedlist> +<listitem><link linkend="cairo-t"><type>cairo_t</type></link></listitem> +<listitem><link linkend="cairo-surface-t"><type>cairo_surface_t</type></link></listitem> +</itemizedlist> +</para> +</refsect1> <refsect1><refsect2 /><refsect2 /></refsect1> diff --git a/doc/public/xml/cairo-pdf.xml b/doc/public/xml/cairo-pdf.xml index 1354587..802dc06 100644 --- a/doc/public/xml/cairo-pdf.xml +++ b/doc/public/xml/cairo-pdf.xml @@ -23,6 +23,7 @@ +#define <link linkend="CAIRO-HAS-PDF-SURFACE:CAPS">CAIRO_HAS_PDF_SURFACE</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); @@ -47,13 +48,22 @@ <refsect1 role="desc"> <title role="desc.title">Description</title> <para> - +The PDF surface is used to render cairo graphics to Adobe +PDF files and is a multi-page vector surface backend. </para> </refsect1> <refsect1 role="details"> <title role="details.title">Details</title> <refsect2> +<title><anchor id="CAIRO-HAS-PDF-SURFACE:CAPS" role="macro"/>CAIRO_HAS_PDF_SURFACE</title> +<indexterm><primary>CAIRO_HAS_PDF_SURFACE</primary></indexterm><programlisting>#define CAIRO_HAS_PDF_SURFACE 1 +</programlisting> +<para> +Defined if the PDF surface backend is available. +This macro can be used to conditionally compile backend-specific code. +</para></refsect2> +<refsect2> <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, @@ -74,7 +84,7 @@ to <parameter>filename</parameter>.</para> <listitem><simpara> height of the surface, in points (1 point == 1/72.0 inch) </simpara></listitem></varlistentry> <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a pointer to the newly created surface. The caller -owns the surface and should call cairo_surface_destroy when done +owns the surface and should call <link linkend="cairo-surface-destroy"><function>cairo_surface_destroy()</function></link> when done with it. This function always returns a valid pointer, but it will return a @@ -109,7 +119,7 @@ incrementally to the stream represented by <parameter>write_func</parameter> and <listitem><simpara> height of the surface, in points (1 point == 1/72.0 inch) </simpara></listitem></varlistentry> <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a pointer to the newly created surface. The caller -owns the surface and should call cairo_surface_destroy when done +owns the surface and should call <link linkend="cairo-surface-destroy"><function>cairo_surface_destroy()</function></link> when done with it. This function always returns a valid pointer, but it will return a @@ -138,7 +148,7 @@ surface or immediately after completing a page with either </para><variablelist role="params"> <varlistentry><term><parameter>surface</parameter> :</term> -<listitem><simpara> a PDF cairo_surface_t +<listitem><simpara> a PDF <link linkend="cairo-surface-t"><type>cairo_surface_t</type></link> </simpara></listitem></varlistentry> <varlistentry><term><parameter>width_in_points</parameter> :</term> <listitem><simpara> new surface width, in points (1 point == 1/72.0 inch) @@ -153,6 +163,14 @@ surface or immediately after completing a page with either +<refsect1> +<title>See Also</title> +<para> +<itemizedlist> +<listitem><link linkend="cairo-surface-t"><type>cairo_surface_t</type></link></listitem> +</itemizedlist> +</para> +</refsect1> <refsect1><refsect2 /><refsect2 /></refsect1> diff --git a/doc/public/xml/cairo-png.xml b/doc/public/xml/cairo-png.xml index 69f2da4..c7f3713 100644 --- a/doc/public/xml/cairo-png.xml +++ b/doc/public/xml/cairo-png.xml @@ -23,6 +23,7 @@ +#define <link linkend="CAIRO-HAS-PNG-FUNCTIONS:CAPS">CAIRO_HAS_PNG_FUNCTIONS</link> <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, @@ -52,13 +53,23 @@ <refsect1 role="desc"> <title role="desc.title">Description</title> <para> - +The PNG functions allow reading PNG images into image surfaces, and writing +any surface to a PNG file. </para> </refsect1> <refsect1 role="details"> <title role="details.title">Details</title> <refsect2> +<title><anchor id="CAIRO-HAS-PNG-FUNCTIONS:CAPS" role="macro"/>CAIRO_HAS_PNG_FUNCTIONS</title> +<indexterm><primary>CAIRO_HAS_PNG_FUNCTIONS</primary></indexterm><programlisting>#define CAIRO_HAS_PNG_FUNCTIONS 1 +</programlisting> +<para> +Defined if the PNG functions are available. +This macro can be used to conditionally compile code using the cairo +PNG functions. +</para></refsect2> +<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> <para> @@ -87,7 +98,7 @@ CAIRO_STATUS_READ_ERROR unsigned <link linkend="int">int</link> length);</programlisting> <para> <link linkend="cairo-read-func-t"><type>cairo_read_func_t</type></link> is the type of function which is called when a -backend needs to read data from an intput stream. It is passed the +backend needs to read data from an input stream. It is passed the closure which was specified by the user at the time the read function was registered, the buffer to read the data into and the length of the data in bytes. The read function should return @@ -146,11 +157,11 @@ image.</para> <varlistentry><term><parameter>filename</parameter> :</term> <listitem><simpara> the name of a file to write to </simpara></listitem></varlistentry> -<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> CAIRO_STATUS_SUCCESS if the PNG file was written -successfully. Otherwise, CAIRO_STATUS_NO_MEMORY if memory could not +<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <link linkend="CAIRO-STATUS-SUCCESS:CAPS"><literal>CAIRO_STATUS_SUCCESS</literal></link> if the PNG file was written +successfully. Otherwise, <link linkend="CAIRO-STATUS-NO-MEMORY:CAPS"><literal>CAIRO_STATUS_NO_MEMORY</literal></link> if memory could not be allocated for the operation or CAIRO_STATUS_SURFACE_TYPE_MISMATCH if the surface does not have -pixel contents, or CAIRO_STATUS_WRITE_ERROR if an I/O error occurs +pixel contents, or <link linkend="CAIRO-STATUS-WRITE-ERROR:CAPS"><literal>CAIRO_STATUS_WRITE_ERROR</literal></link> if an I/O error occurs while attempting to write the file. </simpara></listitem></varlistentry> </variablelist></refsect2> @@ -201,8 +212,8 @@ Writes the image surface to the write function.</para> <varlistentry><term><parameter>closure</parameter> :</term> <listitem><simpara> closure data for the write function </simpara></listitem></varlistentry> -<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> CAIRO_STATUS_SUCCESS if the PNG file was written -successfully. Otherwise, CAIRO_STATUS_NO_MEMORY is returned if +<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <link linkend="CAIRO-STATUS-SUCCESS:CAPS"><literal>CAIRO_STATUS_SUCCESS</literal></link> if the PNG file was written +successfully. Otherwise, <link linkend="CAIRO-STATUS-NO-MEMORY:CAPS"><literal>CAIRO_STATUS_NO_MEMORY</literal></link> is returned if memory could not be allocated for the operation, CAIRO_STATUS_SURFACE_TYPE_MISMATCH if the surface does not have pixel contents. @@ -213,6 +224,14 @@ pixel contents. +<refsect1> +<title>See Also</title> +<para> +<itemizedlist> +<listitem><link linkend="cairo-surface-t"><type>cairo_surface_t</type></link></listitem> +</itemizedlist> +</para> +</refsect1> <refsect1><refsect2 /><refsect2 /></refsect1> diff --git a/doc/public/xml/cairo-ps.xml b/doc/public/xml/cairo-ps.xml index 873a0c6..b8eeae1 100644 --- a/doc/public/xml/cairo-ps.xml +++ b/doc/public/xml/cairo-ps.xml @@ -23,6 +23,7 @@ +#define <link linkend="CAIRO-HAS-PS-SURFACE:CAPS">CAIRO_HAS_PS_SURFACE</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); @@ -61,13 +62,22 @@ const <link linkend="char">char</link>* <link linkend="cairo-ps-level-to <refsect1 role="desc"> <title role="desc.title">Description</title> <para> - +The PostScript surface is used to render cairo graphics to Adobe +PostScript files and is a multi-page vector surface backend. </para> </refsect1> <refsect1 role="details"> <title role="details.title">Details</title> <refsect2> +<title><anchor id="CAIRO-HAS-PS-SURFACE:CAPS" role="macro"/>CAIRO_HAS_PS_SURFACE</title> +<indexterm><primary>CAIRO_HAS_PS_SURFACE</primary></indexterm><programlisting>#define CAIRO_HAS_PS_SURFACE 1 +</programlisting> +<para> +Defined if the PostScript surface backend is available. +This macro can be used to conditionally compile backend-specific code. +</para></refsect2> +<refsect2> <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, @@ -94,7 +104,7 @@ vary. See <link linkend="cairo-ps-surface-set-size"><function>cairo_ps_surface_s <listitem><simpara> height of the surface, in points (1 point == 1/72.0 inch) </simpara></listitem></varlistentry> <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a pointer to the newly created surface. The caller -owns the surface and should call cairo_surface_destroy when done +owns the surface and should call <link linkend="cairo-surface-destroy"><function>cairo_surface_destroy()</function></link> when done with it. This function always returns a valid pointer, but it will return a @@ -135,7 +145,7 @@ output can vary. See <link linkend="cairo-ps-surface-set-size"><function>cairo_p <listitem><simpara> height of the surface, in points (1 point == 1/72.0 inch) </simpara></listitem></varlistentry> <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a pointer to the newly created surface. The caller -owns the surface and should call cairo_surface_destroy when done +owns the surface and should call <link linkend="cairo-surface-destroy"><function>cairo_surface_destroy()</function></link> when done with it. This function always returns a valid pointer, but it will return a @@ -218,7 +228,7 @@ Used to retrieve the list of supported levels. See <indexterm role="1.6"><primary>cairo_ps_level_to_string</primary></indexterm><programlisting>const <link linkend="char">char</link>* cairo_ps_level_to_string (<link linkend="cairo-ps-level-t">cairo_ps_level_t</link> level);</programlisting> <para> Get the string representation of the given <parameter>level</parameter> id. This function -will return NULL if <parameter>level</parameter> id isn't valid. See <link linkend="cairo-ps-get-levels"><function>cairo_ps_get_levels()</function></link> +will return <link linkend="NULL:CAPS"><literal>NULL</literal></link> if <parameter>level</parameter> id isn't valid. See <link linkend="cairo-ps-get-levels"><function>cairo_ps_get_levels()</function></link> for a way to get the list of valid level ids.</para> <para> @@ -236,23 +246,23 @@ for a way to get the list of valid level ids.</para> <indexterm role="1.6"><primary>cairo_ps_surface_set_eps</primary></indexterm><programlisting><link linkend="void">void</link> cairo_ps_surface_set_eps (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface, <link linkend="cairo-bool-t">cairo_bool_t</link> eps);</programlisting> <para> -If <parameter>eps</parameter> is TRUE, the PostScript surface will output Encapsulated +If <parameter>eps</parameter> is <link linkend="TRUE:CAPS"><literal>TRUE</literal></link>, the PostScript surface will output Encapsulated PostScript. </para> <para> This function should only be called before any drawing operations have been performed on the current page. The simplest way to do this is to call this function immediately after creating the -surface. An Encapsulated Postscript file should never contain more +surface. An Encapsulated PostScript file should never contain more than one page.</para> <para> </para><variablelist role="params"> <varlistentry><term><parameter>surface</parameter> :</term> -<listitem><simpara> a PostScript cairo_surface_t +<listitem><simpara> a PostScript <link linkend="cairo-surface-t"><type>cairo_surface_t</type></link> </simpara></listitem></varlistentry> <varlistentry><term><parameter>eps</parameter> :</term> -<listitem><simpara> TRUE to output EPS format PostScript +<listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> to output EPS format PostScript </simpara></listitem></varlistentry> </variablelist><para role="since">Since 1.6 </para></refsect2> @@ -265,9 +275,9 @@ Check whether the PostScript surface will output Encapsulated PostScript.</para> </para><variablelist role="params"> <varlistentry><term><parameter>surface</parameter> :</term> -<listitem><simpara> a PostScript cairo_surface_t +<listitem><simpara> a PostScript <link linkend="cairo-surface-t"><type>cairo_surface_t</type></link> </simpara></listitem></varlistentry> -<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> TRUE if the surface will output Encapsulated PostScript. +<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if the surface will output Encapsulated PostScript. </simpara></listitem></varlistentry> </variablelist><para role="since">Since 1.6 @@ -291,7 +301,7 @@ surface or immediately after completing a page with either </para><variablelist role="params"> <varlistentry><term><parameter>surface</parameter> :</term> -<listitem><simpara> a PostScript cairo_surface_t +<listitem><simpara> a PostScript <link linkend="cairo-surface-t"><type>cairo_surface_t</type></link> </simpara></listitem></varlistentry> <varlistentry><term><parameter>width_in_points</parameter> :</term> <listitem><simpara> new surface width, in points (1 point == 1/72.0 inch) @@ -320,7 +330,7 @@ See <link linkend="cairo-ps-surface-dsc-comment"><function>cairo_ps_surface_dsc_ </para><variablelist role="params"> <varlistentry><term><parameter>surface</parameter> :</term> -<listitem><simpara> a PostScript cairo_surface_t +<listitem><simpara> a PostScript <link linkend="cairo-surface-t"><type>cairo_surface_t</type></link> </simpara></listitem></varlistentry> </variablelist><para role="since">Since 1.2 </para></refsect2> @@ -345,7 +355,7 @@ See <link linkend="cairo-ps-surface-dsc-comment"><function>cairo_ps_surface_dsc_ </para><variablelist role="params"> <varlistentry><term><parameter>surface</parameter> :</term> -<listitem><simpara> a PostScript cairo_surface_t +<listitem><simpara> a PostScript <link linkend="cairo-surface-t"><type>cairo_surface_t</type></link> </simpara></listitem></varlistentry> </variablelist><para role="since">Since 1.2 </para></refsect2> @@ -430,7 +440,7 @@ Here is an example sequence showing how this function might be used: </para> <para> <informalexample><programlisting> -cairo_surface_t *surface = cairo_ps_surface_create (filename, width, height); +<link linkend="cairo-surface-t">cairo_surface_t</link> *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") @@ -453,7 +463,7 @@ cairo_ps_surface_dsc_comment (surface, "%%IncludeFeature: *PageSize A5"); </para><variablelist role="params"> <varlistentry><term><parameter>surface</parameter> :</term> -<listitem><simpara> a PostScript cairo_surface_t +<listitem><simpara> a PostScript <link linkend="cairo-surface-t"><type>cairo_surface_t</type></link> </simpara></listitem></varlistentry> <varlistentry><term><parameter>comment</parameter> :</term> <listitem><simpara> a comment string to be emitted into the PostScript output @@ -465,6 +475,14 @@ cairo_ps_surface_dsc_comment (surface, "%%IncludeFeature: *PageSize A5"); +<refsect1> +<title>See Also</title> +<para> +<itemizedlist> +<listitem><link linkend="cairo-surface-t"><type>cairo_surface_t</type></link></listitem> +</itemizedlist> +</para> +</refsect1> <refsect1><refsect2 /><refsect2 /></refsect1> diff --git a/doc/public/xml/cairo-scaled-font.xml b/doc/public/xml/cairo-scaled-font.xml index 6363ced..86f5478 100644 --- a/doc/public/xml/cairo-scaled-font.xml +++ b/doc/public/xml/cairo-scaled-font.xml @@ -5,14 +5,14 @@ ]> <refentry id="cairo-Scaled-Fonts"> <refmeta> -<refentrytitle role="top_of_page">Scaled Fonts</refentrytitle> +<refentrytitle role="top_of_page">cairo_scaled_font_t</refentrytitle> <manvolnum>3</manvolnum> <refmiscinfo>CAIRO Library</refmiscinfo> </refmeta> <refnamediv> -<refname>Scaled Fonts</refname> -<refpurpose>Caching metrics for a particular font size</refpurpose> +<refname>cairo_scaled_font_t</refname> +<refpurpose>Font face at particular size and options</refpurpose> <!--[<xref linkend="desc" endterm="desc.title"/>]--> </refnamediv> @@ -72,7 +72,8 @@ unsigned <link linkend="int">int</link> <link linkend="cairo-scaled-font- <refsect1 role="desc"> <title role="desc.title">Description</title> <para> - +<link linkend="cairo-scaled-font-t"><type>cairo_scaled_font_t</type></link> represents a realization of a font face at a particular +size and transformation and a certain set of font options. </para> </refsect1> @@ -84,7 +85,7 @@ unsigned <link linkend="int">int</link> <link linkend="cairo-scaled-font- </programlisting> <para> A <link linkend="cairo-scaled-font-t"><type>cairo_scaled_font_t</type></link> is a font scaled to a particular size and device -resolution. A cairo_scaled_font_t is most useful for low-level font +resolution. A <link linkend="cairo-scaled-font-t"><type>cairo_scaled_font_t</type></link> is most useful for low-level font usage where a library or application wants to cache a reference to a scaled font to speed up the computation of metrics. </para> @@ -128,7 +129,8 @@ be used.</para> </simpara></listitem></varlistentry> <varlistentry><term><parameter>options</parameter> :</term> <listitem><simpara> options to use when getting metrics for the font and - rendering with it. + rendering with it. A <link linkend="NULL:CAPS"><literal>NULL</literal></link> pointer will be interpreted as + meaning the default options. </simpara></listitem></varlistentry> <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a newly created <link linkend="cairo-scaled-font-t"><type>cairo_scaled_font_t</type></link>. Destroy with <link linkend="cairo-scaled-font-destroy"><function>cairo_scaled_font_destroy()</function></link> @@ -149,7 +151,7 @@ The number of references to a <link linkend="cairo-scaled-font-t"><type>cairo_sc </para><variablelist role="params"> <varlistentry><term><parameter>scaled_font</parameter> :</term> -<listitem><simpara> a <link linkend="cairo-scaled-font-t"><type>cairo_scaled_font_t</type></link>, (may be NULL in which case +<listitem><simpara> a <link linkend="cairo-scaled-font-t"><type>cairo_scaled_font_t</type></link>, (may be <link linkend="NULL:CAPS"><literal>NULL</literal></link> in which case this function does nothing) </simpara></listitem></varlistentry> <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the referenced <link linkend="cairo-scaled-font-t"><type>cairo_scaled_font_t</type></link> @@ -572,6 +574,16 @@ attached to +<refsect1> +<title>See Also</title> +<para> +<itemizedlist> +<listitem><link linkend="cairo-font-face-t"><type>cairo_font_face_t</type></link></listitem> +<listitem><link linkend="cairo-matrix-t"><type>cairo_matrix_t</type></link></listitem> +<listitem><link linkend="cairo-font-options-t"><type>cairo_font_options_t</type></link></listitem> +</itemizedlist> +</para> +</refsect1> <refsect1><refsect2 /><refsect2 /></refsect1> diff --git a/doc/public/xml/cairo-status.xml b/doc/public/xml/cairo-status.xml index 644ba7d..42bbabb 100644 --- a/doc/public/xml/cairo-status.xml +++ b/doc/public/xml/cairo-status.xml @@ -23,7 +23,7 @@ -<link linkend="typedef">typedef</link> <link linkend="cairo-status-t">cairo_status_t</link> (); +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> @@ -40,15 +40,53 @@ const <link linkend="char">char</link>* <link linkend="cairo-status-to-s <refsect1 role="desc"> <title role="desc.title">Description</title> <para> - +Cairo uses a single status type to represent all kinds of errors. A status +value of <link linkend="CAIRO-STATUS-SUCCESS:CAPS"><literal>CAIRO_STATUS_SUCCESS</literal></link> represents no error and has an integer value +of zero. All other status values represent an error. +</para> +<para> +Cairo's error handling is designed to be easy to use and safe. All major +cairo objects <firstterm>retain</firstterm> an error status internally which +can be queried anytime by the users using cairo*<link linkend="status"><function>_status()</function></link> calls. In +the mean time, it is safe to call all cairo functions normally even if the +underlying object is in an error status. This means that no error handling +code is required before or after each individual cairo function call. </para> </refsect1> <refsect1 role="details"> <title role="details.title">Details</title> <refsect2> -<title><anchor id="cairo-status-t" role="function"/>cairo_status_t ()</title> -<indexterm><primary>cairo_status_t</primary></indexterm><programlisting><link linkend="typedef">typedef</link> cairo_status_t ();</programlisting> +<title><anchor id="cairo-status-t" role="enum"/>enum cairo_status_t</title> +<indexterm><primary>cairo_status_t</primary></indexterm><programlisting>typedef enum _cairo_status { + CAIRO_STATUS_SUCCESS = 0, + CAIRO_STATUS_NO_MEMORY, + CAIRO_STATUS_INVALID_RESTORE, + CAIRO_STATUS_INVALID_POP_GROUP, + CAIRO_STATUS_NO_CURRENT_POINT, + CAIRO_STATUS_INVALID_MATRIX, + CAIRO_STATUS_INVALID_STATUS, + CAIRO_STATUS_NULL_POINTER, + CAIRO_STATUS_INVALID_STRING, + CAIRO_STATUS_INVALID_PATH_DATA, + CAIRO_STATUS_READ_ERROR, + CAIRO_STATUS_WRITE_ERROR, + CAIRO_STATUS_SURFACE_FINISHED, + CAIRO_STATUS_SURFACE_TYPE_MISMATCH, + CAIRO_STATUS_PATTERN_TYPE_MISMATCH, + CAIRO_STATUS_INVALID_CONTENT, + CAIRO_STATUS_INVALID_FORMAT, + CAIRO_STATUS_INVALID_VISUAL, + CAIRO_STATUS_FILE_NOT_FOUND, + CAIRO_STATUS_INVALID_DASH, + CAIRO_STATUS_INVALID_DSC_COMMENT, + CAIRO_STATUS_INVALID_INDEX, + CAIRO_STATUS_CLIP_NOT_REPRESENTABLE, + CAIRO_STATUS_TEMP_FILE_ERROR, + CAIRO_STATUS_INVALID_STRIDE + /* after adding a new error: update CAIRO_STATUS_LAST_STATUS in cairo.c */ +} cairo_status_t; +</programlisting> <para> <link linkend="cairo-status-t"><type>cairo_status_t</type></link> is used to indicate errors that can occur when using Cairo. In some cases it is returned directly by functions. @@ -60,11 +98,132 @@ New entries may be added in future versions. Use <link linkend="cairo-status-to to get a human-readable representation of an error message.</para> <para> -</para><variablelist role="params"> -<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> - - -</simpara></listitem></varlistentry> +</para><variablelist role="enum"> +<varlistentry> +<term><anchor id="CAIRO-STATUS-SUCCESS:CAPS" role="constant"/><literal>CAIRO_STATUS_SUCCESS</literal></term> +<listitem><simpara> no error has occurred +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-STATUS-NO-MEMORY:CAPS" role="constant"/><literal>CAIRO_STATUS_NO_MEMORY</literal></term> +<listitem><simpara> out of memory +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-STATUS-INVALID-RESTORE:CAPS" role="constant"/><literal>CAIRO_STATUS_INVALID_RESTORE</literal></term> +<listitem><simpara> <link linkend="cairo-restore"><function>cairo_restore()</function></link> called without matching <link linkend="cairo-save"><function>cairo_save()</function></link> +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-STATUS-INVALID-POP-GROUP:CAPS" role="constant"/><literal>CAIRO_STATUS_INVALID_POP_GROUP</literal></term> +<listitem><simpara> no saved group to pop +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-STATUS-NO-CURRENT-POINT:CAPS" role="constant"/><literal>CAIRO_STATUS_NO_CURRENT_POINT</literal></term> +<listitem><simpara> no current point defined +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-STATUS-INVALID-MATRIX:CAPS" role="constant"/><literal>CAIRO_STATUS_INVALID_MATRIX</literal></term> +<listitem><simpara> invalid matrix (not invertible) +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-STATUS-INVALID-STATUS:CAPS" role="constant"/><literal>CAIRO_STATUS_INVALID_STATUS</literal></term> +<listitem><simpara> invalid value for an input <link linkend="cairo-status-t"><type>cairo_status_t</type></link> +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-STATUS-NULL-POINTER:CAPS" role="constant"/><literal>CAIRO_STATUS_NULL_POINTER</literal></term> +<listitem><simpara> <link linkend="NULL:CAPS"><literal>NULL</literal></link> pointer +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-STATUS-INVALID-STRING:CAPS" role="constant"/><literal>CAIRO_STATUS_INVALID_STRING</literal></term> +<listitem><simpara> input string not valid UTF-8 +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-STATUS-INVALID-PATH-DATA:CAPS" role="constant"/><literal>CAIRO_STATUS_INVALID_PATH_DATA</literal></term> +<listitem><simpara> input path data not valid +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-STATUS-READ-ERROR:CAPS" role="constant"/><literal>CAIRO_STATUS_READ_ERROR</literal></term> +<listitem><simpara> error while reading from input stream +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-STATUS-WRITE-ERROR:CAPS" role="constant"/><literal>CAIRO_STATUS_WRITE_ERROR</literal></term> +<listitem><simpara> error while writing to output stream +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-STATUS-SURFACE-FINISHED:CAPS" role="constant"/><literal>CAIRO_STATUS_SURFACE_FINISHED</literal></term> +<listitem><simpara> target surface has been finished +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-STATUS-SURFACE-TYPE-MISMATCH:CAPS" role="constant"/><literal>CAIRO_STATUS_SURFACE_TYPE_MISMATCH</literal></term> +<listitem><simpara> the surface type is not appropriate for the operation +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS" role="constant"/><literal>CAIRO_STATUS_PATTERN_TYPE_MISMATCH</literal></term> +<listitem><simpara> the pattern type is not appropriate for the operation +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-STATUS-INVALID-CONTENT:CAPS" role="constant"/><literal>CAIRO_STATUS_INVALID_CONTENT</literal></term> +<listitem><simpara> invalid value for an input <link linkend="cairo-content-t"><type>cairo_content_t</type></link> +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-STATUS-INVALID-FORMAT:CAPS" role="constant"/><literal>CAIRO_STATUS_INVALID_FORMAT</literal></term> +<listitem><simpara> invalid value for an input <link linkend="cairo-format-t"><type>cairo_format_t</type></link> +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-STATUS-INVALID-VISUAL:CAPS" role="constant"/><literal>CAIRO_STATUS_INVALID_VISUAL</literal></term> +<listitem><simpara> invalid value for an input Visual* +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-STATUS-FILE-NOT-FOUND:CAPS" role="constant"/><literal>CAIRO_STATUS_FILE_NOT_FOUND</literal></term> +<listitem><simpara> file not found +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-STATUS-INVALID-DASH:CAPS" role="constant"/><literal>CAIRO_STATUS_INVALID_DASH</literal></term> +<listitem><simpara> invalid value for a dash setting +</simpara></listitem> +</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 (Since 1.2) +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-STATUS-INVALID-INDEX:CAPS" role="constant"/><literal>CAIRO_STATUS_INVALID_INDEX</literal></term> +<listitem><simpara> invalid index passed to getter (Since 1.4) +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-STATUS-CLIP-NOT-REPRESENTABLE:CAPS" role="constant"/><literal>CAIRO_STATUS_CLIP_NOT_REPRESENTABLE</literal></term> +<listitem><simpara> clip region not representable in desired format (Since 1.4) +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-STATUS-TEMP-FILE-ERROR:CAPS" role="constant"/><literal>CAIRO_STATUS_TEMP_FILE_ERROR</literal></term> +<listitem><simpara> error creating or writing to a temporary file (Since 1.6) +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-STATUS-INVALID-STRIDE:CAPS" role="constant"/><literal>CAIRO_STATUS_INVALID_STRIDE</literal></term> +<listitem><simpara> invalid value for stride (Since 1.6) +</simpara></listitem> +</varlistentry> </variablelist></refsect2> <refsect2> <title><anchor id="cairo-status-to-string" role="function"/>cairo_status_to_string ()</title> @@ -77,7 +236,7 @@ Provides a human-readable description of a <link linkend="cairo-status-t"><type> <varlistentry><term><parameter>status</parameter> :</term> <listitem><simpara> a cairo status </simpara></listitem></varlistentry> -<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>a string representation of the status +<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a string representation of the status </simpara></listitem></varlistentry> </variablelist></refsect2> <refsect2> @@ -91,9 +250,9 @@ example, all caches within cairo will be flushed empty. <para> This function is intended to be useful when using memory-checking tools such as valgrind. When valgrind's memcheck analyzes a -cairo-using program without a call to cairo_debug_reset_static_data, +cairo-using program without a call to <link linkend="cairo-debug-reset-static-data"><function>cairo_debug_reset_static_data()</function></link>, it will report all data reachable via cairo's static objects as -"still reachable". Calling cairo_debug_reset_static_data just prior +"still reachable". Calling <link linkend="cairo-debug-reset-static-data"><function>cairo_debug_reset_static_data()</function></link> just prior to program termination will make it easier to get squeaky clean reports from valgrind. </para> @@ -111,6 +270,18 @@ failure due to a hash table being destroyed when non-empty).</para> +<refsect1> +<title>See Also</title> +<para> +<itemizedlist> +<listitem><link linkend="cairo-status"><function>cairo_status()</function></link></listitem> +<listitem><link linkend="cairo-surface-status"><function>cairo_surface_status()</function></link></listitem> +<listitem><link linkend="cairo-pattern-status"><function>cairo_pattern_status()</function></link></listitem> +<listitem><link linkend="cairo-font-face-status"><function>cairo_font_face_status()</function></link></listitem> +<listitem><link linkend="cairo-scaled-font-status"><function>cairo_scaled_font_status()</function></link></listitem> +</itemizedlist> +</para> +</refsect1> <refsect1><refsect2 /><refsect2 /></refsect1> diff --git a/doc/public/xml/cairo-surface.xml b/doc/public/xml/cairo-surface.xml index 2b98130..e412f44 100644 --- a/doc/public/xml/cairo-surface.xml +++ b/doc/public/xml/cairo-surface.xml @@ -62,8 +62,8 @@ unsigned <link linkend="int">int</link> <link linkend="cairo-surface-get- <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="cairo-status-t">cairo_status_t</link> <link linkend="cairo-surface-copy-page">cairo_surface_copy_page</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface); -<link linkend="cairo-status-t">cairo_status_t</link> <link linkend="cairo-surface-show-page">cairo_surface_show_page</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface); +<link linkend="void">void</link> <link linkend="cairo-surface-copy-page">cairo_surface_copy_page</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface); +<link linkend="void">void</link> <link linkend="cairo-surface-show-page">cairo_surface_show_page</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface); </synopsis> </refsynopsisdiv> @@ -78,7 +78,14 @@ unsigned <link linkend="int">int</link> <link linkend="cairo-surface-get- <refsect1 role="desc"> <title role="desc.title">Description</title> <para> - +<link linkend="cairo-surface-t"><type>cairo_surface_t</type></link> is the abstract type representing all different drawing +targets that cairo can render to. The actual drawings are +performed using a cairo <firstterm>context</firstterm>. +</para> +<para> +A cairo surface is created by using <firstterm>backend</firstterm>-specific +constructors, typically of the form +cairo_<emphasis>backend</emphasis><link linkend="surface-create"><function>_surface_create()</function></link>. </para> </refsect1> @@ -120,8 +127,8 @@ contain, whether color information, alpha information (translucence vs. opacity), or both. </para> <para> -Note: The large values here are designed to keep cairo_content_t -values distinct from cairo_format_t values so that the +Note: The large values here are designed to keep <link linkend="cairo-content-t"><type>cairo_content_t</type></link> +values distinct from <link linkend="cairo-format-t"><type>cairo_format_t</type></link> values so that the implementation can detect the error if users confuse the two types.</para> <para> @@ -175,7 +182,7 @@ have transparency, black otherwise.)</para> <listitem><simpara> height of the new surface (in device-space units) </simpara></listitem></varlistentry> <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a pointer to the newly allocated surface. The caller -owns the surface and should call cairo_surface_destroy when done +owns the surface and should call <link linkend="cairo-surface-destroy"><function>cairo_surface_destroy()</function></link> when done with it. This function always returns a valid pointer, but it will return a @@ -446,7 +453,7 @@ device resolution. So this function has no effect on those backends. </para> <para> -NOTE: The fallback resolution only takes effect at the time of +Note: The fallback resolution only takes effect at the time of completing a page (with <link linkend="cairo-show-page"><function>cairo_show_page()</function></link> or <link linkend="cairo-copy-page"><function>cairo_copy_page()</function></link>) so there is currently no way to have more than one fallback resolution in effect on a single page.</para> @@ -489,14 +496,14 @@ backends" within cairo. </para> <para> The type of a surface is determined by the function used to create -it, which will generally be of the form cairo_<emphasis>type</emphasis>_surface_create, -(though see cairo_surface_create_similar as well). +it, which will generally be of the form cairo_<emphasis>type</emphasis><link linkend="surface-create"><function>_surface_create()</function></link>, +(though see <link linkend="cairo-surface-create-similar"><function>cairo_surface_create_similar()</function></link> as well). </para> <para> The surface type can be queried with <link linkend="cairo-surface-get-type"><function>cairo_surface_get_type()</function></link> </para> <para> -The various cairo_surface functions can be used with surfaces of +The various <link linkend="cairo-surface-t"><type>cairo_surface_t</type></link> functions can be used with surfaces of 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 @@ -666,7 +673,7 @@ attached to </variablelist></refsect2> <refsect2> <title><anchor id="cairo-surface-copy-page" role="function" condition="since:1.6"/>cairo_surface_copy_page ()</title> -<indexterm role="1.6"><primary>cairo_surface_copy_page</primary></indexterm><programlisting><link linkend="cairo-status-t">cairo_status_t</link> cairo_surface_copy_page (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);</programlisting> +<indexterm role="1.6"><primary>cairo_surface_copy_page</primary></indexterm><programlisting><link linkend="void">void</link> cairo_surface_copy_page (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);</programlisting> <para> Emits the current page for backends that support multiple pages, but doesn't clear it, so that the contents of the current page will @@ -676,17 +683,13 @@ want to get an empty page after the emission.</para> </para><variablelist role="params"> <varlistentry><term><parameter>surface</parameter> :</term> -<listitem><simpara> -</simpara></listitem></varlistentry> -<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> - - +<listitem><simpara> a <link linkend="cairo-surface-t"><type>cairo_surface_t</type></link> </simpara></listitem></varlistentry> </variablelist><para role="since">Since 1.6 </para></refsect2> <refsect2> <title><anchor id="cairo-surface-show-page" role="function" condition="since:1.6"/>cairo_surface_show_page ()</title> -<indexterm role="1.6"><primary>cairo_surface_show_page</primary></indexterm><programlisting><link linkend="cairo-status-t">cairo_status_t</link> cairo_surface_show_page (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);</programlisting> +<indexterm role="1.6"><primary>cairo_surface_show_page</primary></indexterm><programlisting><link linkend="void">void</link> cairo_surface_show_page (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);</programlisting> <para> Emits and clears the current page for backends that support multiple pages. Use <link linkend="cairo-surface-copy-page"><function>cairo_surface_copy_page()</function></link> if you don't want to clear the page.</para> @@ -696,10 +699,6 @@ pages. Use <link linkend="cairo-surface-copy-page"><function>cairo_surface_copy <varlistentry><term><parameter>surface</parameter> :</term> <listitem><simpara> a <link linkend="cairo-Surface-t"><type>cairo_Surface_t</type></link> </simpara></listitem></varlistentry> -<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> - - -</simpara></listitem></varlistentry> </variablelist><para role="since">Since 1.6 </para></refsect2> @@ -707,6 +706,15 @@ pages. Use <link linkend="cairo-surface-copy-page"><function>cairo_surface_copy +<refsect1> +<title>See Also</title> +<para> +<itemizedlist> +<listitem>#<link linkend="cairo-t"><function>cairo_t()</function></link></listitem> +<listitem>#<link linkend="cairo-pattern-t"><function>cairo_pattern_t()</function></link></listitem> +</itemizedlist> +</para> +</refsect1> <refsect1><refsect2 /><refsect2 /></refsect1> diff --git a/doc/public/xml/cairo-svg.xml b/doc/public/xml/cairo-svg.xml index 3ffeb8a..70d6944 100644 --- a/doc/public/xml/cairo-svg.xml +++ b/doc/public/xml/cairo-svg.xml @@ -23,6 +23,7 @@ +#define <link linkend="CAIRO-HAS-SVG-SURFACE:CAPS">CAIRO_HAS_SVG_SURFACE</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); @@ -51,13 +52,22 @@ const <link linkend="char">char</link>* <link linkend="cairo-svg-version <refsect1 role="desc"> <title role="desc.title">Description</title> <para> - +The SVG surface is used to render cairo graphics to +SVG files and is a multi-page vector surface backend. </para> </refsect1> <refsect1 role="details"> <title role="details.title">Details</title> <refsect2> +<title><anchor id="CAIRO-HAS-SVG-SURFACE:CAPS" role="macro"/>CAIRO_HAS_SVG_SURFACE</title> +<indexterm><primary>CAIRO_HAS_SVG_SURFACE</primary></indexterm><programlisting>#define CAIRO_HAS_SVG_SURFACE 1 +</programlisting> +<para> +Defined if the SVG surface backend is available. +This macro can be used to conditionally compile backend-specific code. +</para></refsect2> +<refsect2> <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, @@ -78,7 +88,7 @@ to <parameter>filename</parameter>.</para> <listitem><simpara> height of the surface, in points (1 point == 1/72.0 inch) </simpara></listitem></varlistentry> <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a pointer to the newly created surface. The caller -owns the surface and should call cairo_surface_destroy when done +owns the surface and should call <link linkend="cairo-surface-destroy"><function>cairo_surface_destroy()</function></link> when done with it. This function always returns a valid pointer, but it will return a @@ -113,7 +123,7 @@ incrementally to the stream represented by <parameter>write_func</parameter> and <listitem><simpara> height of the surface, in points (1 point == 1/72.0 inch) </simpara></listitem></varlistentry> <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a pointer to the newly created surface. The caller -owns the surface and should call cairo_surface_destroy when done +owns the surface and should call <link linkend="cairo-surface-destroy"><function>cairo_surface_destroy()</function></link> when done with it. This function always returns a valid pointer, but it will return a @@ -195,7 +205,7 @@ Used to retrieve the list of supported versions. See <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> Get the string representation of the given <parameter>version</parameter> id. This function -will return NULL if <parameter>version</parameter> isn't valid. See <link linkend="cairo-svg-get-versions"><function>cairo_svg_get_versions()</function></link> +will return <link linkend="NULL:CAPS"><literal>NULL</literal></link> if <parameter>version</parameter> isn't valid. See <link linkend="cairo-svg-get-versions"><function>cairo_svg_get_versions()</function></link> for a way to get the list of valid version ids.</para> <para> @@ -213,6 +223,14 @@ for a way to get the list of valid version ids.</para> +<refsect1> +<title>See Also</title> +<para> +<itemizedlist> +<listitem>#<link linkend="cairo-surface-t"><function>cairo_surface_t()</function></link></listitem> +</itemizedlist> +</para> +</refsect1> <refsect1><refsect2 /><refsect2 /></refsect1> diff --git a/doc/public/xml/cairo-text.xml b/doc/public/xml/cairo-text.xml index e54225e..af1086e 100644 --- a/doc/public/xml/cairo-text.xml +++ b/doc/public/xml/cairo-text.xml @@ -12,7 +12,7 @@ <refnamediv> <refname>Text</refname> -<refpurpose>Rendering text and sets of glyphs</refpurpose> +<refpurpose>Rendering text and glyphs</refpurpose> <!--[<xref linkend="desc" endterm="desc.title"/>]--> </refnamediv> @@ -74,7 +74,30 @@ enum <link linkend="cairo-font-weight-t">cairo_font_weight_t</lin <refsect1 role="desc"> <title role="desc.title">Description</title> <para> - +Cairo has two sets of text rendering capabilities: +<itemizedlist> + <listitem> + The functions with <emphasis>text</emphasis> in their name form cairo's + <firstterm>toy</firstterm> text API. The toy API takes UTF-8 encoded + text and is limited in its functionality to rendering simple + left-to-right text with no advanced features. That means for example + that most complex scripts like Hebrew, Arabic, and Indic scripts are + out of question. No kerning or correct positioning of diacritical marks + either. The font selection is pretty limited too and doesn't handle the + case that the selected font does not cover the characters in the text. + This set of functions are really that, a toy text API, for testing and + demonstration purposes. Any serious application should avoid them. + </listitem> + <listitem> + The functions with <emphasis>glyphs</emphasis> in their name form cairo's + <firstterm>low-level</firstterm> text API. The low-level API relies on + the user to convert text to a set of glyph indexes and positions. This + is a very hard problem and is best handled by external libraries, like + the pangocairo that is part of the Pango text layout and rendering library. + Pango is available from <ulink + url="http://www.pango.org/">http://www.pango.org/</ulink>. + </listitem> +</itemizedlist> </para> </refsect1> @@ -340,7 +363,7 @@ special "nil" <link linkend="cairo-font-face-t"><type>cairo_font_face_t</type></ this nil object will cause its error state to propagate to other objects it is passed to, (for example, calling <link linkend="cairo-set-font-face"><function>cairo_set_font_face()</function></link> with a nil font will trigger an error that -will shutdown the cairo_t object). +will shutdown the <link linkend="cairo-t"><type>cairo_t</type></link> object). </simpara></listitem></varlistentry> </variablelist></refsect2> <refsect2> @@ -385,7 +408,7 @@ special "nil" <link linkend="cairo-scaled-font-t"><type>cairo_scaled_font_t</typ this nil object will cause its error state to propagate to other objects it is passed to, (for example, calling <link linkend="cairo-set-scaled-font"><function>cairo_set_scaled_font()</function></link> with a nil font will trigger an error that -will shutdown the cairo_t object). +will shutdown the <link linkend="cairo-t"><type>cairo_t</type></link> object). </simpara></listitem></varlistentry> </variablelist><para role="since">Since 1.4 @@ -414,7 +437,7 @@ by its advance values. This allows for easy display of a single logical string with multiple calls to <link linkend="cairo-show-text"><function>cairo_show_text()</function></link>. </para> <para> -NOTE: The <link linkend="cairo-show-text"><function>cairo_show_text()</function></link> function call is part of what the cairo +Note: The <link linkend="cairo-show-text"><function>cairo_show_text()</function></link> function call is part of what the cairo designers call the "toy" text API. It is convenient for short demos and simple programs, but it is not expected to be adequate for serious text-using applications. See <link linkend="cairo-show-glyphs"><function>cairo_show_glyphs()</function></link> for the @@ -540,6 +563,17 @@ will be stored +<refsect1> +<title>See Also</title> +<para> +<itemizedlist> +<listitem><link linkend="cairo-font-face-t"><type>cairo_font_face_t</type></link></listitem> +<listitem><link linkend="cairo-scaled-font-t"><type>cairo_scaled_font_t</type></link></listitem> +<listitem><link linkend="cairo-text-path"><function>cairo_text_path()</function></link></listitem> +<listitem><link linkend="cairo-glyph-path"><function>cairo_glyph_path()</function></link></listitem> +</itemizedlist> +</para> +</refsect1> <refsect1><refsect2 /><refsect2 /></refsect1> diff --git a/doc/public/xml/cairo-transforms.xml b/doc/public/xml/cairo-transforms.xml index a7b7f6a..6b40fa4 100644 --- a/doc/public/xml/cairo-transforms.xml +++ b/doc/public/xml/cairo-transforms.xml @@ -64,7 +64,11 @@ <refsect1 role="desc"> <title role="desc.title">Description</title> <para> - +The current transformation matrix, <firstterm>ctm</firstterm>, is a +two-dimensional affine transformation that maps all coordinates and other +drawing instruments from the <firstterm>user space</firstterm> into the +surface's canonical coordinate system, also known as the <firstterm>device +space</firstterm>. </para> </refsect1> @@ -79,7 +83,7 @@ Modifies the current transformation matrix (CTM) by translating the user-space origin by (<parameter>tx</parameter>, <parameter>ty</parameter>). This offset is interpreted as a user-space coordinate according to the CTM in place before the new -call to cairo_translate. In other words, the translation of the +call to <link linkend="cairo-translate"><function>cairo_translate()</function></link>. In other words, the translation of the user-space origin takes place after any existing transformation.</para> <para> @@ -299,6 +303,14 @@ transforming (<parameter>dx</parameter>,<parameter>dy</parameter>).</para> +<refsect1> +<title>See Also</title> +<para> +<itemizedlist> +<listitem><link linkend="cairo-matrix-t"><type>cairo_matrix_t</type></link></listitem> +</itemizedlist> +</para> +</refsect1> <refsect1><refsect2 /><refsect2 /></refsect1> diff --git a/doc/public/xml/cairo-types.xml b/doc/public/xml/cairo-types.xml index d094244..6339970 100644 --- a/doc/public/xml/cairo-types.xml +++ b/doc/public/xml/cairo-types.xml @@ -12,7 +12,7 @@ <refnamediv> <refname>Types</refname> -<refpurpose>Generic data types used in the cairo API</refpurpose> +<refpurpose>Generic data types</refpurpose> <!--[<xref linkend="desc" endterm="desc.title"/>]--> </refnamediv> @@ -40,7 +40,7 @@ typedef <link linkend="cairo-bool-t">cairo_bool_t</link>; <refsect1 role="desc"> <title role="desc.title">Description</title> <para> - +Generic data types used in the cairo API </para> </refsect1> diff --git a/doc/public/xml/cairo-version.xml b/doc/public/xml/cairo-version.xml index f0adbd9..4185597 100644 --- a/doc/public/xml/cairo-version.xml +++ b/doc/public/xml/cairo-version.xml @@ -116,7 +116,7 @@ rather the many states between snapshots and releases. 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 an encoded form suitable for direct comparison. Cairo also provides a -macro (CAIRO_VERSION_ENCODE) to perform the encoding. +macro (<link linkend="CAIRO-VERSION-ENCODE:CAPS"><function>CAIRO_VERSION_ENCODE()</function></link>) to perform the encoding. </para> <para> @@ -139,7 +139,7 @@ to 1.0.0 could be achieved at compile-time or run-time as follows: <informalexample><programlisting> ##if %CAIRO_VERSION >= %CAIRO_VERSION_ENCODE(1, 0, 0) -printf ("Compiling with suitable cairo version: %%s\n", CAIRO_VERSION_STRING); +printf ("Compiling with suitable cairo version: %%s\n", %CAIRO_VERSION_STRING); ##endif if (cairo_version() >= %CAIRO_VERSION_ENCODE(1, 0, 0)) @@ -174,14 +174,14 @@ The minor component of the version of cairo available at compile-time. </para></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 6 +<indexterm><primary>CAIRO_VERSION_MICRO</primary></indexterm><programlisting>#define CAIRO_VERSION_MICRO 8 </programlisting> <para> The micro component of the version of cairo available at compile-time. </para></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.5.6" +<indexterm><primary>CAIRO_VERSION_STRING</primary></indexterm><programlisting>#define CAIRO_VERSION_STRING "1.5.8" </programlisting> <para> A human-readable string literal containing the version of cairo available @@ -213,7 +213,7 @@ that later versions compare greater than earlier versions. <indexterm><primary>cairo_version</primary></indexterm><programlisting><link linkend="int">int</link> cairo_version (void);</programlisting> <para> Returns the version of the cairo library encoded in a single -integer as per CAIRO_VERSION_ENCODE. The encoding ensures that +integer as per <link linkend="CAIRO-VERSION-ENCODE:CAPS"><literal>CAIRO_VERSION_ENCODE</literal></link>. The encoding ensures that later versions compare greater than earlier versions. </para> <para> diff --git a/doc/public/xml/cairo-win32-fonts.xml b/doc/public/xml/cairo-win32-fonts.xml index f1aaca3..b1dd360 100644 --- a/doc/public/xml/cairo-win32-fonts.xml +++ b/doc/public/xml/cairo-win32-fonts.xml @@ -23,6 +23,7 @@ +#define <link linkend="CAIRO-HAS-WIN32-FONT:CAPS">CAIRO_HAS_WIN32_FONT</link> <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> @@ -55,13 +56,22 @@ <refsect1 role="desc"> <title role="desc.title">Description</title> <para> - +The Microsoft Windows font backend is primarily used to render text on +Microsoft Windows systems. </para> </refsect1> <refsect1 role="details"> <title role="details.title">Details</title> <refsect2> +<title><anchor id="CAIRO-HAS-WIN32-FONT:CAPS" role="macro"/>CAIRO_HAS_WIN32_FONT</title> +<indexterm><primary>CAIRO_HAS_WIN32_FONT</primary></indexterm><programlisting>#define CAIRO_HAS_WIN32_FONT 1 +</programlisting> +<para> +Defined if the Microsoft Windows font backend is available. +This macro can be used to conditionally compile backend-specific code. +</para></refsect2> +<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> @@ -243,6 +253,14 @@ used by <parameter>scaled_font</parameter>.</para> +<refsect1> +<title>See Also</title> +<para> +<itemizedlist> +<listitem><link linkend="cairo-font-face-t"><type>cairo_font_face_t</type></link></listitem> +</itemizedlist> +</para> +</refsect1> <refsect1><refsect2 /><refsect2 /></refsect1> diff --git a/doc/public/xml/cairo-win32.xml b/doc/public/xml/cairo-win32.xml index 3837382..dc03571 100644 --- a/doc/public/xml/cairo-win32.xml +++ b/doc/public/xml/cairo-win32.xml @@ -23,6 +23,7 @@ +#define <link linkend="CAIRO-HAS-WIN32-SURFACE:CAPS">CAIRO_HAS_WIN32_SURFACE</link> <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, @@ -48,13 +49,31 @@ <refsect1 role="desc"> <title role="desc.title">Description</title> <para> - +The Microsoft Windows surface is used to render cairo graphics to +Microsoft Windows windows, bitmaps, and printing device contexts. +</para> +<para> +The surface returned by <link linkend="cairo-win32-printing-surface-create"><function>cairo_win32_printing_surface_create()</function></link> is of surface +type <link linkend="CAIRO-SURFACE-TYPE-WIN32-PRINTING:CAPS"><literal>CAIRO_SURFACE_TYPE_WIN32_PRINTING</literal></link> and is a multi-page vector surface +type. +</para> +<para> +The surface returned by the other win32 constructors is of surface type +<link linkend="CAIRO-SURFACE-TYPE-WIN32:CAPS"><literal>CAIRO_SURFACE_TYPE_WIN32</literal></link> and is a raster surface type. </para> </refsect1> <refsect1 role="details"> <title role="details.title">Details</title> <refsect2> +<title><anchor id="CAIRO-HAS-WIN32-SURFACE:CAPS" role="macro"/>CAIRO_HAS_WIN32_SURFACE</title> +<indexterm><primary>CAIRO_HAS_WIN32_SURFACE</primary></indexterm><programlisting>#define CAIRO_HAS_WIN32_SURFACE 1 +</programlisting> +<para> +Defined if the Microsoft Windows surface backend is available. +This macro can be used to conditionally compile backend-specific code. +</para></refsect2> +<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> <para> @@ -155,15 +174,15 @@ associated methods must be used for correct output.</para> <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> -Returns the HDC associated with this surface, or NULL if none. -Also returns NULL if the surface is not a win32 surface.</para> +Returns the HDC associated with this surface, or <link linkend="NULL:CAPS"><literal>NULL</literal></link> if none. +Also returns <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the surface is not a win32 surface.</para> <para> </para><variablelist role="params"> <varlistentry><term><parameter>surface</parameter> :</term> <listitem><simpara> a <link linkend="cairo-surface-t"><type>cairo_surface_t</type></link> </simpara></listitem></varlistentry> -<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> HDC or NULL if no HDC available. +<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> HDC or <link linkend="NULL:CAPS"><literal>NULL</literal></link> if no HDC available. </simpara></listitem></varlistentry> </variablelist><para role="since">Since 1.2 @@ -174,15 +193,15 @@ Also returns NULL if the surface is not a win32 surface.</para> <para> Returns a <link linkend="cairo-surface-t"><type>cairo_surface_t</type></link> image surface that refers to the same bits as the DIB of the Win32 surface. If the passed-in win32 surface -is not a DIB surface, NULL is returned.</para> +is not a DIB surface, <link linkend="NULL:CAPS"><literal>NULL</literal></link> is returned.</para> <para> </para><variablelist role="params"> <varlistentry><term><parameter>surface</parameter> :</term> <listitem><simpara> a <link linkend="cairo-surface-t"><type>cairo_surface_t</type></link> </simpara></listitem></varlistentry> -<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a <link linkend="cairo-surface-t"><type>cairo_surface_t</type></link> (owned by the win32 cairo_surface_t), -or NULL if the win32 surface is not a DIB. +<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a <link linkend="cairo-surface-t"><type>cairo_surface_t</type></link> (owned by the win32 <link linkend="cairo-surface-t"><type>cairo_surface_t</type></link>), +or <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the win32 surface is not a DIB. </simpara></listitem></varlistentry> </variablelist><para role="since">Since 1.4 @@ -192,6 +211,14 @@ or NULL if the win32 surface is not a DIB. +<refsect1> +<title>See Also</title> +<para> +<itemizedlist> +<listitem><link linkend="cairo-surface-t"><type>cairo_surface_t</type></link></listitem> +</itemizedlist> +</para> +</refsect1> <refsect1><refsect2 /><refsect2 /></refsect1> diff --git a/doc/public/xml/cairo-xlib-xrender.xml b/doc/public/xml/cairo-xlib-xrender.xml index 2a6ceb4..2e944db 100644 --- a/doc/public/xml/cairo-xlib-xrender.xml +++ b/doc/public/xml/cairo-xlib-xrender.xml @@ -5,14 +5,14 @@ ]> <refentry id="cairo-XLib/Xrender-Backend"> <refmeta> -<refentrytitle role="top_of_page">XLib/Xrender Backend</refentrytitle> +<refentrytitle role="top_of_page">XLib/XRender Backend</refentrytitle> <manvolnum>3</manvolnum> <refmiscinfo>CAIRO Library</refmiscinfo> </refmeta> <refnamediv> -<refname>XLib/Xrender Backend</refname> -<refpurpose></refpurpose> +<refname>XLib/XRender Backend</refname> +<refpurpose>X Window System rendering using XLib and the X Render extension</refpurpose> <!--[<xref linkend="desc" endterm="desc.title"/>]--> </refnamediv> @@ -23,6 +23,7 @@ +#define <link linkend="CAIRO-HAS-XLIB-XRENDER-SURFACE:CAPS">CAIRO_HAS_XLIB_XRENDER_SURFACE</link> <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, @@ -30,6 +31,8 @@ <link linkend="XRenderPictFormat">XRenderPictFormat</link> *format, <link linkend="int">int</link> width, <link linkend="int">int</link> height); +<link linkend="XRenderPictFormat">XRenderPictFormat</link>* <link linkend="cairo-xlib-surface-get-xrender-format">cairo_xlib_surface_get_xrender_format</link> + (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface); </synopsis> </refsynopsisdiv> @@ -44,13 +47,26 @@ <refsect1 role="desc"> <title role="desc.title">Description</title> <para> - +The XLib surface is used to render cairo graphics to X Window System +windows and pixmaps using the XLib and Xrender libraries. +</para> +<para> +Note that the XLib surface automatically takes advantage of X Render extension +if it is available. </para> </refsect1> <refsect1 role="details"> <title role="details.title">Details</title> <refsect2> +<title><anchor id="CAIRO-HAS-XLIB-XRENDER-SURFACE:CAPS" role="macro"/>CAIRO_HAS_XLIB_XRENDER_SURFACE</title> +<indexterm><primary>CAIRO_HAS_XLIB_XRENDER_SURFACE</primary></indexterm><programlisting>#define CAIRO_HAS_XLIB_XRENDER_SURFACE 1 +</programlisting> +<para> +Defined if the XLib/XRender surface functions are available. +This macro can be used to conditionally compile backend-specific code. +</para></refsect2> +<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, @@ -65,7 +81,7 @@ The way that colors are represented in the drawable is specified by the provided picture format. </para> <para> -NOTE: If <parameter>drawable</parameter> is a Window, then the function +Note: If <parameter>drawable</parameter> is a Window, then the function cairo_xlib_surface_set_size must be called whenever the size of the window changes.</para> <para> @@ -93,11 +109,41 @@ window changes.</para> <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the newly created surface </simpara></listitem></varlistentry> </variablelist></refsect2> +<refsect2> +<title><anchor id="cairo-xlib-surface-get-xrender-format" role="function" condition="since:1.6"/>cairo_xlib_surface_get_xrender_format ()</title> +<indexterm role="1.6"><primary>cairo_xlib_surface_get_xrender_format</primary></indexterm><programlisting><link linkend="XRenderPictFormat">XRenderPictFormat</link>* cairo_xlib_surface_get_xrender_format + (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);</programlisting> +<para> +Gets the X Render picture format that <parameter>surface</parameter> uses for rendering with the +X Render extension. If the surface was created by +<link linkend="cairo-xlib-surface-create-with-xrender-format"><function>cairo_xlib_surface_create_with_xrender_format()</function></link> originally, the return +value is the format passed to that constructor.</para> +<para> + +</para><variablelist role="params"> +<varlistentry><term><parameter>surface</parameter> :</term> +<listitem><simpara> an xlib surface +</simpara></listitem></varlistentry> +<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the XRenderPictFormat* associated with <parameter>surface</parameter>, +or <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the surface is not an xlib surface +or if the X Render extension is not available. + +</simpara></listitem></varlistentry> +</variablelist><para role="since">Since 1.6 +</para></refsect2> </refsect1> +<refsect1> +<title>See Also</title> +<para> +<itemizedlist> +<listitem><link linkend="cairo-surface-t"><type>cairo_surface_t</type></link></listitem> +</itemizedlist> +</para> +</refsect1> <refsect1><refsect2 /><refsect2 /></refsect1> diff --git a/doc/public/xml/cairo-xlib.xml b/doc/public/xml/cairo-xlib.xml index e07b29f..69882cb 100644 --- a/doc/public/xml/cairo-xlib.xml +++ b/doc/public/xml/cairo-xlib.xml @@ -23,6 +23,7 @@ +#define <link linkend="CAIRO-HAS-XLIB-SURFACE:CAPS">CAIRO_HAS_XLIB_SURFACE</link> <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, @@ -62,13 +63,26 @@ <refsect1 role="desc"> <title role="desc.title">Description</title> <para> - +The XLib surface is used to render cairo graphics to X Window System +windows and pixmaps using the XLib library. +</para> +<para> +Note that the XLib surface automatically takes advantage of X render extension +if it is available. </para> </refsect1> <refsect1 role="details"> <title role="details.title">Details</title> <refsect2> +<title><anchor id="CAIRO-HAS-XLIB-SURFACE:CAPS" role="macro"/>CAIRO_HAS_XLIB_SURFACE</title> +<indexterm><primary>CAIRO_HAS_XLIB_SURFACE</primary></indexterm><programlisting>#define CAIRO_HAS_XLIB_SURFACE 1 +</programlisting> +<para> +Defined if the XLib surface backend is available. +This macro can be used to conditionally compile backend-specific code. +</para></refsect2> +<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, @@ -81,7 +95,7 @@ The way that colors are represented in the drawable is specified by the provided visual. </para> <para> -NOTE: If <parameter>drawable</parameter> is a Window, then the function +Note: If <parameter>drawable</parameter> is a Window, then the function cairo_xlib_surface_set_size must be called whenever the size of the window changes. </para> @@ -123,7 +137,7 @@ children will be included.</para> <link linkend="int">int</link> height);</programlisting> <para> Creates an Xlib surface that draws to the given bitmap. -This will be drawn to as a CAIRO_FORMAT_A1 object.</para> +This will be drawn to as a <link linkend="CAIRO-FORMAT-A1:CAPS"><literal>CAIRO_FORMAT_A1</literal></link> object.</para> <para> </para><variablelist role="params"> @@ -320,6 +334,14 @@ Get the number of bits used to represent each pixel value.</para> +<refsect1> +<title>See Also</title> +<para> +<itemizedlist> +<listitem><link linkend="cairo-surface-t"><type>cairo_surface_t</type></link></listitem> +</itemizedlist> +</para> +</refsect1> <refsect1><refsect2 /><refsect2 /></refsect1> diff --git a/doc/public/xml/cairo.xml b/doc/public/xml/cairo.xml index 6790396..9f63bc2 100644 --- a/doc/public/xml/cairo.xml +++ b/doc/public/xml/cairo.xml @@ -198,7 +198,7 @@ Creates a new <link linkend="cairo-t"><type>cairo_t</type></link> with all graph default values and with <parameter>target</parameter> as a target surface. The target surface should be constructed with a backend-specific function such as <link linkend="cairo-image-surface-create"><function>cairo_image_surface_create()</function></link> (or any other -<literal>cairo_<backend>_surface_create</literal> variant). +cairo_<emphasis>backend</emphasis>_surface_create variant). </para> <para> This function references <parameter>target</parameter>, so you can immediately @@ -265,7 +265,7 @@ Checks whether an error has previously occurred for this context.</para> <varlistentry><term><parameter>cr</parameter> :</term> <listitem><simpara> a cairo context </simpara></listitem></varlistentry> -<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>the current status of this context, see <link linkend="cairo-status-t"><type>cairo_status_t</type></link> +<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the current status of this context, see <link linkend="cairo-status-t"><type>cairo_status_t</type></link> </simpara></listitem></varlistentry> </variablelist></refsect2> <refsect2> @@ -406,7 +406,7 @@ detailed description of group rendering.</para> <listitem><simpara> a cairo context </simpara></listitem></varlistentry> <varlistentry><term><parameter>content</parameter> :</term> -<listitem><simpara> a <link linkend="cairo-content-t"><literal>cairo_content_t</literal></link> indicating the type of group that +<listitem><simpara> a %<link linkend="cairo-content-t"><type>cairo_content_t</type></link> indicating the type of group that will be created </simpara></listitem></varlistentry> </variablelist><para role="since">Since 1.2 @@ -453,7 +453,7 @@ operations: </para> <para> <informalexample><programlisting> -cairo_pattern_t *group = cairo_pop_group (cr); +<link linkend="cairo-pattern-t">cairo_pattern_t</link> *group = cairo_pop_group (cr); cairo_set_source (cr, group); cairo_pattern_destroy (group); </programlisting></informalexample> @@ -746,7 +746,7 @@ the stroke begins. <para> 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 +of 0.0 with <link linkend="CAIRO-LINE-CAP-ROUND:CAPS"><literal>CAIRO_LINE_CAP_ROUND</literal></link> or <link linkend="CAIRO-LINE-CAP-SQUARE:CAPS"><literal>CAIRO_LINE_CAP_SQUARE</literal></link> in order to distributed dots or squares along a path. </para> <para> @@ -764,8 +764,8 @@ on and off portions of the size specified by the single value in </para> <para> If any value in <parameter>dashes</parameter> is negative, or if all values are 0, then -<parameter>cairo_t</parameter> will be put into an error state with a status of -<link linkend="CAIRO-STATUS-INVALID-DASH:CAPS"><type>CAIRO_STATUS_INVALID_DASH</type></link>.</para> +<parameter>cr</parameter> will be put into an error state with a status of +#<link linkend="CAIRO-STATUS-INVALID-DASH:CAPS"><literal>CAIRO_STATUS_INVALID_DASH</literal></link>.</para> <para> </para><variablelist role="params"> @@ -1158,8 +1158,106 @@ Gets the current miter limit, as set by <link linkend="cairo-set-miter-limit"><f } cairo_operator_t; </programlisting> <para> +<link linkend="cairo-operator-t"><type>cairo_operator_t</type></link> is used to set the compositing operator for all cairo +drawing operations. +</para> +<para> +The operators marked as <firstterm>unbounded</firstterm> modify their +destination even outside of the mask layer (that is, their effect is not +bound by the mask layer). However, their effect can still be limited by +way of clipping. +</para> +<para> +To keep things simple, the operator descriptions here +document the behavior for when both source and destination are either fully +transparent or fully opaque. The actual implementation works for +translucent layers too. +For a more detailed explanation of the effects of each operator, including +the mathematical definitions, see +<ulink url="http://cairographics.org/operators/">http://cairographics.org/operators/</ulink>.</para> +<para> -</para></refsect2> +</para><variablelist role="enum"> +<varlistentry> +<term><anchor id="CAIRO-OPERATOR-CLEAR:CAPS" role="constant"/><literal>CAIRO_OPERATOR_CLEAR</literal></term> +<listitem><simpara> clear destination layer (bounded) +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-OPERATOR-SOURCE:CAPS" role="constant"/><literal>CAIRO_OPERATOR_SOURCE</literal></term> +<listitem><simpara> replace destination layer (bounded) +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-OPERATOR-OVER:CAPS" role="constant"/><literal>CAIRO_OPERATOR_OVER</literal></term> +<listitem><simpara> draw source layer on top of destination layer +(bounded) +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-OPERATOR-IN:CAPS" role="constant"/><literal>CAIRO_OPERATOR_IN</literal></term> +<listitem><simpara> draw source where there was destination content +(unbounded) +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-OPERATOR-OUT:CAPS" role="constant"/><literal>CAIRO_OPERATOR_OUT</literal></term> +<listitem><simpara> draw source where there was no destination +content (unbounded) +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-OPERATOR-ATOP:CAPS" role="constant"/><literal>CAIRO_OPERATOR_ATOP</literal></term> +<listitem><simpara> draw source on top of destination content and +only there +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-OPERATOR-DEST:CAPS" role="constant"/><literal>CAIRO_OPERATOR_DEST</literal></term> +<listitem><simpara> ignore the source +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-OPERATOR-DEST-OVER:CAPS" role="constant"/><literal>CAIRO_OPERATOR_DEST_OVER</literal></term> +<listitem><simpara> draw destination on top of source +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-OPERATOR-DEST-IN:CAPS" role="constant"/><literal>CAIRO_OPERATOR_DEST_IN</literal></term> +<listitem><simpara> leave destination only where there was +source content (unbounded) +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-OPERATOR-DEST-OUT:CAPS" role="constant"/><literal>CAIRO_OPERATOR_DEST_OUT</literal></term> +<listitem><simpara> leave destination only where there was no +source content +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-OPERATOR-DEST-ATOP:CAPS" role="constant"/><literal>CAIRO_OPERATOR_DEST_ATOP</literal></term> +<listitem><simpara> leave destination on top of source content +and only there (unbounded) +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-OPERATOR-XOR:CAPS" role="constant"/><literal>CAIRO_OPERATOR_XOR</literal></term> +<listitem><simpara> source and destination are shown where there is only +one of them +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-OPERATOR-ADD:CAPS" role="constant"/><literal>CAIRO_OPERATOR_ADD</literal></term> +<listitem><simpara> source and destination layers are accumulated +</simpara></listitem> +</varlistentry> +<varlistentry> +<term><anchor id="CAIRO-OPERATOR-SATURATE:CAPS" role="constant"/><literal>CAIRO_OPERATOR_SATURATE</literal></term> +<listitem><simpara> like over, but assuming source and dest are +disjoint geometries +</simpara></listitem> +</varlistentry> +</variablelist></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, @@ -1242,7 +1340,7 @@ region with the current path as it would be filled by <link linkend="cairo-fill" and according to the current fill rule (see <link linkend="cairo-set-fill-rule"><function>cairo_set_fill_rule()</function></link>). </para> <para> -After cairo_clip, the current path will be cleared from the cairo +After <link linkend="cairo-clip"><function>cairo_clip()</function></link>, the current path will be cleared from the cairo context. </para> <para> @@ -1273,7 +1371,7 @@ region with the current path as it would be filled by <link linkend="cairo-fill" and according to the current fill rule (see <link linkend="cairo-set-fill-rule"><function>cairo_set_fill_rule()</function></link>). </para> <para> -Unlike <link linkend="cairo-clip"><function>cairo_clip()</function></link>, cairo_clip_preserve preserves the path within +Unlike <link linkend="cairo-clip"><function>cairo_clip()</function></link>, <link linkend="cairo-clip-preserve"><function>cairo_clip_preserve()</function></link> preserves the path within the cairo context. </para> <para> @@ -1435,21 +1533,18 @@ Gets the current clip region as a list of rectangles in user coordinates. Never returns <link linkend="NULL:CAPS"><literal>NULL</literal></link>. </para> <para> -The status in the list may be CAIRO_STATUS_CLIP_NOT_REPRESENTABLE to +The status in the list may be <link linkend="CAIRO-STATUS-CLIP-NOT-REPRESENTABLE:CAPS"><literal>CAIRO_STATUS_CLIP_NOT_REPRESENTABLE</literal></link> to indicate that the clip region cannot be represented as a list of user-space rectangles. The status may have other values to indicate -other errors. -</para> -<para> -The caller must always call cairo_rectangle_list_destroy on the result of -this function.</para> +other errors.</para> <para> </para><variablelist role="params"> <varlistentry><term><parameter>cr</parameter> :</term> <listitem><simpara> a cairo context </simpara></listitem></varlistentry> -<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the current clip region as a list of rectangles in user coordinates. +<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the current clip region as a list of rectangles in user coordinates, +which should be destroyed using <link linkend="cairo-rectangle-list-destroy"><function>cairo_rectangle_list_destroy()</function></link>. </simpara></listitem></varlistentry> </variablelist><para role="since">Since 1.4 @@ -1460,7 +1555,7 @@ this function.</para> <para> A drawing operator that fills the current path according to the current fill rule, (each sub-path is implicitly closed before being -filled). After cairo_fill, the current path will be cleared from +filled). After <link linkend="cairo-fill"><function>cairo_fill()</function></link>, the current path will be cleared from the cairo context. See <link linkend="cairo-set-fill-rule"><function>cairo_set_fill_rule()</function></link> and <link linkend="cairo-fill-preserve"><function>cairo_fill_preserve()</function></link>.</para> <para> @@ -1476,7 +1571,7 @@ the cairo context. See <link linkend="cairo-set-fill-rule"><function>cairo_set_f <para> A drawing operator that fills the current path according to the current fill rule, (each sub-path is implicitly closed before being -filled). Unlike <link linkend="cairo-fill"><function>cairo_fill()</function></link>, cairo_fill_preserve preserves the +filled). Unlike <link linkend="cairo-fill"><function>cairo_fill()</function></link>, <link linkend="cairo-fill-preserve"><function>cairo_fill_preserve()</function></link> preserves the path within the cairo context. </para> <para> @@ -1497,10 +1592,15 @@ See <link linkend="cairo-set-fill-rule"><function>cairo_set_fill_rule()</functio <link linkend="double">double</link> *y2);</programlisting> <para> Computes a bounding box in user coordinates covering the area that -would be affected by a <link linkend="cairo-fill"><function>cairo_fill()</function></link> operation given the current path -and fill parameters. If the current path is empty, returns an empty -rectangle (0,0, 0,0). Surface dimensions and clipping are not taken -into account. +would be affected, (the "inked" area), by a <link linkend="cairo-fill"><function>cairo_fill()</function></link> operation +given the current path and fill parameters. If the current path is +empty, returns an empty rectangle ((0,0), (0,0)). Surface +dimensions and clipping are not taken into account. +</para> +<para> +Contrast with <link linkend="cairo-path-extents"><function>cairo_path_extents()</function></link>, which is similar, but returns +non-zero extents for some paths no inked area, (such as a simple +line segment). </para> <para> See <link linkend="cairo-fill"><function>cairo_fill()</function></link>, <link linkend="cairo-set-fill-rule"><function>cairo_set_fill_rule()</function></link> and <link linkend="cairo-fill-preserve"><function>cairo_fill_preserve()</function></link>.</para> @@ -1648,9 +1748,9 @@ situations: </para> <para> 1. Zero-length "on" segments set in <link linkend="cairo-set-dash"><function>cairo_set_dash()</function></link>. If the cap -style is CAIRO_LINE_CAP_ROUND or CAIRO_LINE_CAP_SQUARE then these +style is <link linkend="CAIRO-LINE-CAP-ROUND:CAPS"><literal>CAIRO_LINE_CAP_ROUND</literal></link> or <link linkend="CAIRO-LINE-CAP-SQUARE:CAPS"><literal>CAIRO_LINE_CAP_SQUARE</literal></link> 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 +the case of <link linkend="CAIRO-LINE-CAP-SQUARE:CAPS"><literal>CAIRO_LINE_CAP_SQUARE</literal></link>, the orientation of the squares is determined by the direction of the underlying path. </para> <para> @@ -1658,12 +1758,12 @@ is determined by the direction of the underlying path. <link linkend="cairo-close-path"><function>cairo_close_path()</function></link> or one or more calls to <link linkend="cairo-line-to"><function>cairo_line_to()</function></link> to the same coordinate as the <link linkend="cairo-move-to"><function>cairo_move_to()</function></link>. 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 +dots. Note that in the case of <link linkend="CAIRO-LINE-CAP-SQUARE:CAPS"><literal>CAIRO_LINE_CAP_SQUARE</literal></link> a degenerate sub-path will not be drawn at all, (since the correct orientation is indeterminate). </para> <para> -In no case will a cap style of CAIRO_LINE_CAP_BUTT cause anything +In no case will a cap style of <link linkend="CAIRO-LINE-CAP-BUTT:CAPS"><literal>CAIRO_LINE_CAP_BUTT</literal></link> cause anything to be drawn in the case of either degenerate segments or sub-paths.</para> <para> @@ -1678,7 +1778,7 @@ to be drawn in the case of either degenerate segments or sub-paths.</para> <para> A drawing operator that strokes the current path according to the current line width, line join, line cap, and dash settings. Unlike -<link linkend="cairo-stroke"><function>cairo_stroke()</function></link>, cairo_stroke_preserve preserves the path within the +<link linkend="cairo-stroke"><function>cairo_stroke()</function></link>, <link linkend="cairo-stroke-preserve"><function>cairo_stroke_preserve()</function></link> preserves the path within the cairo context. </para> <para> @@ -1701,8 +1801,22 @@ See <link linkend="cairo-set-line-width"><function>cairo_set_line_width()</funct <link linkend="double">double</link> *y2);</programlisting> <para> Computes a bounding box in user coordinates covering the area that -would be affected by a <link linkend="cairo-stroke"><function>cairo_stroke()</function></link> operation operation given the -current path and stroke parameters. If the current path is empty,</para> +would be affected, (the "inked" area), by a <link linkend="cairo-stroke"><function>cairo_stroke()</function></link> +operation operation given the current path and stroke +parameters. If the current path is empty, returns an empty +rectangle ((0,0), (0,0)). Surface dimensions and clipping are not +taken into account. +</para> +<para> +Note that if the line width is set to exactly zero, then +cairo_stroke_extents will return an empty rectangle. Contrast with +<link linkend="cairo-path-extents"><function>cairo_path_extents()</function></link> which can be used to compute the non-empty +bounds as the line width approaches zero. +</para> +<para> +See <link linkend="cairo-stroke"><function>cairo_stroke()</function></link>, <link linkend="cairo-set-line-width"><function>cairo_set_line_width()</function></link>, <link linkend="cairo-set-line-join"><function>cairo_set_line_join()</function></link>, +<link linkend="cairo-set-line-cap"><function>cairo_set_line_cap()</function></link>, <link linkend="cairo-set-dash"><function>cairo_set_dash()</function></link>, and +<link linkend="cairo-stroke-preserve"><function>cairo_stroke_preserve()</function></link>.</para> <para> </para><variablelist role="params"> @@ -1867,6 +1981,14 @@ attached to +<refsect1> +<title>See Also</title> +<para> +<itemizedlist> +<listitem><link linkend="cairo-surface-t"><type>cairo_surface_t</type></link></listitem> +</itemizedlist> +</para> +</refsect1> <refsect1><refsect2 /><refsect2 /></refsect1> diff --git a/src/Makefile.am b/src/Makefile.am index 4953d59..51c86b1 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,4 +1,86 @@ -font_subset_sources = \ +backend_pkgconfigs = + +cairo_base_headers = cairo.h + +cairo_base_sources = \ + cairo.c \ + cairo.h \ + cairo-private.h \ + cairo-arc.c \ + cairo-arc-private.h \ + cairo-array.c \ + cairo-atomic.c \ + cairo-atomic-private.h \ + cairo-base85-stream.c \ + cairo-bentley-ottmann.c \ + cairo-cache.c \ + cairo-clip.c \ + cairo-clip-private.h \ + cairo-color.c \ + cairo-compiler-private.h \ + cairo-debug.c \ + cairo-fixed.c \ + cairo-font-face.c \ + cairo-font-options.c \ + cairo-freelist.c \ + cairo-freelist-private.h \ + cairo-gstate.c \ + cairo-gstate-private.h \ + cairo-hash.c \ + cairo-hash-private.h \ + cairo-hull.c \ + cairo-image-surface.c \ + cairo-lzw.c \ + cairo-malloc-private.h \ + cairo-matrix.c \ + cairo-mutex.c \ + cairo-mutex-private.h \ + cairo-mutex-type-private.h \ + cairo-path.c \ + cairo-path-private.h \ + cairo-path-bounds.c \ + cairo-path-fill.c \ + cairo-path-fixed.c \ + cairo-path-fixed-private.h \ + cairo-path-stroke.c \ + cairo-pen.c \ + cairo-polygon.c \ + cairo-rectangle.c \ + cairo-reference-count-private.h \ + cairo-region.c \ + cairo-region-private.h \ + cairo-scaled-font.c \ + cairo-scaled-font-private.h \ + cairo-skiplist.c \ + cairo-skiplist-private.h \ + cairo-slope.c \ + cairo-spline.c \ + cairo-stroke-style.c \ + cairo-surface.c \ + cairo-surface-fallback.c \ + cairo-surface-fallback-private.h \ + cairo-surface-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-wideint-type-private.h \ + cairo-meta-surface.c \ + cairo-meta-surface-private.h \ + cairo-paginated-private.h \ + cairo-paginated-surface.c \ + cairo-paginated-surface-private.h \ + cairo-analysis-surface.c \ + cairo-analysis-surface-private.h \ + cairoint.h +cairo_all_sources = $(cairo_base_sources) $(cairo_base_headers) +cairo_headers = $(cairo_base_headers) +cairo_sources = $(cairo_base_sources) + +font_subset_sources_base = \ cairo-cff-subset.c \ cairo-truetype-subset.c \ cairo-type1-fallback.c \ @@ -6,101 +88,142 @@ font_subset_sources = \ cairo-truetype-subset-private.h \ cairo-scaled-font-subsets.c \ cairo-scaled-font-subsets-private.h +cairo_all_sources += $(font_subset_sources_base) + +font_subset_sources_ft = cairo-type1-subset.c +cairo_all_sources += $(font_subset_sources_ft) +font_subset_sources = $(font_subset_sources_base) if CAIRO_HAS_FT_FONT -font_subset_sources += cairo-type1-subset.c +font_subset_sources += $(font_subset_sources_ft) endif -backend_pkgconfigs = - +ps_headers = cairo-ps.h +ps_sources = cairo-ps-surface.c cairo-ps-surface-private.h +cairo_all_sources += $(ps_headers) $(ps_sources) if CAIRO_HAS_PS_SURFACE -libcairo_ps_headers = cairo-ps.h -libcairo_ps_sources = cairo-ps-surface.c cairo-ps-surface-private.h libcairo_font_subset_sources = $(font_subset_sources) +cairo_headers += $(ps_headers) +cairo_sources += $(ps_sources) backend_pkgconfigs += cairo-ps.pc endif +pdf_headers = cairo-pdf.h +pdf_sources = cairo-pdf-surface.c cairo-pdf-surface-private.h \ + cairo-pdf-operators.c cairo-pdf-operators-private.h \ + cairo-deflate-stream.c +cairo_all_sources += $(pdf_headers) $(pdf_sources) if CAIRO_HAS_PDF_SURFACE -libcairo_pdf_headers = cairo-pdf.h -libcairo_pdf_sources = cairo-pdf-surface.c cairo-pdf-surface-private.h \ - cairo-pdf-operators.c cairo-pdf-operators-private.h \ - cairo-deflate-stream.c libcairo_font_subset_sources = $(font_subset_sources) +cairo_headers += $(pdf_headers) +cairo_sources += $(pdf_sources) backend_pkgconfigs += cairo-pdf.pc endif +png_sources = cairo-png.c +cairo_all_sources += $(png_sources) if CAIRO_HAS_PNG_FUNCTIONS -libcairo_png_sources = cairo-png.c +cairo_sources += $(png_sources) backend_pkgconfigs += cairo-png.pc endif +svg_headers = cairo-svg.h +svg_sources = cairo-svg-surface.c cairo-svg-surface-private.h +cairo_all_sources += $(svg_headers) $(svg_sources) if CAIRO_HAS_SVG_SURFACE -libcairo_svg_headers = cairo-svg.h -libcairo_svg_sources = cairo-svg-surface.c cairo-svg-surface-private.h libcairo_font_subset_sources = $(font_subset_sources) +cairo_headers += $(svg_headers) +cairo_sources += $(svg_sources) backend_pkgconfigs += cairo-svg.pc endif +cairo_sources += $(libcairo_font_subset_sources) + +test_sources = test-fallback-surface.c test-fallback-surface.h \ + test-meta-surface.c test-meta-surface.h \ + test-paginated-surface.c test-paginated-surface.h +cairo_all_sources += $(test_sources) if CAIRO_HAS_TEST_SURFACES -libcairo_test_sources = test-fallback-surface.c test-fallback-surface.h \ - test-meta-surface.c test-meta-surface.h \ - test-paginated-surface.c test-paginated-surface.h +cairo_sources += $(test_sources) endif +xlib_headers = cairo-xlib.h +xlib_sources = cairo-xlib-surface.c \ + cairo-xlib-surface-private.h \ + cairo-xlib-display.c \ + cairo-xlib-screen.c \ + cairo-xlib-private.h \ + cairo-xlib-xrender-private.h +cairo_all_sources += $(xlib_headers) $(xlib_sources) if CAIRO_HAS_XLIB_SURFACE -libcairo_xlib_headers = cairo-xlib.h -libcairo_xlib_sources = cairo-xlib-surface.c \ - cairo-xlib-surface-private.h \ - cairo-xlib-display.c \ - cairo-xlib-screen.c \ - cairo-xlib-private.h \ - cairo-xlib-xrender-private.h +cairo_headers += $(xlib_headers) +cairo_sources += $(xlib_sources) backend_pkgconfigs += cairo-xlib.pc endif +xlib_xrender_headers = cairo-xlib-xrender.h +cairo_all_sources += $(xlib_xrender_headers) if CAIRO_HAS_XLIB_XRENDER_SURFACE -libcairo_xlib_xrender_headers = cairo-xlib-xrender.h +cairo_headers += $(xlib_xrender_headers) backend_pkgconfigs += cairo-xlib-xrender.pc endif +xcb_headers = cairo-xcb.h cairo-xcb-xrender.h +xcb_sources = cairo-xcb-surface.c +cairo_all_sources += $(xcb_headers) $(xcb_sources) if CAIRO_HAS_XCB_SURFACE -libcairo_xcb_headers = cairo-xcb.h cairo-xcb-xrender.h -libcairo_xcb_sources = cairo-xcb-surface.c +cairo_headers += $(xcb_headers) +cairo_sources += $(xcb_sources) backend_pkgconfigs += cairo-xcb.pc endif +quartz_headers = cairo-quartz.h +quartz_sources = cairo-quartz-surface.c cairo-quartz-private.h +cairo_all_sources += $(quartz_headers) $(quartz_sources) if CAIRO_HAS_QUARTZ_SURFACE -libcairo_quartz_headers = cairo-quartz.h -libcairo_quartz_sources = cairo-quartz-surface.c cairo-quartz-private.h +cairo_headers += $(quartz_headers) +cairo_sources += $(quartz_sources) backend_pkgconfigs += cairo-quartz.pc endif -libcairo_win32_sources = +os_win32_sources = cairo-win32.c +cairo_all_sources += $(os_win32_sources) if OS_WIN32 -libcairo_win32_sources += cairo-win32.c +cairo_sources += $(os_win32_sources) export_symbols = -export-symbols cairo.def cairo_def_dependency = cairo.def endif +win32_headers = cairo-win32.h +win32_sources = cairo-win32-surface.c cairo-win32-printing-surface.c cairo-win32-private.h +cairo_all_sources += $(win32_headers) $(win32_sources) if CAIRO_HAS_WIN32_SURFACE -libcairo_win32_headers = cairo-win32.h -libcairo_win32_sources += cairo-win32-surface.c cairo-win32-printing-surface.c cairo-win32-private.h +cairo_headers += $(win32_headers) +cairo_sources += $(win32_sources) backend_pkgconfigs += cairo-win32.pc endif -# This is not really a separate conditional. Is TRUE iff the previous one is. + +win32_font_sources = cairo-win32-font.c +cairo_all_sources += $(win32_font_sources) if CAIRO_HAS_WIN32_FONT -libcairo_win32_sources += cairo-win32-font.c +cairo_sources += $(win32_font_sources) +backend_pkgconfigs += cairo-win32-font.pc endif -libcairo_os2_sources = +os2_headers = cairo-os2.h +os2_sources = cairo-os2-surface.c cairo-os2-private.h +cairo_all_sources += $(os2_headers) $(os2_sources) if CAIRO_HAS_OS2_SURFACE -libcairo_os2_headers = cairo-os2.h -libcairo_os2_sources += cairo-os2-surface.c cairo-os2-private.h +cairo_headers += $(os2_headers) +cairo_sources += $(os2_sources) +backend_pkgconfigs += cairo-os2.pc endif -libcairo_beos_sources = +beos_headers = cairo-beos.h +beos_sources = cairo-beos-surface.cpp +cairo_all_sources += $(beos_headers) $(beos_sources) if CAIRO_HAS_BEOS_SURFACE -libcairo_beos_headers = cairo-beos.h -libcairo_beos_sources += cairo-beos-surface.cpp +cairo_headers += $(beos_headers) +cairo_sources += $(beos_sources) backend_pkgconfigs += cairo-beos.pc noinst_LTLIBRARIES = libcairo_beos.la @@ -109,27 +232,39 @@ libcairo_beos_la_SOURCES = $(libcairo_beos_sources) libcairo_beos_la_CXXFLAGS = -Wno-multichar endif +glitz_headers = cairo-glitz.h +glitz_sources = cairo-glitz-surface.c cairo-glitz-private.h +cairo_all_sources += $(glitz_headers) $(glitz_sources) if CAIRO_HAS_GLITZ_SURFACE -libcairo_glitz_headers = cairo-glitz.h -libcairo_glitz_sources = cairo-glitz-surface.c cairo-glitz-private.h +cairo_headers += $(glitz_headers) +cairo_sources += $(glitz_sources) backend_pkgconfigs += cairo-glitz.pc endif +directfb_headers = cairo-directfb.h +directfb_sources = cairo-directfb-surface.c +cairo_all_sources += $(directfb_headers) $(directfb_sources) if CAIRO_HAS_DIRECTFB_SURFACE -libcairo_directfb_headers = cairo-directfb.h -libcairo_directfb_sources = cairo-directfb-surface.c +cairo_headers += $(directfb_headers) +cairo_sources += $(directfb_sources) backend_pkgconfigs += cairo-directfb.pc endif +ft_headers = cairo-ft.h +ft_sources = cairo-ft-font.c cairo-ft-private.h +cairo_all_sources += $(ft_headers) $(ft_sources) if CAIRO_HAS_FT_FONT -libcairo_ft_headers = cairo-ft.h -libcairo_ft_sources = cairo-ft-font.c cairo-ft-private.h +cairo_headers += $(ft_headers) +cairo_sources += $(ft_sources) backend_pkgconfigs += cairo-ft.pc endif +atsui_headers = cairo-atsui.h +atsui_sources = cairo-atsui-font.c +cairo_all_sources += $(atsui_headers) $(atsui_sources) if CAIRO_HAS_ATSUI_FONT -libcairo_atsui_headers = cairo-atsui.h -libcairo_atsui_sources = cairo-atsui-font.c +cairo_headers += $(atsui_headers) +cairo_sources += $(atsui_sources) backend_pkgconfigs += cairo-atsui.pc endif @@ -140,23 +275,6 @@ endif FONTCONFIG_LIBS=@FONTCONFIG_LIBS@ XRENDER_LIBS=@XRENDER_LIBS@ -cairo_headers = \ - cairo.h \ - $(libcairo_atsui_headers) \ - $(libcairo_ft_headers) \ - $(libcairo_glitz_headers) \ - $(libcairo_pdf_headers) \ - $(libcairo_svg_headers) \ - $(libcairo_ps_headers) \ - $(libcairo_quartz_headers) \ - $(libcairo_win32_headers) \ - $(libcairo_os2_headers) \ - $(libcairo_beos_headers) \ - $(libcairo_xcb_headers) \ - $(libcairo_xlib_headers) \ - $(libcairo_xlib_xrender_headers) \ - $(libcairo_directfb_headers) - cairoincludedir = $(includedir)/cairo cairoinclude_HEADERS = \ cairo-deprecated.h \ @@ -167,108 +285,23 @@ nodist_cairoinclude_HEADERS = \ lib_LTLIBRARIES = libcairo.la -libcairo_la_base_sources = \ - cairo.c \ - cairo.h \ - cairo-private.h \ - cairo-arc.c \ - cairo-arc-private.h \ - cairo-array.c \ - cairo-atomic.c \ - cairo-atomic-private.h \ - cairo-base85-stream.c \ - cairo-bentley-ottmann.c \ - cairo-cache.c \ - cairo-clip.c \ - cairo-clip-private.h \ - cairo-color.c \ - cairo-compiler-private.h \ - cairo-debug.c \ - cairo-fixed.c \ - cairo-font-face.c \ - cairo-font-options.c \ - cairo-freelist.c \ - cairo-freelist-private.h \ - cairo-gstate.c \ - cairo-gstate-private.h \ - cairo-hash.c \ - cairo-hash-private.h \ - cairo-hull.c \ - cairo-image-surface.c \ - cairo-lzw.c \ - cairo-malloc-private.h \ - cairo-matrix.c \ - cairo-mutex.c \ - cairo-mutex-private.h \ - cairo-mutex-type-private.h \ - cairo-operator.c \ - cairo-path.c \ - cairo-path-private.h \ - cairo-path-bounds.c \ - cairo-path-fill.c \ - cairo-path-fixed.c \ - cairo-path-fixed-private.h \ - cairo-path-stroke.c \ - cairo-pen.c \ - cairo-polygon.c \ - cairo-rectangle.c \ - cairo-reference-count-private.h \ - cairo-region.c \ - cairo-region-private.h \ - cairo-scaled-font.c \ - cairo-scaled-font-private.h \ - cairo-skiplist.c \ - cairo-skiplist-private.h \ - cairo-slope.c \ - cairo-spline.c \ - cairo-stroke-style.c \ - cairo-surface.c \ - cairo-surface-fallback.c \ - cairo-surface-fallback-private.h \ - cairo-surface-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-private.h \ - cairo-paginated-surface.c \ - cairo-paginated-surface-private.h \ - cairo-analysis-surface.c \ - cairo-analysis-surface-private.h \ - $(libcairo_atsui_sources) \ - $(libcairo_ft_sources) \ - $(libcairo_ps_sources) \ - $(libcairo_pdf_sources) \ - $(libcairo_png_sources) \ - $(libcairo_svg_sources) \ - $(libcairo_test_sources) \ - $(libcairo_font_subset_sources) \ - $(libcairo_xlib_sources) \ - $(libcairo_xcb_sources) \ - $(libcairo_quartz_sources) \ - $(libcairo_glitz_sources) \ - $(libcairo_win32_sources) \ - $(libcairo_os2_sources) \ - $(libcairo_directfb_sources) \ - cairoint.h - # source files that cannot be passed to compiler directly. # mostly when they depend recursively on cairoint.h. that is, # cairoint.h includes them in the middle. -libcairo_la_special_sources = \ +cairo_special_sources = \ cairo-cache-private.h \ cairo-fixed-private.h \ + cairo-fixed-type-private.h \ cairo-mutex-list-private.h \ cairo-types-private.h libcairo_la_SOURCES = \ - $(libcairo_la_base_sources) \ - $(libcairo_la_special_sources) + $(cairo_sources) \ + $(cairo_special_sources) + +cairo_all_source_file = \ + $(cairo_all_sources) \ + $(cairo_special_sources) libcairo_la_LDFLAGS = -version-info @VERSION_INFO@ -no-undefined $(export_symbols) @@ -288,9 +321,9 @@ $(backend_pkgconfigs): $(top_srcdir)/configure $(top_builddir)/config.h: $(top_srcdir)/config.h.in cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) config.h -DISTCLEANFILES += cairo-features.h -cairo-features.h: - cd $(top_builddir) && ./config.status src/cairo-features.h +DISTCLEANFILES += cairo-features.h cairo-no-features.h +cairo-features.h cairo-no-features.h: + cd $(top_builddir) && ./config.status src/$@ CLEANFILES = cairo.def cairo.def: $(cairo_headers) cairo-features.h @@ -316,8 +349,8 @@ install-data-local: false ; \ fi -TESTS_ENVIRONMENT = srcdir="$(srcdir)" MAKE="$(MAKE)" -TESTS = check-def.sh check-plt.sh check-headers.sh check-cairoint.sh +TESTS_ENVIRONMENT = srcdir="$(srcdir)" MAKE="$(MAKE)" cairo_all_source_file="$(cairo_all_source_file)" +TESTS = check-def.sh check-plt.sh check-headers.sh check-cairoint.sh check-doc-syntax.sh EXTRA_DIST += $(TESTS) check-has-hidden-symbols.c DISTCLEANFILES += check-has-hidden-symbols.i @@ -328,14 +361,14 @@ DISTCLEANFILES += check-has-hidden-symbols.i SPARSE = sparse sparse: - @status=true; for f in $(libcairo_la_base_sources); do \ + @status=true; for f in $(cairo_sources); do \ echo sparse $$f; \ $(SPARSE) -I$(top_builddir) $(libcairo_la_CFLAGS) -DHAVE_CONFIG_H $$f || status=false; \ done; $$status SPLINT = splint -badflag splint: - @status=true; for f in $(libcairo_la_base_sources); do \ + @status=true; for f in $(cairo_sources); do \ test "$$f" = "`echo "$$f" | sed 's/[.]h$$//'`" || continue; \ echo sparse $$f; \ $(SPLINT) -I$(top_builddir) $(libcairo_la_CFLAGS) -DHAVE_CONFIG_H $$f || status=false; \ diff --git a/src/Makefile.in b/src/Makefile.in index bb51d4b..f2e0b57 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -38,27 +38,54 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -@CAIRO_HAS_FT_FONT_TRUE@am__append_1 = cairo-type1-subset.c -@CAIRO_HAS_PS_SURFACE_TRUE@am__append_2 = cairo-ps.pc -@CAIRO_HAS_PDF_SURFACE_TRUE@am__append_3 = cairo-pdf.pc -@CAIRO_HAS_PNG_FUNCTIONS_TRUE@am__append_4 = cairo-png.pc -@CAIRO_HAS_SVG_SURFACE_TRUE@am__append_5 = cairo-svg.pc -@CAIRO_HAS_XLIB_SURFACE_TRUE@am__append_6 = cairo-xlib.pc -@CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE@am__append_7 = cairo-xlib-xrender.pc -@CAIRO_HAS_XCB_SURFACE_TRUE@am__append_8 = cairo-xcb.pc -@CAIRO_HAS_QUARTZ_SURFACE_TRUE@am__append_9 = cairo-quartz.pc -@OS_WIN32_TRUE@am__append_10 = cairo-win32.c -@CAIRO_HAS_WIN32_SURFACE_TRUE@am__append_11 = cairo-win32-surface.c cairo-win32-printing-surface.c cairo-win32-private.h -@CAIRO_HAS_WIN32_SURFACE_TRUE@am__append_12 = cairo-win32.pc -# This is not really a separate conditional. Is TRUE iff the previous one is. -@CAIRO_HAS_WIN32_FONT_TRUE@am__append_13 = cairo-win32-font.c -@CAIRO_HAS_OS2_SURFACE_TRUE@am__append_14 = cairo-os2-surface.c cairo-os2-private.h -@CAIRO_HAS_BEOS_SURFACE_TRUE@am__append_15 = cairo-beos-surface.cpp -@CAIRO_HAS_BEOS_SURFACE_TRUE@am__append_16 = cairo-beos.pc -@CAIRO_HAS_GLITZ_SURFACE_TRUE@am__append_17 = cairo-glitz.pc -@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_18 = cairo-directfb.pc -@CAIRO_HAS_FT_FONT_TRUE@am__append_19 = cairo-ft.pc -@CAIRO_HAS_ATSUI_FONT_TRUE@am__append_20 = cairo-atsui.pc +@CAIRO_HAS_FT_FONT_TRUE@am__append_1 = $(font_subset_sources_ft) +@CAIRO_HAS_PS_SURFACE_TRUE@am__append_2 = $(ps_headers) +@CAIRO_HAS_PS_SURFACE_TRUE@am__append_3 = $(ps_sources) +@CAIRO_HAS_PS_SURFACE_TRUE@am__append_4 = cairo-ps.pc +@CAIRO_HAS_PDF_SURFACE_TRUE@am__append_5 = $(pdf_headers) +@CAIRO_HAS_PDF_SURFACE_TRUE@am__append_6 = $(pdf_sources) +@CAIRO_HAS_PDF_SURFACE_TRUE@am__append_7 = cairo-pdf.pc +@CAIRO_HAS_PNG_FUNCTIONS_TRUE@am__append_8 = $(png_sources) +@CAIRO_HAS_PNG_FUNCTIONS_TRUE@am__append_9 = cairo-png.pc +@CAIRO_HAS_SVG_SURFACE_TRUE@am__append_10 = $(svg_headers) +@CAIRO_HAS_SVG_SURFACE_TRUE@am__append_11 = $(svg_sources) +@CAIRO_HAS_SVG_SURFACE_TRUE@am__append_12 = cairo-svg.pc +@CAIRO_HAS_TEST_SURFACES_TRUE@am__append_13 = $(test_sources) +@CAIRO_HAS_XLIB_SURFACE_TRUE@am__append_14 = $(xlib_headers) +@CAIRO_HAS_XLIB_SURFACE_TRUE@am__append_15 = $(xlib_sources) +@CAIRO_HAS_XLIB_SURFACE_TRUE@am__append_16 = cairo-xlib.pc +@CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE@am__append_17 = $(xlib_xrender_headers) +@CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE@am__append_18 = cairo-xlib-xrender.pc +@CAIRO_HAS_XCB_SURFACE_TRUE@am__append_19 = $(xcb_headers) +@CAIRO_HAS_XCB_SURFACE_TRUE@am__append_20 = $(xcb_sources) +@CAIRO_HAS_XCB_SURFACE_TRUE@am__append_21 = cairo-xcb.pc +@CAIRO_HAS_QUARTZ_SURFACE_TRUE@am__append_22 = $(quartz_headers) +@CAIRO_HAS_QUARTZ_SURFACE_TRUE@am__append_23 = $(quartz_sources) +@CAIRO_HAS_QUARTZ_SURFACE_TRUE@am__append_24 = cairo-quartz.pc +@OS_WIN32_TRUE@am__append_25 = $(os_win32_sources) +@CAIRO_HAS_WIN32_SURFACE_TRUE@am__append_26 = $(win32_headers) +@CAIRO_HAS_WIN32_SURFACE_TRUE@am__append_27 = $(win32_sources) +@CAIRO_HAS_WIN32_SURFACE_TRUE@am__append_28 = cairo-win32.pc +@CAIRO_HAS_WIN32_FONT_TRUE@am__append_29 = $(win32_font_sources) +@CAIRO_HAS_WIN32_FONT_TRUE@am__append_30 = cairo-win32-font.pc +@CAIRO_HAS_OS2_SURFACE_TRUE@am__append_31 = $(os2_headers) +@CAIRO_HAS_OS2_SURFACE_TRUE@am__append_32 = $(os2_sources) +@CAIRO_HAS_OS2_SURFACE_TRUE@am__append_33 = cairo-os2.pc +@CAIRO_HAS_BEOS_SURFACE_TRUE@am__append_34 = $(beos_headers) +@CAIRO_HAS_BEOS_SURFACE_TRUE@am__append_35 = $(beos_sources) +@CAIRO_HAS_BEOS_SURFACE_TRUE@am__append_36 = cairo-beos.pc +@CAIRO_HAS_GLITZ_SURFACE_TRUE@am__append_37 = $(glitz_headers) +@CAIRO_HAS_GLITZ_SURFACE_TRUE@am__append_38 = $(glitz_sources) +@CAIRO_HAS_GLITZ_SURFACE_TRUE@am__append_39 = cairo-glitz.pc +@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_40 = $(directfb_headers) +@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_41 = $(directfb_sources) +@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_42 = cairo-directfb.pc +@CAIRO_HAS_FT_FONT_TRUE@am__append_43 = $(ft_headers) +@CAIRO_HAS_FT_FONT_TRUE@am__append_44 = $(ft_sources) +@CAIRO_HAS_FT_FONT_TRUE@am__append_45 = cairo-ft.pc +@CAIRO_HAS_ATSUI_FONT_TRUE@am__append_46 = $(atsui_headers) +@CAIRO_HAS_ATSUI_FONT_TRUE@am__append_47 = $(atsui_sources) +@CAIRO_HAS_ATSUI_FONT_TRUE@am__append_48 = cairo-atsui.pc subdir = src DIST_COMMON = $(am__cairoinclude_HEADERS_DIST) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/cairo.pc.in @@ -93,8 +120,8 @@ am__libcairo_la_SOURCES_DIST = cairo.c cairo.h cairo-private.h \ cairo-hash-private.h cairo-hull.c cairo-image-surface.c \ cairo-lzw.c cairo-malloc-private.h cairo-matrix.c \ cairo-mutex.c cairo-mutex-private.h cairo-mutex-type-private.h \ - cairo-operator.c cairo-path.c cairo-path-private.h \ - cairo-path-bounds.c cairo-path-fill.c cairo-path-fixed.c \ + cairo-path.c cairo-path-private.h cairo-path-bounds.c \ + cairo-path-fill.c cairo-path-fixed.c \ cairo-path-fixed-private.h cairo-path-stroke.c cairo-pen.c \ cairo-polygon.c cairo-rectangle.c \ cairo-reference-count-private.h cairo-region.c \ @@ -105,76 +132,36 @@ am__libcairo_la_SOURCES_DIST = cairo.c cairo.h cairo-private.h \ cairo-surface-fallback-private.h cairo-surface-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-wideint.c cairo-wideint-private.h \ + cairo-wideint-type-private.h cairo-meta-surface.c \ cairo-meta-surface-private.h cairo-paginated-private.h \ cairo-paginated-surface.c cairo-paginated-surface-private.h \ cairo-analysis-surface.c cairo-analysis-surface-private.h \ - cairo-atsui-font.c cairo-ft-font.c cairo-ft-private.h \ - cairo-ps-surface.c cairo-ps-surface-private.h \ + cairoint.h cairo-ps-surface.c cairo-ps-surface-private.h \ cairo-pdf-surface.c cairo-pdf-surface-private.h \ cairo-pdf-operators.c cairo-pdf-operators-private.h \ cairo-deflate-stream.c cairo-png.c cairo-svg-surface.c \ - cairo-svg-surface-private.h test-fallback-surface.c \ - test-fallback-surface.h test-meta-surface.c \ - test-meta-surface.h test-paginated-surface.c \ - test-paginated-surface.h cairo-cff-subset.c \ + cairo-svg-surface-private.h cairo-cff-subset.c \ cairo-truetype-subset.c cairo-type1-fallback.c \ cairo-type1-private.h cairo-truetype-subset-private.h \ cairo-scaled-font-subsets.c \ cairo-scaled-font-subsets-private.h cairo-type1-subset.c \ + test-fallback-surface.c test-fallback-surface.h \ + test-meta-surface.c test-meta-surface.h \ + test-paginated-surface.c test-paginated-surface.h \ cairo-xlib-surface.c cairo-xlib-surface-private.h \ cairo-xlib-display.c cairo-xlib-screen.c cairo-xlib-private.h \ cairo-xlib-xrender-private.h cairo-xcb-surface.c \ - cairo-quartz-surface.c cairo-quartz-private.h \ - cairo-glitz-surface.c cairo-glitz-private.h cairo-win32.c \ + cairo-quartz-surface.c cairo-quartz-private.h cairo-win32.c \ cairo-win32-surface.c cairo-win32-printing-surface.c \ cairo-win32-private.h cairo-win32-font.c cairo-os2-surface.c \ - cairo-os2-private.h cairo-directfb-surface.c cairoint.h \ - cairo-cache-private.h cairo-fixed-private.h \ - cairo-mutex-list-private.h cairo-types-private.h -@CAIRO_HAS_ATSUI_FONT_TRUE@am__objects_1 = \ -@CAIRO_HAS_ATSUI_FONT_TRUE@ libcairo_la-cairo-atsui-font.lo -@CAIRO_HAS_FT_FONT_TRUE@am__objects_2 = libcairo_la-cairo-ft-font.lo -@CAIRO_HAS_PS_SURFACE_TRUE@am__objects_3 = \ -@CAIRO_HAS_PS_SURFACE_TRUE@ libcairo_la-cairo-ps-surface.lo -@CAIRO_HAS_PDF_SURFACE_TRUE@am__objects_4 = \ -@CAIRO_HAS_PDF_SURFACE_TRUE@ libcairo_la-cairo-pdf-surface.lo \ -@CAIRO_HAS_PDF_SURFACE_TRUE@ libcairo_la-cairo-pdf-operators.lo \ -@CAIRO_HAS_PDF_SURFACE_TRUE@ libcairo_la-cairo-deflate-stream.lo -@CAIRO_HAS_PNG_FUNCTIONS_TRUE@am__objects_5 = \ -@CAIRO_HAS_PNG_FUNCTIONS_TRUE@ libcairo_la-cairo-png.lo -@CAIRO_HAS_SVG_SURFACE_TRUE@am__objects_6 = \ -@CAIRO_HAS_SVG_SURFACE_TRUE@ libcairo_la-cairo-svg-surface.lo -@CAIRO_HAS_TEST_SURFACES_TRUE@am__objects_7 = libcairo_la-test-fallback-surface.lo \ -@CAIRO_HAS_TEST_SURFACES_TRUE@ libcairo_la-test-meta-surface.lo \ -@CAIRO_HAS_TEST_SURFACES_TRUE@ libcairo_la-test-paginated-surface.lo -@CAIRO_HAS_FT_FONT_TRUE@am__objects_8 = \ -@CAIRO_HAS_FT_FONT_TRUE@ libcairo_la-cairo-type1-subset.lo -am__objects_9 = libcairo_la-cairo-cff-subset.lo \ - libcairo_la-cairo-truetype-subset.lo \ - libcairo_la-cairo-type1-fallback.lo \ - libcairo_la-cairo-scaled-font-subsets.lo $(am__objects_8) -@CAIRO_HAS_PDF_SURFACE_FALSE@@CAIRO_HAS_PS_SURFACE_FALSE@@CAIRO_HAS_SVG_SURFACE_TRUE@am__objects_10 = $(am__objects_9) -@CAIRO_HAS_PDF_SURFACE_FALSE@@CAIRO_HAS_PS_SURFACE_TRUE@am__objects_10 = $(am__objects_9) -@CAIRO_HAS_PDF_SURFACE_TRUE@am__objects_10 = $(am__objects_9) -@CAIRO_HAS_XLIB_SURFACE_TRUE@am__objects_11 = libcairo_la-cairo-xlib-surface.lo \ -@CAIRO_HAS_XLIB_SURFACE_TRUE@ libcairo_la-cairo-xlib-display.lo \ -@CAIRO_HAS_XLIB_SURFACE_TRUE@ libcairo_la-cairo-xlib-screen.lo -@CAIRO_HAS_XCB_SURFACE_TRUE@am__objects_12 = \ -@CAIRO_HAS_XCB_SURFACE_TRUE@ libcairo_la-cairo-xcb-surface.lo -@CAIRO_HAS_QUARTZ_SURFACE_TRUE@am__objects_13 = libcairo_la-cairo-quartz-surface.lo -@CAIRO_HAS_GLITZ_SURFACE_TRUE@am__objects_14 = libcairo_la-cairo-glitz-surface.lo -@OS_WIN32_TRUE@am__objects_15 = libcairo_la-cairo-win32.lo -@CAIRO_HAS_WIN32_SURFACE_TRUE@am__objects_16 = libcairo_la-cairo-win32-surface.lo \ -@CAIRO_HAS_WIN32_SURFACE_TRUE@ libcairo_la-cairo-win32-printing-surface.lo -@CAIRO_HAS_WIN32_FONT_TRUE@am__objects_17 = \ -@CAIRO_HAS_WIN32_FONT_TRUE@ libcairo_la-cairo-win32-font.lo -am__objects_18 = $(am__objects_15) $(am__objects_16) $(am__objects_17) -@CAIRO_HAS_OS2_SURFACE_TRUE@am__objects_19 = \ -@CAIRO_HAS_OS2_SURFACE_TRUE@ libcairo_la-cairo-os2-surface.lo -am__objects_20 = $(am__objects_19) -@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__objects_21 = libcairo_la-cairo-directfb-surface.lo -am__objects_22 = libcairo_la-cairo.lo libcairo_la-cairo-arc.lo \ + cairo-os2-private.h cairo-beos-surface.cpp \ + cairo-glitz-surface.c cairo-glitz-private.h \ + cairo-directfb-surface.c cairo-ft-font.c cairo-ft-private.h \ + cairo-atsui-font.c cairo-cache-private.h cairo-fixed-private.h \ + cairo-fixed-type-private.h cairo-mutex-list-private.h \ + cairo-types-private.h +am__objects_1 = libcairo_la-cairo.lo libcairo_la-cairo-arc.lo \ libcairo_la-cairo-array.lo libcairo_la-cairo-atomic.lo \ libcairo_la-cairo-base85-stream.lo \ libcairo_la-cairo-bentley-ottmann.lo \ @@ -186,8 +173,7 @@ am__objects_22 = libcairo_la-cairo.lo libcairo_la-cairo-arc.lo \ libcairo_la-cairo-hash.lo libcairo_la-cairo-hull.lo \ libcairo_la-cairo-image-surface.lo libcairo_la-cairo-lzw.lo \ libcairo_la-cairo-matrix.lo libcairo_la-cairo-mutex.lo \ - libcairo_la-cairo-operator.lo libcairo_la-cairo-path.lo \ - libcairo_la-cairo-path-bounds.lo \ + libcairo_la-cairo-path.lo libcairo_la-cairo-path-bounds.lo \ libcairo_la-cairo-path-fill.lo libcairo_la-cairo-path-fixed.lo \ libcairo_la-cairo-path-stroke.lo libcairo_la-cairo-pen.lo \ libcairo_la-cairo-polygon.lo libcairo_la-cairo-rectangle.lo \ @@ -201,21 +187,70 @@ am__objects_22 = libcairo_la-cairo.lo libcairo_la-cairo-arc.lo \ libcairo_la-cairo-output-stream.lo \ libcairo_la-cairo-wideint.lo libcairo_la-cairo-meta-surface.lo \ libcairo_la-cairo-paginated-surface.lo \ - libcairo_la-cairo-analysis-surface.lo $(am__objects_1) \ - $(am__objects_2) $(am__objects_3) $(am__objects_4) \ - $(am__objects_5) $(am__objects_6) $(am__objects_7) \ - $(am__objects_10) $(am__objects_11) $(am__objects_12) \ - $(am__objects_13) $(am__objects_14) $(am__objects_18) \ - $(am__objects_20) $(am__objects_21) -am__objects_23 = -am_libcairo_la_OBJECTS = $(am__objects_22) $(am__objects_23) + libcairo_la-cairo-analysis-surface.lo +am__objects_2 = libcairo_la-cairo-ps-surface.lo +@CAIRO_HAS_PS_SURFACE_TRUE@am__objects_3 = $(am__objects_2) +am__objects_4 = libcairo_la-cairo-pdf-surface.lo \ + libcairo_la-cairo-pdf-operators.lo \ + libcairo_la-cairo-deflate-stream.lo +@CAIRO_HAS_PDF_SURFACE_TRUE@am__objects_5 = $(am__objects_4) +am__objects_6 = libcairo_la-cairo-png.lo +@CAIRO_HAS_PNG_FUNCTIONS_TRUE@am__objects_7 = $(am__objects_6) +am__objects_8 = libcairo_la-cairo-svg-surface.lo +@CAIRO_HAS_SVG_SURFACE_TRUE@am__objects_9 = $(am__objects_8) +am__objects_10 = libcairo_la-cairo-cff-subset.lo \ + libcairo_la-cairo-truetype-subset.lo \ + libcairo_la-cairo-type1-fallback.lo \ + libcairo_la-cairo-scaled-font-subsets.lo +am__objects_11 = libcairo_la-cairo-type1-subset.lo +@CAIRO_HAS_FT_FONT_TRUE@am__objects_12 = $(am__objects_11) +am__objects_13 = $(am__objects_10) $(am__objects_12) +@CAIRO_HAS_PDF_SURFACE_FALSE@@CAIRO_HAS_PS_SURFACE_FALSE@@CAIRO_HAS_SVG_SURFACE_TRUE@am__objects_14 = $(am__objects_13) +@CAIRO_HAS_PDF_SURFACE_FALSE@@CAIRO_HAS_PS_SURFACE_TRUE@am__objects_14 = $(am__objects_13) +@CAIRO_HAS_PDF_SURFACE_TRUE@am__objects_14 = $(am__objects_13) +am__objects_15 = libcairo_la-test-fallback-surface.lo \ + libcairo_la-test-meta-surface.lo \ + libcairo_la-test-paginated-surface.lo +@CAIRO_HAS_TEST_SURFACES_TRUE@am__objects_16 = $(am__objects_15) +am__objects_17 = libcairo_la-cairo-xlib-surface.lo \ + libcairo_la-cairo-xlib-display.lo \ + libcairo_la-cairo-xlib-screen.lo +@CAIRO_HAS_XLIB_SURFACE_TRUE@am__objects_18 = $(am__objects_17) +am__objects_19 = libcairo_la-cairo-xcb-surface.lo +@CAIRO_HAS_XCB_SURFACE_TRUE@am__objects_20 = $(am__objects_19) +am__objects_21 = libcairo_la-cairo-quartz-surface.lo +@CAIRO_HAS_QUARTZ_SURFACE_TRUE@am__objects_22 = $(am__objects_21) +am__objects_23 = libcairo_la-cairo-win32.lo +@OS_WIN32_TRUE@am__objects_24 = $(am__objects_23) +am__objects_25 = libcairo_la-cairo-win32-surface.lo \ + libcairo_la-cairo-win32-printing-surface.lo +@CAIRO_HAS_WIN32_SURFACE_TRUE@am__objects_26 = $(am__objects_25) +am__objects_27 = libcairo_la-cairo-win32-font.lo +@CAIRO_HAS_WIN32_FONT_TRUE@am__objects_28 = $(am__objects_27) +am__objects_29 = libcairo_la-cairo-os2-surface.lo +@CAIRO_HAS_OS2_SURFACE_TRUE@am__objects_30 = $(am__objects_29) +am__objects_31 = cairo-beos-surface.lo +@CAIRO_HAS_BEOS_SURFACE_TRUE@am__objects_32 = $(am__objects_31) +am__objects_33 = libcairo_la-cairo-glitz-surface.lo +@CAIRO_HAS_GLITZ_SURFACE_TRUE@am__objects_34 = $(am__objects_33) +am__objects_35 = libcairo_la-cairo-directfb-surface.lo +@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__objects_36 = $(am__objects_35) +am__objects_37 = libcairo_la-cairo-ft-font.lo +@CAIRO_HAS_FT_FONT_TRUE@am__objects_38 = $(am__objects_37) +am__objects_39 = libcairo_la-cairo-atsui-font.lo +@CAIRO_HAS_ATSUI_FONT_TRUE@am__objects_40 = $(am__objects_39) +am__objects_41 = $(am__objects_1) $(am__objects_3) $(am__objects_5) \ + $(am__objects_7) $(am__objects_9) $(am__objects_14) \ + $(am__objects_16) $(am__objects_18) $(am__objects_20) \ + $(am__objects_22) $(am__objects_24) $(am__objects_26) \ + $(am__objects_28) $(am__objects_30) $(am__objects_32) \ + $(am__objects_34) $(am__objects_36) $(am__objects_38) \ + $(am__objects_40) +am__objects_42 = +am_libcairo_la_OBJECTS = $(am__objects_41) $(am__objects_42) libcairo_la_OBJECTS = $(am_libcairo_la_OBJECTS) libcairo_beos_la_LIBADD = -am__libcairo_beos_la_SOURCES_DIST = cairo-beos-surface.cpp -@CAIRO_HAS_BEOS_SURFACE_TRUE@am__objects_24 = libcairo_beos_la-cairo-beos-surface.lo -am__objects_25 = $(am__objects_24) -@CAIRO_HAS_BEOS_SURFACE_TRUE@am_libcairo_beos_la_OBJECTS = \ -@CAIRO_HAS_BEOS_SURFACE_TRUE@ $(am__objects_25) +am_libcairo_beos_la_OBJECTS = libcairo_beos_la_OBJECTS = $(am_libcairo_beos_la_OBJECTS) @CAIRO_HAS_BEOS_SURFACE_TRUE@am_libcairo_beos_la_rpath = DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) @@ -239,14 +274,14 @@ CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libcairo_la_SOURCES) $(libcairo_beos_la_SOURCES) DIST_SOURCES = $(am__libcairo_la_SOURCES_DIST) \ - $(am__libcairo_beos_la_SOURCES_DIST) + $(libcairo_beos_la_SOURCES) pkgconfigDATA_INSTALL = $(INSTALL_DATA) DATA = $(pkgconfig_DATA) -am__cairoinclude_HEADERS_DIST = cairo-deprecated.h cairo.h \ - cairo-atsui.h cairo-ft.h cairo-glitz.h cairo-pdf.h cairo-svg.h \ - cairo-ps.h cairo-quartz.h cairo-win32.h cairo-os2.h \ - cairo-beos.h cairo-xcb.h cairo-xcb-xrender.h cairo-xlib.h \ - cairo-xlib-xrender.h cairo-directfb.h +am__cairoinclude_HEADERS_DIST = cairo-deprecated.h cairo.h cairo-ps.h \ + cairo-pdf.h cairo-svg.h cairo-xlib.h cairo-xlib-xrender.h \ + cairo-xcb.h cairo-xcb-xrender.h cairo-quartz.h cairo-win32.h \ + cairo-os2.h cairo-beos.h cairo-glitz.h cairo-directfb.h \ + cairo-ft.h cairo-atsui.h cairoincludeHEADERS_INSTALL = $(INSTALL_HEADER) nodist_cairoincludeHEADERS_INSTALL = $(INSTALL_HEADER) HEADERS = $(cairoinclude_HEADERS) $(nodist_cairoinclude_HEADERS) @@ -485,94 +520,14 @@ xlib_CFLAGS = @xlib_CFLAGS@ xlib_LIBS = @xlib_LIBS@ xlib_xrender_CFLAGS = @xlib_xrender_CFLAGS@ xlib_xrender_LIBS = @xlib_xrender_LIBS@ -font_subset_sources = cairo-cff-subset.c cairo-truetype-subset.c \ - cairo-type1-fallback.c cairo-type1-private.h \ - cairo-truetype-subset-private.h cairo-scaled-font-subsets.c \ - cairo-scaled-font-subsets-private.h $(am__append_1) -backend_pkgconfigs = $(am__append_2) $(am__append_3) $(am__append_4) \ - $(am__append_5) $(am__append_6) $(am__append_7) \ - $(am__append_8) $(am__append_9) $(am__append_12) \ - $(am__append_16) $(am__append_17) $(am__append_18) \ - $(am__append_19) $(am__append_20) -@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-surface-private.h -@CAIRO_HAS_PDF_SURFACE_TRUE@libcairo_font_subset_sources = $(font_subset_sources) -@CAIRO_HAS_PS_SURFACE_TRUE@libcairo_font_subset_sources = $(font_subset_sources) -@CAIRO_HAS_SVG_SURFACE_TRUE@libcairo_font_subset_sources = $(font_subset_sources) -@CAIRO_HAS_PDF_SURFACE_TRUE@libcairo_pdf_headers = cairo-pdf.h -@CAIRO_HAS_PDF_SURFACE_TRUE@libcairo_pdf_sources = cairo-pdf-surface.c cairo-pdf-surface-private.h \ -@CAIRO_HAS_PDF_SURFACE_TRUE@ cairo-pdf-operators.c cairo-pdf-operators-private.h \ -@CAIRO_HAS_PDF_SURFACE_TRUE@ cairo-deflate-stream.c - -@CAIRO_HAS_PNG_FUNCTIONS_TRUE@libcairo_png_sources = cairo-png.c -@CAIRO_HAS_SVG_SURFACE_TRUE@libcairo_svg_headers = cairo-svg.h -@CAIRO_HAS_SVG_SURFACE_TRUE@libcairo_svg_sources = cairo-svg-surface.c cairo-svg-surface-private.h -@CAIRO_HAS_TEST_SURFACES_TRUE@libcairo_test_sources = test-fallback-surface.c test-fallback-surface.h \ -@CAIRO_HAS_TEST_SURFACES_TRUE@ test-meta-surface.c test-meta-surface.h \ -@CAIRO_HAS_TEST_SURFACES_TRUE@ test-paginated-surface.c test-paginated-surface.h - -@CAIRO_HAS_XLIB_SURFACE_TRUE@libcairo_xlib_headers = cairo-xlib.h -@CAIRO_HAS_XLIB_SURFACE_TRUE@libcairo_xlib_sources = cairo-xlib-surface.c \ -@CAIRO_HAS_XLIB_SURFACE_TRUE@ cairo-xlib-surface-private.h \ -@CAIRO_HAS_XLIB_SURFACE_TRUE@ cairo-xlib-display.c \ -@CAIRO_HAS_XLIB_SURFACE_TRUE@ cairo-xlib-screen.c \ -@CAIRO_HAS_XLIB_SURFACE_TRUE@ cairo-xlib-private.h \ -@CAIRO_HAS_XLIB_SURFACE_TRUE@ cairo-xlib-xrender-private.h - -@CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE@libcairo_xlib_xrender_headers = cairo-xlib-xrender.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 -@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 -libcairo_win32_sources = $(am__append_10) $(am__append_11) \ - $(am__append_13) -@OS_WIN32_TRUE@export_symbols = -export-symbols cairo.def -@OS_WIN32_TRUE@cairo_def_dependency = cairo.def -@CAIRO_HAS_WIN32_SURFACE_TRUE@libcairo_win32_headers = cairo-win32.h -libcairo_os2_sources = $(am__append_14) -@CAIRO_HAS_OS2_SURFACE_TRUE@libcairo_os2_headers = cairo-os2.h -libcairo_beos_sources = $(am__append_15) -@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) -# BeOS system headers trigger this warning -@CAIRO_HAS_BEOS_SURFACE_TRUE@libcairo_beos_la_CXXFLAGS = -Wno-multichar -@CAIRO_HAS_GLITZ_SURFACE_TRUE@libcairo_glitz_headers = cairo-glitz.h -@CAIRO_HAS_GLITZ_SURFACE_TRUE@libcairo_glitz_sources = cairo-glitz-surface.c cairo-glitz-private.h -@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@libcairo_directfb_headers = cairo-directfb.h -@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@libcairo_directfb_sources = cairo-directfb-surface.c -@CAIRO_HAS_FT_FONT_TRUE@libcairo_ft_headers = cairo-ft.h -@CAIRO_HAS_FT_FONT_TRUE@libcairo_ft_sources = cairo-ft-font.c cairo-ft-private.h -@CAIRO_HAS_ATSUI_FONT_TRUE@libcairo_atsui_headers = cairo-atsui.h -@CAIRO_HAS_ATSUI_FONT_TRUE@libcairo_atsui_sources = cairo-atsui-font.c -XRENDER_LIBS = @XRENDER_LIBS@ -cairo_headers = \ - cairo.h \ - $(libcairo_atsui_headers) \ - $(libcairo_ft_headers) \ - $(libcairo_glitz_headers) \ - $(libcairo_pdf_headers) \ - $(libcairo_svg_headers) \ - $(libcairo_ps_headers) \ - $(libcairo_quartz_headers) \ - $(libcairo_win32_headers) \ - $(libcairo_os2_headers) \ - $(libcairo_beos_headers) \ - $(libcairo_xcb_headers) \ - $(libcairo_xlib_headers) \ - $(libcairo_xlib_xrender_headers) \ - $(libcairo_directfb_headers) - -cairoincludedir = $(includedir)/cairo -cairoinclude_HEADERS = \ - cairo-deprecated.h \ - $(cairo_headers) - -nodist_cairoinclude_HEADERS = \ - cairo-features.h - -lib_LTLIBRARIES = libcairo.la -libcairo_la_base_sources = \ +backend_pkgconfigs = $(am__append_4) $(am__append_7) $(am__append_9) \ + $(am__append_12) $(am__append_16) $(am__append_18) \ + $(am__append_21) $(am__append_24) $(am__append_28) \ + $(am__append_30) $(am__append_33) $(am__append_36) \ + $(am__append_39) $(am__append_42) $(am__append_45) \ + $(am__append_48) +cairo_base_headers = cairo.h +cairo_base_sources = \ cairo.c \ cairo.h \ cairo-private.h \ @@ -606,7 +561,6 @@ libcairo_la_base_sources = \ cairo-mutex.c \ cairo-mutex-private.h \ cairo-mutex-type-private.h \ - cairo-operator.c \ cairo-path.c \ cairo-path-private.h \ cairo-path-bounds.c \ @@ -638,6 +592,7 @@ libcairo_la_base_sources = \ cairo-output-stream-private.h \ cairo-wideint.c \ cairo-wideint-private.h \ + cairo-wideint-type-private.h \ cairo-meta-surface.c \ cairo-meta-surface-private.h \ cairo-paginated-private.h \ @@ -645,36 +600,123 @@ libcairo_la_base_sources = \ cairo-paginated-surface-private.h \ cairo-analysis-surface.c \ cairo-analysis-surface-private.h \ - $(libcairo_atsui_sources) \ - $(libcairo_ft_sources) \ - $(libcairo_ps_sources) \ - $(libcairo_pdf_sources) \ - $(libcairo_png_sources) \ - $(libcairo_svg_sources) \ - $(libcairo_test_sources) \ - $(libcairo_font_subset_sources) \ - $(libcairo_xlib_sources) \ - $(libcairo_xcb_sources) \ - $(libcairo_quartz_sources) \ - $(libcairo_glitz_sources) \ - $(libcairo_win32_sources) \ - $(libcairo_os2_sources) \ - $(libcairo_directfb_sources) \ cairoint.h +cairo_all_sources = $(cairo_base_sources) $(cairo_base_headers) \ + $(font_subset_sources_base) $(font_subset_sources_ft) \ + $(ps_headers) $(ps_sources) $(pdf_headers) $(pdf_sources) \ + $(png_sources) $(svg_headers) $(svg_sources) $(test_sources) \ + $(xlib_headers) $(xlib_sources) $(xlib_xrender_headers) \ + $(xcb_headers) $(xcb_sources) $(quartz_headers) \ + $(quartz_sources) $(os_win32_sources) $(win32_headers) \ + $(win32_sources) $(win32_font_sources) $(os2_headers) \ + $(os2_sources) $(beos_headers) $(beos_sources) \ + $(glitz_headers) $(glitz_sources) $(directfb_headers) \ + $(directfb_sources) $(ft_headers) $(ft_sources) \ + $(atsui_headers) $(atsui_sources) +cairo_headers = $(cairo_base_headers) $(am__append_2) $(am__append_5) \ + $(am__append_10) $(am__append_14) $(am__append_17) \ + $(am__append_19) $(am__append_22) $(am__append_26) \ + $(am__append_31) $(am__append_34) $(am__append_37) \ + $(am__append_40) $(am__append_43) $(am__append_46) +cairo_sources = $(cairo_base_sources) $(am__append_3) $(am__append_6) \ + $(am__append_8) $(am__append_11) \ + $(libcairo_font_subset_sources) $(am__append_13) \ + $(am__append_15) $(am__append_20) $(am__append_23) \ + $(am__append_25) $(am__append_27) $(am__append_29) \ + $(am__append_32) $(am__append_35) $(am__append_38) \ + $(am__append_41) $(am__append_44) $(am__append_47) +font_subset_sources_base = \ + cairo-cff-subset.c \ + cairo-truetype-subset.c \ + cairo-type1-fallback.c \ + cairo-type1-private.h \ + cairo-truetype-subset-private.h \ + cairo-scaled-font-subsets.c \ + cairo-scaled-font-subsets-private.h + +font_subset_sources_ft = cairo-type1-subset.c +font_subset_sources = $(font_subset_sources_base) $(am__append_1) +ps_headers = cairo-ps.h +ps_sources = cairo-ps-surface.c cairo-ps-surface-private.h +@CAIRO_HAS_PDF_SURFACE_TRUE@libcairo_font_subset_sources = $(font_subset_sources) +@CAIRO_HAS_PS_SURFACE_TRUE@libcairo_font_subset_sources = $(font_subset_sources) +@CAIRO_HAS_SVG_SURFACE_TRUE@libcairo_font_subset_sources = $(font_subset_sources) +pdf_headers = cairo-pdf.h +pdf_sources = cairo-pdf-surface.c cairo-pdf-surface-private.h \ + cairo-pdf-operators.c cairo-pdf-operators-private.h \ + cairo-deflate-stream.c + +png_sources = cairo-png.c +svg_headers = cairo-svg.h +svg_sources = cairo-svg-surface.c cairo-svg-surface-private.h +test_sources = test-fallback-surface.c test-fallback-surface.h \ + test-meta-surface.c test-meta-surface.h \ + test-paginated-surface.c test-paginated-surface.h + +xlib_headers = cairo-xlib.h +xlib_sources = cairo-xlib-surface.c \ + cairo-xlib-surface-private.h \ + cairo-xlib-display.c \ + cairo-xlib-screen.c \ + cairo-xlib-private.h \ + cairo-xlib-xrender-private.h + +xlib_xrender_headers = cairo-xlib-xrender.h +xcb_headers = cairo-xcb.h cairo-xcb-xrender.h +xcb_sources = cairo-xcb-surface.c +quartz_headers = cairo-quartz.h +quartz_sources = cairo-quartz-surface.c cairo-quartz-private.h +os_win32_sources = cairo-win32.c +@OS_WIN32_TRUE@export_symbols = -export-symbols cairo.def +@OS_WIN32_TRUE@cairo_def_dependency = cairo.def +win32_headers = cairo-win32.h +win32_sources = cairo-win32-surface.c cairo-win32-printing-surface.c cairo-win32-private.h +win32_font_sources = cairo-win32-font.c +os2_headers = cairo-os2.h +os2_sources = cairo-os2-surface.c cairo-os2-private.h +beos_headers = cairo-beos.h +beos_sources = cairo-beos-surface.cpp +@CAIRO_HAS_BEOS_SURFACE_TRUE@noinst_LTLIBRARIES = libcairo_beos.la +@CAIRO_HAS_BEOS_SURFACE_TRUE@libcairo_beos_la_SOURCES = $(libcairo_beos_sources) +# BeOS system headers trigger this warning +@CAIRO_HAS_BEOS_SURFACE_TRUE@libcairo_beos_la_CXXFLAGS = -Wno-multichar +glitz_headers = cairo-glitz.h +glitz_sources = cairo-glitz-surface.c cairo-glitz-private.h +directfb_headers = cairo-directfb.h +directfb_sources = cairo-directfb-surface.c +ft_headers = cairo-ft.h +ft_sources = cairo-ft-font.c cairo-ft-private.h +atsui_headers = cairo-atsui.h +atsui_sources = cairo-atsui-font.c +XRENDER_LIBS = @XRENDER_LIBS@ +cairoincludedir = $(includedir)/cairo +cairoinclude_HEADERS = \ + cairo-deprecated.h \ + $(cairo_headers) + +nodist_cairoinclude_HEADERS = \ + cairo-features.h + +lib_LTLIBRARIES = libcairo.la # source files that cannot be passed to compiler directly. # mostly when they depend recursively on cairoint.h. that is, # cairoint.h includes them in the middle. -libcairo_la_special_sources = \ +cairo_special_sources = \ cairo-cache-private.h \ cairo-fixed-private.h \ + cairo-fixed-type-private.h \ cairo-mutex-list-private.h \ cairo-types-private.h libcairo_la_SOURCES = \ - $(libcairo_la_base_sources) \ - $(libcairo_la_special_sources) + $(cairo_sources) \ + $(cairo_special_sources) + +cairo_all_source_file = \ + $(cairo_all_sources) \ + $(cairo_special_sources) libcairo_la_LDFLAGS = -version-info @VERSION_INFO@ -no-undefined $(export_symbols) libcairo_la_CFLAGS = -I$(srcdir) $(CAIRO_CFLAGS) @@ -683,11 +725,11 @@ libcairo_la_DEPENDENCIES = $(cairo_def_dependency) $(noinst_LTLIBRARIES) pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = cairo.pc $(backend_pkgconfigs) DISTCLEANFILES = $(backend_pkgconfigs) cairo-features.h \ - check-has-hidden-symbols.i + cairo-no-features.h check-has-hidden-symbols.i EXTRA_DIST = cairo-backend.pc.in $(TESTS) check-has-hidden-symbols.c CLEANFILES = cairo.def -TESTS_ENVIRONMENT = srcdir="$(srcdir)" MAKE="$(MAKE)" -TESTS = check-def.sh check-plt.sh check-headers.sh check-cairoint.sh +TESTS_ENVIRONMENT = srcdir="$(srcdir)" MAKE="$(MAKE)" cairo_all_source_file="$(cairo_all_source_file)" +TESTS = check-def.sh check-plt.sh check-headers.sh check-cairoint.sh check-doc-syntax.sh SPARSE = sparse SPLINT = splint -badflag all: all-am @@ -762,9 +804,9 @@ clean-noinstLTLIBRARIES: rm -f "$${dir}/so_locations"; \ done libcairo.la: $(libcairo_la_OBJECTS) $(libcairo_la_DEPENDENCIES) - $(LINK) -rpath $(libdir) $(libcairo_la_LDFLAGS) $(libcairo_la_OBJECTS) $(libcairo_la_LIBADD) $(LIBS) + $(CXXLINK) -rpath $(libdir) $(libcairo_la_LDFLAGS) $(libcairo_la_OBJECTS) $(libcairo_la_LIBADD) $(LIBS) libcairo_beos.la: $(libcairo_beos_la_OBJECTS) $(libcairo_beos_la_DEPENDENCIES) - $(CXXLINK) $(am_libcairo_beos_la_rpath) $(libcairo_beos_la_LDFLAGS) $(libcairo_beos_la_OBJECTS) $(libcairo_beos_la_LIBADD) $(LIBS) + $(LINK) $(am_libcairo_beos_la_rpath) $(libcairo_beos_la_LDFLAGS) $(libcairo_beos_la_OBJECTS) $(libcairo_beos_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -772,7 +814,7 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcairo_beos_la-cairo-beos-surface.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-beos-surface.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcairo_la-cairo-analysis-surface.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcairo_la-cairo-arc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcairo_la-cairo-array.Plo@am__quote@ @@ -801,7 +843,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcairo_la-cairo-matrix.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcairo_la-cairo-meta-surface.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcairo_la-cairo-mutex.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcairo_la-cairo-operator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcairo_la-cairo-os2-surface.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcairo_la-cairo-output-stream.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcairo_la-cairo-paginated-surface.Plo@am__quote@ @@ -1016,13 +1057,6 @@ libcairo_la-cairo-mutex.lo: cairo-mutex.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairo_la_CFLAGS) $(CFLAGS) -c -o libcairo_la-cairo-mutex.lo `test -f 'cairo-mutex.c' || echo '$(srcdir)/'`cairo-mutex.c -libcairo_la-cairo-operator.lo: cairo-operator.c -@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairo_la_CFLAGS) $(CFLAGS) -MT libcairo_la-cairo-operator.lo -MD -MP -MF "$(DEPDIR)/libcairo_la-cairo-operator.Tpo" -c -o libcairo_la-cairo-operator.lo `test -f 'cairo-operator.c' || echo '$(srcdir)/'`cairo-operator.c; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libcairo_la-cairo-operator.Tpo" "$(DEPDIR)/libcairo_la-cairo-operator.Plo"; else rm -f "$(DEPDIR)/libcairo_la-cairo-operator.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cairo-operator.c' object='libcairo_la-cairo-operator.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairo_la_CFLAGS) $(CFLAGS) -c -o libcairo_la-cairo-operator.lo `test -f 'cairo-operator.c' || echo '$(srcdir)/'`cairo-operator.c - libcairo_la-cairo-path.lo: cairo-path.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairo_la_CFLAGS) $(CFLAGS) -MT libcairo_la-cairo-path.lo -MD -MP -MF "$(DEPDIR)/libcairo_la-cairo-path.Tpo" -c -o libcairo_la-cairo-path.lo `test -f 'cairo-path.c' || echo '$(srcdir)/'`cairo-path.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libcairo_la-cairo-path.Tpo" "$(DEPDIR)/libcairo_la-cairo-path.Plo"; else rm -f "$(DEPDIR)/libcairo_la-cairo-path.Tpo"; exit 1; fi @@ -1191,20 +1225,6 @@ libcairo_la-cairo-analysis-surface.lo: cairo-analysis-surface.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairo_la_CFLAGS) $(CFLAGS) -c -o libcairo_la-cairo-analysis-surface.lo `test -f 'cairo-analysis-surface.c' || echo '$(srcdir)/'`cairo-analysis-surface.c -libcairo_la-cairo-atsui-font.lo: cairo-atsui-font.c -@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairo_la_CFLAGS) $(CFLAGS) -MT libcairo_la-cairo-atsui-font.lo -MD -MP -MF "$(DEPDIR)/libcairo_la-cairo-atsui-font.Tpo" -c -o libcairo_la-cairo-atsui-font.lo `test -f 'cairo-atsui-font.c' || echo '$(srcdir)/'`cairo-atsui-font.c; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libcairo_la-cairo-atsui-font.Tpo" "$(DEPDIR)/libcairo_la-cairo-atsui-font.Plo"; else rm -f "$(DEPDIR)/libcairo_la-cairo-atsui-font.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cairo-atsui-font.c' object='libcairo_la-cairo-atsui-font.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairo_la_CFLAGS) $(CFLAGS) -c -o libcairo_la-cairo-atsui-font.lo `test -f 'cairo-atsui-font.c' || echo '$(srcdir)/'`cairo-atsui-font.c - -libcairo_la-cairo-ft-font.lo: cairo-ft-font.c -@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairo_la_CFLAGS) $(CFLAGS) -MT libcairo_la-cairo-ft-font.lo -MD -MP -MF "$(DEPDIR)/libcairo_la-cairo-ft-font.Tpo" -c -o libcairo_la-cairo-ft-font.lo `test -f 'cairo-ft-font.c' || echo '$(srcdir)/'`cairo-ft-font.c; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libcairo_la-cairo-ft-font.Tpo" "$(DEPDIR)/libcairo_la-cairo-ft-font.Plo"; else rm -f "$(DEPDIR)/libcairo_la-cairo-ft-font.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cairo-ft-font.c' object='libcairo_la-cairo-ft-font.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairo_la_CFLAGS) $(CFLAGS) -c -o libcairo_la-cairo-ft-font.lo `test -f 'cairo-ft-font.c' || echo '$(srcdir)/'`cairo-ft-font.c - libcairo_la-cairo-ps-surface.lo: cairo-ps-surface.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairo_la_CFLAGS) $(CFLAGS) -MT libcairo_la-cairo-ps-surface.lo -MD -MP -MF "$(DEPDIR)/libcairo_la-cairo-ps-surface.Tpo" -c -o libcairo_la-cairo-ps-surface.lo `test -f 'cairo-ps-surface.c' || echo '$(srcdir)/'`cairo-ps-surface.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libcairo_la-cairo-ps-surface.Tpo" "$(DEPDIR)/libcairo_la-cairo-ps-surface.Plo"; else rm -f "$(DEPDIR)/libcairo_la-cairo-ps-surface.Tpo"; exit 1; fi @@ -1247,27 +1267,6 @@ libcairo_la-cairo-svg-surface.lo: cairo-svg-surface.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairo_la_CFLAGS) $(CFLAGS) -c -o libcairo_la-cairo-svg-surface.lo `test -f 'cairo-svg-surface.c' || echo '$(srcdir)/'`cairo-svg-surface.c -libcairo_la-test-fallback-surface.lo: test-fallback-surface.c -@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairo_la_CFLAGS) $(CFLAGS) -MT libcairo_la-test-fallback-surface.lo -MD -MP -MF "$(DEPDIR)/libcairo_la-test-fallback-surface.Tpo" -c -o libcairo_la-test-fallback-surface.lo `test -f 'test-fallback-surface.c' || echo '$(srcdir)/'`test-fallback-surface.c; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libcairo_la-test-fallback-surface.Tpo" "$(DEPDIR)/libcairo_la-test-fallback-surface.Plo"; else rm -f "$(DEPDIR)/libcairo_la-test-fallback-surface.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-fallback-surface.c' object='libcairo_la-test-fallback-surface.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairo_la_CFLAGS) $(CFLAGS) -c -o libcairo_la-test-fallback-surface.lo `test -f 'test-fallback-surface.c' || echo '$(srcdir)/'`test-fallback-surface.c - -libcairo_la-test-meta-surface.lo: test-meta-surface.c -@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairo_la_CFLAGS) $(CFLAGS) -MT libcairo_la-test-meta-surface.lo -MD -MP -MF "$(DEPDIR)/libcairo_la-test-meta-surface.Tpo" -c -o libcairo_la-test-meta-surface.lo `test -f 'test-meta-surface.c' || echo '$(srcdir)/'`test-meta-surface.c; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libcairo_la-test-meta-surface.Tpo" "$(DEPDIR)/libcairo_la-test-meta-surface.Plo"; else rm -f "$(DEPDIR)/libcairo_la-test-meta-surface.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-meta-surface.c' object='libcairo_la-test-meta-surface.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairo_la_CFLAGS) $(CFLAGS) -c -o libcairo_la-test-meta-surface.lo `test -f 'test-meta-surface.c' || echo '$(srcdir)/'`test-meta-surface.c - -libcairo_la-test-paginated-surface.lo: test-paginated-surface.c -@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairo_la_CFLAGS) $(CFLAGS) -MT libcairo_la-test-paginated-surface.lo -MD -MP -MF "$(DEPDIR)/libcairo_la-test-paginated-surface.Tpo" -c -o libcairo_la-test-paginated-surface.lo `test -f 'test-paginated-surface.c' || echo '$(srcdir)/'`test-paginated-surface.c; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libcairo_la-test-paginated-surface.Tpo" "$(DEPDIR)/libcairo_la-test-paginated-surface.Plo"; else rm -f "$(DEPDIR)/libcairo_la-test-paginated-surface.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-paginated-surface.c' object='libcairo_la-test-paginated-surface.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairo_la_CFLAGS) $(CFLAGS) -c -o libcairo_la-test-paginated-surface.lo `test -f 'test-paginated-surface.c' || echo '$(srcdir)/'`test-paginated-surface.c - libcairo_la-cairo-cff-subset.lo: cairo-cff-subset.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairo_la_CFLAGS) $(CFLAGS) -MT libcairo_la-cairo-cff-subset.lo -MD -MP -MF "$(DEPDIR)/libcairo_la-cairo-cff-subset.Tpo" -c -o libcairo_la-cairo-cff-subset.lo `test -f 'cairo-cff-subset.c' || echo '$(srcdir)/'`cairo-cff-subset.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libcairo_la-cairo-cff-subset.Tpo" "$(DEPDIR)/libcairo_la-cairo-cff-subset.Plo"; else rm -f "$(DEPDIR)/libcairo_la-cairo-cff-subset.Tpo"; exit 1; fi @@ -1303,6 +1302,27 @@ libcairo_la-cairo-type1-subset.lo: cairo-type1-subset.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairo_la_CFLAGS) $(CFLAGS) -c -o libcairo_la-cairo-type1-subset.lo `test -f 'cairo-type1-subset.c' || echo '$(srcdir)/'`cairo-type1-subset.c +libcairo_la-test-fallback-surface.lo: test-fallback-surface.c +@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairo_la_CFLAGS) $(CFLAGS) -MT libcairo_la-test-fallback-surface.lo -MD -MP -MF "$(DEPDIR)/libcairo_la-test-fallback-surface.Tpo" -c -o libcairo_la-test-fallback-surface.lo `test -f 'test-fallback-surface.c' || echo '$(srcdir)/'`test-fallback-surface.c; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libcairo_la-test-fallback-surface.Tpo" "$(DEPDIR)/libcairo_la-test-fallback-surface.Plo"; else rm -f "$(DEPDIR)/libcairo_la-test-fallback-surface.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-fallback-surface.c' object='libcairo_la-test-fallback-surface.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairo_la_CFLAGS) $(CFLAGS) -c -o libcairo_la-test-fallback-surface.lo `test -f 'test-fallback-surface.c' || echo '$(srcdir)/'`test-fallback-surface.c + +libcairo_la-test-meta-surface.lo: test-meta-surface.c +@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairo_la_CFLAGS) $(CFLAGS) -MT libcairo_la-test-meta-surface.lo -MD -MP -MF "$(DEPDIR)/libcairo_la-test-meta-surface.Tpo" -c -o libcairo_la-test-meta-surface.lo `test -f 'test-meta-surface.c' || echo '$(srcdir)/'`test-meta-surface.c; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libcairo_la-test-meta-surface.Tpo" "$(DEPDIR)/libcairo_la-test-meta-surface.Plo"; else rm -f "$(DEPDIR)/libcairo_la-test-meta-surface.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-meta-surface.c' object='libcairo_la-test-meta-surface.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairo_la_CFLAGS) $(CFLAGS) -c -o libcairo_la-test-meta-surface.lo `test -f 'test-meta-surface.c' || echo '$(srcdir)/'`test-meta-surface.c + +libcairo_la-test-paginated-surface.lo: test-paginated-surface.c +@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairo_la_CFLAGS) $(CFLAGS) -MT libcairo_la-test-paginated-surface.lo -MD -MP -MF "$(DEPDIR)/libcairo_la-test-paginated-surface.Tpo" -c -o libcairo_la-test-paginated-surface.lo `test -f 'test-paginated-surface.c' || echo '$(srcdir)/'`test-paginated-surface.c; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libcairo_la-test-paginated-surface.Tpo" "$(DEPDIR)/libcairo_la-test-paginated-surface.Plo"; else rm -f "$(DEPDIR)/libcairo_la-test-paginated-surface.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-paginated-surface.c' object='libcairo_la-test-paginated-surface.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairo_la_CFLAGS) $(CFLAGS) -c -o libcairo_la-test-paginated-surface.lo `test -f 'test-paginated-surface.c' || echo '$(srcdir)/'`test-paginated-surface.c + libcairo_la-cairo-xlib-surface.lo: cairo-xlib-surface.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairo_la_CFLAGS) $(CFLAGS) -MT libcairo_la-cairo-xlib-surface.lo -MD -MP -MF "$(DEPDIR)/libcairo_la-cairo-xlib-surface.Tpo" -c -o libcairo_la-cairo-xlib-surface.lo `test -f 'cairo-xlib-surface.c' || echo '$(srcdir)/'`cairo-xlib-surface.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libcairo_la-cairo-xlib-surface.Tpo" "$(DEPDIR)/libcairo_la-cairo-xlib-surface.Plo"; else rm -f "$(DEPDIR)/libcairo_la-cairo-xlib-surface.Tpo"; exit 1; fi @@ -1338,13 +1358,6 @@ libcairo_la-cairo-quartz-surface.lo: cairo-quartz-surface.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairo_la_CFLAGS) $(CFLAGS) -c -o libcairo_la-cairo-quartz-surface.lo `test -f 'cairo-quartz-surface.c' || echo '$(srcdir)/'`cairo-quartz-surface.c -libcairo_la-cairo-glitz-surface.lo: cairo-glitz-surface.c -@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairo_la_CFLAGS) $(CFLAGS) -MT libcairo_la-cairo-glitz-surface.lo -MD -MP -MF "$(DEPDIR)/libcairo_la-cairo-glitz-surface.Tpo" -c -o libcairo_la-cairo-glitz-surface.lo `test -f 'cairo-glitz-surface.c' || echo '$(srcdir)/'`cairo-glitz-surface.c; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libcairo_la-cairo-glitz-surface.Tpo" "$(DEPDIR)/libcairo_la-cairo-glitz-surface.Plo"; else rm -f "$(DEPDIR)/libcairo_la-cairo-glitz-surface.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cairo-glitz-surface.c' object='libcairo_la-cairo-glitz-surface.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairo_la_CFLAGS) $(CFLAGS) -c -o libcairo_la-cairo-glitz-surface.lo `test -f 'cairo-glitz-surface.c' || echo '$(srcdir)/'`cairo-glitz-surface.c - libcairo_la-cairo-win32.lo: cairo-win32.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairo_la_CFLAGS) $(CFLAGS) -MT libcairo_la-cairo-win32.lo -MD -MP -MF "$(DEPDIR)/libcairo_la-cairo-win32.Tpo" -c -o libcairo_la-cairo-win32.lo `test -f 'cairo-win32.c' || echo '$(srcdir)/'`cairo-win32.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libcairo_la-cairo-win32.Tpo" "$(DEPDIR)/libcairo_la-cairo-win32.Plo"; else rm -f "$(DEPDIR)/libcairo_la-cairo-win32.Tpo"; exit 1; fi @@ -1380,6 +1393,13 @@ libcairo_la-cairo-os2-surface.lo: cairo-os2-surface.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairo_la_CFLAGS) $(CFLAGS) -c -o libcairo_la-cairo-os2-surface.lo `test -f 'cairo-os2-surface.c' || echo '$(srcdir)/'`cairo-os2-surface.c +libcairo_la-cairo-glitz-surface.lo: cairo-glitz-surface.c +@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairo_la_CFLAGS) $(CFLAGS) -MT libcairo_la-cairo-glitz-surface.lo -MD -MP -MF "$(DEPDIR)/libcairo_la-cairo-glitz-surface.Tpo" -c -o libcairo_la-cairo-glitz-surface.lo `test -f 'cairo-glitz-surface.c' || echo '$(srcdir)/'`cairo-glitz-surface.c; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libcairo_la-cairo-glitz-surface.Tpo" "$(DEPDIR)/libcairo_la-cairo-glitz-surface.Plo"; else rm -f "$(DEPDIR)/libcairo_la-cairo-glitz-surface.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cairo-glitz-surface.c' object='libcairo_la-cairo-glitz-surface.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairo_la_CFLAGS) $(CFLAGS) -c -o libcairo_la-cairo-glitz-surface.lo `test -f 'cairo-glitz-surface.c' || echo '$(srcdir)/'`cairo-glitz-surface.c + libcairo_la-cairo-directfb-surface.lo: cairo-directfb-surface.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairo_la_CFLAGS) $(CFLAGS) -MT libcairo_la-cairo-directfb-surface.lo -MD -MP -MF "$(DEPDIR)/libcairo_la-cairo-directfb-surface.Tpo" -c -o libcairo_la-cairo-directfb-surface.lo `test -f 'cairo-directfb-surface.c' || echo '$(srcdir)/'`cairo-directfb-surface.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libcairo_la-cairo-directfb-surface.Tpo" "$(DEPDIR)/libcairo_la-cairo-directfb-surface.Plo"; else rm -f "$(DEPDIR)/libcairo_la-cairo-directfb-surface.Tpo"; exit 1; fi @@ -1387,6 +1407,20 @@ libcairo_la-cairo-directfb-surface.lo: cairo-directfb-surface.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairo_la_CFLAGS) $(CFLAGS) -c -o libcairo_la-cairo-directfb-surface.lo `test -f 'cairo-directfb-surface.c' || echo '$(srcdir)/'`cairo-directfb-surface.c +libcairo_la-cairo-ft-font.lo: cairo-ft-font.c +@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairo_la_CFLAGS) $(CFLAGS) -MT libcairo_la-cairo-ft-font.lo -MD -MP -MF "$(DEPDIR)/libcairo_la-cairo-ft-font.Tpo" -c -o libcairo_la-cairo-ft-font.lo `test -f 'cairo-ft-font.c' || echo '$(srcdir)/'`cairo-ft-font.c; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libcairo_la-cairo-ft-font.Tpo" "$(DEPDIR)/libcairo_la-cairo-ft-font.Plo"; else rm -f "$(DEPDIR)/libcairo_la-cairo-ft-font.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cairo-ft-font.c' object='libcairo_la-cairo-ft-font.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairo_la_CFLAGS) $(CFLAGS) -c -o libcairo_la-cairo-ft-font.lo `test -f 'cairo-ft-font.c' || echo '$(srcdir)/'`cairo-ft-font.c + +libcairo_la-cairo-atsui-font.lo: cairo-atsui-font.c +@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairo_la_CFLAGS) $(CFLAGS) -MT libcairo_la-cairo-atsui-font.lo -MD -MP -MF "$(DEPDIR)/libcairo_la-cairo-atsui-font.Tpo" -c -o libcairo_la-cairo-atsui-font.lo `test -f 'cairo-atsui-font.c' || echo '$(srcdir)/'`cairo-atsui-font.c; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libcairo_la-cairo-atsui-font.Tpo" "$(DEPDIR)/libcairo_la-cairo-atsui-font.Plo"; else rm -f "$(DEPDIR)/libcairo_la-cairo-atsui-font.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cairo-atsui-font.c' object='libcairo_la-cairo-atsui-font.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairo_la_CFLAGS) $(CFLAGS) -c -o libcairo_la-cairo-atsui-font.lo `test -f 'cairo-atsui-font.c' || echo '$(srcdir)/'`cairo-atsui-font.c + .cpp.o: @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @@ -1408,13 +1442,6 @@ libcairo_la-cairo-directfb-surface.lo: cairo-directfb-surface.c @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< -libcairo_beos_la-cairo-beos-surface.lo: cairo-beos-surface.cpp -@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairo_beos_la_CXXFLAGS) $(CXXFLAGS) -MT libcairo_beos_la-cairo-beos-surface.lo -MD -MP -MF "$(DEPDIR)/libcairo_beos_la-cairo-beos-surface.Tpo" -c -o libcairo_beos_la-cairo-beos-surface.lo `test -f 'cairo-beos-surface.cpp' || echo '$(srcdir)/'`cairo-beos-surface.cpp; \ -@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libcairo_beos_la-cairo-beos-surface.Tpo" "$(DEPDIR)/libcairo_beos_la-cairo-beos-surface.Plo"; else rm -f "$(DEPDIR)/libcairo_beos_la-cairo-beos-surface.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='cairo-beos-surface.cpp' object='libcairo_beos_la-cairo-beos-surface.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairo_beos_la_CXXFLAGS) $(CXXFLAGS) -c -o libcairo_beos_la-cairo-beos-surface.lo `test -f 'cairo-beos-surface.cpp' || echo '$(srcdir)/'`cairo-beos-surface.cpp - mostlyclean-libtool: -rm -f *.lo @@ -1734,8 +1761,8 @@ $(backend_pkgconfigs): $(top_srcdir)/configure $(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-features.h cairo-no-features.h: + cd $(top_builddir) && ./config.status src/$@ cairo.def: $(cairo_headers) cairo-features.h @echo Generating $@ @(echo EXPORTS; \ @@ -1764,12 +1791,12 @@ install-data-local: .c.i: $(cairoinclude_HEADERS) $(nodist_cairoinclude_HEADERS) cairoint.h $(top_builddir)/config.h $(CPP) -DHAVE_CONFIG_H -I$(top_builddir) -I. $(libcairo_la_CFLAGS) $< -o $@ sparse: - @status=true; for f in $(libcairo_la_base_sources); do \ + @status=true; for f in $(cairo_sources); do \ echo sparse $$f; \ $(SPARSE) -I$(top_builddir) $(libcairo_la_CFLAGS) -DHAVE_CONFIG_H $$f || status=false; \ done; $$status splint: - @status=true; for f in $(libcairo_la_base_sources); do \ + @status=true; for f in $(cairo_sources); do \ test "$$f" = "`echo "$$f" | sed 's/[.]h$$//'`" || continue; \ echo sparse $$f; \ $(SPLINT) -I$(top_builddir) $(libcairo_la_CFLAGS) -DHAVE_CONFIG_H $$f || status=false; \ diff --git a/src/cairo-analysis-surface.c b/src/cairo-analysis-surface.c index 357e79a..edface2 100644 --- a/src/cairo-analysis-surface.c +++ b/src/cairo-analysis-surface.c @@ -228,7 +228,7 @@ _cairo_analysis_surface_intersect_clip_path (void *abstract_surface, surface->current_clip.width = surface->width; surface->current_clip.height = surface->height; } else { - _cairo_path_fixed_bounds (path, &x1, &y1, &x2, &y2); + _cairo_path_fixed_bounds (path, &x1, &y1, &x2, &y2, tolerance); extent.x = floor (x1); extent.y = floor (y1); @@ -586,6 +586,9 @@ static const cairo_surface_backend_t cairo_analysis_surface_backend = { _cairo_analysis_surface_fill, _cairo_analysis_surface_show_glyphs, NULL, /* snapshot */ + NULL, /* is_similar */ + NULL, /* reset */ + NULL, /* fill_stroke */ }; cairo_surface_t * @@ -597,7 +600,7 @@ _cairo_analysis_surface_create (cairo_surface_t *target, surface = malloc (sizeof (cairo_analysis_surface_t)); if (surface == NULL) - goto FAIL; + return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); /* I believe the content type here is truly arbitrary. I'm quite * sure nothing will ever use this value. */ @@ -622,9 +625,6 @@ _cairo_analysis_surface_create (cairo_surface_t *target, surface->current_clip.height = height; return &surface->base; -FAIL: - _cairo_error_throw (CAIRO_STATUS_NO_MEMORY); - return NULL; } cairo_region_t * diff --git a/src/cairo-array.c b/src/cairo-array.c index 470b327..b547b12 100644 --- a/src/cairo-array.c +++ b/src/cairo-array.c @@ -40,7 +40,7 @@ /** * _cairo_array_init: * - * Initialize a new cairo_array object to store objects each of size + * Initialize a new #cairo_array_t object to store objects each of size * @element_size. * * The #cairo_array_t object provides grow-by-doubling storage. It @@ -177,7 +177,7 @@ _cairo_array_truncate (cairo_array_t *array, unsigned int num_elements) * pointer may be used for further direct indexing with []. For * example: * - * cairo_array_t array; + * #cairo_array_t array; * double *values; * * _cairo_array_init (&array, sizeof(double)); @@ -231,7 +231,7 @@ _cairo_array_copy_element (cairo_array_t *array, int index, void *dst) * * _cairo_array_index (array, _cairo_array_num_elements (array) - 1); * - * Return value: CAIRO_STATUS_SUCCESS if successful or + * Return value: %CAIRO_STATUS_SUCCESS if successful or * CAIRO_STATUS_NO_MEMORY if insufficient memory is available for the * operation. **/ @@ -251,7 +251,7 @@ _cairo_array_append (cairo_array_t *array, * @num_elements, then copying @num_elements * element_size bytes from * @elements into the array. * - * Return value: CAIRO_STATUS_SUCCESS if successful or + * Return value: %CAIRO_STATUS_SUCCESS if successful or * CAIRO_STATUS_NO_MEMORY if insufficient memory is available for the * operation. **/ @@ -282,7 +282,7 @@ _cairo_array_append_multiple (cairo_array_t *array, * @elements. This memory will be unitialized, but will be accounted * for in the return value of _cairo_array_num_elements(). * - * Return value: CAIRO_STATUS_SUCCESS if successful or + * Return value: %CAIRO_STATUS_SUCCESS if successful or * CAIRO_STATUS_NO_MEMORY if insufficient memory is available for the * operation. **/ @@ -331,7 +331,7 @@ _cairo_array_size (cairo_array_t *array) return array->size; } -/* cairo_user_data_array_t */ +/* #cairo_user_data_array_t */ typedef struct { const cairo_user_data_key_t *key; diff --git a/src/cairo-atsui-font.c b/src/cairo-atsui-font.c index d4c1f64..55629c5 100644 --- a/src/cairo-atsui-font.c +++ b/src/cairo-atsui-font.c @@ -208,6 +208,7 @@ CreateSizedCopyOfStyle(ATSUStyle inStyle, static cairo_status_t _cairo_atsui_font_set_metrics (cairo_atsui_font_t *font) { + cairo_status_t status; ATSFontRef atsFont; ATSFontMetrics metrics; OSStatus err; @@ -228,9 +229,9 @@ _cairo_atsui_font_set_metrics (cairo_atsui_font_t *font) /* The FT backend doesn't handle max_y_advance either, so we'll ignore it for now. */ extents.max_y_advance = 0.0; - _cairo_scaled_font_set_metrics (&font->base, &extents); + status = _cairo_scaled_font_set_metrics (&font->base, &extents); - return CAIRO_STATUS_SUCCESS; + return status; } } @@ -264,8 +265,11 @@ _cairo_atsui_font_create_scaled (cairo_font_face_t *font_face, return status; } - _cairo_matrix_compute_scale_factors (&font->base.scale, - &xscale, &yscale, 1); + status = _cairo_matrix_compute_scale_factors (&font->base.scale, + &xscale, &yscale, 1); + if (status) + goto FAIL; + font->font_matrix = CGAffineTransformMake (1., 0., 0., yscale/xscale, 0., 0.); @@ -466,6 +470,7 @@ static cairo_status_t _cairo_atsui_font_init_glyph_metrics (cairo_atsui_font_t *scaled_font, cairo_scaled_glyph_t *scaled_glyph) { + cairo_status_t status; cairo_text_extents_t extents = {0, 0, 0, 0, 0, 0}; OSStatus err; ATSGlyphScreenMetrics metricsH; @@ -489,8 +494,11 @@ _cairo_atsui_font_init_glyph_metrics (cairo_atsui_font_t *scaled_font, return _cairo_error (CAIRO_STATUS_NO_MEMORY); /* Scale down to font units.*/ - _cairo_matrix_compute_scale_factors (&scaled_font->base.scale, - &xscale, &yscale, 1); + status = _cairo_matrix_compute_scale_factors (&scaled_font->base.scale, + &xscale, &yscale, 1); + if (status) + return status; + xscale = 1.0/xscale; yscale = 1.0/yscale; @@ -601,6 +609,7 @@ static cairo_status_t _cairo_atsui_scaled_font_init_glyph_path (cairo_atsui_font_t *scaled_font, cairo_scaled_glyph_t *scaled_glyph) { + cairo_status_t status; static ATSCubicMoveToUPP moveProc = NULL; static ATSCubicLineToUPP lineProc = NULL; static ATSCubicCurveToUPP curveProc = NULL; @@ -625,7 +634,10 @@ _cairo_atsui_scaled_font_init_glyph_path (cairo_atsui_font_t *scaled_font, } /* extract the rotation/shear component of the scale matrix. */ - _cairo_matrix_compute_scale_factors (font_to_device, &xscale, &yscale, 1); + status = _cairo_matrix_compute_scale_factors (font_to_device, &xscale, &yscale, 1); + if (status) + goto FAIL; + cairo_matrix_init (&unscaled_font_to_device, font_to_device->xx, font_to_device->yx, @@ -649,14 +661,18 @@ _cairo_atsui_scaled_font_init_glyph_path (cairo_atsui_font_t *scaled_font, curveProc, closePathProc, (void *)&scaled_path, &err); if (err != noErr) { - _cairo_path_fixed_destroy (scaled_path.path); - return _cairo_error (CAIRO_STATUS_NO_MEMORY); + status = _cairo_error (CAIRO_STATUS_NO_MEMORY); + goto FAIL; } _cairo_scaled_glyph_set_path (scaled_glyph, &scaled_font->base, scaled_path.path); return CAIRO_STATUS_SUCCESS; + + FAIL: + _cairo_path_fixed_destroy (scaled_path.path); + return status; } static cairo_status_t @@ -681,7 +697,6 @@ _cairo_atsui_scaled_font_init_glyph_surface (cairo_atsui_font_t *scaled_font, CGRect bbox; CGAffineTransform transform; - if (theGlyph == kATSDeletedGlyphcode) { surface = (cairo_image_surface_t *)cairo_image_surface_create (CAIRO_FORMAT_A8, 2, 2); status = cairo_surface_status ((cairo_surface_t *)surface); @@ -701,8 +716,11 @@ _cairo_atsui_scaled_font_init_glyph_surface (cairo_atsui_font_t *scaled_font, height = extents.ascent + extents.descent + 2.0; bottom = -extents.descent - 1.0; - _cairo_matrix_compute_scale_factors (&base.scale, - &xscale, &yscale, 1); + status = _cairo_matrix_compute_scale_factors (&base.scale, + &xscale, &yscale, 1); + if (status) + return status; + bbox = CGRectApplyAffineTransform (CGRectMake (1.0, bottom, 1.0, height), CGAffineTransformMakeScale(xscale, yscale)); bottom = CGRectGetMinY (bbox); height = bbox.size.height; @@ -734,8 +752,11 @@ _cairo_atsui_scaled_font_init_glyph_surface (cairo_atsui_font_t *scaled_font, -base.scale.xy, base.scale.yy, 0., 0.); - _cairo_matrix_compute_scale_factors (&base.scale, - &xscale, &yscale, 1); + status = _cairo_matrix_compute_scale_factors (&base.scale, + &xscale, &yscale, 1); + if (status) + return status; + transform = CGAffineTransformScale (transform, 1.0/xscale, 1.0/yscale); /* Rotate the bounding box. This computes the smallest CGRect @@ -896,6 +917,11 @@ _cairo_atsui_font_text_to_glyphs (void *abstract_font, goto BAIL2; } + status = _cairo_matrix_compute_scale_factors (&font->base.ctm, + &xscale, &yscale, 1); + if (status) + goto BAIL2; + *num_glyphs = glyphCount - 1; *glyphs = (cairo_glyph_t *) _cairo_malloc_ab(*num_glyphs, sizeof (cairo_glyph_t)); @@ -903,7 +929,7 @@ _cairo_atsui_font_text_to_glyphs (void *abstract_font, status = _cairo_error (CAIRO_STATUS_NO_MEMORY); goto BAIL1; } - _cairo_matrix_compute_scale_factors (&font->base.ctm, &xscale, &yscale, 1); + device_to_user_scale = CGAffineTransformInvert (CGAffineTransformMake (xscale, 0, 0, yscale, diff --git a/src/cairo-base85-stream.c b/src/cairo-base85-stream.c index b7dc9b1..2b8a8be 100644 --- a/src/cairo-base85-stream.c +++ b/src/cairo-base85-stream.c @@ -25,8 +25,7 @@ * 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 cairo_output_stream.c as distributed with the - * cairo graphics library. + * The Original Code is the cairo graphics library. * * The Initial Developer of the Original Code is Red Hat, Inc. * diff --git a/src/cairo-bentley-ottmann.c b/src/cairo-bentley-ottmann.c index 3ef7858..1da9743 100644 --- a/src/cairo-bentley-ottmann.c +++ b/src/cairo-bentley-ottmann.c @@ -129,7 +129,7 @@ typedef struct _cairo_bo_event_queue { unsigned num_startstop_events; } cairo_bo_event_queue_t; -/* This structure extends cairo_skip_list_t, which must come first. */ +/* This structure extends #cairo_skip_list_t, which must come first. */ typedef struct _cairo_bo_sweep_line { cairo_skip_list_t active_edges; cairo_bo_edge_t *head; @@ -385,7 +385,7 @@ cairo_bo_event_compare (cairo_bo_event_t const *a, * need a different sense for start and stop events based on the * shortening rule. * - * NOTE: Fortunately, we get to ignore errors in the relative + * Note: Fortunately, we get to ignore errors in the relative * ordering of intersection events. This means we don't even have * to look at e2 here, nor worry about which sense of the slope * comparison test is used for intersection events. @@ -507,7 +507,7 @@ det64_128 (cairo_int64_t a, /* Compute the intersection of two lines as defined by two edges. The * result is provided as a coordinate pair of 128-bit integers. * - * Returns CAIRO_BO_STATUS_INTERSECTION if there is an intersection or + * Returns %CAIRO_BO_STATUS_INTERSECTION if there is an intersection or * CAIRO_BO_STATUS_PARALLEL if the two lines are exactly parallel. */ static cairo_bo_status_t @@ -638,10 +638,10 @@ _cairo_bo_edge_contains_intersect_point (cairo_bo_edge_t *edge, /* Compute the intersection of two edges. The result is provided as a * coordinate pair of 128-bit integers. * - * Returns CAIRO_BO_STATUS_INTERSECTION if there is an intersection - * that is within both edges, CAIRO_BO_STATUS_NO_INTERSECTION if the + * Returns %CAIRO_BO_STATUS_INTERSECTION if there is an intersection + * that is within both edges, %CAIRO_BO_STATUS_NO_INTERSECTION if the * intersection of the lines defined by the edges occurs outside of - * one or both edges, and CAIRO_BO_STATUS_PARALLEL if the two edges + * one or both edges, and %CAIRO_BO_STATUS_PARALLEL if the two edges * are exactly parallel. * * Note that when determining if a candidate intersection is "inside" @@ -1053,7 +1053,7 @@ print_state (const char *msg, } #endif -/* Adds the trapezoid, if any, of the left edge to the cairo_traps_t +/* Adds the trapezoid, if any, of the left edge to the #cairo_traps_t * of bo_traps. */ static cairo_status_t _cairo_bo_edge_end_trap (cairo_bo_edge_t *left, diff --git a/src/cairo-beos-surface.cpp b/src/cairo-beos-surface.cpp index 193fa43..69dfd83 100644 --- a/src/cairo-beos-surface.cpp +++ b/src/cairo-beos-surface.cpp @@ -965,7 +965,7 @@ cairo_beos_surface_create (BView* view) * before the surface. * * For views that draw to a bitmap (as opposed to a screen), use this function - * rather than cairo_beos_surface_create. Not using this function WILL lead to + * rather than cairo_beos_surface_create(). Not using this function WILL lead to * incorrect behaviour. * * For now, only views that draw to the entire area of bmp are supported. diff --git a/src/cairo-cache-private.h b/src/cairo-cache-private.h index 4b3164a..4ae63ad 100644 --- a/src/cairo-cache-private.h +++ b/src/cairo-cache-private.h @@ -46,8 +46,8 @@ * cairo_cache_entry_t: * * A #cairo_cache_entry_t contains both a key and a value for - * cairo_cache_t. User-derived types for cairo_cache_entry_t must - * have a cairo_cache_entry_t as their first field. For example: + * #cairo_cache_t. User-derived types for #cairo_cache_entry_t must + * have a #cairo_cache_entry_t as their first field. For example: * * typedef _my_entry { * cairo_cache_entry_t base; @@ -55,7 +55,7 @@ * } my_entry_t; * * which then allows a pointer to my_entry_t to be passed to any of - * the cairo_cache functions as follows without requiring a cast: + * the #cairo_cache_t functions as follows without requiring a cast: * * _cairo_cache_insert (cache, &my_entry->base, size); * @@ -78,7 +78,7 @@ * Which parts of the entry make up the "key" and which part make up * the value are entirely up to the caller, (as determined by the * computation going into base.hash as well as the keys_equal - * function). A few of the cairo_cache functions accept an entry which + * function). A few of the #cairo_cache_t functions accept an entry which * will be used exclusively as a "key", (indicated by a parameter name * of key). In these cases, the value-related fields of the entry need * not be initialized if so desired. diff --git a/src/cairo-cache.c b/src/cairo-cache.c index 9bb4de5..c87e20f 100644 --- a/src/cairo-cache.c +++ b/src/cairo-cache.c @@ -97,7 +97,7 @@ _cairo_cache_fini (cairo_cache_t *cache) * the equality of entries. * * Data is provided to the cache in the form of user-derived version - * of cairo_cache_entry_t. A cache entry must be able to hold hash + * of #cairo_cache_entry_t. A cache entry must be able to hold hash * code, a size, and the key/value pair being stored in the * cache. Sometimes only the key will be necessary, (as in * _cairo_cache_lookup()), and in these cases the value portion of the @@ -172,7 +172,7 @@ _cairo_cache_destroy (cairo_cache_t *cache) * add new entries to the cache regardless of how large the cache * grows. See _cairo_cache_thaw(). * - * NOTE: Multiple calls to _cairo_cache_freeze() will stack, in that + * Note: Multiple calls to _cairo_cache_freeze() will stack, in that * the cache will remain "frozen" until a corresponding number of * calls are made to _cairo_cache_thaw(). **/ @@ -239,8 +239,8 @@ _cairo_cache_lookup (cairo_cache_t *cache, * * Remove a random entry from the cache. * - * Return value: CAIRO_STATUS_SUCCESS if an entry was successfully - * removed. CAIRO_INT_STATUS_CACHE_EMPTY if there are no entries that + * Return value: %CAIRO_STATUS_SUCCESS if an entry was successfully + * removed. %CAIRO_INT_STATUS_CACHE_EMPTY if there are no entries that * can be removed. **/ static cairo_int_status_t @@ -295,7 +295,7 @@ _cairo_cache_shrink_to_accommodate (cairo_cache_t *cache, * a matching key, then the old entry will be removed first, (and the * entry_destroy() callback will be called on it). * - * Return value: CAIRO_STATUS_SUCCESS if successful or + * Return value: %CAIRO_STATUS_SUCCESS if successful or * CAIRO_STATUS_NO_MEMORY if insufficient memory is available. **/ cairo_status_t @@ -323,7 +323,7 @@ _cairo_cache_insert (cairo_cache_t *cache, * * Remove an existing entry from the cache. * - * (NOTE: If any caller wanted access to a non-static version of this + * (Note: If any caller wanted access to a non-static version of this * function, an improved version would require only a key rather than * an entry. Fixing that would require fixing _cairo_hash_table_remove * to return (a copy of?) the entry being removed.) diff --git a/src/cairo-clip.c b/src/cairo-clip.c index 8d48b53..fd9f3a8 100644 --- a/src/cairo-clip.c +++ b/src/cairo-clip.c @@ -451,11 +451,41 @@ _cairo_clip_intersect_mask (cairo_clip_t *clip, _cairo_pattern_init_solid (&pattern.solid, CAIRO_COLOR_WHITE, CAIRO_CONTENT_COLOR); + /* The clipping operation should ideally be something like the following to + * avoid having to do as many passes over the data + + if (clip->surface != NULL) { + _cairo_pattern_init_for_surface (&pattern.surface, clip->surface); + } else { + _cairo_pattern_init_solid (&pattern.solid, CAIRO_COLOR_WHITE, + CAIRO_CONTENT_COLOR); + } + status = _cairo_surface_composite_trapezoids (CAIRO_OPERATOR_IN, + &pattern.base, + surface, + antialias, + 0, 0, + 0, 0, + surface_rect.width, + surface_rect.height, + traps->traps, + traps->num_traps); + + However this operation is not accelerated by pixman + + I believe the best possible operation would probably an unbounded SRC + operator. Using SRC we could potentially avoid having to initialize + the surface which would be ideal from an efficiency point of view. + However, _cairo_surface_composite_trapezoids (CAIRO_OPERATOR_SOURCE) is + bounded by the mask. + + */ + surface = _cairo_surface_create_similar_solid (target, CAIRO_CONTENT_ALPHA, surface_rect.width, surface_rect.height, - CAIRO_COLOR_WHITE, + CAIRO_COLOR_TRANSPARENT, &pattern.base); if (surface->status) { _cairo_pattern_fini (&pattern.base); @@ -466,7 +496,7 @@ _cairo_clip_intersect_mask (cairo_clip_t *clip, _cairo_traps_translate (traps, -surface_rect.x, -surface_rect.y); - status = _cairo_surface_composite_trapezoids (CAIRO_OPERATOR_IN, + status = _cairo_surface_composite_trapezoids (CAIRO_OPERATOR_ADD, &pattern.base, surface, antialias, @@ -721,7 +751,7 @@ _cairo_clip_copy_rectangle_list (cairo_clip_t *clip, cairo_gstate_t *gstate) cairo_box_int_t *boxes; int i; - if (_cairo_region_get_boxes (&clip->region, &n_boxes, &boxes) != CAIRO_STATUS_SUCCESS) + if (_cairo_region_get_boxes (&clip->region, &n_boxes, &boxes)) return (cairo_rectangle_list_t*) &_cairo_rectangles_nil; if (n_boxes) { diff --git a/src/cairo-compiler-private.h b/src/cairo-compiler-private.h index 758cde5..1c6645e 100644 --- a/src/cairo-compiler-private.h +++ b/src/cairo-compiler-private.h @@ -111,6 +111,16 @@ CAIRO_BEGIN_DECLS #define __attribute__(x) #endif +#ifdef _MSC_VER +#define snprintf _snprintf +#undef inline +#define inline __inline +#endif + +#ifdef __STRICT_ANSI__ +#undef inline +#define inline __inline__ +#endif CAIRO_END_DECLS diff --git a/src/cairo-debug.c b/src/cairo-debug.c index cdd3ce9..c4b7edf 100644 --- a/src/cairo-debug.c +++ b/src/cairo-debug.c @@ -44,9 +44,9 @@ * * This function is intended to be useful when using memory-checking * tools such as valgrind. When valgrind's memcheck analyzes a - * cairo-using program without a call to cairo_debug_reset_static_data, + * cairo-using program without a call to cairo_debug_reset_static_data(), * it will report all data reachable via cairo's static objects as - * "still reachable". Calling cairo_debug_reset_static_data just prior + * "still reachable". Calling cairo_debug_reset_static_data() just prior * to program termination will make it easier to get squeaky clean * reports from valgrind. * diff --git a/src/cairo-deflate-stream.c b/src/cairo-deflate-stream.c index 8734b17..9feb46d 100644 --- a/src/cairo-deflate-stream.c +++ b/src/cairo-deflate-stream.c @@ -25,8 +25,7 @@ * 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 cairo_output_stream.c as distributed with the - * cairo graphics library. + * The Original Code is the cairo graphics library. * * The Initial Developer of the Original Code is Adrian Johnson. * diff --git a/src/cairo-deprecated.h b/src/cairo-deprecated.h index 77523c4..35a4eb9 100644 --- a/src/cairo-deprecated.h +++ b/src/cairo-deprecated.h @@ -36,7 +36,7 @@ #ifndef CAIRO_DEPRECATED_H #define CAIRO_DEPRECATED_H -/* The CAIRO_FORMAT_RGB16_565 value was added in cairo 1.2.0 as part +/* The %CAIRO_FORMAT_RGB16_565 value was added in cairo 1.2.0 as part * of fixing cairo's xlib backend to work with X servers advertising a * 16-bit, 565 visual. But as it turned out, adding this format to * #cairo_format_t was not necessary, and was a mistake, (cairo's xlib diff --git a/src/cairo-directfb.h b/src/cairo-directfb.h index 59653d3..21005e1 100644 --- a/src/cairo-directfb.h +++ b/src/cairo-directfb.h @@ -37,10 +37,10 @@ /* * Environment variables affecting the backend: * - * CAIRO_DIRECTFB_NO_ACCEL (boolean) + * %CAIRO_DIRECTFB_NO_ACCEL (boolean) * if found, disables acceleration at all * - * CAIRO_DIRECTFB_ARGB_FONT (boolean) + * %CAIRO_DIRECTFB_ARGB_FONT (boolean) * if found, enables using ARGB fonts instead of A8 */ diff --git a/src/cairo-fixed-private.h b/src/cairo-fixed-private.h index cb42ac1..626c02a 100644 --- a/src/cairo-fixed-private.h +++ b/src/cairo-fixed-private.h @@ -37,39 +37,11 @@ #ifndef CAIRO_FIXED_PRIVATE_H #define CAIRO_FIXED_PRIVATE_H -#include "cairo-wideint-private.h" - -/* - * Fixed-point configuration - */ - -typedef int32_t cairo_fixed_16_16_t; -typedef cairo_int64_t cairo_fixed_32_32_t; -typedef cairo_int64_t cairo_fixed_48_16_t; -typedef cairo_int128_t cairo_fixed_64_64_t; -typedef cairo_int128_t cairo_fixed_96_32_t; - -/* Eventually, we should allow changing this, but I think - * there are some assumptions in the tesselator about the - * size of a fixed type. For now, it must be 32. - */ -#define CAIRO_FIXED_BITS 32 +#include "cairo-fixed-type-private.h" -/* The number of fractional bits. Changing this involves - * making sure that you compute a double-to-fixed magic number. - * (see below). - */ -#define CAIRO_FIXED_FRAC_BITS 16 - -/* A signed type CAIRO_FIXED_BITS in size; the main fixed point type */ -typedef int32_t cairo_fixed_t; - -/* An unsigned type of the same size as cairo_fixed_t */ -typedef uint32_t cairo_fixed_unsigned_t; +#include "cairo-wideint-private.h" -/* - * No configurable bits below this. - */ +/* Implementation */ #if (CAIRO_FIXED_BITS != 32) # error CAIRO_FIXED_BITS must be 32, and the type must be a 32-bit type. diff --git a/src/cairo-fixed-type-private.h b/src/cairo-fixed-type-private.h new file mode 100644 index 0000000..d8305ee --- /dev/null +++ b/src/cairo-fixed-type-private.h @@ -0,0 +1,70 @@ +/* -*- Mode: c; tab-width: 8; c-basic-offset: 4; indent-tabs-mode: t; -*- */ +/* Cairo - a vector graphics library with display and print output + * + * Copyright © 2007 Mozilla Corporation + * + * 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 Mozilla Corporation + * + * Contributor(s): + * Vladimir Vukicevic <vladimir@pobox.com> + */ + +#ifndef CAIRO_FIXED_TYPE_PRIVATE_H +#define CAIRO_FIXED_TYPE_PRIVATE_H + +#include "cairo-wideint-type-private.h" + +/* + * Fixed-point configuration + */ + +typedef int32_t cairo_fixed_16_16_t; +typedef cairo_int64_t cairo_fixed_32_32_t; +typedef cairo_int64_t cairo_fixed_48_16_t; +typedef cairo_int128_t cairo_fixed_64_64_t; +typedef cairo_int128_t cairo_fixed_96_32_t; + +/* Eventually, we should allow changing this, but I think + * there are some assumptions in the tesselator about the + * size of a fixed type. For now, it must be 32. + */ +#define CAIRO_FIXED_BITS 32 + +/* The number of fractional bits. Changing this involves + * making sure that you compute a double-to-fixed magic number. + * (see below). + */ +#define CAIRO_FIXED_FRAC_BITS 16 + +/* A signed type %CAIRO_FIXED_BITS in size; the main fixed point type */ +typedef int32_t cairo_fixed_t; + +/* An unsigned type of the same size as #cairo_fixed_t */ +typedef uint32_t cairo_fixed_unsigned_t; + +#endif /* CAIRO_FIXED_TYPE_PRIVATE_H */ diff --git a/src/cairo-font-face.c b/src/cairo-font-face.c index f729476..397dd56 100644 --- a/src/cairo-font-face.c +++ b/src/cairo-font-face.c @@ -45,7 +45,7 @@ */ static const cairo_font_face_backend_t _cairo_toy_font_face_backend; -/* cairo_font_face_t */ +/* #cairo_font_face_t */ const cairo_font_face_t _cairo_font_face_nil = { { 0 }, /* hash_entry */ @@ -256,10 +256,10 @@ _cairo_toy_font_face_keys_equal (const void *key_a, const void *key_b); /* We maintain a hash table from family/weight/slant => - * cairo_font_face_t for cairo_toy_font_t. The primary purpose of - * this mapping is to provide unique cairo_font_face_t values so that - * our cache and mapping from cairo_font_face_t => cairo_scaled_font_t - * works. Once the corresponding cairo_font_face_t objects fall out of + * #cairo_font_face_t for #cairo_toy_font_t. The primary purpose of + * this mapping is to provide unique #cairo_font_face_t values so that + * our cache and mapping from #cairo_font_face_t => #cairo_scaled_font_t + * works. Once the corresponding #cairo_font_face_t objects fall out of * downstream caches, we don't need them in this hash table anymore. * * Modifications to this hash table are protected by @@ -295,11 +295,11 @@ _cairo_toy_font_face_hash_table_unlock (void) /** * _cairo_toy_font_face_init_key: * - * Initialize those portions of cairo_toy_font_face_t needed to use + * Initialize those portions of #cairo_toy_font_face_t needed to use * it as a hash table key, including the hash code buried away in * font_face->base.hash_entry. No memory allocation is performed here * so that no fini call is needed. We do this to make it easier to use - * an automatic cairo_toy_font_face_t variable as a key. + * an automatic #cairo_toy_font_face_t variable as a key. **/ static void _cairo_toy_font_face_init_key (cairo_toy_font_face_t *key, @@ -476,9 +476,11 @@ _cairo_toy_font_face_scaled_font_create (void *abstract_font_face if (font_face->base.status) return font_face->base.status; - status = cairo_font_options_status ((cairo_font_options_t *) options); - if (status) - return status; + if (options != NULL) { + status = cairo_font_options_status ((cairo_font_options_t *) options); + if (status) + return status; + } return _cairo_font_face_set_error (&font_face->base, backend->create_toy (font_face, diff --git a/src/cairo-font-options.c b/src/cairo-font-options.c index c5d5c12..f9a1059 100644 --- a/src/cairo-font-options.c +++ b/src/cairo-font-options.c @@ -52,7 +52,7 @@ static const cairo_font_options_t _cairo_font_options_nil = { void _cairo_font_options_init_default (cairo_font_options_t *options) { - if (options == (cairo_font_options_t *)&_cairo_font_options_nil) + if (cairo_font_options_status (options)) return; options->antialias = CAIRO_ANTIALIAS_DEFAULT; @@ -65,10 +65,13 @@ void _cairo_font_options_init_copy (cairo_font_options_t *options, const cairo_font_options_t *other) { - options->antialias = other->antialias; - options->subpixel_order = other->subpixel_order; - options->hint_style = other->hint_style; - options->hint_metrics = other->hint_metrics; + if (other != NULL) { + options->antialias = other->antialias; + options->subpixel_order = other->subpixel_order; + options->hint_style = other->hint_style; + options->hint_metrics = other->hint_metrics; + } else + _cairo_font_options_init_default (options); } /** @@ -91,7 +94,7 @@ cairo_font_options_create (void) options = malloc (sizeof (cairo_font_options_t)); if (!options) { _cairo_error_throw (CAIRO_STATUS_NO_MEMORY); - return (cairo_font_options_t *)&_cairo_font_options_nil; + return (cairo_font_options_t *) &_cairo_font_options_nil; } _cairo_font_options_init_default (options); @@ -118,13 +121,16 @@ cairo_font_options_copy (const cairo_font_options_t *original) { cairo_font_options_t *options; - if (original == &_cairo_font_options_nil) - return (cairo_font_options_t *)&_cairo_font_options_nil; + if (original != NULL && + cairo_font_options_status ((cairo_font_options_t *) original)) + { + return (cairo_font_options_t *) &_cairo_font_options_nil; + } options = malloc (sizeof (cairo_font_options_t)); if (!options) { _cairo_error_throw (CAIRO_STATUS_NO_MEMORY); - return (cairo_font_options_t *)&_cairo_font_options_nil; + return (cairo_font_options_t *) &_cairo_font_options_nil; } _cairo_font_options_init_copy (options, original); @@ -142,7 +148,7 @@ cairo_font_options_copy (const cairo_font_options_t *original) void cairo_font_options_destroy (cairo_font_options_t *options) { - if (options == (cairo_font_options_t *)&_cairo_font_options_nil) + if (cairo_font_options_status (options)) return; free (options); @@ -161,7 +167,9 @@ slim_hidden_def (cairo_font_options_destroy); cairo_status_t cairo_font_options_status (cairo_font_options_t *options) { - if (options == (cairo_font_options_t *)&_cairo_font_options_nil) + if (options == NULL) + return CAIRO_STATUS_NULL_POINTER; + else if (options == (cairo_font_options_t *) &_cairo_font_options_nil) return CAIRO_STATUS_NO_MEMORY; else return CAIRO_STATUS_SUCCESS; @@ -182,7 +190,11 @@ void cairo_font_options_merge (cairo_font_options_t *options, const cairo_font_options_t *other) { - if (options == (cairo_font_options_t *)&_cairo_font_options_nil) + if (cairo_font_options_status (options)) + return; + + /* A NULL other maps to the defaults and would not overwrite options */ + if (cairo_font_options_status ((cairo_font_options_t *) other)) return; if (other->antialias != CAIRO_ANTIALIAS_DEFAULT) @@ -209,6 +221,14 @@ cairo_bool_t cairo_font_options_equal (const cairo_font_options_t *options, const cairo_font_options_t *other) { + if (options == NULL) + options = &_cairo_font_options_nil; + if (other == NULL) + other = &_cairo_font_options_nil; + + if (options == other) + return TRUE; + return (options->antialias == other->antialias && options->subpixel_order == other->subpixel_order && options->hint_style == other->hint_style && @@ -221,7 +241,7 @@ slim_hidden_def (cairo_font_options_equal); * @options: a #cairo_font_options_t * * Compute a hash for the font options object; this value will - * be useful when storing an object containing a cairo_font_options_t + * be useful when storing an object containing a #cairo_font_options_t * in a hash table. * * Return value: the hash value for the font options object. @@ -231,6 +251,9 @@ slim_hidden_def (cairo_font_options_equal); unsigned long cairo_font_options_hash (const cairo_font_options_t *options) { + if (options == NULL) + options = &_cairo_font_options_nil; + return ((options->antialias) | (options->subpixel_order << 4) | (options->hint_style << 8) | @@ -250,7 +273,7 @@ void cairo_font_options_set_antialias (cairo_font_options_t *options, cairo_antialias_t antialias) { - if (options == (cairo_font_options_t *)&_cairo_font_options_nil) + if (cairo_font_options_status (options)) return; options->antialias = antialias; @@ -268,6 +291,9 @@ slim_hidden_def (cairo_font_options_set_antialias); cairo_antialias_t cairo_font_options_get_antialias (const cairo_font_options_t *options) { + if (cairo_font_options_status ((cairo_font_options_t *) options)) + return CAIRO_ANTIALIAS_DEFAULT; + return options->antialias; } @@ -286,7 +312,7 @@ void cairo_font_options_set_subpixel_order (cairo_font_options_t *options, cairo_subpixel_order_t subpixel_order) { - if (options == (cairo_font_options_t *)&_cairo_font_options_nil) + if (cairo_font_options_status (options)) return; options->subpixel_order = subpixel_order; @@ -305,6 +331,9 @@ slim_hidden_def (cairo_font_options_set_subpixel_order); cairo_subpixel_order_t cairo_font_options_get_subpixel_order (const cairo_font_options_t *options) { + if (cairo_font_options_status ((cairo_font_options_t *) options)) + return CAIRO_SUBPIXEL_ORDER_DEFAULT; + return options->subpixel_order; } @@ -322,7 +351,7 @@ void cairo_font_options_set_hint_style (cairo_font_options_t *options, cairo_hint_style_t hint_style) { - if (options == (cairo_font_options_t *)&_cairo_font_options_nil) + if (cairo_font_options_status (options)) return; options->hint_style = hint_style; @@ -341,6 +370,9 @@ slim_hidden_def (cairo_font_options_set_hint_style); cairo_hint_style_t cairo_font_options_get_hint_style (const cairo_font_options_t *options) { + if (cairo_font_options_status ((cairo_font_options_t *) options)) + return CAIRO_HINT_STYLE_DEFAULT; + return options->hint_style; } @@ -358,7 +390,7 @@ void cairo_font_options_set_hint_metrics (cairo_font_options_t *options, cairo_hint_metrics_t hint_metrics) { - if (options == (cairo_font_options_t *)&_cairo_font_options_nil) + if (cairo_font_options_status (options)) return; options->hint_metrics = hint_metrics; @@ -377,5 +409,8 @@ slim_hidden_def (cairo_font_options_set_hint_metrics); cairo_hint_metrics_t cairo_font_options_get_hint_metrics (const cairo_font_options_t *options) { + if (cairo_font_options_status ((cairo_font_options_t *) options)) + return CAIRO_HINT_METRICS_DEFAULT; + return options->hint_metrics; } diff --git a/src/cairo-freelist-private.h b/src/cairo-freelist-private.h index 0d02127..218c4c0 100644 --- a/src/cairo-freelist-private.h +++ b/src/cairo-freelist-private.h @@ -50,14 +50,14 @@ _cairo_freelist_fini (cairo_freelist_t *freelist); /* Allocate a new node from the freelist. If the freelist contains no * nodes, a new one will be allocated using malloc(). The caller is * responsible for calling _cairo_freelist_free() or free() on the - * returned node. Returns NULL on memory allocation error. */ + * returned node. Returns %NULL on memory allocation error. */ cairo_private void * _cairo_freelist_alloc (cairo_freelist_t *freelist); /* Allocate a new node from the freelist. If the freelist contains no * nodes, a new one will be allocated using calloc(). The caller is * responsible for calling _cairo_freelist_free() or free() on the - * returned node. Returns NULL on memory allocation error. */ + * returned node. Returns %NULL on memory allocation error. */ cairo_private void * _cairo_freelist_calloc (cairo_freelist_t *freelist); diff --git a/src/cairo-ft-font.c b/src/cairo-ft-font.c index 0db38ae..a502813 100644 --- a/src/cairo-ft-font.c +++ b/src/cairo-ft-font.c @@ -140,11 +140,11 @@ struct _cairo_ft_font_face { static const cairo_unscaled_font_backend_t cairo_ft_unscaled_font_backend; /* - * We maintain a hash table to map file/id => cairo_ft_unscaled_font_t. + * We maintain a hash table to map file/id => #cairo_ft_unscaled_font_t. * The hash table itself isn't limited in size. However, we limit the * number of FT_Face objects we keep around; when we've exceeded that * limit and need to create a new FT_Face, we dump the FT_Face from a - * random cairo_ft_unscaled_font_t which has an unlocked FT_Face, (if + * random #cairo_ft_unscaled_font_t which has an unlocked FT_Face, (if * there are any). */ @@ -295,21 +295,21 @@ _cairo_ft_unscaled_font_init_key (cairo_ft_unscaled_font_t *key, /** * _cairo_ft_unscaled_font_init: * - * Initialize a cairo_ft_unscaled_font_t. + * Initialize a #cairo_ft_unscaled_font_t. * - * There are two basic flavors of cairo_ft_unscaled_font_t, one + * There are two basic flavors of #cairo_ft_unscaled_font_t, one * created from an FT_Face and the other created from a filename/id * pair. These two flavors are identified as from_face and !from_face. * - * To initialize a from_face font, pass filename==NULL, id=0 and the + * To initialize a from_face font, pass filename==%NULL, id=0 and the * desired face. * * To initialize a !from_face font, pass the filename/id as desired - * and face==NULL. + * and face==%NULL. * * Note that the code handles these two flavors in very distinct * ways. For example there is a hash_table mapping - * filename/id->cairo_unscaled_font_t in the !from_face case, but no + * filename/id->#cairo_unscaled_font_t in the !from_face case, but no * parallel in the from_face case, (where the calling code would have * to do its own mapping to ensure similar sharing). **/ @@ -358,10 +358,10 @@ _cairo_unscaled_font_is_ft (cairo_unscaled_font_t *unscaled_font) /** * _cairo_ft_unscaled_font_fini: * - * Free all data associated with a cairo_ft_unscaled_font_t. + * Free all data associated with a #cairo_ft_unscaled_font_t. * - * CAUTION: The unscaled->face field must be NULL before calling this - * function. This is because the cairo_ft_unscaled_font_map keeps a + * CAUTION: The unscaled->face field must be %NULL before calling this + * function. This is because the #cairo_ft_unscaled_font_t_map keeps a * count of these faces (font_map->num_open_faces) so it maintains the * unscaled->face field while it has its lock held. See * _font_map_release_face_lock_held(). @@ -390,7 +390,7 @@ _cairo_ft_unscaled_font_keys_equal (const void *key_a, unscaled_a->id == unscaled_b->id); } -/* Finds or creates a cairo_ft_unscaled_font for the filename/id from +/* Finds or creates a #cairo_ft_unscaled_font_t for the filename/id from * pattern. Returns a new reference to the unscaled font. */ static cairo_ft_unscaled_font_t * @@ -589,10 +589,11 @@ _cairo_ft_unscaled_font_unlock_face (cairo_ft_unscaled_font_t *unscaled) } slim_hidden_def (cairo_ft_scaled_font_unlock_face); -static void +static cairo_status_t _compute_transform (cairo_ft_font_transform_t *sf, cairo_matrix_t *scale) { + cairo_status_t status; cairo_matrix_t normalized = *scale; /* The font matrix has x and y "scale" components which we extract and @@ -602,9 +603,11 @@ _compute_transform (cairo_ft_font_transform_t *sf, * freetype's transformation. */ - _cairo_matrix_compute_scale_factors (&normalized, - &sf->x_scale, &sf->y_scale, - /* XXX */ 1); + status = _cairo_matrix_compute_scale_factors (&normalized, + &sf->x_scale, &sf->y_scale, + /* XXX */ 1); + if (status) + return status; if (sf->x_scale != 0 && sf->y_scale != 0) { cairo_matrix_scale (&normalized, 1.0 / sf->x_scale, 1.0 / sf->y_scale); @@ -617,6 +620,8 @@ _compute_transform (cairo_ft_font_transform_t *sf, sf->shape[0][0] = sf->shape[1][1] = 1.0; sf->shape[0][1] = sf->shape[1][0] = 0.0; } + + return CAIRO_STATUS_SUCCESS; } /* Temporarily scales an unscaled font to the give scale. We catch @@ -626,6 +631,7 @@ static cairo_status_t _cairo_ft_unscaled_font_set_scale (cairo_ft_unscaled_font_t *unscaled, cairo_matrix_t *scale) { + cairo_status_t status; cairo_ft_font_transform_t sf; FT_Matrix mat; FT_Error error; @@ -642,7 +648,9 @@ _cairo_ft_unscaled_font_set_scale (cairo_ft_unscaled_font_t *unscaled, unscaled->have_scale = TRUE; unscaled->current_scale = *scale; - _compute_transform (&sf, scale); + status = _compute_transform (&sf, scale); + if (status) + return status; unscaled->x_scale = sf.x_scale; unscaled->y_scale = sf.y_scale; @@ -1244,7 +1252,7 @@ static const cairo_unscaled_font_backend_t cairo_ft_unscaled_font_backend = { #endif }; -/* cairo_ft_scaled_font_t */ +/* #cairo_ft_scaled_font_t */ typedef struct _cairo_ft_scaled_font { cairo_scaled_font_t base; @@ -1288,9 +1296,6 @@ _get_pattern_ft_options (FcPattern *pattern, cairo_ft_options_t *ret) if (antialias) { cairo_subpixel_order_t subpixel_order; - if (!bitmap) - ft_options.load_flags |= FT_LOAD_NO_BITMAP; - /* disable hinting if requested */ if (FcPatternGetBool (pattern, FC_HINTING, 0, &hinting) != FcResultMatch) @@ -1352,7 +1357,15 @@ _get_pattern_ft_options (FcPattern *pattern, cairo_ft_options_t *ret) if (!hinting) { ft_options.base.hint_style = CAIRO_HINT_STYLE_NONE; } -#endif /* FC_FHINT_STYLE */ +#endif /* FC_HINT_STYLE */ + + /* Force embedded bitmaps off if no hinting requested */ + if (ft_options.base.hint_style == CAIRO_HINT_STYLE_NONE) + bitmap = FcFalse; + + if (!bitmap) + ft_options.load_flags |= FT_LOAD_NO_BITMAP; + } else { ft_options.base.antialias = CAIRO_ANTIALIAS_NONE; } @@ -1454,6 +1467,8 @@ _cairo_ft_options_merge (cairo_ft_options_t *options, options->load_flags = load_flags | load_target; options->extra_flags = other->extra_flags; + if (options->base.hint_metrics != CAIRO_HINT_METRICS_OFF) + options->extra_flags |= CAIRO_FT_OPTIONS_HINT_METRICS; } static cairo_status_t @@ -1484,9 +1499,6 @@ _cairo_ft_scaled_font_create (cairo_ft_unscaled_font_t *unscaled, _cairo_unscaled_font_reference (&unscaled->base); scaled_font->unscaled = unscaled; - if (options->hint_metrics != CAIRO_HINT_METRICS_OFF) - ft_options.extra_flags |= CAIRO_FT_OPTIONS_HINT_METRICS; - _cairo_font_options_init_copy (&scaled_font->ft_options.base, options); _cairo_ft_options_merge (&scaled_font->ft_options, &ft_options); @@ -1514,8 +1526,13 @@ _cairo_ft_scaled_font_create (cairo_ft_unscaled_font_t *unscaled, /* * Get to unscaled metrics so that the upper level can get back to * user space + * + * Also use this path for bitmap-only fonts. The other branch uses + * face members that are only relevant for scalable fonts. This is + * detected by simply checking for units_per_EM==0. */ - if (scaled_font->base.options.hint_metrics != CAIRO_HINT_METRICS_OFF) { + if (scaled_font->base.options.hint_metrics != CAIRO_HINT_METRICS_OFF || + face->units_per_EM == 0) { double x_factor, y_factor; if (unscaled->x_scale == 0) @@ -1553,7 +1570,7 @@ _cairo_ft_scaled_font_create (cairo_ft_unscaled_font_t *unscaled, } } - _cairo_scaled_font_set_metrics (&scaled_font->base, &fs_metrics); + status = _cairo_scaled_font_set_metrics (&scaled_font->base, &fs_metrics); *font_out = &scaled_font->base; @@ -1635,7 +1652,7 @@ _cairo_ft_scaled_font_create_toy (cairo_toy_font_face_t *toy_face, cairo_matrix_multiply (&scale, font_matrix, ctm); _compute_transform (&sf, &scale); - if (! FcPatternAddInteger (pattern, FC_PIXEL_SIZE, sf.y_scale)) { + if (! FcPatternAddDouble (pattern, FC_PIXEL_SIZE, sf.y_scale)) { status = _cairo_error (CAIRO_STATUS_NO_MEMORY); goto FREE_PATTERN; } @@ -1645,9 +1662,11 @@ _cairo_ft_scaled_font_create_toy (cairo_toy_font_face_t *toy_face, goto FREE_PATTERN; } - status = _cairo_ft_font_options_substitute (font_options, pattern); - if (status) - goto FREE_PATTERN; + if (font_options != NULL) { + status = _cairo_ft_font_options_substitute (font_options, pattern); + if (status) + goto FREE_PATTERN; + } FcDefaultSubstitute (pattern); @@ -2181,7 +2200,7 @@ const cairo_scaled_font_backend_t cairo_ft_scaled_font_backend = { _cairo_ft_map_glyphs_to_unicode, }; -/* cairo_ft_font_face_t */ +/* #cairo_ft_font_face_t */ static void _cairo_ft_font_face_destroy (void *abstract_face) @@ -2433,6 +2452,9 @@ void cairo_ft_font_options_substitute (const cairo_font_options_t *options, FcPattern *pattern) { + if (cairo_font_options_status ((cairo_font_options_t *) options)) + return; + _cairo_ft_font_options_substitute (options, pattern); } @@ -2592,7 +2614,7 @@ cairo_ft_scaled_font_lock_face (cairo_scaled_font_t *abstract_font) return NULL; } - /* NOTE: We deliberately release the unscaled font's mutex here, + /* Note: We deliberately release the unscaled font's mutex here, * so that we are not holding a lock across two separate calls to * cairo function, (which would give the application some * opportunity for creating deadlock. This is obviously unsafe, @@ -2620,7 +2642,7 @@ cairo_ft_scaled_font_unlock_face (cairo_scaled_font_t *abstract_font) if (scaled_font->base.status) return; - /* NOTE: We released the unscaled font's mutex at the end of + /* Note: We released the unscaled font's mutex at the end of * cairo_ft_scaled_font_lock_face, so we have to acquire it again * as _cairo_ft_unscaled_font_unlock_face expects it to be held * when we call into it. */ diff --git a/src/cairo-glitz-surface.c b/src/cairo-glitz-surface.c index 04084e1..5144895 100644 --- a/src/cairo-glitz-surface.c +++ b/src/cairo-glitz-surface.c @@ -146,36 +146,39 @@ _CAIRO_MASK_FORMAT (cairo_format_masks_t *masks, cairo_format_t *format) return FALSE; } -static glitz_box_t * -_cairo_glitz_get_boxes_from_region (cairo_region_t *region, int *nboxes) +static cairo_status_t +_cairo_glitz_get_boxes_from_region (cairo_region_t *region, glitz_box_t **boxes, int *nboxes) { cairo_box_int_t *cboxes; - glitz_box_t *gboxes; + cairo_status_t status; int n, i; - if (_cairo_region_get_boxes (region, &n, &cboxes) != CAIRO_STATUS_SUCCESS) - return NULL; + status = _cairo_region_get_boxes (region, &n, &cboxes); + if (status) + return status; - *nboxes = n; - if (n == 0) - return NULL; + if (n == 0) { + status = _cairo_error (CAIRO_STATUS_NO_MEMORY); + goto done; + } - gboxes = _cairo_malloc_ab (n, sizeof(glitz_box_t)); - if (gboxes == NULL) { - _cairo_error_throw (CAIRO_STATUS_NO_MEMORY); - goto done; + *boxes = _cairo_malloc_ab (n, sizeof(glitz_box_t)); + if (*boxes == NULL) { + status = _cairo_error (CAIRO_STATUS_NO_MEMORY); + goto done; } for (i = 0; i < n; i++) { - gboxes[i].x1 = cboxes[i].p1.x; - gboxes[i].y1 = cboxes[i].p1.y; - gboxes[i].x2 = cboxes[i].p2.x; - gboxes[i].y2 = cboxes[i].p2.y; + (*boxes)[i].x1 = cboxes[i].p1.x; + (*boxes)[i].y1 = cboxes[i].p1.y; + (*boxes)[i].x2 = cboxes[i].p2.x; + (*boxes)[i].y2 = cboxes[i].p2.y; } + *nboxes = n; done: _cairo_region_boxes_fini (region, cboxes); - return gboxes; + return status; } static cairo_status_t @@ -292,12 +295,13 @@ _cairo_glitz_surface_get_image (cairo_glitz_surface_t *surface, /* restore the clip, if any */ if (surface->has_clip) { glitz_box_t *box; + cairo_status_t status; int n; - box = _cairo_glitz_get_boxes_from_region (&surface->clip, &n); - if (box == NULL && n != 0) { + status = _cairo_glitz_get_boxes_from_region (&surface->clip, &box, &n); + if (status) { free (pixels); - return _cairo_error (CAIRO_STATUS_NO_MEMORY); + return status; } glitz_surface_set_clip_region (surface->surface, 0, 0, box, n); @@ -1463,11 +1467,11 @@ _cairo_glitz_surface_set_clip_region (void *abstract_surface, return status; } - box = _cairo_glitz_get_boxes_from_region (&surface->clip, &n); - if (box == NULL && n != 0) { + status = _cairo_glitz_get_boxes_from_region (&surface->clip, &box, &n); + if (status) { _cairo_region_fini (&surface->clip); surface->has_clip = FALSE; - return _cairo_error (CAIRO_STATUS_NO_MEMORY); + return status; } glitz_surface_set_clip_region (surface->surface, 0, 0, box, n); diff --git a/src/cairo-gstate.c b/src/cairo-gstate.c index 099f7ed..99f842e 100644 --- a/src/cairo-gstate.c +++ b/src/cairo-gstate.c @@ -126,7 +126,7 @@ _cairo_gstate_init (cairo_gstate_t *gstate, * _cairo_gstate_init_copy: * * Initialize @gstate by performing a deep copy of state fields from - * @other. Note that gstate->next is not copied but is set to NULL by + * @other. Note that gstate->next is not copied but is set to %NULL by * this function. **/ static cairo_status_t @@ -215,14 +215,14 @@ _cairo_gstate_destroy (cairo_gstate_t *gstate) /** * _cairo_gstate_clone: - * @other: a #cairo_gstate_t to be copied, not NULL. + * @other: a #cairo_gstate_t to be copied, not %NULL. * * Create a new #cairo_gstate_t setting all graphics state parameters * to the same values as contained in @other. gstate->next will be set - * to NULL and may be used by the caller to chain cairo_gstate_t + * to %NULL and may be used by the caller to chain #cairo_gstate_t * objects together. * - * Return value: a new cairo_gstate_t or NULL if there is insufficient + * Return value: a new #cairo_gstate_t or %NULL if there is insufficient * memory. **/ static cairo_gstate_t* @@ -364,8 +364,8 @@ _cairo_gstate_redirect_target (cairo_gstate_t *gstate, cairo_surface_t *child) * _cairo_gstate_is_redirected * @gstate: a #cairo_gstate_t * - * Return value: TRUE if the gstate is redirected to a target - * different than the original, FALSE otherwise. + * Return value: %TRUE if the gstate is redirected to a target + * different than the original, %FALSE otherwise. **/ cairo_bool_t _cairo_gstate_is_redirected (cairo_gstate_t *gstate) @@ -393,7 +393,7 @@ _cairo_gstate_get_target (cairo_gstate_t *gstate) * @gstate: a #cairo_gstate_t * * Return the parent surface of the current drawing target surface; - * if this particular gstate isn't a redirect gstate, this will return NULL. + * if this particular gstate isn't a redirect gstate, this will return %NULL. **/ cairo_surface_t * _cairo_gstate_get_parent_target (cairo_gstate_t *gstate) @@ -422,7 +422,7 @@ _cairo_gstate_get_original_target (cairo_gstate_t *gstate) * _cairo_gstate_get_clip: * @gstate: a #cairo_gstate_t * - * Return value: a pointer to the gstate's cairo_clip_t structure. + * Return value: a pointer to the gstate's #cairo_clip_t structure. */ cairo_clip_t * _cairo_gstate_get_clip (cairo_gstate_t *gstate) @@ -818,6 +818,17 @@ _cairo_gstate_stroke_to_path (cairo_gstate_t *gstate) } */ +void +_cairo_gstate_path_extents (cairo_gstate_t *gstate, + cairo_path_fixed_t *path, + double *x1, double *y1, + double *x2, double *y2) +{ + _cairo_path_fixed_bounds (path, x1, y1, x2, y2, gstate->tolerance); + + _cairo_gstate_backend_to_user_rectangle (gstate, x1, y1, x2, y2, NULL); +} + static cairo_status_t _cairo_gstate_copy_transformed_pattern (cairo_gstate_t *gstate, cairo_pattern_t *pattern, @@ -1140,13 +1151,15 @@ BAIL: cairo_status_t _cairo_gstate_copy_page (cairo_gstate_t *gstate) { - return cairo_surface_copy_page (gstate->target); + cairo_surface_copy_page (gstate->target); + return cairo_surface_status (gstate->target); } cairo_status_t _cairo_gstate_show_page (cairo_gstate_t *gstate) { - return cairo_surface_show_page (gstate->target); + cairo_surface_show_page (gstate->target); + return cairo_surface_status (gstate->target); } static void @@ -1365,7 +1378,7 @@ _cairo_gstate_set_font_options (cairo_gstate_t *gstate, { _cairo_gstate_unset_scaled_font (gstate); - gstate->font_options = *options; + _cairo_font_options_init_copy (&gstate->font_options, options); } void @@ -1456,7 +1469,7 @@ _cairo_gstate_get_scaled_font (cairo_gstate_t *gstate, * and then ignored by the "scaled-font" layer. * * In order to perform any action on a font, we must build an object - * called a cairo_font_scale_t; this contains the central 2x2 matrix + * called a #cairo_font_scale_t; this contains the central 2x2 matrix * resulting from "font matrix * CTM" (sans the font matrix translation * components as stated in the previous paragraph). * diff --git a/src/cairo-hash.c b/src/cairo-hash.c index c419e9e..8575499 100644 --- a/src/cairo-hash.c +++ b/src/cairo-hash.c @@ -42,14 +42,14 @@ * An entry can be in one of three states: * * FREE: Entry has never been used, terminates all searches. - * Appears in the table as a NULL pointer. + * Appears in the table as a %NULL pointer. * * DEAD: Entry had been live in the past. A dead entry can be reused * but does not terminate a search for an exact entry. * Appears in the table as a pointer to DEAD_ENTRY. * * LIVE: Entry is currently being used. - * Appears in the table as any non-NULL, non-DEAD_ENTRY pointer. + * Appears in the table as any non-%NULL, non-DEAD_ENTRY pointer. */ static cairo_hash_entry_t dead_entry = { 0 }; @@ -129,11 +129,11 @@ struct _cairo_hash_table { /** * _cairo_hash_table_create: - * @keys_equal: a function to return TRUE if two keys are equal + * @keys_equal: a function to return %TRUE if two keys are equal * * Creates a new hash table which will use the keys_equal() function * to compare hash keys. Data is provided to the hash table in the - * form of user-derived versions of cairo_hash_entry_t. A hash entry + * form of user-derived versions of #cairo_hash_entry_t. A hash entry * must be able to hold both a key (including a hash code) and a * value. Sometimes only the key will be necessary, (as in * _cairo_hash_table_remove), and other times both a key and a value @@ -141,7 +141,7 @@ struct _cairo_hash_table { * * See #cairo_hash_entry_t for more details. * - * Return value: the new hash table or NULL if out of memory. + * Return value: the new hash table or %NULL if out of memory. **/ cairo_hash_table_t * _cairo_hash_table_create (cairo_hash_keys_equal_func_t keys_equal) @@ -212,9 +212,9 @@ _cairo_hash_table_destroy (cairo_hash_table_t *hash_table) * @hash_table: a #cairo_hash_table_t to search * @key: the key to search on * @hash_code: the hash_code for @key - * @key_unique: If TRUE, then caller asserts that no key already + * @key_unique: If %TRUE, then caller asserts that no key already * exists that will compare equal to #key, so search can be - * optimized. If unsure, set to FALSE and the code will always work. + * optimized. If unsure, set to %FALSE and the code will always work. * * Search the hashtable for a live entry for which * hash_table->keys_equal returns true. If no such entry exists then @@ -295,7 +295,7 @@ _cairo_hash_table_lookup_internal (cairo_hash_table_t *hash_table, * bigger or smaller than the ideal number of entries for the current * size. * - * Return value: CAIRO_STATUS_SUCCESS if successful or + * Return value: %CAIRO_STATUS_SUCCESS if successful or * CAIRO_STATUS_NO_MEMORY if out of memory. **/ static cairo_status_t @@ -361,9 +361,9 @@ _cairo_hash_table_resize (cairo_hash_table_t *hash_table) * key that matches @key, (as determined by the keys_equal() function * passed to _cairo_hash_table_create). * - * Return value: TRUE if there is an entry in the hash table that - * matches the given key, (which will now be in *entry_return). FALSE - * otherwise, (in which case *entry_return will be NULL). + * Return value: %TRUE if there is an entry in the hash table that + * matches the given key, (which will now be in *entry_return). %FALSE + * otherwise, (in which case *entry_return will be %NULL). **/ cairo_bool_t _cairo_hash_table_lookup (cairo_hash_table_t *hash_table, @@ -386,22 +386,22 @@ _cairo_hash_table_lookup (cairo_hash_table_t *hash_table, /** * _cairo_hash_table_random_entry: * @hash_table: a hash table - * @predicate: a predicate function, or NULL for any entry. + * @predicate: a predicate function, or %NULL for any entry. * * Find a random entry in the hash table satisfying the given - * @predicate. A NULL @predicate is taken as equivalent to a function - * which always returns TRUE, (eg. any entry in the table will do). + * @predicate. A %NULL @predicate is taken as equivalent to a function + * which always returns %TRUE, (eg. any entry in the table will do). * * We use the same algorithm as the lookup algorithm to walk over the * entries in the hash table in a pseudo-random order. Walking * linearly would favor entries following gaps in the hash table. We * could also call rand() repeatedly, which works well for almost-full * tables, but degrades when the table is almost empty, or predicate - * returns TRUE for most entries. + * returns %TRUE for most entries. * - * Return value: a random live entry or NULL if there are no entries + * Return value: a random live entry or %NULL if there are no entries * that match the given predicate. In particular, if predicate is - * NULL, a NULL return value indicates that the table is empty. + * NULL, a %NULL return value indicates that the table is empty. **/ void * _cairo_hash_table_random_entry (cairo_hash_table_t *hash_table, @@ -458,7 +458,7 @@ _cairo_hash_table_random_entry (cairo_hash_table_t *hash_table, * the entry obtained with _cairo_hash_table_lookup. Or if absolutely * necessary, use _cairo_hash_table_remove first. * - * Return value: CAIRO_STATUS_SUCCESS if successful or + * Return value: %CAIRO_STATUS_SUCCESS if successful or * CAIRO_STATUS_NO_MEMORY if insufficient memory is available. **/ cairo_status_t @@ -503,7 +503,7 @@ _cairo_hash_table_insert (cairo_hash_table_t *hash_table, * @key, if any (as determined by the keys_equal() function passed to * _cairo_hash_table_create). * - * Return value: CAIRO_STATUS_SUCCESS if successful or + * Return value: %CAIRO_STATUS_SUCCESS if successful or * CAIRO_STATUS_NO_MEMORY if out of memory. **/ void diff --git a/src/cairo-image-surface.c b/src/cairo-image-surface.c index 8787185..60c0592 100644 --- a/src/cairo-image-surface.c +++ b/src/cairo-image-surface.c @@ -280,7 +280,7 @@ _pixman_format_to_masks (pixman_format_code_t pixman_format, /* XXX: This function really should be eliminated. We don't really * want to advertise a cairo image surface that supports any possible * format. A minimal step would be to replace this function with one - * that accepts a cairo_internal_format_t rather than mask values. */ + * that accepts a #cairo_internal_format_t rather than mask values. */ cairo_surface_t * _cairo_image_surface_create_with_masks (unsigned char *data, cairo_format_masks_t *masks, @@ -302,7 +302,7 @@ _cairo_image_surface_create_with_masks (unsigned char *data, static pixman_format_code_t _cairo_format_to_pixman_format_code (cairo_format_t format) { - int ret = 0; + pixman_format_code_t ret; switch (format) { case CAIRO_FORMAT_A1: ret = PIXMAN_a1; @@ -318,7 +318,6 @@ _cairo_format_to_pixman_format_code (cairo_format_t format) ret = PIXMAN_a8r8g8b8; break; } - assert (ret); return ret; } @@ -359,7 +358,7 @@ _cairo_image_surface_create_with_pixman_format (unsigned char *data, * but not belonging to the given format are undefined). * * Return value: a pointer to the newly created surface. The caller - * owns the surface and should call cairo_surface_destroy when done + * owns the surface and should call cairo_surface_destroy() when done * with it. * * This function always returns a valid pointer, but it will return a @@ -395,17 +394,55 @@ _cairo_image_surface_create_with_content (cairo_content_t content, width, height); } +/* pixman required stride alignment in bytes. should be power of two. */ +#define STRIDE_ALIGNMENT (sizeof (uint32_t)) + +/** + * cairo_format_stride_for_width: + * @format: A #cairo_format_t value + * @width: The desired width of an image surface to be created. + * + * This function provides a stride value that will respect all + * alignment requirements of the accelerated image-rendering code + * within cairo. Typical usage will be of the form: + * + * <informalexample><programlisting> + * int stride; + * unsigned char *data; + * #cairo_surface_t *surface; + * + * stride = cairo_format_stride_for_width (format, width); + * data = malloc (stride * height); + * surface = cairo_image_surface_create_for_data (data, format, + * width, height); + * </programlisting></informalexample> + * + * Return value: the appropriate stride to use given the desired + * format and width. + * + * Since: 1.6 + **/ +int +cairo_format_stride_for_width (cairo_format_t format, + int width) +{ + int bpp = _cairo_format_bits_per_pixel (format); + + return ((bpp*width+7)/8 + STRIDE_ALIGNMENT-1) & ~(STRIDE_ALIGNMENT-1); +} + /** * cairo_image_surface_create_for_data: - * @data: a pointer to a buffer supplied by the application - * in which to write contents. + * @data: a pointer to a buffer supplied by the application in which + * to write contents. This pointer must be suitably aligned for any + * kind of variable, (for example, a pointer returned by malloc). * @format: the format of pixels in the buffer * @width: the width of the image to be stored in the buffer * @height: the height of the image to be stored in the buffer - * @stride: the number of bytes between the start of rows - * in the buffer. Having this be specified separate from @width - * allows for padding at the end of rows, or for writing - * to a subportion of a larger image. + * @stride: the number of bytes between the start of rows in the + * buffer as allocated. This value should always be computed by + * cairo_format_stride_for_width() before allocating the data + * buffer. * * Creates an image surface for the provided pixel data. The output * buffer must be kept around until the #cairo_surface_t is destroyed @@ -414,13 +451,25 @@ _cairo_image_surface_create_with_content (cairo_content_t content, * must explicitly clear the buffer, using, for example, * cairo_rectangle() and cairo_fill() if you want it cleared. * + * Note that the stride may be larger than + * width*bytes_per_pixel to provide proper alignment for each pixel + * and row. This alignment is required to allow high-performance rendering + * within cairo. The correct way to obtain a legal stride value is to + * call cairo_format_stride_for_width() with the desired format and + * maximum image width value, and the use the resulting stride value + * to allocate the data and to create the image surface. See + * cairo_format_stride_for_width() for example code. + * * Return value: a pointer to the newly created surface. The caller - * owns the surface and should call cairo_surface_destroy when done + * owns the surface and should call cairo_surface_destroy() when done * with it. * * 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. + * pointer to a "nil" surface in the case of an error such as out of + * memory or an invalid stride value. In case of invalid stride value + * the error status of the returned surface will be + * %CAIRO_STATUS_INVALID_STRIDE. You can use + * cairo_surface_status() to check for this. * * See cairo_surface_set_user_data() for a means of attaching a * destroy-notification fallback to the surface if necessary. @@ -434,12 +483,12 @@ cairo_image_surface_create_for_data (unsigned char *data, { pixman_format_code_t pixman_format; - /* XXX pixman does not support images with arbitrary strides and - * attempting to create such surfaces will failure but we will interpret - * such failure as CAIRO_STATUS_NO_MEMORY. */ - if (! CAIRO_FORMAT_VALID (format) || stride % sizeof (uint32_t) != 0) + if (! CAIRO_FORMAT_VALID (format)) return _cairo_surface_create_in_error (_cairo_error(CAIRO_STATUS_INVALID_FORMAT)); + if ((stride & (STRIDE_ALIGNMENT-1)) != 0) + return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_INVALID_STRIDE)); + pixman_format = _cairo_format_to_pixman_format_code (format); return _cairo_image_surface_create_with_pixman_format (data, pixman_format, @@ -469,7 +518,7 @@ _cairo_image_surface_create_for_data_with_content (unsigned char *data, * Get a pointer to the data of the image surface, for direct * inspection or modification. * - * Return value: a pointer to the image data of this surface or NULL + * Return value: a pointer to the image data of this surface or %NULL * if @surface is not an image surface. * * Since: 1.2 @@ -616,14 +665,14 @@ _cairo_content_from_format (cairo_format_t format) return CAIRO_CONTENT_COLOR_ALPHA; } -cairo_private cairo_format_t -_cairo_format_width (cairo_format_t format) +int +_cairo_format_bits_per_pixel (cairo_format_t format) { switch (format) { case CAIRO_FORMAT_ARGB32: return 32; case CAIRO_FORMAT_RGB24: - return 24; + return 32; case CAIRO_FORMAT_A8: return 8; case CAIRO_FORMAT_A1: @@ -1083,7 +1132,6 @@ _cairo_image_surface_composite_trapezoids (cairo_operator_t op, case CAIRO_ANTIALIAS_NONE: format = PIXMAN_a1; ret = 1; - assert (ret); mask_stride = ((width + 31) / 8) & ~0x03; mask_bpp = 1; break; @@ -1093,7 +1141,6 @@ _cairo_image_surface_composite_trapezoids (cairo_operator_t op, default: format = PIXMAN_a8; ret = 1; - assert (ret); mask_stride = (width + 3) & ~3; mask_bpp = 8; break; @@ -1203,7 +1250,7 @@ _cairo_image_surface_reset (void *abstract_surface) * * Checks if a surface is an #cairo_image_surface_t * - * Return value: TRUE if the surface is an image surface + * Return value: %TRUE if the surface is an image surface **/ cairo_bool_t _cairo_surface_is_image (const cairo_surface_t *surface) diff --git a/src/cairo-lzw.c b/src/cairo-lzw.c index 6158eaf..d95da8c 100644 --- a/src/cairo-lzw.c +++ b/src/cairo-lzw.c @@ -58,7 +58,7 @@ typedef struct _lzw_buf { * Instead of returning failure from any functions, lzw_buf_t provides * a status value that the caller can query, (and should query at * least once when done with the object). The status value will be - * either CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY; + * either %CAIRO_STATUS_SUCCESS or %CAIRO_STATUS_NO_MEMORY; */ static void _lzw_buf_init (lzw_buf_t *buf, int size) @@ -82,7 +82,7 @@ _lzw_buf_init (lzw_buf_t *buf, int size) /* Increase the buffer size by doubling. * - * Returns CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY + * Returns %CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY */ static cairo_status_t _lzw_buf_grow (lzw_buf_t *buf) @@ -113,13 +113,13 @@ _lzw_buf_grow (lzw_buf_t *buf) /* Store the lowest num_bits bits of values into buf. * - * NOTE: The bits of value above size_in_bits must be 0, (so don't lie + * Note: The bits of value above size_in_bits must be 0, (so don't lie * about the size). * * See also _lzw_buf_store_pending which must be called after the last * call to _lzw_buf_store_bits. * - * Sets buf->status to either CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY. + * Sets buf->status to either %CAIRO_STATUS_SUCCESS or %CAIRO_STATUS_NO_MEMORY. */ static void _lzw_buf_store_bits (lzw_buf_t *buf, uint16_t value, int num_bits) @@ -147,10 +147,10 @@ _lzw_buf_store_bits (lzw_buf_t *buf, uint16_t value, int num_bits) /* Store the last remaining pending bits into the buffer. * - * NOTE: This function must be called after the last call to + * Note: This function must be called after the last call to * _lzw_buf_store_bits. * - * Sets buf->status to either CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY. + * Sets buf->status to either %CAIRO_STATUS_SUCCESS or %CAIRO_STATUS_NO_MEMORY. */ static void _lzw_buf_store_pending (lzw_buf_t *buf) @@ -234,11 +234,11 @@ _lzw_symbol_table_init (lzw_symbol_table_t *table) /* Lookup a symbol in the symbol table. The PREV and NEXT fields of * symbol form the key for the lookup. * - * If successful, then this function returns TRUE and slot_ret will be + * If successful, then this function returns %TRUE and slot_ret will be * left pointing at the result that will have the CODE field of * interest. * - * If the lookup fails, then this function returns FALSE and slot_ret + * If the lookup fails, then this function returns %FALSE and slot_ret * will be pointing at the location in the table to which a new CODE * value should be stored along with PREV and NEXT. */ @@ -312,7 +312,7 @@ _lzw_symbol_table_lookup (lzw_symbol_table_t *table, * to 12 bits). * * This function returns a pointer to a newly allocated buffer holding - * the compressed data, or NULL if an out-of-memory situation + * the compressed data, or %NULL if an out-of-memory situation * occurs. * * Notice that any one of the _lzw_buf functions called here could diff --git a/src/cairo-matrix.c b/src/cairo-matrix.c index d534826..b86b1fd 100644 --- a/src/cairo-matrix.c +++ b/src/cairo-matrix.c @@ -68,7 +68,7 @@ slim_hidden_def(cairo_matrix_init_identity); /** * cairo_matrix_init: - * @matrix: a cairo_matrix_t + * @matrix: a #cairo_matrix_t * @xx: xx component of the affine transformation * @yx: yx component of the affine transformation * @xy: xy component of the affine transformation @@ -137,7 +137,7 @@ _cairo_matrix_get_affine (const cairo_matrix_t *matrix, /** * cairo_matrix_init_translate: - * @matrix: a cairo_matrix_t + * @matrix: a #cairo_matrix_t * @tx: amount to translate in the X direction * @ty: amount to translate in the Y direction * @@ -157,7 +157,7 @@ slim_hidden_def(cairo_matrix_init_translate); /** * cairo_matrix_translate: - * @matrix: a cairo_matrix_t + * @matrix: a #cairo_matrix_t * @tx: amount to translate in the X direction * @ty: amount to translate in the Y direction * @@ -179,7 +179,7 @@ slim_hidden_def (cairo_matrix_translate); /** * cairo_matrix_init_scale: - * @matrix: a cairo_matrix_t + * @matrix: a #cairo_matrix_t * @sx: scale factor in the X direction * @sy: scale factor in the Y direction * @@ -220,7 +220,7 @@ slim_hidden_def(cairo_matrix_scale); /** * cairo_matrix_init_rotate: - * @matrix: a cairo_matrix_t + * @matrix: a #cairo_matrix_t * @radians: angle of rotation, in radians. The direction of rotation * is defined such that positive angles rotate in the direction from * the positive X axis toward the positive Y axis. With the default @@ -514,7 +514,7 @@ _cairo_matrix_compute_determinant (const cairo_matrix_t *matrix, } /* Compute the amount that each basis vector is scaled by. */ -void +cairo_status_t _cairo_matrix_compute_scale_factors (const cairo_matrix_t *matrix, double *sx, double *sy, int x_major) { @@ -522,7 +522,8 @@ _cairo_matrix_compute_scale_factors (const cairo_matrix_t *matrix, _cairo_matrix_compute_determinant (matrix, &det); - assert (ISFINITE (det)); + if (! ISFINITE (det)) + return _cairo_error (CAIRO_STATUS_INVALID_MATRIX); if (det == 0) { @@ -556,6 +557,8 @@ _cairo_matrix_compute_scale_factors (const cairo_matrix_t *matrix, *sy = major; } } + + return CAIRO_STATUS_SUCCESS; } cairo_bool_t @@ -753,6 +756,10 @@ _cairo_matrix_to_pixman_matrix (const cairo_matrix_t *matrix, *pixman_transform = pixman_identity_transform; } else { + cairo_matrix_t inv = *matrix; + double x = 0, y = 0; + pixman_vector_t vector; + pixman_transform->matrix[0][0] = _cairo_fixed_16_16_from_double (matrix->xx); pixman_transform->matrix[0][1] = _cairo_fixed_16_16_from_double (matrix->xy); pixman_transform->matrix[0][2] = _cairo_fixed_16_16_from_double (matrix->x0); @@ -764,5 +771,36 @@ _cairo_matrix_to_pixman_matrix (const cairo_matrix_t *matrix, pixman_transform->matrix[2][0] = 0; pixman_transform->matrix[2][1] = 0; pixman_transform->matrix[2][2] = 1 << 16; + + /* The conversion above breaks cairo's translation invariance: + * a translation of (a, b) in device space translates to + * a translation of (xx * a + xy * b, yx * a + yy * b) + * for cairo, while pixman uses rounded versions of xx ... yy. + * This error increases as a and b get larger. + * + * To compensate for this, we fix the point (0, 0) in pattern + * space and adjust pixman's transform to agree with cairo's at + * that point. */ + + /* Note: If we can't invert the transformation, skip the adjustment. */ + if (cairo_matrix_invert (&inv) != CAIRO_STATUS_SUCCESS) + return; + + /* find the device space coordinate that maps to (0, 0) */ + cairo_matrix_transform_point (&inv, &x, &y); + + /* transform the resulting device space coordinate back + * to the pattern space, using pixman's transform */ + vector.vector[0] = _cairo_fixed_16_16_from_double (x); + vector.vector[1] = _cairo_fixed_16_16_from_double (y); + vector.vector[2] = 1 << 16; + + if (!pixman_transform_point_3d (pixman_transform, &vector)) + return; + + /* Ideally, the vector should now be (0, 0). We can now compensate + * for the resulting error */ + pixman_transform->matrix[0][2] -= vector.vector[0]; + pixman_transform->matrix[1][2] -= vector.vector[1]; } } diff --git a/src/cairo-meta-surface.c b/src/cairo-meta-surface.c index 51ed382..0fa2544 100644 --- a/src/cairo-meta-surface.c +++ b/src/cairo-meta-surface.c @@ -485,7 +485,7 @@ _cairo_meta_surface_show_glyphs (void *abstract_surface, * * The caller owns the return value and should call * cairo_surface_destroy when finished with it. This function will not - * return NULL, but will return a nil surface instead. + * return %NULL, but will return a nil surface instead. * * Return value: The snapshot surface. **/ @@ -583,7 +583,7 @@ _cairo_meta_surface_get_extents (void *abstract_surface, * * Checks if a surface is a #cairo_meta_surface_t * - * Return value: TRUE if the surface is a meta surface + * Return value: %TRUE if the surface is a meta surface **/ cairo_bool_t _cairo_surface_is_meta (const cairo_surface_t *surface) @@ -868,7 +868,7 @@ _cairo_meta_surface_replay (cairo_surface_t *surface, } /* Replay meta to surface. When the return status of each operation is - * one of CAIRO_STATUS_SUCCESS, CAIRO_INT_STATUS_UNSUPPORTED, or + * one of %CAIRO_STATUS_SUCCESS, %CAIRO_INT_STATUS_UNSUPPORTED, or * CAIRO_INT_STATUS_FLATTEN_TRANSPARENCY the status of each operation * will be stored in the meta surface. Any other status will abort the * replay and return the status. diff --git a/src/cairo-mutex-private.h b/src/cairo-mutex-private.h index ac803c8..64afd64 100644 --- a/src/cairo-mutex-private.h +++ b/src/cairo-mutex-private.h @@ -76,7 +76,7 @@ CAIRO_BEGIN_DECLS #ifdef CAIRO_MUTEX_INIT -/* If CAIRO_MUTEX_INIT is defined, we may need to initialize all +/* If %CAIRO_MUTEX_INIT is defined, we may need to initialize all * static mutex'es. */ # ifndef CAIRO_MUTEX_INITIALIZE # define CAIRO_MUTEX_INITIALIZE() do { \ @@ -108,7 +108,7 @@ CAIRO_BEGIN_DECLS #ifdef CAIRO_MUTEX_FINI -/* If CAIRO_MUTEX_FINI is defined, we may need to finalize all +/* If %CAIRO_MUTEX_FINI is defined, we may need to finalize all * static mutex'es. */ # ifndef CAIRO_MUTEX_FINALIZE # define CAIRO_MUTEX_FINALIZE() do { \ diff --git a/src/cairo-mutex-type-private.h b/src/cairo-mutex-type-private.h index b9f0fb3..1a29dcb 100644 --- a/src/cairo-mutex-type-private.h +++ b/src/cairo-mutex-type-private.h @@ -65,7 +65,7 @@ CAIRO_BEGIN_DECLS * on a win32 system even if you do not compile the win32 * surface/backend. * - * - typedef cairo_mutex_t to the proper mutex type on your target + * - typedef #cairo_mutex_t to the proper mutex type on your target * system. Note that you may or may not need to use a pointer, * depending on what kinds of initialization your mutex * implementation supports. No trailing semicolon needed. @@ -85,21 +85,21 @@ CAIRO_BEGIN_DECLS * cairo_mutex_t _cairo_some_mutex; * * if (1) - * CAIRO_MUTEX_LOCK (_cairo_some_mutex); + * %CAIRO_MUTEX_LOCK (_cairo_some_mutex); * else - * CAIRO_MUTEX_UNLOCK (_cairo_some_mutex); + * %CAIRO_MUTEX_UNLOCK (_cairo_some_mutex); * - * - #define CAIRO_MUTEX_NIL_INITIALIZER to something that can - * initialize the cairo_mutex_t type you defined. Most of the - * time one of 0, NULL, or {} works. At this point + * - #define %CAIRO_MUTEX_NIL_INITIALIZER to something that can + * initialize the #cairo_mutex_t type you defined. Most of the + * time one of 0, %NULL, or {} works. At this point * you should be able to compile the following snippet: * * cairo_mutex_t _cairo_some_mutex = CAIRO_MUTEX_NIL_INITIALIZER; * * if (1) - * CAIRO_MUTEX_LOCK (_cairo_some_mutex); + * %CAIRO_MUTEX_LOCK (_cairo_some_mutex); * else - * CAIRO_MUTEX_UNLOCK (_cairo_some_mutex); + * %CAIRO_MUTEX_UNLOCK (_cairo_some_mutex); * * - If the above code is not enough to initialize a mutex on * your platform, #define CAIRO_MUTEX_INIT(mutex) to statement @@ -108,17 +108,17 @@ CAIRO_BEGIN_DECLS * * cairo_mutex_t _cairo_some_mutex = CAIRO_MUTEX_NIL_INITIALIZER; * - * CAIRO_MUTEX_INIT (_cairo_some_mutex); + * %CAIRO_MUTEX_INIT (_cairo_some_mutex); * * if (1) - * CAIRO_MUTEX_LOCK (_cairo_some_mutex); + * %CAIRO_MUTEX_LOCK (_cairo_some_mutex); * else - * CAIRO_MUTEX_UNLOCK (_cairo_some_mutex); + * %CAIRO_MUTEX_UNLOCK (_cairo_some_mutex); * * - If you define CAIRO_MUTEX_INIT(mutex), cairo will use it to * initialize all static mutex'es. If for any reason that should - * not happen (eg. CAIRO_MUTEX_INIT is just a faster way than - * what cairo does using CAIRO_MUTEX_NIL_INITIALIZER), then + * not happen (eg. %CAIRO_MUTEX_INIT is just a faster way than + * what cairo does using %CAIRO_MUTEX_NIL_INITIALIZER), then * #define CAIRO_MUTEX_INITIALIZE() CAIRO_MUTEX_NOOP * * - If your system supports freeing a mutex object (deallocating @@ -130,11 +130,11 @@ CAIRO_BEGIN_DECLS * However, it's up to you to call CAIRO_MUTEX_FINALIZE() at * proper places, eg. when the system is unloading the cairo library. * So, if for any reason finalizing static mutex'es is not needed - * (eg. you never call CAIRO_MUTEX_FINALIZE), then + * (eg. you never call %CAIRO_MUTEX_FINALIZE), then * #define CAIRO_MUTEX_FINALIZE() CAIRO_MUTEX_NOOP * * - That is all. If for any reason you think the above API is - * not enough to implement cairo_mutex_t on your system, please + * not enough to implement #cairo_mutex_t on your system, please * stop and write to the cairo mailing list about it. DO NOT * poke around cairo-mutex-private.h for possible solutions. */ diff --git a/src/cairo-operator.c b/src/cairo-operator.c deleted file mode 100644 index 1a3c3d1..0000000 --- a/src/cairo-operator.c +++ /dev/null @@ -1,119 +0,0 @@ -/* cairo - a vector graphics library with display and print output - * - * Copyright © 2006 Keith Packard - * 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 - * 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> - * Keith Packard <keithp@keithp.com> - */ - -#include "cairoint.h" - -/* The analysis here assumes destination alpha semantics (that is - * CAIRO_CONTENT_COLOR_ALPHA). More things can be considered opaque - * otherwise (CAIRO_CONTENT_COLOR) so we'll probably want to add a - * cairo_content_t parameter to this function - * - * We also need a definition of what "opaque" means. Is it, "does not - * requiring 'knowing' the original contents of destination, nor does - * it set the destination alpha to anything but 1.0" ? - */ -cairo_bool_t -_cairo_operator_always_opaque (cairo_operator_t op) -{ - switch (op) { - case CAIRO_OPERATOR_CLEAR: - return FALSE; - - case CAIRO_OPERATOR_SOURCE: - return FALSE; - - case CAIRO_OPERATOR_OVER: - case CAIRO_OPERATOR_IN: - case CAIRO_OPERATOR_OUT: - case CAIRO_OPERATOR_ATOP: - return FALSE; - - case CAIRO_OPERATOR_DEST: - return TRUE; - - case CAIRO_OPERATOR_DEST_OVER: - case CAIRO_OPERATOR_DEST_IN: - case CAIRO_OPERATOR_DEST_OUT: - case CAIRO_OPERATOR_DEST_ATOP: - return FALSE; - - case CAIRO_OPERATOR_XOR: - case CAIRO_OPERATOR_ADD: - case CAIRO_OPERATOR_SATURATE: - return FALSE; - } - return FALSE; -} - -/* As above, we'll probably want to add a cairo_content_t parameter to - * this function - * - * We also need a definition of what "translucent" means. - */ -cairo_bool_t -_cairo_operator_always_translucent (cairo_operator_t op) -{ - switch (op) { - case CAIRO_OPERATOR_CLEAR: - return TRUE; - - case CAIRO_OPERATOR_SOURCE: - return FALSE; - - case CAIRO_OPERATOR_OVER: - case CAIRO_OPERATOR_IN: - case CAIRO_OPERATOR_OUT: - case CAIRO_OPERATOR_ATOP: - return FALSE; - - case CAIRO_OPERATOR_DEST: - return FALSE; - - case CAIRO_OPERATOR_DEST_OVER: - case CAIRO_OPERATOR_DEST_IN: - case CAIRO_OPERATOR_DEST_OUT: - case CAIRO_OPERATOR_DEST_ATOP: - return FALSE; - - case CAIRO_OPERATOR_XOR: - case CAIRO_OPERATOR_ADD: - case CAIRO_OPERATOR_SATURATE: - return TRUE; - } - return TRUE; -} diff --git a/src/cairo-os2.h b/src/cairo-os2.h index 6a6c04d..bd4d034 100644 --- a/src/cairo-os2.h +++ b/src/cairo-os2.h @@ -125,7 +125,7 @@ cairo_os2_surface_set_hwnd (cairo_surface_t *surface, /* the buffers. It is necessary, because it can be that Cairo is */ /* just drawing something into the surface while we want to */ /* destroy and recreate it. */ -/* Returns CAIRO_STATUS_SUCCESS if the surface could be resized, */ +/* Returns %CAIRO_STATUS_SUCCESS if the surface could be resized, */ /* or returns other error code if */ /* - the surface is not a real OS/2 Surface */ /* - there is not enough memory to resize the surface */ @@ -149,9 +149,9 @@ cairo_os2_surface_set_size (cairo_surface_t *surface, /* The returned values of WinBeginPaint () is just perfect here, */ /* but you can also get the HPS by using the WinGetPS () function, */ /* and you can assemble your own update rect by hand. */ -/* If the hps_begin_paint parameter is NULL, the function will use */ +/* If the hps_begin_paint parameter is %NULL, the function will use */ /* the HPS you passed in to cairo_os2_surface_create (). If the */ -/* prcl_begin_paint_rect parameter is NULL, the function will query */ +/* prcl_begin_paint_rect parameter is %NULL, the function will query */ /* the current window size and repaint the whole window. */ /* */ /* Cairo/2 assumes that if you told the HWND to the surface using */ diff --git a/src/cairo-output-stream-private.h b/src/cairo-output-stream-private.h index 8377eca..2ee43de 100644 --- a/src/cairo-output-stream-private.h +++ b/src/cairo-output-stream-private.h @@ -25,8 +25,7 @@ * 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 cairo_output_stream.c as distributed with the - * cairo graphics library. + * The Original Code is the cairo graphics library. * * The Initial Developer of the Original Code is Red Hat, Inc. * @@ -74,7 +73,7 @@ typedef cairo_status_t (*cairo_write_func_t) (void *closure, typedef cairo_status_t (*cairo_close_func_t) (void *closure); -/* This function never returns NULL. If an error occurs (NO_MEMORY) +/* This function never returns %NULL. If an error occurs (NO_MEMORY) * while trying to create the output stream this function returns a * valid pointer to a nil output stream. * @@ -128,18 +127,18 @@ _cairo_output_stream_get_position (cairo_output_stream_t *stream); cairo_private cairo_status_t _cairo_output_stream_get_status (cairo_output_stream_t *stream); -/* This function never returns NULL. If an error occurs (NO_MEMORY or +/* This function never returns %NULL. If an error occurs (NO_MEMORY or * WRITE_ERROR) while trying to create the output stream this function * returns a valid pointer to a nil output stream. * - * NOTE: Even if a nil surface is returned, the caller should still + * Note: Even if a nil surface is returned, the caller should still * call _cairo_output_stream_destroy (or _cairo_output_stream_close at * least) in order to ensure that everything is properly cleaned up. */ cairo_private cairo_output_stream_t * _cairo_output_stream_create_for_filename (const char *filename); -/* This function never returns NULL. If an error occurs (NO_MEMORY or +/* This function never returns %NULL. If an error occurs (NO_MEMORY or * WRITE_ERROR) while trying to create the output stream this function * returns a valid pointer to a nil output stream. * diff --git a/src/cairo-output-stream.c b/src/cairo-output-stream.c index 2cb9e03..22245f7 100644 --- a/src/cairo-output-stream.c +++ b/src/cairo-output-stream.c @@ -25,8 +25,7 @@ * 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 cairo_output_stream.c as distributed with the - * cairo graphics library. + * The Original Code is the cairo graphics library. * * The Initial Developer of the Original Code is Red Hat, Inc. * diff --git a/src/cairo-paginated-private.h b/src/cairo-paginated-private.h index 7b41191..35384c9 100644 --- a/src/cairo-paginated-private.h +++ b/src/cairo-paginated-private.h @@ -41,7 +41,7 @@ struct _cairo_paginated_surface_backend { /* Optional. Will be called once for each page. * - * NOTE: With respect to the order of drawing operations as seen + * Note: With respect to the order of drawing operations as seen * by the target, this call will occur before any drawing * operations for the relevant page. However, with respect to the * function calls as made by the user, this call will be *after* @@ -69,17 +69,17 @@ struct _cairo_paginated_surface_backend { cairo_box_t *bbox); }; -/* A cairo_paginated_surface provides a very convenient wrapper that +/* A #cairo_paginated_surface_t provides a very convenient wrapper that * is well-suited for doing the analysis common to most surfaces that * have paginated output, (that is, things directed at printers, or * for saving content in files such as PostScript or PDF files). * * To use the paginated surface, you'll first need to create your - * 'real' surface using _cairo_surface_init and the standard - * cairo_surface_backend_t. Then you also call + * 'real' surface using _cairo_surface_init() and the standard + * #cairo_surface_backend_t. Then you also call * _cairo_paginated_surface_create which takes its own, much simpler, - * cairo_paginated_surface_backend. You are free to return the result - * of _cairo_paginated_surface_create from your public + * #cairo_paginated_surface_backend_t. You are free to return the result + * of _cairo_paginated_surface_create() from your public * cairo_<foo>_surface_create. The paginated backend will be careful * to not let the user see that they really got a "wrapped" * surface. See test-paginated-surface.c for a fairly minimal example @@ -92,7 +92,7 @@ struct _cairo_paginated_surface_backend { * sequence of operations (using the backend functions passed to * cairo_paginated_surface_create): * - * 1. Calls start_page (if non NULL). At this point, it is appropriate + * 1. Calls start_page (if non %NULL). At this point, it is appropriate * for the target to emit any page-specific header information into * its output. * @@ -121,13 +121,13 @@ struct _cairo_paginated_surface_backend { * the target should not actually perform any rendering, (for example, * if performing output to a file, no output should be generated * during this stage). Instead the drawing functions simply need to - * return CAIRO_STATUS_SUCCESS or CAIRO_INT_STATUS_UNSUPPORTED to + * return %CAIRO_STATUS_SUCCESS or %CAIRO_INT_STATUS_UNSUPPORTED to * indicate whether rendering would be supported. And it should do * this as quickly as possible. The FALLBACK phase allows the surface * to distinguish fallback images from native rendering in case they * need to be handled as a special case. * - * NOTE: The paginated surface layer assumes that the target surface + * Note: The paginated surface layer assumes that the target surface * is "blank" by default at the beginning of each page, without any * need for an explicit erase operation, (as opposed to an image * surface, for example, which might have uninitialized content diff --git a/src/cairo-paginated-surface.c b/src/cairo-paginated-surface.c index 98ec061..83f9dc9 100644 --- a/src/cairo-paginated-surface.c +++ b/src/cairo-paginated-surface.c @@ -162,8 +162,10 @@ _cairo_paginated_surface_finish (void *abstract_surface) cairo_paginated_surface_t *surface = abstract_surface; cairo_status_t status = CAIRO_STATUS_SUCCESS; - if (surface->page_is_blank == FALSE || surface->page_num == 1) - status = cairo_surface_show_page (abstract_surface); + if (surface->page_is_blank == FALSE || surface->page_num == 1) { + cairo_surface_show_page (abstract_surface); + status = cairo_surface_status (abstract_surface); + } if (status == CAIRO_STATUS_SUCCESS) { cairo_surface_finish (surface->target); @@ -294,9 +296,8 @@ _paint_page (cairo_paginated_surface_t *surface) analysis = _cairo_analysis_surface_create (surface->target, surface->width, surface->height); - if (analysis == NULL) - return _cairo_surface_set_error (surface->target, - CAIRO_STATUS_NO_MEMORY); + if (analysis->status) + return _cairo_surface_set_error (surface->target, analysis->status); surface->backend->set_paginated_mode (surface->target, CAIRO_PAGINATED_MODE_ANALYZE); status = _cairo_meta_surface_replay_and_create_regions (surface->meta, analysis); @@ -328,6 +329,16 @@ _paint_page (cairo_paginated_surface_t *surface) has_finegrained_fallback = _cairo_analysis_surface_has_unsupported (analysis); break; + case CAIRO_SURFACE_TYPE_IMAGE: + case CAIRO_SURFACE_TYPE_XLIB: + case CAIRO_SURFACE_TYPE_XCB: + case CAIRO_SURFACE_TYPE_GLITZ: + case CAIRO_SURFACE_TYPE_QUARTZ: + case CAIRO_SURFACE_TYPE_WIN32: + case CAIRO_SURFACE_TYPE_BEOS: + case CAIRO_SURFACE_TYPE_DIRECTFB: + case CAIRO_SURFACE_TYPE_SVG: + case CAIRO_SURFACE_TYPE_OS2: default: if (_cairo_analysis_surface_has_unsupported (analysis)) { has_supported = FALSE; @@ -435,7 +446,8 @@ _cairo_paginated_surface_copy_page (void *abstract_surface) * show_page and we implement the copying by simply not destroying * the meta-surface. */ - return cairo_surface_show_page (surface->target); + cairo_surface_show_page (surface->target); + return cairo_surface_status (surface->target); } static cairo_int_status_t @@ -452,7 +464,8 @@ _cairo_paginated_surface_show_page (void *abstract_surface) if (status) return status; - status = cairo_surface_show_page (surface->target); + cairo_surface_show_page (surface->target); + status = cairo_surface_status (surface->target); if (status) return status; diff --git a/src/cairo-path-bounds.c b/src/cairo-path-bounds.c index 55a64e5..581244b 100644 --- a/src/cairo-path-bounds.c +++ b/src/cairo-path-bounds.c @@ -37,7 +37,9 @@ #include "cairoint.h" typedef struct cairo_path_bounder { - int has_point; + cairo_point_t move_to_point; + cairo_bool_t has_move_to_point; + cairo_bool_t has_point; cairo_fixed_t min_x; cairo_fixed_t min_y; @@ -61,24 +63,20 @@ static cairo_status_t _cairo_path_bounder_line_to (void *closure, cairo_point_t *point); static cairo_status_t -_cairo_path_bounder_curve_to (void *closure, - cairo_point_t *b, - cairo_point_t *c, - cairo_point_t *d); - -static cairo_status_t _cairo_path_bounder_close_path (void *closure); static void _cairo_path_bounder_init (cairo_path_bounder_t *bounder) { - bounder->has_point = 0; + bounder->has_move_to_point = FALSE; + bounder->has_point = FALSE; } static void _cairo_path_bounder_fini (cairo_path_bounder_t *bounder) { - bounder->has_point = 0; + bounder->has_move_to_point = FALSE; + bounder->has_point = FALSE; } static void @@ -102,7 +100,7 @@ _cairo_path_bounder_add_point (cairo_path_bounder_t *bounder, cairo_point_t *poi bounder->max_x = point->x; bounder->max_y = point->y; - bounder->has_point = 1; + bounder->has_point = TRUE; } } @@ -111,7 +109,8 @@ _cairo_path_bounder_move_to (void *closure, cairo_point_t *point) { cairo_path_bounder_t *bounder = closure; - _cairo_path_bounder_add_point (bounder, point); + bounder->move_to_point = *point; + bounder->has_move_to_point = TRUE; return CAIRO_STATUS_SUCCESS; } @@ -121,22 +120,13 @@ _cairo_path_bounder_line_to (void *closure, cairo_point_t *point) { cairo_path_bounder_t *bounder = closure; - _cairo_path_bounder_add_point (bounder, point); - - return CAIRO_STATUS_SUCCESS; -} - -static cairo_status_t -_cairo_path_bounder_curve_to (void *closure, - cairo_point_t *b, - cairo_point_t *c, - cairo_point_t *d) -{ - cairo_path_bounder_t *bounder = closure; + if (bounder->has_move_to_point) { + _cairo_path_bounder_add_point (bounder, + &bounder->move_to_point); + bounder->has_move_to_point = FALSE; + } - _cairo_path_bounder_add_point (bounder, b); - _cairo_path_bounder_add_point (bounder, c); - _cairo_path_bounder_add_point (bounder, d); + _cairo_path_bounder_add_point (bounder, point); return CAIRO_STATUS_SUCCESS; } @@ -151,7 +141,8 @@ _cairo_path_bounder_close_path (void *closure) void _cairo_path_fixed_bounds (cairo_path_fixed_t *path, double *x1, double *y1, - double *x2, double *y2) + double *x2, double *y2, + double tolerance) { cairo_status_t status; @@ -159,21 +150,24 @@ _cairo_path_fixed_bounds (cairo_path_fixed_t *path, _cairo_path_bounder_init (&bounder); - status = _cairo_path_fixed_interpret (path, CAIRO_DIRECTION_FORWARD, - _cairo_path_bounder_move_to, - _cairo_path_bounder_line_to, - _cairo_path_bounder_curve_to, - _cairo_path_bounder_close_path, - &bounder); + status = _cairo_path_fixed_interpret_flat (path, CAIRO_DIRECTION_FORWARD, + _cairo_path_bounder_move_to, + _cairo_path_bounder_line_to, + _cairo_path_bounder_close_path, + &bounder, + tolerance); assert (status == CAIRO_STATUS_SUCCESS); - if (! bounder.has_point) { - *x1 = *y1 = *x2 = *y2 = 0.; - } else { + if (bounder.has_point) { *x1 = _cairo_fixed_to_double (bounder.min_x); *y1 = _cairo_fixed_to_double (bounder.min_y); *x2 = _cairo_fixed_to_double (bounder.max_x); *y2 = _cairo_fixed_to_double (bounder.max_y); + } else { + *x1 = 0.0; + *y1 = 0.0; + *x2 = 0.0; + *y2 = 0.0; } _cairo_path_bounder_fini (&bounder); diff --git a/src/cairo-path-fill.c b/src/cairo-path-fill.c index f8e4ab0..8e4daca 100644 --- a/src/cairo-path-fill.c +++ b/src/cairo-path-fill.c @@ -208,7 +208,7 @@ BAIL: * the general tessellator when drawing very common rectangles. * * If the path described anything but a device-axis aligned rectangle, - * this function will return CAIRO_INT_STATUS_UNSUPPORTED. + * this function will return %CAIRO_INT_STATUS_UNSUPPORTED. */ static cairo_int_status_t _cairo_path_fixed_fill_rectangle (cairo_path_fixed_t *path, diff --git a/src/cairo-path-fixed-private.h b/src/cairo-path-fixed-private.h index f506c34..9fcb2e1 100644 --- a/src/cairo-path-fixed-private.h +++ b/src/cairo-path-fixed-private.h @@ -45,7 +45,7 @@ enum cairo_path_op { /* we want to make sure a single byte is used for thie enum */ typedef char cairo_path_op_t; -/* make cairo_path_fixed fit a 512 bytes. about 50 items */ +/* make _cairo_path_fixed fit a 512 bytes. about 50 items */ #define CAIRO_PATH_BUF_SIZE ((512 - 4 * sizeof (void*) - sizeof (cairo_path_buf_t)) \ / (2 * sizeof (cairo_point_t) + sizeof (cairo_path_op_t))) diff --git a/src/cairo-path-fixed.c b/src/cairo-path-fixed.c index e18ecc3..91b8c0e 100644 --- a/src/cairo-path-fixed.c +++ b/src/cairo-path-fixed.c @@ -622,3 +622,102 @@ _cairo_path_fixed_is_equal (cairo_path_fixed_t *path, } return TRUE; } + +/* Closure for path flattening */ +typedef struct cairo_path_flattener { + double tolerance; + cairo_point_t current_point; + cairo_path_fixed_move_to_func_t *move_to; + cairo_path_fixed_line_to_func_t *line_to; + cairo_path_fixed_close_path_func_t *close_path; + void *closure; +} cpf_t; + +static cairo_status_t +_cpf_move_to (void *closure, cairo_point_t *point) +{ + cpf_t *cpf = closure; + + cpf->current_point = *point; + + return cpf->move_to (cpf->closure, point); +} + +static cairo_status_t +_cpf_line_to (void *closure, cairo_point_t *point) +{ + cpf_t *cpf = closure; + + cpf->current_point = *point; + + return cpf->line_to (cpf->closure, point); +} + +static cairo_status_t +_cpf_curve_to (void *closure, + cairo_point_t *p1, + cairo_point_t *p2, + cairo_point_t *p3) +{ + cpf_t *cpf = closure; + cairo_status_t status; + cairo_spline_t spline; + int i; + + cairo_point_t *p0 = &cpf->current_point; + + status = _cairo_spline_init (&spline, p0, p1, p2, p3); + if (status == CAIRO_INT_STATUS_DEGENERATE) + return CAIRO_STATUS_SUCCESS; + + status = _cairo_spline_decompose (&spline, cpf->tolerance); + if (status) + goto out; + + for (i=1; i < spline.num_points; i++) { + status = cpf->line_to (cpf->closure, &spline.points[i]); + if (status) + goto out; + } + + cpf->current_point = *p3; + + status = CAIRO_STATUS_SUCCESS; + + out: + _cairo_spline_fini (&spline); + return status; +} + +static cairo_status_t +_cpf_close_path (void *closure) +{ + cpf_t *cpf = closure; + + return cpf->close_path (cpf->closure); +} + + +cairo_status_t +_cairo_path_fixed_interpret_flat (cairo_path_fixed_t *path, + cairo_direction_t dir, + cairo_path_fixed_move_to_func_t *move_to, + cairo_path_fixed_line_to_func_t *line_to, + cairo_path_fixed_close_path_func_t *close_path, + void *closure, + double tolerance) +{ + cpf_t flattener; + + flattener.tolerance = tolerance; + flattener.move_to = move_to; + flattener.line_to = line_to; + flattener.close_path = close_path; + flattener.closure = closure; + return _cairo_path_fixed_interpret (path, dir, + _cpf_move_to, + _cpf_line_to, + _cpf_curve_to, + _cpf_close_path, + &flattener); +} diff --git a/src/cairo-path-stroke.c b/src/cairo-path-stroke.c index 773e9fd..5705e0a 100644 --- a/src/cairo-path-stroke.c +++ b/src/cairo-path-stroke.c @@ -882,7 +882,7 @@ _cairo_stroker_curve_to (void *closure, status = _cairo_spline_init (&spline, a, b, c, d); if (status == CAIRO_INT_STATUS_DEGENERATE) - return CAIRO_STATUS_SUCCESS; + return _cairo_stroker_line_to (closure, d); status = _cairo_pen_init_copy (&pen, &stroker->pen); if (status) @@ -966,7 +966,7 @@ _cairo_stroker_curve_to_dashed (void *closure, status = _cairo_spline_init (&spline, a, b, c, d); if (status == CAIRO_INT_STATUS_DEGENERATE) - return CAIRO_STATUS_SUCCESS; + return _cairo_stroker_line_to_dashed (closure, d); /* If the line width is so small that the pen is reduced to a single point, then we have nothing to do. */ @@ -1358,6 +1358,12 @@ _cairo_path_fixed_stroke_rectilinear (cairo_path_fixed_t *path, return CAIRO_INT_STATUS_UNSUPPORTED; if (stroke_style->line_join != CAIRO_LINE_JOIN_MITER) return CAIRO_INT_STATUS_UNSUPPORTED; + /* If the miter limit turns right angles into bevels, then we + * can't use this optimization. Remember, the ratio is + * 1/sin(ɸ/2). So the cutoff is 1/sin(π/4.0) or ⎷2, + * which we round for safety. */ + if (stroke_style->miter_limit < M_SQRT2) + return CAIRO_INT_STATUS_UNSUPPORTED; if (stroke_style->dash) return CAIRO_INT_STATUS_UNSUPPORTED; if (! (stroke_style->line_cap == CAIRO_LINE_CAP_BUTT || diff --git a/src/cairo-path.c b/src/cairo-path.c index b9086c4..c6639f3 100644 --- a/src/cairo-path.c +++ b/src/cairo-path.c @@ -44,7 +44,6 @@ static const cairo_path_t _cairo_path_nil = { CAIRO_STATUS_NO_MEMORY, NULL, 0 }; /* Closure for path interpretation. */ typedef struct cairo_path_count { int count; - double tolerance; cairo_point_t current_point; } cpc_t; @@ -88,39 +87,6 @@ _cpc_curve_to (void *closure, } static cairo_status_t -_cpc_curve_to_flatten (void *closure, - cairo_point_t *p1, - cairo_point_t *p2, - cairo_point_t *p3) -{ - cpc_t *cpc = closure; - cairo_status_t status; - cairo_spline_t spline; - int i; - - cairo_point_t *p0 = &cpc->current_point; - - status = _cairo_spline_init (&spline, p0, p1, p2, p3); - if (status == CAIRO_INT_STATUS_DEGENERATE) - return CAIRO_STATUS_SUCCESS; - - status = _cairo_spline_decompose (&spline, cpc->tolerance); - if (status) - goto out; - - for (i=1; i < spline.num_points; i++) - _cpc_line_to (cpc, &spline.points[i]); - - cpc->current_point = *p3; - - status = CAIRO_STATUS_SUCCESS; - - out: - _cairo_spline_fini (&spline); - return status; -} - -static cairo_status_t _cpc_close_path (void *closure) { cpc_t *cpc = closure; @@ -140,19 +106,27 @@ _cairo_path_count (cairo_path_t *path, cpc_t cpc; cpc.count = 0; - cpc.tolerance = tolerance; cpc.current_point.x = 0; cpc.current_point.y = 0; - status = _cairo_path_fixed_interpret (path_fixed, - CAIRO_DIRECTION_FORWARD, - _cpc_move_to, - _cpc_line_to, - flatten ? - _cpc_curve_to_flatten : - _cpc_curve_to, - _cpc_close_path, - &cpc); + if (flatten) { + status = _cairo_path_fixed_interpret_flat (path_fixed, + CAIRO_DIRECTION_FORWARD, + _cpc_move_to, + _cpc_line_to, + _cpc_close_path, + &cpc, + tolerance); + } else { + status = _cairo_path_fixed_interpret (path_fixed, + CAIRO_DIRECTION_FORWARD, + _cpc_move_to, + _cpc_line_to, + _cpc_curve_to, + _cpc_close_path, + &cpc); + } + if (status) return -1; @@ -263,40 +237,6 @@ _cpp_curve_to (void *closure, } static cairo_status_t -_cpp_curve_to_flatten (void *closure, - cairo_point_t *p1, - cairo_point_t *p2, - cairo_point_t *p3) -{ - cpp_t *cpp = closure; - cairo_status_t status; - cairo_spline_t spline; - int i; - - cairo_point_t *p0 = &cpp->current_point; - - status = _cairo_spline_init (&spline, p0, p1, p2, p3); - if (status == CAIRO_INT_STATUS_DEGENERATE) - return CAIRO_STATUS_SUCCESS; - - status = _cairo_spline_decompose (&spline, - _cairo_gstate_get_tolerance (cpp->gstate)); - if (status) - goto out; - - for (i=1; i < spline.num_points; i++) - _cpp_line_to (cpp, &spline.points[i]); - - cpp->current_point = *p3; - - status = CAIRO_STATUS_SUCCESS; - - out: - _cairo_spline_fini (&spline); - return status; -} - -static cairo_status_t _cpp_close_path (void *closure) { cpp_t *cpp = closure; @@ -324,15 +264,25 @@ _cairo_path_populate (cairo_path_t *path, cpp.current_point.x = 0; cpp.current_point.y = 0; - status = _cairo_path_fixed_interpret (path_fixed, + if (flatten) { + double tolerance = _cairo_gstate_get_tolerance (gstate); + status = _cairo_path_fixed_interpret_flat (path_fixed, + CAIRO_DIRECTION_FORWARD, + _cpp_move_to, + _cpp_line_to, + _cpp_close_path, + &cpp, + tolerance); + } else { + status = _cairo_path_fixed_interpret (path_fixed, CAIRO_DIRECTION_FORWARD, _cpp_move_to, _cpp_line_to, - flatten ? - _cpp_curve_to_flatten : _cpp_curve_to, _cpp_close_path, &cpp); + } + if (status) return status; @@ -413,7 +363,7 @@ _cairo_path_create_internal (cairo_path_fixed_t *path_fixed, * to cairo_path_destroy() the @path pointer is no longer valid and * should not be used further. * - * NOTE: cairo_path_destroy function should only be called with a + * Note: cairo_path_destroy() should only be called with a * pointer to a #cairo_path_t returned by a cairo function. Any path * that is created manually (ie. outside of cairo) should be destroyed * manually as well. @@ -440,9 +390,9 @@ cairo_path_destroy (cairo_path_t *path) * conversion. * * Return value: the new copy of the path. If there is insufficient - * memory a pointer to a special static cairo_path_nil will be - * returned instead with status==CAIRO_STATUS_NO_MEMORY and - * data==NULL. + * memory a pointer to a special static nil #cairo_path_t will be + * returned instead with status==%CAIRO_STATUS_NO_MEMORY and + * data==%NULL. **/ cairo_path_t * _cairo_path_create (cairo_path_fixed_t *path, @@ -462,9 +412,9 @@ _cairo_path_create (cairo_path_fixed_t *path, * accuracy of the flattening. * * Return value: the flattened copy of the path. If there is insufficient - * memory a pointer to a special static cairo_path_nil will be - * returned instead with status==CAIRO_STATUS_NO_MEMORY and - * data==NULL. + * memory a pointer to a special static nil #cairo_path_t will be + * returned instead with status==%CAIRO_STATUS_NO_MEMORY and + * data==%NULL. **/ cairo_path_t * _cairo_path_create_flat (cairo_path_fixed_t *path, @@ -480,8 +430,8 @@ _cairo_path_create_flat (cairo_path_fixed_t *path, * * Append @path to the current path within @cr. * - * Return value: CAIRO_STATUS_INVALID_PATH_DATA if the data in @path - * is invalid, and CAIRO_STATUS_SUCCESS otherwise. + * Return value: %CAIRO_STATUS_INVALID_PATH_DATA if the data in @path + * is invalid, and %CAIRO_STATUS_SUCCESS otherwise. **/ cairo_status_t _cairo_path_append_to_context (const cairo_path_t *path, diff --git a/src/cairo-pattern.c b/src/cairo-pattern.c index ccd7622..22a1a9e 100644 --- a/src/cairo-pattern.c +++ b/src/cairo-pattern.c @@ -389,7 +389,7 @@ _cairo_pattern_create_in_error (cairo_status_t status) * @green: green component of the color * @blue: blue component of the color * - * Creates a new cairo_pattern_t corresponding to an opaque color. The + * Creates a new #cairo_pattern_t corresponding to an opaque color. The * color components are floating point numbers in the range 0 to 1. * If the values passed in are outside that range, they will be * clamped. @@ -433,7 +433,7 @@ slim_hidden_def (cairo_pattern_create_rgb); * @blue: blue component of the color * @alpha: alpha component of the color * - * Creates a new cairo_pattern_t corresponding to a translucent color. + * Creates a new #cairo_pattern_t corresponding to a translucent color. * The color components are floating point numbers in the range 0 to * 1. If the values passed in are outside that range, they will be * clamped. @@ -476,7 +476,7 @@ slim_hidden_def (cairo_pattern_create_rgba); * cairo_pattern_create_for_surface: * @surface: the surface * - * Create a new cairo_pattern_t for the given surface. + * Create a new #cairo_pattern_t for the given surface. * * Return value: the newly created #cairo_pattern_t if successful, or * an error pattern in case of no memory. The caller owns the @@ -519,7 +519,7 @@ slim_hidden_def (cairo_pattern_create_for_surface); * @x1: x coordinate of the end point * @y1: y coordinate of the end point * - * Create a new linear gradient cairo_pattern_t along the line defined + * Create a new linear gradient #cairo_pattern_t along the line defined * by (x0, y0) and (x1, y1). Before using the gradient pattern, a * number of color stops should be defined using * cairo_pattern_add_color_stop_rgb() or @@ -565,7 +565,7 @@ cairo_pattern_create_linear (double x0, double y0, double x1, double y1) * @cy1: y coordinate for the center of the end circle * @radius1: radius of the end circle * - * Creates a new radial gradient cairo_pattern_t between the two + * Creates a new radial gradient #cairo_pattern_t between the two * circles defined by (cx0, cy0, radius0) and (cx1, cy1, radius1). Before using the * gradient pattern, a number of color stops should be defined using * cairo_pattern_add_color_stop_rgb() or @@ -1050,6 +1050,17 @@ cairo_pattern_get_matrix (cairo_pattern_t *pattern, cairo_matrix_t *matrix) * * Sets the filter to be used for resizing when using this pattern. * See #cairo_filter_t for details on each filter. + * + * * Note that you might want to control filtering even when you do not + * have an explicit #cairo_pattern_t object, (for example when using + * cairo_set_source_surface()). In these cases, it is convenient to + * use cairo_get_source() to get access to the pattern that cairo + * creates implicitly. For example: + * + * <informalexample><programlisting> + * cairo_set_source_surface (cr, image, x, y); + * cairo_pattern_set_filter (cairo_get_source (cr), %CAIRO_FILTER_NEAREST); + * </programlisting></informalexample> **/ void cairo_pattern_set_filter (cairo_pattern_t *pattern, cairo_filter_t filter) diff --git a/src/cairo-pdf-operators-private.h b/src/cairo-pdf-operators-private.h index 83ef73c..c603237 100644 --- a/src/cairo-pdf-operators-private.h +++ b/src/cairo-pdf-operators-private.h @@ -45,10 +45,9 @@ #include "cairo-compiler-private.h" #include "cairo-types-private.h" -typedef cairo_status_t -(*cairo_pdf_operators_use_font_subset_t) (unsigned int font_id, - unsigned int subset_id, - void *closure); +typedef cairo_status_t (*cairo_pdf_operators_use_font_subset_t) (unsigned int font_id, + unsigned int subset_id, + void *closure); typedef struct _cairo_pdf_operators { cairo_output_stream_t *stream; diff --git a/src/cairo-pdf-surface.c b/src/cairo-pdf-surface.c index 238f4f9..1de4714 100644 --- a/src/cairo-pdf-surface.c +++ b/src/cairo-pdf-surface.c @@ -332,7 +332,7 @@ BAIL0: * 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 + * owns the surface and should call cairo_surface_destroy() when done * with it. * * This function always returns a valid pointer, but it will return a @@ -368,7 +368,7 @@ cairo_pdf_surface_create_for_stream (cairo_write_func_t write_func, * to @filename. * * Return value: a pointer to the newly created surface. The caller - * owns the surface and should call cairo_surface_destroy when done + * owns the surface and should call cairo_surface_destroy() when done * with it. * * This function always returns a valid pointer, but it will return a @@ -401,7 +401,7 @@ _cairo_surface_is_pdf (cairo_surface_t *surface) /* If the abstract_surface is a paginated surface, and that paginated * surface's target is a pdf_surface, then set pdf_surface to that - * target. Otherwise return CAIRO_STATUS_SURFACE_TYPE_MISMATCH. + * target. Otherwise return %CAIRO_STATUS_SURFACE_TYPE_MISMATCH. */ static cairo_status_t _extract_pdf_surface (cairo_surface_t *surface, @@ -424,7 +424,7 @@ _extract_pdf_surface (cairo_surface_t *surface, /** * cairo_pdf_surface_set_size: - * @surface: a PDF cairo_surface_t + * @surface: a PDF #cairo_surface_t * @width_in_points: new surface width, in points (1 point == 1/72.0 inch) * @height_in_points: new surface height, in points (1 point == 1/72.0 inch) * @@ -1522,22 +1522,13 @@ _cairo_pdf_surface_emit_image_surface (cairo_pdf_surface_t *surface, int *width, int *height) { - cairo_surface_t *pat_surface; - cairo_surface_attributes_t pat_attr; cairo_image_surface_t *image; void *image_extra; cairo_status_t status; - status = _cairo_pattern_acquire_surface (&pattern->base, - &surface->base, - 0, 0, -1, -1, - &pat_surface, &pat_attr); + status = _cairo_surface_acquire_source_image (pattern->surface, &image, &image_extra); if (status) - return status; - - status = _cairo_surface_acquire_source_image (pat_surface, &image, &image_extra); - if (status) - goto BAIL2; + goto BAIL; status = _cairo_pdf_surface_emit_image (surface, image, resource); if (status) @@ -1547,9 +1538,7 @@ _cairo_pdf_surface_emit_image_surface (cairo_pdf_surface_t *surface, *height = image->height; BAIL: - _cairo_surface_release_source_image (pat_surface, image, image_extra); -BAIL2: - _cairo_pattern_release_surface (&pattern->base, pat_surface, &pat_attr); + _cairo_surface_release_source_image (pattern->surface, image, image_extra); return status; } @@ -1562,7 +1551,7 @@ _cairo_pdf_surface_emit_meta_surface (cairo_pdf_surface_t *surface, double old_width, old_height; cairo_matrix_t old_cairo_to_pdf; cairo_paginated_mode_t old_paginated_mode; - cairo_rectangle_int16_t meta_extents; + cairo_rectangle_int_t meta_extents; cairo_status_t status; int alpha = 0; @@ -1632,14 +1621,15 @@ _cairo_pdf_surface_emit_surface_pattern (cairo_pdf_surface_t *surface, cairo_matrix_t cairo_p2d, pdf_p2d; cairo_extend_t extend = cairo_pattern_get_extend (&pattern->base); double xstep, ystep; - cairo_rectangle_int16_t surface_extents; + cairo_rectangle_int_t surface_extents; int pattern_width = 0; /* squelch bogus compiler warning */ int pattern_height = 0; /* squelch bogus compiler warning */ int bbox_x, bbox_y; + char draw_surface[200]; if (_cairo_surface_is_meta (pattern->surface)) { cairo_surface_t *meta_surface = pattern->surface; - cairo_rectangle_int16_t pattern_extents; + cairo_rectangle_int_t pattern_extents; status = _cairo_pdf_surface_emit_meta_surface (surface, meta_surface, @@ -1780,30 +1770,37 @@ _cairo_pdf_surface_emit_surface_pattern (cairo_pdf_surface_t *surface, return status; if (_cairo_surface_is_meta (pattern->surface)) { - if (extend == CAIRO_EXTEND_REFLECT) { - _cairo_output_stream_printf (surface->output, - "q 0 0 %d %d re W n /x%d Do Q\r\n" - "q -1 0 0 1 %d 0 cm 0 0 %d %d re W n /x%d Do Q\r\n" - "q 1 0 0 -1 0 %d cm 0 0 %d %d re W n /x%d Do Q\r\n" - "q -1 0 0 -1 %d %d cm 0 0 %d %d re W n /x%d Do Q\r\n", - pattern_width, pattern_height, - pattern_resource.id, - pattern_width*2, pattern_width, pattern_height, - pattern_resource.id, - pattern_height*2, pattern_width, pattern_height, - pattern_resource.id, - pattern_width*2, pattern_height*2, pattern_width, pattern_height, - pattern_resource.id); - } else { - _cairo_output_stream_printf (surface->output, - "/x%d Do\r\n", - pattern_resource.id); - } + snprintf(draw_surface, + sizeof (draw_surface), + "/x%d Do\r\n", + pattern_resource.id); } else { + snprintf(draw_surface, + sizeof (draw_surface), + "q %d 0 0 %d 0 0 cm /x%d Do Q", + pattern_width, + pattern_height, + pattern_resource.id); + } + + if (extend == CAIRO_EXTEND_REFLECT) { _cairo_output_stream_printf (surface->output, - "q %d 0 0 %d 0 0 cm /x%d Do Q\r\n", + "q 0 0 %d %d re W n %s Q\r\n" + "q -1 0 0 1 %d 0 cm 0 0 %d %d re W n %s Q\r\n" + "q 1 0 0 -1 0 %d cm 0 0 %d %d re W n %s Q\r\n" + "q -1 0 0 -1 %d %d cm 0 0 %d %d re W n %s Q\r\n", pattern_width, pattern_height, - pattern_resource.id); + draw_surface, + pattern_width*2, pattern_width, pattern_height, + draw_surface, + pattern_height*2, pattern_width, pattern_height, + draw_surface, + pattern_width*2, pattern_height*2, pattern_width, pattern_height, + draw_surface); + } else { + _cairo_output_stream_printf (surface->output, + " %s \r\n", + draw_surface); } status = _cairo_pdf_surface_close_stream (surface); @@ -3578,10 +3575,7 @@ _cairo_pdf_surface_emit_type3_font_subset (cairo_pdf_surface_t *surface, } _cairo_pdf_surface_update_object (surface, subset_resource); - matrix = font_subset->scaled_font->scale; - status = cairo_matrix_invert (&matrix); - /* _cairo_scaled_font_init ensures the matrix is invertible */ - assert (status == CAIRO_STATUS_SUCCESS); + matrix = font_subset->scaled_font->scale_inverse; _cairo_output_stream_printf (surface->output, "%d 0 obj\r\n" "<< /Type /Font\r\n" @@ -3659,6 +3653,7 @@ _cairo_pdf_surface_emit_unscaled_font_subset (cairo_scaled_font_subset_t *font_s return status; } + ASSERT_NOT_REACHED; return CAIRO_STATUS_SUCCESS; } @@ -3673,6 +3668,7 @@ _cairo_pdf_surface_emit_scaled_font_subset (cairo_scaled_font_subset_t *font_sub if (status != CAIRO_INT_STATUS_UNSUPPORTED) return status; + ASSERT_NOT_REACHED; return CAIRO_STATUS_SUCCESS; } diff --git a/src/cairo-pen.c b/src/cairo-pen.c index 6291763..cde129c 100644 --- a/src/cairo-pen.c +++ b/src/cairo-pen.c @@ -302,7 +302,7 @@ _cairo_pen_compute_slopes (cairo_pen_t *pen) /* * Find active pen vertex for clockwise edge of stroke at the given slope. * - * NOTE: The behavior of this function is sensitive to the sense of + * Note: The behavior of this function is sensitive to the sense of * the inequality within _cairo_slope_clockwise/_cairo_slope_counter_clockwise. * * The issue is that the slope_ccw member of one pen vertex will be @@ -336,7 +336,7 @@ _cairo_pen_find_active_cw_vertex_index (cairo_pen_t *pen, /* Find active pen vertex for counterclockwise edge of stroke at the given slope. * - * NOTE: The behavior of this function is sensitive to the sense of + * Note: The behavior of this function is sensitive to the sense of * the inequality within _cairo_slope_clockwise/_cairo_slope_counter_clockwise. */ void diff --git a/src/cairo-png.c b/src/cairo-png.c index a78da3f..429ebf8 100644 --- a/src/cairo-png.c +++ b/src/cairo-png.c @@ -84,7 +84,7 @@ convert_data_to_bytes (png_structp png, png_row_infop row_info, png_bytep data) } /* Use a couple of simple error callbacks that do not print anything to - * stderr and rely on the user to check for errors via the cairo_status_t + * stderr and rely on the user to check for errors via the #cairo_status_t * return. */ static void @@ -260,11 +260,11 @@ stdio_write_func (png_structp png, png_bytep data, png_size_t size) * Writes the contents of @surface to a new file @filename as a PNG * image. * - * Return value: CAIRO_STATUS_SUCCESS if the PNG file was written - * successfully. Otherwise, CAIRO_STATUS_NO_MEMORY if memory could not + * Return value: %CAIRO_STATUS_SUCCESS if the PNG file was written + * successfully. Otherwise, %CAIRO_STATUS_NO_MEMORY if memory could not * be allocated for the operation or * CAIRO_STATUS_SURFACE_TYPE_MISMATCH if the surface does not have - * pixel contents, or CAIRO_STATUS_WRITE_ERROR if an I/O error occurs + * pixel contents, or %CAIRO_STATUS_WRITE_ERROR if an I/O error occurs * while attempting to write the file. **/ cairo_status_t @@ -320,8 +320,8 @@ stream_write_func (png_structp png, png_bytep data, png_size_t size) * * Writes the image surface to the write function. * - * Return value: CAIRO_STATUS_SUCCESS if the PNG file was written - * successfully. Otherwise, CAIRO_STATUS_NO_MEMORY is returned if + * Return value: %CAIRO_STATUS_SUCCESS if the PNG file was written + * successfully. Otherwise, %CAIRO_STATUS_NO_MEMORY is returned if * memory could not be allocated for the operation, * CAIRO_STATUS_SURFACE_TYPE_MISMATCH if the surface does not have * pixel contents. diff --git a/src/cairo-ps-surface.c b/src/cairo-ps-surface.c index 327243f..65df5a2 100644 --- a/src/cairo-ps-surface.c +++ b/src/cairo-ps-surface.c @@ -1,3 +1,4 @@ +/* -*- Mode: c; c-basic-offset: 4; indent-tabs-mode: t; tab-width: 8; -*- */ /* cairo - a vector graphics library with display and print output * * Copyright © 2003 University of Southern California @@ -288,7 +289,7 @@ _cairo_ps_surface_path_close_path (void *closure) * 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 + * 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 @@ -754,10 +755,7 @@ _cairo_ps_surface_emit_type3_font_subset (cairo_ps_surface_t *surface, "%% _cairo_ps_surface_emit_type3_font_subset\n"); #endif - matrix = font_subset->scaled_font->scale; - status = cairo_matrix_invert (&matrix); - /* _cairo_scaled_font_init ensures the matrix is invertible */ - assert (status == CAIRO_STATUS_SUCCESS); + matrix = font_subset->scaled_font->scale_inverse; _cairo_output_stream_printf (surface->final_stream, "8 dict begin\n" "/FontType 3 def\n" @@ -854,6 +852,7 @@ _cairo_ps_surface_emit_unscaled_font_subset (cairo_scaled_font_subset_t *font_su if (status != CAIRO_INT_STATUS_UNSUPPORTED) return status; + ASSERT_NOT_REACHED; return CAIRO_STATUS_SUCCESS; } @@ -872,6 +871,7 @@ _cairo_ps_surface_emit_scaled_font_subset (cairo_scaled_font_subset_t *font_subs if (status != CAIRO_INT_STATUS_UNSUPPORTED) return status; + ASSERT_NOT_REACHED; return CAIRO_STATUS_SUCCESS; } @@ -1032,7 +1032,7 @@ _cairo_ps_surface_create_for_stream_internal (cairo_output_stream_t *stream, * vary. See cairo_ps_surface_set_size(). * * Return value: a pointer to the newly created surface. The caller - * owns the surface and should call cairo_surface_destroy when done + * owns the surface and should call cairo_surface_destroy() when done * with it. * * This function always returns a valid pointer, but it will return a @@ -1073,7 +1073,7 @@ cairo_ps_surface_create (const char *filename, * output can vary. See cairo_ps_surface_set_size(). * * Return value: a pointer to the newly created surface. The caller - * owns the surface and should call cairo_surface_destroy when done + * owns the surface and should call cairo_surface_destroy() when done * with it. * * This function always returns a valid pointer, but it will return a @@ -1107,7 +1107,7 @@ _cairo_surface_is_ps (cairo_surface_t *surface) /* If the abstract_surface is a paginated surface, and that paginated * surface's target is a ps_surface, then set ps_surface to that - * target. Otherwise return CAIRO_STATUS_SURFACE_TYPE_MISMATCH. + * target. Otherwise return %CAIRO_STATUS_SURFACE_TYPE_MISMATCH. */ static cairo_status_t _extract_ps_surface (cairo_surface_t *surface, @@ -1187,7 +1187,7 @@ cairo_ps_get_levels (cairo_ps_level_t const **levels, * @level: a level id * * Get the string representation of the given @level id. This function - * will return NULL if @level id isn't valid. See cairo_ps_get_levels() + * will return %NULL if @level id isn't valid. See cairo_ps_get_levels() * for a way to get the list of valid level ids. * * Return value: the string associated to given level. @@ -1205,16 +1205,16 @@ cairo_ps_level_to_string (cairo_ps_level_t level) /** * cairo_ps_surface_set_eps: - * @surface: a PostScript cairo_surface_t - * @eps: TRUE to output EPS format PostScript + * @surface: a PostScript #cairo_surface_t + * @eps: %TRUE to output EPS format PostScript * - * If @eps is TRUE, the PostScript surface will output Encapsulated + * If @eps is %TRUE, the PostScript surface will output Encapsulated * PostScript. * * This function should only be called before any drawing operations * have been performed on the current page. The simplest way to do * this is to call this function immediately after creating the - * surface. An Encapsulated Postscript file should never contain more + * surface. An Encapsulated PostScript file should never contain more * than one page. * * Since: 1.6 @@ -1237,11 +1237,11 @@ cairo_ps_surface_set_eps (cairo_surface_t *surface, /** * cairo_ps_surface_get_eps: - * @surface: a PostScript cairo_surface_t + * @surface: a PostScript #cairo_surface_t * * Check whether the PostScript surface will output Encapsulated PostScript. * - * Return value: TRUE if the surface will output Encapsulated PostScript. + * Return value: %TRUE if the surface will output Encapsulated PostScript. * * Since: 1.6 **/ @@ -1262,7 +1262,7 @@ cairo_ps_surface_get_eps (cairo_surface_t *surface) /** * cairo_ps_surface_set_size: - * @surface: a PostScript cairo_surface_t + * @surface: a PostScript #cairo_surface_t * @width_in_points: new surface width, in points (1 point == 1/72.0 inch) * @height_in_points: new surface height, in points (1 point == 1/72.0 inch) * @@ -1302,7 +1302,7 @@ cairo_ps_surface_set_size (cairo_surface_t *surface, /** * cairo_ps_surface_dsc_comment: - * @surface: a PostScript cairo_surface_t + * @surface: a PostScript #cairo_surface_t * @comment: a comment string to be emitted into the PostScript output * * Emit a comment into the PostScript output for the given surface. @@ -1366,7 +1366,7 @@ cairo_ps_surface_set_size (cairo_surface_t *surface, * Here is an example sequence showing how this function might be used: * * <informalexample><programlisting> - * cairo_surface_t *surface = cairo_ps_surface_create (filename, width, height); + * #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") @@ -1430,7 +1430,7 @@ cairo_ps_surface_dsc_comment (cairo_surface_t *surface, /** * cairo_ps_surface_dsc_begin_setup: - * @surface: a PostScript cairo_surface_t + * @surface: a PostScript #cairo_surface_t * * This function indicates that subsequent calls to * cairo_ps_surface_dsc_comment() should direct comments to the Setup @@ -1464,7 +1464,7 @@ cairo_ps_surface_dsc_begin_setup (cairo_surface_t *surface) /** * cairo_ps_surface_dsc_begin_page_setup: - * @surface: a PostScript cairo_surface_t + * @surface: a PostScript #cairo_surface_t * * This function indicates that subsequent calls to * cairo_ps_surface_dsc_comment() should direct comments to the @@ -2102,7 +2102,7 @@ _cairo_ps_surface_emit_image (cairo_ps_surface_t *surface, } if (use_mask) { - mask_size = (image->width * image->height + 7)/8; + mask_size = ((image->width+7) / 8) * image->height; mask = malloc (mask_size); if (mask == NULL) { status = _cairo_error (CAIRO_STATUS_NO_MEMORY); @@ -2130,6 +2130,11 @@ _cairo_ps_surface_emit_image (cairo_ps_surface_t *surface, rgb[i++] = (*pixel & 0x0000ff00) >> 8; rgb[i++] = (*pixel & 0x000000ff) >> 0; } + + if (bit != 7) { + bit = 7; + byte++; + } } } else { i = 0; diff --git a/src/cairo-ps.h b/src/cairo-ps.h index f3ac290..720b1b7 100644 --- a/src/cairo-ps.h +++ b/src/cairo-ps.h @@ -48,7 +48,7 @@ CAIRO_BEGIN_DECLS /* PS-surface functions */ /** - * cairo_ps_level_t + * cairo_ps_level_t: * @CAIRO_PS_LEVEL_2: The language level 2 of the PostScript specification. * @CAIRO_PS_LEVEL_3: The language level 3 of the PostScript specification. * diff --git a/src/cairo-quartz-surface.c b/src/cairo-quartz-surface.c index 3cb6389..9aff1c3 100644 --- a/src/cairo-quartz-surface.c +++ b/src/cairo-quartz-surface.c @@ -38,6 +38,8 @@ #include "cairo-quartz-private.h" +#include <dlfcn.h> + /* The 10.5 SDK includes a funky new definition of FloatToFixed which * causes all sorts of breakage; so reset to old-style definition */ @@ -100,11 +102,12 @@ CG_EXTERN void CGContextReplacePathWithStrokedPath (CGContextRef); CG_EXTERN CGImageRef CGBitmapContextCreateImage (CGContextRef); #endif -/* missing in 10.3.9 */ -extern void CGContextClipToMask (CGContextRef, CGRect, CGImageRef) __attribute__((weak_import)); +/* Only present in 10.4+ */ +static void (*CGContextClipToMaskPtr) (CGContextRef, CGRect, CGImageRef) = NULL; +/* Only present in 10.5+ */ +static void (*CGContextDrawTiledImagePtr) (CGContextRef, CGRect, CGImageRef) = NULL; -/* 10.5-only optimization */ -extern void CGContextDrawTiledImage (CGContextRef, CGRect, CGImageRef) __attribute__((weak_import)); +static cairo_bool_t _cairo_quartz_symbol_lookup_done = FALSE; /* * Utility functions @@ -119,6 +122,18 @@ _cairo_quartz_surface_create_internal (CGContextRef cgContext, unsigned int width, unsigned int height); +/* Load all extra symbols */ +static void quartz_ensure_symbols(void) +{ + if (_cairo_quartz_symbol_lookup_done) + return; + + CGContextClipToMaskPtr = dlsym(RTLD_DEFAULT, "CGContextClipToMask"); + CGContextDrawTiledImagePtr = dlsym(RTLD_DEFAULT, "CGContextDrawTiledImage"); + + _cairo_quartz_symbol_lookup_done = TRUE; +} + /* CoreGraphics limitation with flipped CTM surfaces: height must be less than signed 16-bit max */ #define CG_MAX_HEIGHT SHRT_MAX @@ -378,7 +393,7 @@ CreateGradientFunction (cairo_gradient_pattern_t *gpat) &callbacks); } -/* generic cairo surface -> cairo_quartz_surface_t function */ +/* generic cairo surface -> #cairo_quartz_surface_t function */ static cairo_int_status_t _cairo_quartz_surface_to_quartz (cairo_surface_t *target, cairo_surface_t *pat_surf, @@ -430,7 +445,7 @@ _cairo_quartz_surface_to_quartz (cairo_surface_t *target, return CAIRO_STATUS_SUCCESS; } -/* Generic cairo_pattern -> CGPattern function */ +/* Generic #cairo_pattern_t -> CGPattern function */ static void SurfacePatternDrawFunc (void *info, CGContextRef context) { @@ -751,55 +766,99 @@ _cairo_quartz_setup_source (cairo_quartz_surface_t *surface, solid->color.alpha); return DO_SOLID; - } else if (source->type == CAIRO_PATTERN_TYPE_LINEAR) - { + } + + if (source->type == CAIRO_PATTERN_TYPE_LINEAR) { cairo_linear_pattern_t *lpat = (cairo_linear_pattern_t *)source; return _cairo_quartz_setup_linear_source (surface, lpat); - } else if (source->type == CAIRO_PATTERN_TYPE_RADIAL) { + } + + if (source->type == CAIRO_PATTERN_TYPE_RADIAL) { cairo_radial_pattern_t *rpat = (cairo_radial_pattern_t *)source; return _cairo_quartz_setup_radial_source (surface, rpat); - } else if (source->type == CAIRO_PATTERN_TYPE_SURFACE && - (source->extend == CAIRO_EXTEND_NONE || (CGContextDrawTiledImage && source->extend == CAIRO_EXTEND_REPEAT))) + } + + if (source->type == CAIRO_PATTERN_TYPE_SURFACE && + (source->extend == CAIRO_EXTEND_NONE || (CGContextDrawTiledImagePtr && source->extend == CAIRO_EXTEND_REPEAT))) { - cairo_surface_pattern_t *spat = (cairo_surface_pattern_t *) source; - cairo_surface_t *pat_surf = spat->surface; - cairo_quartz_surface_t *quartz_surf; - CGImageRef img; - cairo_matrix_t m = spat->base.matrix; - cairo_rectangle_int_t extents; - cairo_status_t status; + cairo_surface_pattern_t *spat = (cairo_surface_pattern_t *) source; + cairo_surface_t *pat_surf = spat->surface; + cairo_quartz_surface_t *quartz_surf; + CGImageRef img; + cairo_matrix_t m = spat->base.matrix; + cairo_rectangle_int_t extents; + cairo_status_t status; + CGAffineTransform xform; + CGRect srcRect; + cairo_fixed_t fw, fh; - status = _cairo_quartz_surface_to_quartz ((cairo_surface_t *) surface, pat_surf, &quartz_surf); - if (status) - return DO_UNSUPPORTED; + status = _cairo_quartz_surface_to_quartz ((cairo_surface_t *) surface, pat_surf, &quartz_surf); + if (status) + return DO_UNSUPPORTED; - surface->sourceImageSurface = (cairo_surface_t *)quartz_surf; + surface->sourceImageSurface = (cairo_surface_t *)quartz_surf; - if (IS_EMPTY(quartz_surf)) - return DO_NOTHING; + if (IS_EMPTY(quartz_surf)) + return DO_NOTHING; - img = CGBitmapContextCreateImage (quartz_surf->cgContext); - if (!img) - return DO_UNSUPPORTED; + img = CGBitmapContextCreateImage (quartz_surf->cgContext); + if (!img) + return DO_UNSUPPORTED; - surface->sourceImage = img; + surface->sourceImage = img; - cairo_matrix_invert(&m); - _cairo_quartz_cairo_matrix_to_quartz (&m, &surface->sourceImageTransform); + cairo_matrix_invert(&m); + _cairo_quartz_cairo_matrix_to_quartz (&m, &surface->sourceImageTransform); - status = _cairo_surface_get_extents (pat_surf, &extents); - if (status) - return DO_UNSUPPORTED; + status = _cairo_surface_get_extents (pat_surf, &extents); + if (status) + return DO_UNSUPPORTED; + if (source->extend == CAIRO_EXTEND_NONE) { surface->sourceImageRect = CGRectMake (0, 0, extents.width, extents.height); + return DO_IMAGE; + } + + /* Quartz seems to tile images at pixel-aligned regions only -- this + * leads to seams if the image doesn't end up scaling to fill the + * space exactly. The CGPattern tiling approach doesn't have this + * problem. Check if we're going to fill up the space (within some + * epsilon), and if not, fall back to the CGPattern type. + */ + + xform = CGAffineTransformConcat (CGContextGetCTM (surface->cgContext), + surface->sourceImageTransform); + + srcRect = CGRectMake (0, 0, extents.width, extents.height); + srcRect = CGRectApplyAffineTransform (srcRect, xform); + + fw = _cairo_fixed_from_double (srcRect.size.width); + fh = _cairo_fixed_from_double (srcRect.size.height); + + if ((fw & CAIRO_FIXED_FRAC_MASK) <= CAIRO_FIXED_EPSILON && + (fh & CAIRO_FIXED_FRAC_MASK) <= CAIRO_FIXED_EPSILON) + { + /* We're good to use DrawTiledImage, but ensure that + * the math works out */ + + srcRect.size.width = round(srcRect.size.width); + srcRect.size.height = round(srcRect.size.height); - if (source->extend == CAIRO_EXTEND_NONE) - return DO_IMAGE; - else - return DO_TILED_IMAGE; - } else if (source->type == CAIRO_PATTERN_TYPE_SURFACE) { + xform = CGAffineTransformInvert (xform); + + srcRect = CGRectApplyAffineTransform (srcRect, xform); + + surface->sourceImageRect = srcRect; + + return DO_TILED_IMAGE; + } + + /* Fall through to generic SURFACE case */ + } + + if (source->type == CAIRO_PATTERN_TYPE_SURFACE) { float patternAlpha = 1.0f; CGColorSpaceRef patternSpace; CGPatternRef pattern; @@ -830,11 +889,9 @@ _cairo_quartz_setup_source (cairo_quartz_surface_t *surface, surface->sourcePattern = pattern; return DO_PATTERN; - } else { - return DO_UNSUPPORTED; } - ASSERT_NOT_REACHED; + return DO_UNSUPPORTED; } static void @@ -867,27 +924,16 @@ _cairo_quartz_teardown_source (cairo_quartz_surface_t *surface, * get source/dest image implementation */ -static void -ImageDataReleaseFunc(void *info, const void *data, size_t size) -{ - if (data != NULL) { - free((void *) data); - } -} - /* Read the image from the surface's front buffer */ static cairo_int_status_t _cairo_quartz_get_image (cairo_quartz_surface_t *surface, - cairo_image_surface_t **image_out, - unsigned char **data_out) + cairo_image_surface_t **image_out) { unsigned char *imageData; cairo_image_surface_t *isurf; if (IS_EMPTY(surface)) { *image_out = (cairo_image_surface_t*) cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 0, 0); - if (data_out) - *data_out = NULL; return CAIRO_STATUS_SUCCESS; } @@ -1001,12 +1047,12 @@ _cairo_quartz_surface_acquire_source_image (void *abstract_surface, //ND((stderr, "%p _cairo_quartz_surface_acquire_source_image\n", surface)); - *image_extra = NULL; - - status = _cairo_quartz_get_image (surface, image_out, NULL); + status = _cairo_quartz_get_image (surface, image_out); if (status) return _cairo_error (CAIRO_STATUS_NO_MEMORY); + *image_extra = NULL; + return CAIRO_STATUS_SUCCESS; } @@ -1028,17 +1074,15 @@ _cairo_quartz_surface_acquire_dest_image (void *abstract_surface, { cairo_quartz_surface_t *surface = (cairo_quartz_surface_t *) abstract_surface; cairo_int_status_t status; - unsigned char *data; ND((stderr, "%p _cairo_quartz_surface_acquire_dest_image\n", surface)); - *image_rect = surface->extents; - - status = _cairo_quartz_get_image (surface, image_out, &data); + status = _cairo_quartz_get_image (surface, image_out); if (status) return _cairo_error (CAIRO_STATUS_NO_MEMORY); - *image_extra = data; + *image_rect = surface->extents; + *image_extra = NULL; return CAIRO_STATUS_SUCCESS; } @@ -1050,48 +1094,10 @@ _cairo_quartz_surface_release_dest_image (void *abstract_surface, cairo_rectangle_int_t *image_rect, void *image_extra) { - cairo_quartz_surface_t *surface = (cairo_quartz_surface_t *) abstract_surface; - unsigned char *imageData = (unsigned char *) image_extra; + //cairo_quartz_surface_t *surface = (cairo_quartz_surface_t *) abstract_surface; //ND((stderr, "%p _cairo_quartz_surface_release_dest_image\n", surface)); - if (IS_EMPTY(surface)) { - cairo_surface_destroy ((cairo_surface_t*) image); - return; - } - - if (!CGBitmapContextGetData (surface->cgContext)) { - CGDataProviderRef dataProvider; - CGColorSpaceRef rgb = CGColorSpaceCreateDeviceRGB(); - CGImageRef img; - - dataProvider = CGDataProviderCreateWithData (NULL, imageData, - surface->extents.width * surface->extents.height * 4, - ImageDataReleaseFunc); - - img = CGImageCreate (surface->extents.width, surface->extents.height, - 8, 32, - surface->extents.width * 4, - rgb, - kCGImageAlphaPremultipliedFirst | kCGBitmapByteOrder32Host, - dataProvider, - NULL, - false, - kCGRenderingIntentDefault); - CGColorSpaceRelease (rgb); - - CGContextSetCompositeOperation (surface->cgContext, kPrivateCGCompositeCopy); - - CGContextDrawImage (surface->cgContext, - CGRectMake (0, 0, surface->extents.width, surface->extents.height), - img); - - CGImageRelease (img); - CGDataProviderRelease (dataProvider); - - ND((stderr, "Image for surface %p was recovered from a bitmap\n", surface)); - } - cairo_surface_destroy ((cairo_surface_t *) image); } @@ -1281,14 +1287,6 @@ _cairo_quartz_surface_paint (void *abstract_surface, CGContextSaveGState (surface->cgContext); - if (action == DO_IMAGE && op != CAIRO_OPERATOR_OVER) { - CGContextSetRGBFillColor (surface->cgContext, 0.0, 0.0, 0.0, 0.0); - CGContextFillRect (surface->cgContext, CGRectMake(surface->extents.x, - surface->extents.y, - surface->extents.width, - surface->extents.height)); - } - CGContextConcatCTM (surface->cgContext, surface->sourceImageTransform); if (cairo_surface_get_type(pat_surf) == CAIRO_SURFACE_TYPE_QUARTZ) { CGContextTranslateCTM (surface->cgContext, 0, CGImageGetHeight(surface->sourceImage)); @@ -1298,7 +1296,7 @@ _cairo_quartz_surface_paint (void *abstract_surface, if (action == DO_IMAGE) CGContextDrawImage (surface->cgContext, surface->sourceImageRect, surface->sourceImage); else - CGContextDrawTiledImage (surface->cgContext, surface->sourceImageRect, surface->sourceImage); + CGContextDrawTiledImagePtr (surface->cgContext, surface->sourceImageRect, surface->sourceImage); CGContextRestoreGState (surface->cgContext); } else if (action != DO_NOTHING) { rv = CAIRO_INT_STATUS_UNSUPPORTED; @@ -1371,14 +1369,6 @@ _cairo_quartz_surface_fill (void *abstract_surface, else CGContextEOClip (surface->cgContext); - if (action == DO_IMAGE && op != CAIRO_OPERATOR_OVER) { - CGContextSetRGBFillColor (surface->cgContext, 0.0, 0.0, 0.0, 0.0); - CGContextFillRect (surface->cgContext, CGRectMake(surface->extents.x, - surface->extents.y, - surface->extents.width, - surface->extents.height)); - } - CGContextConcatCTM (surface->cgContext, surface->sourceImageTransform); if (cairo_surface_get_type(pat_surf) == CAIRO_SURFACE_TYPE_QUARTZ) { CGContextTranslateCTM (surface->cgContext, 0, CGImageGetHeight(surface->sourceImage)); @@ -1388,7 +1378,7 @@ _cairo_quartz_surface_fill (void *abstract_surface, if (action == DO_IMAGE) CGContextDrawImage (surface->cgContext, surface->sourceImageRect, surface->sourceImage); else - CGContextDrawTiledImage (surface->cgContext, surface->sourceImageRect, surface->sourceImage); + CGContextDrawTiledImagePtr (surface->cgContext, surface->sourceImageRect, surface->sourceImage); } else if (action != DO_NOTHING) { rv = CAIRO_INT_STATUS_UNSUPPORTED; } @@ -1479,14 +1469,6 @@ _cairo_quartz_surface_stroke (void *abstract_surface, CGContextReplacePathWithStrokedPath (surface->cgContext); CGContextClip (surface->cgContext); - if (action == DO_IMAGE && op != CAIRO_OPERATOR_OVER) { - CGContextSetRGBFillColor (surface->cgContext, 0.0, 0.0, 0.0, 0.0); - CGContextFillRect (surface->cgContext, CGRectMake(surface->extents.x, - surface->extents.y, - surface->extents.width, - surface->extents.height)); - } - CGContextConcatCTM (surface->cgContext, surface->sourceImageTransform); if (cairo_surface_get_type(((cairo_surface_pattern_t*)source)->surface) == CAIRO_SURFACE_TYPE_QUARTZ) { CGContextTranslateCTM (surface->cgContext, 0, CGImageGetHeight(surface->sourceImage)); @@ -1496,7 +1478,7 @@ _cairo_quartz_surface_stroke (void *abstract_surface, if (action == DO_IMAGE) CGContextDrawImage (surface->cgContext, surface->sourceImageRect, surface->sourceImage); else - CGContextDrawTiledImage (surface->cgContext, surface->sourceImageRect, surface->sourceImage); + CGContextDrawTiledImagePtr (surface->cgContext, surface->sourceImageRect, surface->sourceImage); } else if (action == DO_SHADING) { CGContextReplacePathWithStrokedPath (surface->cgContext); CGContextClip (surface->cgContext); @@ -1537,6 +1519,7 @@ _cairo_quartz_surface_show_glyphs (void *abstract_surface, cairo_quartz_action_t action; float xprev, yprev; int i; + CGFontRef cgfref; if (IS_EMPTY(surface)) return CAIRO_STATUS_SUCCESS; @@ -1566,7 +1549,7 @@ _cairo_quartz_surface_show_glyphs (void *abstract_surface, CGContextSetCompositeOperation (surface->cgContext, _cairo_quartz_cairo_operator_to_quartz (op)); /* this doesn't addref */ - CGFontRef cgfref = _cairo_atsui_scaled_font_get_cg_font_ref (scaled_font); + cgfref = _cairo_atsui_scaled_font_get_cg_font_ref (scaled_font); CGContextSetFont (surface->cgContext, cgfref); /* So this should include the size; I don't know if I need to extract the @@ -1638,14 +1621,6 @@ _cairo_quartz_surface_show_glyphs (void *abstract_surface, num_glyphs); if (action == DO_IMAGE || action == DO_TILED_IMAGE) { - if (action == DO_IMAGE && op != CAIRO_OPERATOR_OVER) { - CGContextSetRGBFillColor (surface->cgContext, 0.0, 0.0, 0.0, 0.0); - CGContextFillRect (surface->cgContext, CGRectMake(surface->extents.x, - surface->extents.y, - surface->extents.width, - surface->extents.height)); - } - CGContextConcatCTM (surface->cgContext, surface->sourceImageTransform); if (cairo_surface_get_type(((cairo_surface_pattern_t*)source)->surface) == CAIRO_SURFACE_TYPE_QUARTZ) { CGContextTranslateCTM (surface->cgContext, 0, CGImageGetHeight(surface->sourceImage)); @@ -1655,7 +1630,7 @@ _cairo_quartz_surface_show_glyphs (void *abstract_surface, if (action == DO_IMAGE) CGContextDrawImage (surface->cgContext, surface->sourceImageRect, surface->sourceImage); else - CGContextDrawTiledImage (surface->cgContext, surface->sourceImageRect, surface->sourceImage); + CGContextDrawTiledImagePtr (surface->cgContext, surface->sourceImageRect, surface->sourceImage); } else if (action == DO_SHADING) { CGContextDrawShading (surface->cgContext, surface->sourceShading); } @@ -1710,7 +1685,7 @@ _cairo_quartz_surface_mask_with_surface (cairo_quartz_surface_t *surface, rect = CGRectMake (-mask->base.matrix.x0, -mask->base.matrix.y0, extents.width, extents.height); CGContextSaveGState (surface->cgContext); - CGContextClipToMask (surface->cgContext, rect, img); + CGContextClipToMaskPtr (surface->cgContext, rect, img); status = _cairo_quartz_surface_paint (surface, op, source); CGContextRestoreGState (surface->cgContext); @@ -1739,7 +1714,7 @@ _cairo_quartz_surface_mask (void *abstract_surface, cairo_solid_pattern_t *solid_mask = (cairo_solid_pattern_t *) mask; CGContextSetAlpha (surface->cgContext, solid_mask->color.alpha); - } else if (CGContextClipToMask && + } else if (CGContextClipToMaskPtr && mask->type == CAIRO_PATTERN_TYPE_SURFACE && mask->extend == CAIRO_EXTEND_NONE) { return _cairo_quartz_surface_mask_with_surface (surface, op, source, (cairo_surface_pattern_t *) mask); @@ -1863,10 +1838,12 @@ _cairo_quartz_surface_create_internal (CGContextRef cgContext, { cairo_quartz_surface_t *surface; + quartz_ensure_symbols(); + /* Init the base surface */ surface = malloc(sizeof(cairo_quartz_surface_t)); if (surface == NULL) - return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); + return (cairo_quartz_surface_t*) _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); memset(surface, 0, sizeof(cairo_quartz_surface_t)); @@ -1941,7 +1918,7 @@ cairo_quartz_surface_create_for_cg_context (CGContextRef cgContext, if (surf->base.status) { CGContextRelease (cgContext); // create_internal will have set an error - return surf; + return (cairo_surface_t*) surf; } return (cairo_surface_t *) surf; @@ -2044,7 +2021,7 @@ cairo_quartz_surface_create (cairo_format_t format, CGContextRelease (cgc); free (imageData); // create_internal will have set an error - return surf; + return (cairo_surface_t*) surf; } surf->imageData = imageData; diff --git a/src/cairo-rectangle.c b/src/cairo-rectangle.c index bda8224..5c68683 100644 --- a/src/cairo-rectangle.c +++ b/src/cairo-rectangle.c @@ -39,15 +39,15 @@ #include "cairoint.h" /* XXX We currently have a confusing mix of boxes and rectangles as - * exemplified by this function. A cairo_box_t is a rectangular area + * exemplified by this function. A #cairo_box_t is a rectangular area * represented by the coordinates of the upper left and lower right - * corners, expressed in fixed point numbers. A cairo_rectangle_int_t is + * corners, expressed in fixed point numbers. A #cairo_rectangle_int_t is * also a rectangular area, but represented by the upper left corner * and the width and the height, as integer numbers. * - * This function converts a cairo_box_t to a cairo_rectangle_int_t by + * This function converts a #cairo_box_t to a #cairo_rectangle_int_t by * increasing the area to the nearest integer coordinates. We should - * standardize on cairo_rectangle_fixed_t and cairo_rectangle_int_t, and + * standardize on #cairo_rectangle_fixed_t and #cairo_rectangle_int_t, and * this function could be renamed to the more reasonable * _cairo_rectangle_fixed_round. */ diff --git a/src/cairo-region-private.h b/src/cairo-region-private.h index 8fc6567..4e2d723 100644 --- a/src/cairo-region-private.h +++ b/src/cairo-region-private.h @@ -41,7 +41,7 @@ #include "cairo-compiler-private.h" -/* cairo_region_t is defined in cairoint.h */ +/* #cairo_region_t is defined in cairoint.h */ struct _cairo_region { pixman_region16_t rgn; diff --git a/src/cairo-region.c b/src/cairo-region.c index 7bf4982..d78628e 100644 --- a/src/cairo-region.c +++ b/src/cairo-region.c @@ -149,7 +149,7 @@ _cairo_region_boxes_fini (cairo_region_t *region, cairo_box_int_t *boxes) * @region: a #cairo_region_t * @rect: rectangle into which to store the extents * - * Gets the bounding box of a region as a cairo_rectangle_int_t + * Gets the bounding box of a region as a #cairo_rectangle_int_t **/ void _cairo_region_get_extents (cairo_region_t *region, cairo_rectangle_int_t *extents) diff --git a/src/cairo-scaled-font-private.h b/src/cairo-scaled-font-private.h index f16487c..87a4616 100644 --- a/src/cairo-scaled-font-private.h +++ b/src/cairo-scaled-font-private.h @@ -91,6 +91,7 @@ struct _cairo_scaled_font { /* "live" scaled_font members */ cairo_matrix_t scale; /* font space => device space */ + cairo_matrix_t scale_inverse; /* device space => font space */ cairo_font_extents_t extents; /* user space */ /* The mutex protects modification to all subsequent fields. */ diff --git a/src/cairo-scaled-font-subsets-private.h b/src/cairo-scaled-font-subsets-private.h index f80257b..733fe1e 100644 --- a/src/cairo-scaled-font-subsets-private.h +++ b/src/cairo-scaled-font-subsets-private.h @@ -52,9 +52,9 @@ typedef struct _cairo_scaled_font_subsets_glyph { * _cairo_scaled_font_subsets_create_scaled: * * Create a new #cairo_scaled_font_subsets_t object which can be used - * to create subsets of any number of cairo_scaled_font_t + * to create subsets of any number of #cairo_scaled_font_t * objects. This allows the (arbitrarily large and sparse) glyph - * indices of a cairo_scaled_font to be mapped to one or more font + * indices of a #cairo_scaled_font_t to be mapped to one or more font * subsets with glyph indices packed into the range * [0 .. max_glyphs_per_subset). * @@ -74,7 +74,7 @@ _cairo_scaled_font_subsets_create_scaled (void); * * Glyphs with an outline path available will be mapped to one font * subset for each font face. Glyphs from bitmap fonts will mapped to - * separate font subsets for each cairo_scaled_font_t object. + * separate font subsets for each #cairo_scaled_font_t object. * * The maximum number of glyphs per subset is 256. Each subset * reserves the first glyph for the .notdef glyph. @@ -98,7 +98,7 @@ _cairo_scaled_font_subsets_create_simple (void); * 65536 glyphs except for Type1 fonts which have a maximum of 256 glyphs. * * Glyphs from bitmap fonts will mapped to separate font subsets for - * each cairo_scaled_font_t object. Each unscaled subset has a maximum + * each #cairo_scaled_font_t object. Each unscaled subset has a maximum * of 256 glyphs. * * Each subset reserves the first glyph for the .notdef glyph. @@ -167,7 +167,7 @@ _cairo_scaled_font_subsets_destroy (cairo_scaled_font_subsets_t *font_subsets); * used by #cairo_scaled_font_subset_t as provided by * _cairo_scaled_font_subsets_foreach. * - * The returned values in the cairo_scaled_font_subsets_glyph_t struct are: + * The returned values in the #cairo_scaled_font_subsets_glyph_t struct are: * * @font_id: The font ID of the mapped glyph * @subset_id : The subset ID of the mapped glyph within the @font_id @@ -178,7 +178,7 @@ _cairo_scaled_font_subsets_destroy (cairo_scaled_font_subsets_t *font_subsets); * @x_advance: When @is_scaled is true, @x_advance contains the x_advance for the mapped glyph in device space. * When @is_scaled is false, @x_advance contains the x_advance for the the mapped glyph from an unhinted 1 point font. * - * Return value: CAIRO_STATUS_SUCCESS if successful, or a non-zero + * Return value: %CAIRO_STATUS_SUCCESS if successful, or a non-zero * value indicating an error. Possible errors include * CAIRO_STATUS_NO_MEMORY. **/ @@ -218,7 +218,7 @@ typedef cairo_status_t * values of the array correspond to the scaled_font_glyph_index * values passed as input to the same function. * - * Return value: CAIRO_STATUS_SUCCESS if successful, or a non-zero + * Return value: %CAIRO_STATUS_SUCCESS if successful, or a non-zero * value indicating an error. Possible errors include * CAIRO_STATUS_NO_MEMORY. **/ @@ -253,7 +253,7 @@ _cairo_scaled_font_subsets_foreach_scaled (cairo_scaled_font_subsets_t *fon * values of the array correspond to the scaled_font_glyph_index * values passed as input to the same function. * - * Return value: CAIRO_STATUS_SUCCESS if successful, or a non-zero + * Return value: %CAIRO_STATUS_SUCCESS if successful, or a non-zero * value indicating an error. Possible errors include * CAIRO_STATUS_NO_MEMORY. **/ @@ -269,10 +269,10 @@ _cairo_scaled_font_subsets_foreach_unscaled (cairo_scaled_font_subsets_t * Create an array of strings containing the glyph name for each glyph * in @font_subsets. The array as store in font_subsets->glyph_names. * - * Return value: CAIRO_STATUS_SUCCESS if successful, + * Return value: %CAIRO_STATUS_SUCCESS if successful, * CAIRO_INT_STATUS_UNSUPPORTED if the font backend does not support * mapping the glyph indices to unicode characters. Possible errors - * include CAIRO_STATUS_NO_MEMORY. + * include %CAIRO_STATUS_NO_MEMORY. **/ cairo_private cairo_int_status_t _cairo_scaled_font_subset_create_glyph_names (cairo_scaled_font_subset_t *subset); @@ -292,15 +292,15 @@ typedef struct _cairo_cff_subset { * @font_subset: the #cairo_scaled_font_subset_t to initialize from * * If possible (depending on the format of the underlying - * cairo_scaled_font_t and the font backend in use) generate a + * #cairo_scaled_font_t and the font backend in use) generate a * cff file corresponding to @font_subset and initialize * @cff_subset with information about the subset and the cff * data. * - * Return value: CAIRO_STATUS_SUCCESS if successful, + * Return value: %CAIRO_STATUS_SUCCESS if successful, * CAIRO_INT_STATUS_UNSUPPORTED if the font can't be subset as a * cff file, or an non-zero value indicating an error. Possible - * errors include CAIRO_STATUS_NO_MEMORY. + * errors include %CAIRO_STATUS_NO_MEMORY. **/ cairo_private cairo_status_t _cairo_cff_subset_init (cairo_cff_subset_t *cff_subset, @@ -324,14 +324,14 @@ _cairo_cff_subset_fini (cairo_cff_subset_t *cff_subset); * @font_subset: the #cairo_scaled_font_subset_t to initialize from * * If possible (depending on the format of the underlying - * cairo_scaled_font_t and the font backend in use) generate a cff + * #cairo_scaled_font_t and the font backend in use) generate a cff * file corresponding to @font_subset and initialize @cff_subset * with information about the subset and the cff data. * - * Return value: CAIRO_STATUS_SUCCESS if successful, + * Return value: %CAIRO_STATUS_SUCCESS if successful, * CAIRO_INT_STATUS_UNSUPPORTED if the font can't be subset as a * cff file, or an non-zero value indicating an error. Possible - * errors include CAIRO_STATUS_NO_MEMORY. + * errors include %CAIRO_STATUS_NO_MEMORY. **/ cairo_private cairo_status_t _cairo_cff_fallback_init (cairo_cff_subset_t *cff_subset, @@ -366,15 +366,15 @@ typedef struct _cairo_truetype_subset { * @font_subset: the #cairo_scaled_font_subset_t to initialize from * * If possible (depending on the format of the underlying - * cairo_scaled_font_t and the font backend in use) generate a + * #cairo_scaled_font_t and the font backend in use) generate a * truetype file corresponding to @font_subset and initialize * @truetype_subset with information about the subset and the truetype * data. * - * Return value: CAIRO_STATUS_SUCCESS if successful, + * Return value: %CAIRO_STATUS_SUCCESS if successful, * CAIRO_INT_STATUS_UNSUPPORTED if the font can't be subset as a * truetype file, or an non-zero value indicating an error. Possible - * errors include CAIRO_STATUS_NO_MEMORY. + * errors include %CAIRO_STATUS_NO_MEMORY. **/ cairo_private cairo_status_t _cairo_truetype_subset_init (cairo_truetype_subset_t *truetype_subset, @@ -411,14 +411,14 @@ typedef struct _cairo_type1_subset { * @hex_encode: if true the encrypted portion of the font is hex encoded * * If possible (depending on the format of the underlying - * cairo_scaled_font_t and the font backend in use) generate a type1 + * #cairo_scaled_font_t and the font backend in use) generate a type1 * file corresponding to @font_subset and initialize @type1_subset * with information about the subset and the type1 data. * - * Return value: CAIRO_STATUS_SUCCESS if successful, + * Return value: %CAIRO_STATUS_SUCCESS if successful, * CAIRO_INT_STATUS_UNSUPPORTED if the font can't be subset as a type1 * file, or an non-zero value indicating an error. Possible errors - * include CAIRO_STATUS_NO_MEMORY. + * include %CAIRO_STATUS_NO_MEMORY. **/ cairo_private cairo_status_t _cairo_type1_subset_init (cairo_type1_subset_t *type_subset, @@ -441,7 +441,7 @@ _cairo_type1_subset_fini (cairo_type1_subset_t *subset); * _cairo_type1_scaled_font_is_type1: * @scaled_font: a #cairo_scaled_font_t * - * Return TRUE if @scaled_font is a Type 1 font, otherwise return FALSE. + * Return %TRUE if @scaled_font is a Type 1 font, otherwise return %FALSE. **/ cairo_private cairo_bool_t _cairo_type1_scaled_font_is_type1 (cairo_scaled_font_t *scaled_font); @@ -452,15 +452,15 @@ _cairo_type1_scaled_font_is_type1 (cairo_scaled_font_t *scaled_font); * @font_subset: the #cairo_scaled_font_subset_t to initialize from * * If possible (depending on the format of the underlying - * cairo_scaled_font_t and the font backend in use) generate a type1 + * #cairo_scaled_font_t and the font backend in use) generate a type1 * file corresponding to @font_subset and initialize @type1_subset * with information about the subset and the type1 data. The encrypted * part of the font is binary encoded. * - * Return value: CAIRO_STATUS_SUCCESS if successful, + * Return value: %CAIRO_STATUS_SUCCESS if successful, * CAIRO_INT_STATUS_UNSUPPORTED if the font can't be subset as a type1 * file, or an non-zero value indicating an error. Possible errors - * include CAIRO_STATUS_NO_MEMORY. + * include %CAIRO_STATUS_NO_MEMORY. **/ cairo_private cairo_status_t _cairo_type1_fallback_init_binary (cairo_type1_subset_t *type_subset, @@ -473,15 +473,15 @@ _cairo_type1_fallback_init_binary (cairo_type1_subset_t *type_subset, * @font_subset: the #cairo_scaled_font_subset_t to initialize from * * If possible (depending on the format of the underlying - * cairo_scaled_font_t and the font backend in use) generate a type1 + * #cairo_scaled_font_t and the font backend in use) generate a type1 * file corresponding to @font_subset and initialize @type1_subset * with information about the subset and the type1 data. The encrypted * part of the font is hex encoded. * - * Return value: CAIRO_STATUS_SUCCESS if successful, + * Return value: %CAIRO_STATUS_SUCCESS if successful, * CAIRO_INT_STATUS_UNSUPPORTED if the font can't be subset as a type1 * file, or an non-zero value indicating an error. Possible errors - * include CAIRO_STATUS_NO_MEMORY. + * include %CAIRO_STATUS_NO_MEMORY. **/ cairo_private cairo_status_t _cairo_type1_fallback_init_hex (cairo_type1_subset_t *type_subset, @@ -512,14 +512,14 @@ typedef struct _cairo_type2_charstrings { * @font_subset: the #cairo_scaled_font_subset_t to initialize from * * If possible (depending on the format of the underlying - * cairo_scaled_font_t and the font backend in use) generate type2 + * #cairo_scaled_font_t and the font backend in use) generate type2 * charstrings to @font_subset and initialize @type2_subset * with information about the subset. * - * Return value: CAIRO_STATUS_SUCCESS if successful, + * Return value: %CAIRO_STATUS_SUCCESS if successful, * CAIRO_INT_STATUS_UNSUPPORTED if the font can't be subset as a type2 * charstrings, or an non-zero value indicating an error. Possible errors - * include CAIRO_STATUS_NO_MEMORY. + * include %CAIRO_STATUS_NO_MEMORY. **/ cairo_private cairo_status_t _cairo_type2_charstrings_init (cairo_type2_charstrings_t *charstrings, @@ -541,11 +541,11 @@ _cairo_type2_charstrings_fini (cairo_type2_charstrings_t *charstrings); * @font_subset: the #cairo_scaled_font_subset_t to initialize from * * If possible (depending on the format of the underlying - * cairo_scaled_font_t and the font backend in use) assign + * #cairo_scaled_font_t and the font backend in use) assign * the unicode character of each glyph in font_subset to * fontsubset->to_unicode. * - * Return value: CAIRO_STATUS_SUCCESS if successful, + * Return value: %CAIRO_STATUS_SUCCESS if successful, * CAIRO_INT_STATUS_UNSUPPORTED if the unicode encoding of * the glyphs is not available. Possible errors include * CAIRO_STATUS_NO_MEMORY. diff --git a/src/cairo-scaled-font-subsets.c b/src/cairo-scaled-font-subsets.c index 82be70c..9121aab 100644 --- a/src/cairo-scaled-font-subsets.c +++ b/src/cairo-scaled-font-subsets.c @@ -106,6 +106,11 @@ typedef struct _cairo_string_entry { char *string; } cairo_string_entry_t; +static cairo_status_t +_cairo_sub_font_map_glyph (cairo_sub_font_t *sub_font, + unsigned long scaled_font_glyph_index, + cairo_scaled_font_subsets_glyph_t *subset_glyph); + static void _cairo_sub_font_glyph_init_key (cairo_sub_font_glyph_t *sub_font_glyph, unsigned long scaled_font_glyph_index) @@ -221,6 +226,8 @@ _cairo_sub_font_create (cairo_scaled_font_subsets_t *parent, cairo_bool_t is_composite) { cairo_sub_font_t *sub_font; + cairo_status_t status; + cairo_scaled_font_subsets_glyph_t subset_glyph; sub_font = malloc (sizeof (cairo_sub_font_t)); if (sub_font == NULL) { @@ -246,9 +253,11 @@ _cairo_sub_font_create (cairo_scaled_font_subsets_t *parent, return NULL; } - if (parent->type != CAIRO_SUBSETS_SCALED) { - /* Reserve first glyph in subset for the .notdef glyph */ - sub_font->num_glyphs_in_current_subset++; + /* Reserve first glyph in subset for the .notdef glyph */ + status = _cairo_sub_font_map_glyph (sub_font, 0, &subset_glyph); + if (status) { + _cairo_error_throw (status); + return NULL; } return sub_font; @@ -307,6 +316,7 @@ _cairo_sub_font_map_glyph (cairo_sub_font_t *sub_font, cairo_sub_font_glyph_t key, *sub_font_glyph; cairo_status_t status; cairo_scaled_glyph_t *scaled_glyph; + cairo_scaled_font_subsets_glyph_t tmp_subset_glyph; _cairo_sub_font_glyph_init_key (&key, scaled_font_glyph_index); if (! _cairo_hash_table_lookup (sub_font->sub_font_glyphs, &key.base, @@ -317,10 +327,10 @@ _cairo_sub_font_map_glyph (cairo_sub_font_t *sub_font, sub_font->current_subset++; sub_font->num_glyphs_in_current_subset = 0; - if (sub_font->parent->type != CAIRO_SUBSETS_SCALED) { - /* Reserve first glyph in subset for the .notdef glyph */ - sub_font->num_glyphs_in_current_subset++; - } + /* Reserve first glyph in subset for the .notdef glyph */ + status = _cairo_sub_font_map_glyph (sub_font, 0, &tmp_subset_glyph); + if (status) + return status; } status = _cairo_scaled_glyph_lookup (sub_font->scaled_font, @@ -381,16 +391,8 @@ _cairo_sub_font_collect (void *entry, void *closure) for (i = 0; i <= sub_font->current_subset; i++) { collection->subset_id = i; - - if (sub_font->parent->type == CAIRO_SUBSETS_SCALED) { - collection->num_glyphs = 0; - collection->max_glyph = 0; - } else { - /* Assign .notdef glyph to the first glyph in the subset */ - collection->glyphs[0] = 0; - collection->num_glyphs = 1; - collection->max_glyph = 0; - } + collection->num_glyphs = 0; + collection->max_glyph = 0; _cairo_hash_table_foreach (sub_font->sub_font_glyphs, _cairo_sub_font_glyph_collect, collection); diff --git a/src/cairo-scaled-font.c b/src/cairo-scaled-font.c index f8b124b..1e532bc 100644 --- a/src/cairo-scaled-font.c +++ b/src/cairo-scaled-font.c @@ -41,16 +41,16 @@ #include "cairo-scaled-font-private.h" /* - * NOTES: + * Notes: * * To store rasterizations of glyphs, we use an image surface and the * device offset to represent the glyph origin. * * A device_transform converts from device space (a conceptual space) to * surface space. For simple cases of translation only, it's called a - * device_offset and is public API (cairo_surface_[gs]et_device_offset). + * device_offset and is public API (cairo_surface_[gs]et_device_offset()). * A possibly better name for those functions could have been - * cairo_surface_[gs]et_origing. So, that's what they do: they set where + * cairo_surface_[gs]et_origin(). So, that's what they do: they set where * the device-space origin (0,0) is in the surface. If the origin is inside * the surface, device_offset values are positive. It may look like this: * @@ -191,6 +191,7 @@ const cairo_scaled_font_t _cairo_scaled_font_nil = { CAIRO_HINT_STYLE_DEFAULT, CAIRO_HINT_METRICS_DEFAULT} , { 1., 0., 0., 1., 0, 0}, /* scale */ + { 1., 0., 0., 1., 0, 0}, /* scale_inverse */ { 0., 0., 0., 0., 0. }, /* extents */ CAIRO_MUTEX_NIL_INITIALIZER,/* mutex */ NULL, /* glyphs */ @@ -270,21 +271,21 @@ cairo_scaled_font_status (cairo_scaled_font_t *scaled_font) slim_hidden_def (cairo_scaled_font_status); /* Here we keep a unique mapping from - * cairo_font_face_t/matrix/ctm/options => cairo_scaled_font_t. + * font_face/matrix/ctm/font_options => #cairo_scaled_font_t. * * Here are the things that we want to map: * - * a) All otherwise referenced cairo_scaled_font_t's - * b) Some number of not otherwise referenced cairo_scaled_font_t's + * a) All otherwise referenced #cairo_scaled_font_t's + * b) Some number of not otherwise referenced #cairo_scaled_font_t's * * The implementation uses a hash table which covers (a) * completely. Then, for (b) we have an array of otherwise * unreferenced fonts (holdovers) which are expired in * least-recently-used order. * - * The cairo_scaled_font_create code gets to treat this like a regular + * The cairo_scaled_font_create() code gets to treat this like a regular * hash table. All of the magic for the little holdover cache is in - * cairo_scaled_font_reference and cairo_scaled_font_destroy. + * cairo_scaled_font_reference() and cairo_scaled_font_destroy(). */ /* This defines the size of the holdover array ... that is, the number @@ -412,7 +413,7 @@ _cairo_scaled_font_init_key (cairo_scaled_font_t *scaled_font, /* ignore translation values in the ctm */ scaled_font->ctm.x0 = 0.; scaled_font->ctm.y0 = 0.; - scaled_font->options = *options; + _cairo_font_options_init_copy (&scaled_font->options, options); /* We do a bytewise hash on the font matrices */ hash = _hash_bytes_fnv ((unsigned char *)(&scaled_font->font_matrix.xx), @@ -452,7 +453,7 @@ _cairo_scaled_font_keys_equal (const void *abstract_key_a, const void *abstract_ #define MAX_GLYPHS_CACHED_PER_FONT 256 /* - * Basic cairo_scaled_font_t object management + * Basic #cairo_scaled_font_t object management */ cairo_status_t @@ -463,15 +464,14 @@ _cairo_scaled_font_init (cairo_scaled_font_t *scaled_font, const cairo_font_options_t *options, const cairo_scaled_font_backend_t *backend) { - cairo_matrix_t inverse; cairo_status_t status; - status = cairo_font_options_status ((cairo_font_options_t *) options); - if (status) - return status; + if (options != NULL) { + status = cairo_font_options_status ((cairo_font_options_t *) options); + if (status) + return status; + } - /* Initialize scaled_font->scale early for easier bail out on an - * invalid matrix. */ _cairo_scaled_font_init_key (scaled_font, font_face, font_matrix, ctm, options); @@ -479,10 +479,27 @@ _cairo_scaled_font_init (cairo_scaled_font_t *scaled_font, &scaled_font->font_matrix, &scaled_font->ctm); - inverse = scaled_font->scale; - status = cairo_matrix_invert (&inverse); - if (status) - return status; + scaled_font->scale_inverse = scaled_font->scale; + status = cairo_matrix_invert (&scaled_font->scale_inverse); + if (status) { + /* If the font scale matrix is rank 0, just using an all-zero inverse matrix + * makes everything work correctly. This make font size 0 work without + * producing an error. + * + * FIXME: If the scale is rank 1, we still go into error mode. But then + * again, that's what we doo everywhere in cairo. + * + * Also, the check for == 0. below may bee too harsh... + */ + if (scaled_font->scale.xx == 0. && scaled_font->scale.xy == 0. && + scaled_font->scale.yx == 0. && scaled_font->scale.yy == 0.) + cairo_matrix_init (&scaled_font->scale_inverse, + 0, 0, 0, 0, + -scaled_font->scale.x0, + -scaled_font->scale.y0); + else + return status; + } scaled_font->glyphs = _cairo_cache_create (_cairo_scaled_glyph_keys_equal, _cairo_scaled_glyph_destroy, @@ -527,15 +544,18 @@ _cairo_scaled_font_reset_cache (cairo_scaled_font_t *scaled_font) MAX_GLYPHS_CACHED_PER_FONT); } -void +cairo_status_t _cairo_scaled_font_set_metrics (cairo_scaled_font_t *scaled_font, cairo_font_extents_t *fs_metrics) { + cairo_status_t status; double font_scale_x, font_scale_y; - _cairo_matrix_compute_scale_factors (&scaled_font->font_matrix, - &font_scale_x, &font_scale_y, - /* XXX */ 1); + status = _cairo_matrix_compute_scale_factors (&scaled_font->font_matrix, + &font_scale_x, &font_scale_y, + /* XXX */ 1); + if (status) + return status; /* * The font responded in unscaled units, scale by the font @@ -547,6 +567,8 @@ _cairo_scaled_font_set_metrics (cairo_scaled_font_t *scaled_font, scaled_font->extents.height = fs_metrics->height * font_scale_y; scaled_font->extents.max_x_advance = fs_metrics->max_x_advance * font_scale_x; scaled_font->extents.max_y_advance = fs_metrics->max_y_advance * font_scale_y; + + return CAIRO_STATUS_SUCCESS; } void @@ -580,7 +602,8 @@ _cairo_scaled_font_fini (cairo_scaled_font_t *scaled_font) * @ctm: user to device transformation matrix with which the font will * be used. * @options: options to use when getting metrics for the font and - * rendering with it. + * rendering with it. A %NULL pointer will be interpreted as + * meaning the default options. * * Creates a #cairo_scaled_font_t object from a font face and matrices that * describe the size of the font and the environment in which it will @@ -602,14 +625,14 @@ cairo_scaled_font_create (cairo_font_face_t *font_face, if (font_face->status) return (cairo_scaled_font_t *)&_cairo_scaled_font_nil; - if (cairo_font_options_status ((cairo_font_options_t *) options)) - return (cairo_scaled_font_t *)&_cairo_scaled_font_nil; - - if (! _cairo_matrix_is_invertible (font_matrix)) + if (options != NULL && + cairo_font_options_status ((cairo_font_options_t *) options)) + { return (cairo_scaled_font_t *)&_cairo_scaled_font_nil; + } - if (! _cairo_matrix_is_invertible (ctm)) - return (cairo_scaled_font_t *)&_cairo_scaled_font_nil; + /* Note that degenerate ctm or font_matrix *are* allowed. + * We want to support a font size of 0. */ font_map = _cairo_scaled_font_map_lock (); if (font_map == NULL) @@ -686,7 +709,7 @@ slim_hidden_def (cairo_scaled_font_create); /** * cairo_scaled_font_reference: - * @scaled_font: a #cairo_scaled_font_t, (may be NULL in which case + * @scaled_font: a #cairo_scaled_font_t, (may be %NULL in which case * this function does nothing) * * Increases the reference count on @scaled_font by one. This prevents @@ -901,15 +924,27 @@ cairo_scaled_font_text_extents (cairo_scaled_font_t *scaled_font, int num_glyphs; if (scaled_font->status) - return; + goto ZERO_EXTENTS; + + if (utf8 == NULL) + goto ZERO_EXTENTS; status = _cairo_scaled_font_text_to_glyphs (scaled_font, 0., 0., utf8, &glyphs, &num_glyphs); - if (status) { - status = _cairo_scaled_font_set_error (scaled_font, status); - return; - } + if (status) + goto ZERO_EXTENTS; + cairo_scaled_font_glyph_extents (scaled_font, glyphs, num_glyphs, extents); free (glyphs); + + return; + +ZERO_EXTENTS: + extents->x_bearing = 0.0; + extents->y_bearing = 0.0; + extents->width = 0.0; + extents->height = 0.0; + extents->x_advance = 0.0; + extents->y_advance = 0.0; } /** @@ -945,7 +980,7 @@ cairo_scaled_font_glyph_extents (cairo_scaled_font_t *scaled_font, if (scaled_font->status) { extents->x_bearing = 0.0; extents->y_bearing = 0.0; - extents->width = 0.0; + extents->width = 0.0; extents->height = 0.0; extents->x_advance = 0.0; extents->y_advance = 0.0; @@ -1098,7 +1133,7 @@ _cairo_scaled_font_text_to_glyphs (cairo_scaled_font_t *scaled_font, if (ucs4) free (ucs4); - return status; + return _cairo_scaled_font_set_error (scaled_font, status); } /* @@ -1108,12 +1143,12 @@ cairo_status_t _cairo_scaled_font_glyph_device_extents (cairo_scaled_font_t *scaled_font, const cairo_glyph_t *glyphs, int num_glyphs, - cairo_rectangle_int16_t *extents) + cairo_rectangle_int_t *extents) { cairo_status_t status = CAIRO_STATUS_SUCCESS; int i; - short min_x = INT16_MAX, max_x = INT16_MIN; - short min_y = INT16_MAX, max_y = INT16_MIN; + cairo_point_int_t min = { CAIRO_RECT_INT_MAX, CAIRO_RECT_INT_MAX }; + cairo_point_int_t max = { CAIRO_RECT_INT_MIN, CAIRO_RECT_INT_MIN }; if (scaled_font->status) return scaled_font->status; @@ -1140,16 +1175,16 @@ _cairo_scaled_font_glyph_device_extents (cairo_scaled_font_t *scaled_font, right = x + _cairo_fixed_integer_ceil(scaled_glyph->bbox.p2.x); bottom = y + _cairo_fixed_integer_ceil (scaled_glyph->bbox.p2.y); - if (left < min_x) min_x = left; - if (right > max_x) max_x = right; - if (top < min_y) min_y = top; - if (bottom > max_y) max_y = bottom; + if (left < min.x) min.x = left; + if (right > max.x) max.x = right; + if (top < min.y) min.y = top; + if (bottom > max.y) max.y = bottom; } - if (min_x < max_x && min_y < max_y) { - extents->x = min_x; - extents->width = max_x - min_x; - extents->y = min_y; - extents->height = max_y - min_y; + if (min.x < max.x && min.y < max.y) { + extents->x = min.x; + extents->width = max.x - min.x; + extents->y = min.y; + extents->height = max.y - min.y; } else { extents->x = extents->y = 0; extents->width = extents->height = 0; @@ -1240,7 +1275,8 @@ _cairo_scaled_font_show_glyphs (cairo_scaled_font_t *scaled_font, /* If we have glyphs of different formats, we "upgrade" the mask * to the wider of the formats. */ if (glyph_surface->format != mask_format && - _cairo_format_width (mask_format) < _cairo_format_width (glyph_surface->format) ) + _cairo_format_bits_per_pixel (mask_format) < + _cairo_format_bits_per_pixel (glyph_surface->format) ) { cairo_surface_t *new_mask; cairo_surface_pattern_t mask_pattern; @@ -1424,7 +1460,7 @@ _add_unit_rectangle_to_path (cairo_path_fixed_t *path, int x, int y) /** * _trace_mask_to_path: - * @bitmap: An alpha mask (either CAIRO_FORMAT_A1 or _A8) + * @bitmap: An alpha mask (either %CAIRO_FORMAT_A1 or %CAIRO_FORMAT_A8) * @path: An initialized path to hold the result * * Given a mask surface, (an alpha image), fill out the provided path @@ -1671,7 +1707,7 @@ _cairo_scaled_glyph_set_path (cairo_scaled_glyph_t *scaled_glyph, * @scaled_glyph_ret: a #cairo_scaled_glyph_t * where the glyph * is returned. * - * Returns a glyph with the requested portions filled in. Glyph + * Returns: a glyph with the requested portions filled in. Glyph * lookup is cached and glyph will be automatically freed along * with the scaled_font so no explicit free is required. * @info can be one or more of: @@ -1683,7 +1719,7 @@ _cairo_scaled_glyph_set_path (cairo_scaled_glyph_t *scaled_glyph, * get INFO_PATH with a bitmapped font), this function will return * CAIRO_INT_STATUS_UNSUPPORTED. * - * NOTE: This function must be called with scaled_font->mutex held. + * Note: This function must be called with scaled_font->mutex held. **/ cairo_int_status_t _cairo_scaled_glyph_lookup (cairo_scaled_font_t *scaled_font, diff --git a/src/cairo-slope.c b/src/cairo-slope.c index 78664c5..e8421fc 100644 --- a/src/cairo-slope.c +++ b/src/cairo-slope.c @@ -88,7 +88,7 @@ _cairo_slope_compare (cairo_slope_t *a, cairo_slope_t *b) /* Is a clockwise of b? * - * NOTE: The strict equality here is not significant in and of itself, + * Note: The strict equality here is not significant in and of itself, * but there are functions up above that are sensitive to it, * (cf. _cairo_pen_find_active_cw_vertex_index). */ diff --git a/src/cairo-surface-fallback.c b/src/cairo-surface-fallback.c index 02a2e9d..f9f5b04 100644 --- a/src/cairo-surface-fallback.c +++ b/src/cairo-surface-fallback.c @@ -55,8 +55,8 @@ typedef struct { * Acquire destination image surface needed for an image-based * fallback. * - * Return value: CAIRO_INT_STATUS_NOTHING_TO_DO if the extents are not - * visible, CAIRO_STATUS_SUCCESS if some portion is visible and all + * Return value: %CAIRO_INT_STATUS_NOTHING_TO_DO if the extents are not + * visible, %CAIRO_STATUS_SUCCESS if some portion is visible and all * went well, or some error status otherwise. **/ static cairo_int_status_t @@ -273,7 +273,7 @@ _clip_and_composite_combine (cairo_clip_t *clip, return status; } -/* Handles compositing for CAIRO_OPERATOR_SOURCE, which is special; it's +/* Handles compositing for %CAIRO_OPERATOR_SOURCE, which is special; it's * defined as (src IN mask IN clip) ADD (dst OUT (mask IN clip)) */ static cairo_status_t @@ -997,8 +997,7 @@ _cairo_surface_fallback_show_glyphs (cairo_surface_t *surface, return status; if (_cairo_operator_bounded_by_mask (op)) { - cairo_rectangle_int16_t glyph_extents; - cairo_rectangle_int_t glyph_extents_full; + cairo_rectangle_int_t glyph_extents; status = _cairo_scaled_font_glyph_device_extents (scaled_font, glyphs, num_glyphs, @@ -1006,11 +1005,7 @@ _cairo_surface_fallback_show_glyphs (cairo_surface_t *surface, if (status) return status; - glyph_extents_full.x = glyph_extents.x; - glyph_extents_full.y = glyph_extents.y; - glyph_extents_full.width = glyph_extents.width; - glyph_extents_full.height = glyph_extents.height; - _cairo_rectangle_intersect (&extents, &glyph_extents_full); + _cairo_rectangle_intersect (&extents, &glyph_extents); } status = _cairo_clip_intersect_to_rectangle (surface->clip, &extents); diff --git a/src/cairo-surface.c b/src/cairo-surface.c index 8860c95..16c48f1 100644 --- a/src/cairo-surface.c +++ b/src/cairo-surface.c @@ -86,6 +86,7 @@ static DEFINE_NIL_SURFACE(CAIRO_STATUS_FILE_NOT_FOUND, _cairo_surface_nil_file_n static DEFINE_NIL_SURFACE(CAIRO_STATUS_TEMP_FILE_ERROR, _cairo_surface_nil_temp_file_error); static DEFINE_NIL_SURFACE(CAIRO_STATUS_READ_ERROR, _cairo_surface_nil_read_error); static DEFINE_NIL_SURFACE(CAIRO_STATUS_WRITE_ERROR, _cairo_surface_nil_write_error); +static DEFINE_NIL_SURFACE(CAIRO_STATUS_INVALID_STRIDE, _cairo_surface_nil_invalid_stride); static cairo_status_t _cairo_surface_copy_pattern_for_destination (const cairo_pattern_t *pattern, @@ -279,7 +280,7 @@ _cairo_surface_create_similar_scratch (cairo_surface_t *other, * 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 + * owns the surface and should call cairo_surface_destroy() when done * with it. * * This function always returns a valid pointer, but it will return a @@ -881,7 +882,7 @@ slim_hidden_def (cairo_surface_get_device_offset); * device resolution. So this function has no effect on those * backends. * - * NOTE: The fallback resolution only takes effect at the time of + * Note: The fallback resolution only takes effect at the time of * 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. @@ -971,7 +972,7 @@ _cairo_surface_release_source_image (cairo_surface_t *surface, * @surface: a #cairo_surface_t * @interest_rect: area of @surface for which fallback drawing is being done. * A value of %NULL indicates that the entire surface is desired. - * XXXX I'd like to get rid of being able to pass NULL here (nothing seems to) + * XXXX I'd like to get rid of being able to pass %NULL here (nothing seems to) * @image_out: location to store a pointer to an image surface that includes at least * the intersection of @interest_rect with the visible area of @surface. * This surface could be @surface itself, a surface held internal to @surface, @@ -992,7 +993,7 @@ _cairo_surface_release_source_image (cairo_surface_t *surface, * Return value: %CAIRO_STATUS_SUCCESS or %CAIRO_STATUS_NO_MEMORY. * %CAIRO_INT_STATUS_UNSUPPORTED can be returned but this will mean that * the backend can't draw with fallbacks. It's possible for the routine - * to store NULL in @local_out and return %CAIRO_STATUS_SUCCESS; + * to store %NULL in @local_out and return %CAIRO_STATUS_SUCCESS; * that indicates that no part of @interest_rect is visible, so no drawing * is necessary. _cairo_surface_release_dest_image() should not be called in that * case. @@ -1130,7 +1131,7 @@ _cairo_surface_clone_similar (cairo_surface_t *surface, * * The caller owns the return value and should call * cairo_surface_destroy when finished with it. This function will not - * return NULL, but will return a nil surface instead. + * return %NULL, but will return a nil surface instead. * * Return value: The snapshot surface. Note that the return surface * may not necessarily be of the same type as @surface. @@ -1158,9 +1159,9 @@ _cairo_surface_snapshot (cairo_surface_t *surface) * * The definition of "similar" depends on the backend. In * general, it means that the surface is equivalent to one - * that would have been generated by a call to cairo_surface_create_similar. + * that would have been generated by a call to cairo_surface_create_similar(). * - * Return value: TRUE if the surfaces are similar. + * Return value: %TRUE if the surfaces are similar. **/ cairo_bool_t _cairo_surface_is_similar (cairo_surface_t *surface_a, @@ -1649,7 +1650,7 @@ _cairo_surface_composite_trapezoids (cairo_operator_t op, /** * cairo_surface_copy_page: - * @suface: a #cairo_surface_t + * @surface: a #cairo_surface_t * * Emits the current page for backends that support multiple pages, * but doesn't clear it, so that the contents of the current page will @@ -1658,23 +1659,25 @@ _cairo_surface_composite_trapezoids (cairo_operator_t op, * * Since: 1.6 */ -cairo_status_t +void cairo_surface_copy_page (cairo_surface_t *surface) { assert (! surface->is_snapshot); if (surface->status) - return surface->status; + return; - if (surface->finished) - return _cairo_surface_set_error (surface,CAIRO_STATUS_SURFACE_FINISHED); + if (surface->finished) { + _cairo_surface_set_error (surface,CAIRO_STATUS_SURFACE_FINISHED); + return; + } /* It's fine if some backends don't implement copy_page */ if (surface->backend->copy_page == NULL) - return CAIRO_STATUS_SUCCESS; + return; - return _cairo_surface_set_error (surface, - surface->backend->copy_page (surface)); + _cairo_surface_set_error (surface, + surface->backend->copy_page (surface)); } slim_hidden_def (cairo_surface_copy_page); @@ -1687,24 +1690,25 @@ slim_hidden_def (cairo_surface_copy_page); * * Since: 1.6 **/ - -cairo_status_t +void cairo_surface_show_page (cairo_surface_t *surface) { assert (! surface->is_snapshot); if (surface->status) - return surface->status; + return; - if (surface->finished) - return _cairo_surface_set_error (surface,CAIRO_STATUS_SURFACE_FINISHED); + if (surface->finished) { + _cairo_surface_set_error (surface,CAIRO_STATUS_SURFACE_FINISHED); + return; + } /* It's fine if some backends don't implement show_page */ if (surface->backend->show_page == NULL) - return CAIRO_STATUS_SUCCESS; + return; - return _cairo_surface_set_error (surface, - surface->backend->show_page (surface)); + _cairo_surface_set_error (surface, + surface->backend->show_page (surface)); } slim_hidden_def (cairo_surface_show_page); @@ -1712,7 +1716,7 @@ slim_hidden_def (cairo_surface_show_page); * _cairo_surface_get_current_clip_serial: * @surface: the #cairo_surface_t to return the serial number for * - * Returns the serial number associated with the current + * Returns: the serial number associated with the current * clip in the surface. All gstate functions must * verify that the correct clip is set in the surface before * invoking any surface drawing function @@ -2001,10 +2005,10 @@ _cairo_surface_set_clip (cairo_surface_t *surface, cairo_clip_t *clip) * maximum size at the time of surface_create. So get_extents uses * that size. * - * NOTE: The coordinates returned are in "backend" space rather than + * 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 + * bit inconsistent with other #cairo_surface_t interfaces, but all * current callers are within the surface layer where backend space is * desired. * @@ -2026,7 +2030,7 @@ _cairo_surface_get_extents (cairo_surface_t *surface, } /* Note: the backends may modify the contents of the glyph array as long as - * they do not return CAIRO_STATUS_UNSUPPORTED. This makes it possible to + * they do not return %CAIRO_STATUS_UNSUPPORTED. This makes it possible to * avoid copying the array again and again, and edit it in-place. * Backends are in fact free to use the array as a generic buffer as they * see fit. @@ -2189,12 +2193,9 @@ _cairo_surface_composite_fixup_unbounded_internal (cairo_surface_t *dst, has_drawn_region = TRUE; has_clear_region = TRUE; - if (_cairo_region_subtract (&clear_region, &clear_region, &drawn_region) - != CAIRO_STATUS_SUCCESS) - { - status = _cairo_error (CAIRO_STATUS_NO_MEMORY); + status = _cairo_region_subtract (&clear_region, &clear_region, &drawn_region); + if (status) goto CLEANUP_REGIONS; - } status = _cairo_surface_fill_region (dst, CAIRO_OPERATOR_SOURCE, CAIRO_COLOR_TRANSPARENT, @@ -2430,6 +2431,8 @@ _cairo_surface_create_in_error (cairo_status_t status) return (cairo_surface_t *) &_cairo_surface_nil_file_not_found; case CAIRO_STATUS_TEMP_FILE_ERROR: return (cairo_surface_t *) &_cairo_surface_nil_temp_file_error; + case CAIRO_STATUS_INVALID_STRIDE: + return (cairo_surface_t *) &_cairo_surface_nil_invalid_stride; default: _cairo_error_throw (CAIRO_STATUS_NO_MEMORY); return (cairo_surface_t *) &_cairo_surface_nil; diff --git a/src/cairo-svg-surface.c b/src/cairo-svg-surface.c index 2c3cb58..6cd5e08 100644 --- a/src/cairo-svg-surface.c +++ b/src/cairo-svg-surface.c @@ -159,7 +159,7 @@ static const cairo_paginated_surface_backend_t cairo_svg_surface_paginated_backe * 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 + * owns the surface and should call cairo_surface_destroy() when done * with it. * * This function always returns a valid pointer, but it will return a @@ -193,7 +193,7 @@ cairo_svg_surface_create_for_stream (cairo_write_func_t write_func, * to @filename. * * Return value: a pointer to the newly created surface. The caller - * owns the surface and should call cairo_surface_destroy when done + * owns the surface and should call cairo_surface_destroy() when done * with it. * * This function always returns a valid pointer, but it will return a @@ -224,7 +224,7 @@ _cairo_surface_is_svg (cairo_surface_t *surface) /* If the abstract_surface is a paginated surface, and that paginated * surface's target is a svg_surface, then set svg_surface to that - * target. Otherwise return CAIRO_STATUS_SURFACE_TYPE_MISMATCH. + * target. Otherwise return %CAIRO_STATUS_SURFACE_TYPE_MISMATCH. */ static cairo_status_t _extract_svg_surface (cairo_surface_t *surface, @@ -303,7 +303,7 @@ cairo_svg_get_versions (cairo_svg_version_t const **versions, * @version: a version id * * Get the string representation of the given @version id. This function - * will return NULL if @version isn't valid. See cairo_svg_get_versions() + * 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. @@ -1045,7 +1045,8 @@ _cairo_svg_surface_emit_meta_surface (cairo_svg_document_t *document, return status; } - status = cairo_surface_show_page (paginated_surface); + cairo_surface_show_page (paginated_surface); + status = cairo_surface_status (paginated_surface); if (status) { cairo_surface_destroy (&meta->base); cairo_surface_destroy (paginated_surface); @@ -1133,7 +1134,7 @@ _cairo_svg_surface_emit_composite_meta_pattern (cairo_output_stream_t *output, cairo_meta_surface_t *meta_surface; cairo_matrix_t p2u; cairo_status_t status; - int id; + int id = 0; p2u = pattern->base.matrix; status = cairo_matrix_invert (&p2u); diff --git a/src/cairo-svg.h b/src/cairo-svg.h index 2c4f5ab..5d18c64 100644 --- a/src/cairo-svg.h +++ b/src/cairo-svg.h @@ -39,7 +39,7 @@ CAIRO_BEGIN_DECLS /** - * cairo_svg_version_t + * 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. * diff --git a/src/cairo-traps.c b/src/cairo-traps.c index c3d4329..8b009b1 100644 --- a/src/cairo-traps.c +++ b/src/cairo-traps.c @@ -34,7 +34,7 @@ * Keith R. Packard <keithp@keithp.com> * Carl D. Worth <cworth@cworth.org> * - * 2002-07-15: Converted from XRenderCompositeDoublePoly to cairo_trap. Carl D. Worth + * 2002-07-15: Converted from XRenderCompositeDoublePoly to #cairo_trap_t. Carl D. Worth */ #include "cairoint.h" @@ -92,7 +92,7 @@ _cairo_traps_fini (cairo_traps_t *traps) * @box: a box that will be converted to a single trapezoid * to store in @traps. * - * Initializes a cairo_traps_t to contain a single rectangular + * Initializes a #cairo_traps_t to contain a single rectangular * trapezoid. **/ cairo_status_t diff --git a/src/cairo-type1-subset.c b/src/cairo-type1-subset.c index bc46954..8b96aa7 100644 --- a/src/cairo-type1-subset.c +++ b/src/cairo-type1-subset.c @@ -1028,6 +1028,9 @@ cairo_type1_font_subset_write_trailer(cairo_type1_font_subset_t *font) _cairo_output_stream_write (font->output, cleartomark_token, font->type1_end - cleartomark_token); + /* some fonts do not have a newline at the end of the last line */ + _cairo_output_stream_printf (font->output, "\n"); + return CAIRO_STATUS_SUCCESS; } diff --git a/src/cairo-types-private.h b/src/cairo-types-private.h index 8580beb..9cb9882 100644 --- a/src/cairo-types-private.h +++ b/src/cairo-types-private.h @@ -41,7 +41,7 @@ /* This is the only header file not including cairoint.h. It only contains * typedefs.*/ #include "cairo.h" -#include "cairo-fixed-private.h" +#include "cairo-fixed-type-private.h" typedef struct _cairo_array cairo_array_t; typedef struct _cairo_hash_table cairo_hash_table_t; @@ -61,7 +61,7 @@ typedef cairo_array_t cairo_user_data_array_t; * cairo_hash_entry_t: * * A #cairo_hash_entry_t contains both a key and a value for - * cairo_hash_table_t. User-derived types for cairo_hash_entry_t must + * #cairo_hash_table_t. User-derived types for #cairo_hash_entry_t must * be type-compatible with this structure (eg. they must have an * unsigned long as the first parameter. The easiest way to get this * is to use: @@ -72,21 +72,21 @@ typedef cairo_array_t cairo_user_data_array_t; * } my_entry_t; * * which then allows a pointer to my_entry_t to be passed to any of - * the cairo_hash_table functions as follows without requiring a cast: + * the #cairo_hash_table_t functions as follows without requiring a cast: * * _cairo_hash_table_insert (hash_table, &my_entry->base); * * IMPORTANT: The caller is reponsible for initializing * my_entry->base.hash with a hash code derived from the key. The * essential property of the hash code is that keys_equal must never - * return TRUE for two keys that have different hashes. The best hash + * return %TRUE for two keys that have different hashes. The best hash * code will reduce the frequency of two keys with the same code for - * which keys_equal returns FALSE. + * which keys_equal returns %FALSE. * * Which parts of the entry make up the "key" and which part make up * the value are entirely up to the caller, (as determined by the * computation going into base.hash as well as the keys_equal - * function). A few of the cairo_hash_table functions accept an entry + * function). A few of the #cairo_hash_table_t functions accept an entry * which will be used exclusively as a "key", (indicated by a * parameter name of key). In these cases, the value-related fields of * the entry need not be initialized if so desired. @@ -198,7 +198,7 @@ typedef struct _cairo_point_int16 { } cairo_point_int16_t; typedef struct _cairo_point_int32 { - int16_t x, y; + int32_t x, y; } cairo_point_int32_t; typedef struct _cairo_box_int16 { diff --git a/src/cairo-unicode.c b/src/cairo-unicode.c index 18b9143..5f91de3 100644 --- a/src/cairo-unicode.c +++ b/src/cairo-unicode.c @@ -30,8 +30,7 @@ * 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 cairo_unicode.c as distributed with the - * cairo graphics library. + * The Original Code is the cairo graphics library. * * The Initial Developer of the Original Code is Tom Tromey. * and Red Hat, Inc. diff --git a/src/cairo-wideint-private.h b/src/cairo-wideint-private.h index 69fa156..412fc00 100644 --- a/src/cairo-wideint-private.h +++ b/src/cairo-wideint-private.h @@ -37,42 +37,7 @@ #ifndef CAIRO_WIDEINT_H #define CAIRO_WIDEINT_H -#if HAVE_STDINT_H -# include <stdint.h> -#elif HAVE_INTTYPES_H -# include <inttypes.h> -#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; - typedef unsigned __int16 uint16_t; - typedef __int32 int32_t; - typedef unsigned __int32 uint32_t; - typedef __int64 int64_t; - typedef unsigned __int64 uint64_t; -# ifndef HAVE_UINT64_T -# define HAVE_UINT64_T 1 -# endif -# ifndef INT16_MIN -# define INT16_MIN (-32767-1) -# endif -# ifndef INT16_MAX -# define INT16_MAX (32767) -# endif -# ifndef UINT16_MAX -# define UINT16_MAX (65535) -# endif -# ifndef INT32_MIN -# define INT32_MIN (-2147483647-1) -# endif -# ifndef INT32_MAX -# define INT32_MAX (2147483647) -# endif -#else -#error Cannot find definitions for fixed-width integral types (uint8_t, uint32_t, etc.) -#endif +#include "cairo-wideint-type-private.h" #include "cairo-compiler-private.h" @@ -86,10 +51,6 @@ #if !HAVE_UINT64_T -typedef struct _cairo_uint64 { - uint32_t lo, hi; -} cairo_uint64_t, cairo_int64_t; - cairo_uint64_t I _cairo_uint32_to_uint64 (uint32_t i); #define _cairo_uint64_to_uint32(a) ((a).lo) cairo_uint64_t I _cairo_uint64_add (cairo_uint64_t a, cairo_uint64_t b); @@ -125,9 +86,6 @@ int I _cairo_int64_lt (cairo_uint64_t a, cairo_uint64_t b); #else -typedef uint64_t cairo_uint64_t; -typedef int64_t cairo_int64_t; - #define _cairo_uint32_to_uint64(i) ((uint64_t) (i)) #define _cairo_uint64_to_uint32(i) ((uint32_t) (i)) #define _cairo_uint64_add(a,b) ((a) + (b)) @@ -181,16 +139,6 @@ typedef int64_t cairo_int64_t; * a function which returns both for the 'native' type as well */ -typedef struct _cairo_uquorem64 { - cairo_uint64_t quo; - cairo_uint64_t rem; -} cairo_uquorem64_t; - -typedef struct _cairo_quorem64 { - cairo_int64_t quo; - cairo_int64_t rem; -} cairo_quorem64_t; - cairo_uquorem64_t I _cairo_uint64_divrem (cairo_uint64_t num, cairo_uint64_t den); @@ -205,10 +153,6 @@ _cairo_int64_divrem (cairo_int64_t num, cairo_int64_t den); #if !HAVE_UINT128_T -typedef struct cairo_uint128 { - cairo_uint64_t lo, hi; -} cairo_uint128_t, cairo_int128_t; - cairo_uint128_t I _cairo_uint32_to_uint128 (uint32_t i); cairo_uint128_t I _cairo_uint64_to_uint128 (cairo_uint64_t i); #define _cairo_uint128_to_uint64(a) ((a).lo) @@ -248,9 +192,6 @@ int I _cairo_int128_lt (cairo_int128_t a, cairo_int128_t b); #else /* !HAVE_UINT128_T */ -typedef uint128_t cairo_uint128_t; -typedef int128_t cairo_int128_t; - #define _cairo_uint32_to_uint128(i) ((uint128_t) (i)) #define _cairo_uint64_to_uint128(i) ((uint128_t) (i)) #define _cairo_uint128_to_uint64(i) ((uint64_t) (i)) @@ -290,16 +231,6 @@ typedef int128_t cairo_int128_t; #endif /* HAVE_UINT128_T */ -typedef struct _cairo_uquorem128 { - cairo_uint128_t quo; - cairo_uint128_t rem; -} cairo_uquorem128_t; - -typedef struct _cairo_quorem128 { - cairo_int128_t quo; - cairo_int128_t rem; -} cairo_quorem128_t; - cairo_uquorem128_t I _cairo_uint128_divrem (cairo_uint128_t num, cairo_uint128_t den); diff --git a/src/cairo-wideint-type-private.h b/src/cairo-wideint-type-private.h new file mode 100644 index 0000000..23e50df --- /dev/null +++ b/src/cairo-wideint-type-private.h @@ -0,0 +1,130 @@ +/* cairo - a vector graphics library with display and print output + * + * Copyright © 2004 Keith Packard + * + * 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 Keith Packard + * + * Contributor(s): + * Keith R. Packard <keithp@keithp.com> + * + */ + +#ifndef CAIRO_WIDEINT_TYPE_H +#define CAIRO_WIDEINT_TYPE_H + +#if HAVE_CONFIG_H +#include "config.h" +#endif + +#if HAVE_STDINT_H +# include <stdint.h> +#elif HAVE_INTTYPES_H +# include <inttypes.h> +#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; + typedef unsigned __int16 uint16_t; + typedef __int32 int32_t; + typedef unsigned __int32 uint32_t; + typedef __int64 int64_t; + typedef unsigned __int64 uint64_t; +# ifndef HAVE_UINT64_T +# define HAVE_UINT64_T 1 +# endif +# ifndef INT16_MIN +# define INT16_MIN (-32767-1) +# endif +# ifndef INT16_MAX +# define INT16_MAX (32767) +# endif +# ifndef UINT16_MAX +# define UINT16_MAX (65535) +# endif +# ifndef INT32_MIN +# define INT32_MIN (-2147483647-1) +# endif +# ifndef INT32_MAX +# define INT32_MAX (2147483647) +# endif +#else +#error Cannot find definitions for fixed-width integral types (uint8_t, uint32_t, etc.) +#endif + + +#if !HAVE_UINT64_T + +typedef struct _cairo_uint64 { + uint32_t lo, hi; +} cairo_uint64_t, cairo_int64_t; + +#else + +typedef uint64_t cairo_uint64_t; +typedef int64_t cairo_int64_t; + +#endif + +typedef struct _cairo_uquorem64 { + cairo_uint64_t quo; + cairo_uint64_t rem; +} cairo_uquorem64_t; + +typedef struct _cairo_quorem64 { + cairo_int64_t quo; + cairo_int64_t rem; +} cairo_quorem64_t; + + +#if !HAVE_UINT128_T + +typedef struct cairo_uint128 { + cairo_uint64_t lo, hi; +} cairo_uint128_t, cairo_int128_t; + +#else + +typedef uint128_t cairo_uint128_t; +typedef int128_t cairo_int128_t; + +#endif + +typedef struct _cairo_uquorem128 { + cairo_uint128_t quo; + cairo_uint128_t rem; +} cairo_uquorem128_t; + +typedef struct _cairo_quorem128 { + cairo_int128_t quo; + cairo_int128_t rem; +} cairo_quorem128_t; + + +#endif /* CAIRO_WIDEINT_H */ diff --git a/src/cairo-win32-font.c b/src/cairo-win32-font.c index 19c494d..34c2736 100644 --- a/src/cairo-win32-font.c +++ b/src/cairo-win32-font.c @@ -130,7 +130,7 @@ _cairo_win32_scaled_font_init_glyph_path (cairo_win32_scaled_font_t *scaled_font #define NEARLY_ZERO(d) (fabs(d) < (1. / 65536.)) -static void +static cairo_status_t _compute_transform (cairo_win32_scaled_font_t *scaled_font, cairo_matrix_t *sc) { @@ -175,9 +175,11 @@ _compute_transform (cairo_win32_scaled_font_t *scaled_font, sc->xx, sc->yx, sc->xy, sc->yy, 0, 0); if (!scaled_font->preserve_axes) { - _cairo_matrix_compute_scale_factors (&scaled_font->logical_to_device, - &scaled_font->x_scale, &scaled_font->y_scale, - TRUE); /* XXX: Handle vertical text */ + status = _cairo_matrix_compute_scale_factors (&scaled_font->logical_to_device, + &scaled_font->x_scale, &scaled_font->y_scale, + TRUE); /* XXX: Handle vertical text */ + if (status) + return status; scaled_font->logical_size = _cairo_lround (WIN32_FONT_LOGICAL_SCALE * scaled_font->y_scale); @@ -192,6 +194,8 @@ _compute_transform (cairo_win32_scaled_font_t *scaled_font, status = cairo_matrix_invert (&scaled_font->device_to_logical); if (status) cairo_matrix_init_identity (&scaled_font->device_to_logical); + + return CAIRO_STATUS_SUCCESS; } static cairo_bool_t @@ -240,7 +244,7 @@ _get_system_quality (void) } } -/* If face_hfont is non-NULL then font_matrix must be a simple scale by some +/* If face_hfont is non-%NULL then font_matrix must be a simple scale by some * factor S, ctm must be the identity, logfont->lfHeight must be -S, * logfont->lfWidth, logfont->lfEscapement, logfont->lfOrientation must * all be 0, and face_hfont is the result of calling CreateFontIndirectW on @@ -273,7 +277,7 @@ _win32_scaled_font_create (LOGFONTW *logfont, * XXX: The other option we could pay attention to, but don't * here is the hint_metrics options. */ - if (options->antialias == CAIRO_ANTIALIAS_DEFAULT) + if (options == NULL || options->antialias == CAIRO_ANTIALIAS_DEFAULT) f->quality = _get_system_quality (); else { switch (options->antialias) { @@ -300,7 +304,7 @@ _win32_scaled_font_create (LOGFONTW *logfont, if (f->quality == logfont->lfQuality || (logfont->lfQuality == DEFAULT_QUALITY && - options->antialias == CAIRO_ANTIALIAS_DEFAULT)) { + (options == NULL || options->antialias == CAIRO_ANTIALIAS_DEFAULT))) { /* If face_hfont is non-NULL, then we can use it to avoid creating our * own --- because the constraints on face_hfont mentioned above * guarantee it was created in exactly the same way that @@ -312,7 +316,9 @@ _win32_scaled_font_create (LOGFONTW *logfont, f->delete_scaled_hfont = !f->scaled_hfont; cairo_matrix_multiply (&scale, font_matrix, ctm); - _compute_transform (f, &scale); + status = _compute_transform (f, &scale); + if (status) + goto FAIL; status = _cairo_scaled_font_init (&f->base, font_face, font_matrix, ctm, options, @@ -872,9 +878,7 @@ _cairo_win32_scaled_font_set_metrics (cairo_win32_scaled_font_t *scaled_font) } } - _cairo_scaled_font_set_metrics (&scaled_font->base, &extents); - - return CAIRO_STATUS_SUCCESS; + return _cairo_scaled_font_set_metrics (&scaled_font->base, &extents); } static cairo_status_t @@ -1763,11 +1767,11 @@ const cairo_scaled_font_backend_t cairo_win32_scaled_font_backend = { _cairo_win32_scaled_font_map_glyphs_to_unicode, }; -/* cairo_win32_font_face_t */ +/* #cairo_win32_font_face_t */ typedef struct _cairo_win32_font_face cairo_win32_font_face_t; -/* If hfont is non-NULL then logfont->lfHeight must be -S for some S, +/* If hfont is non-%NULL then logfont->lfHeight must be -S for some S, * logfont->lfWidth, logfont->lfEscapement, logfont->lfOrientation must * all be 0, and hfont is the result of calling CreateFontIndirectW on * logfont. diff --git a/src/cairo-win32-printing-surface.c b/src/cairo-win32-printing-surface.c index d589f23..f7b9681 100644 --- a/src/cairo-win32-printing-surface.c +++ b/src/cairo-win32-printing-surface.c @@ -70,6 +70,10 @@ # define FEATURESETTING_PSLEVEL 0x0002 #endif +#if !defined(GRADIENT_FILL_RECT_H) +# define GRADIENT_FILL_RECT_H 0x00 +#endif + #define PELS_72DPI ((LONG)(72. / 0.0254)) static const cairo_surface_backend_t cairo_win32_printing_surface_backend; @@ -456,11 +460,14 @@ _cairo_win32_printing_surface_paint_meta_pattern (cairo_win32_surface_t *surfa EndPath (surface->dc); SelectClipPath (surface->dc, RGN_AND); + SaveDC (surface->dc); /* Allow clip path to be reset during replay */ status = _cairo_meta_surface_replay (meta_surface, &surface->base); + + /* Restore both the clip save and our earlier path SaveDC */ + RestoreDC (surface->dc, -2); + if (status) return status; - - RestoreDC (surface->dc, -1); } } @@ -966,9 +973,8 @@ _cairo_win32_printing_surface_show_page (void *abstract_surface) { cairo_win32_surface_t *surface = abstract_surface; - if (surface->clip_saved_dc != 0) - RestoreDC (surface->dc, surface->clip_saved_dc); - RestoreDC (surface->dc, -1); + /* Undo both SaveDC's that we did in start_page */ + RestoreDC (surface->dc, -2); return CAIRO_STATUS_SUCCESS; } @@ -987,10 +993,9 @@ _cairo_win32_printing_surface_intersect_clip_path (void *abstract_surface return CAIRO_STATUS_SUCCESS; if (path == NULL) { - if (surface->clip_saved_dc != 0) { - RestoreDC (surface->dc, surface->clip_saved_dc); - surface->clip_saved_dc = 0; - } + RestoreDC (surface->dc, -1); + SaveDC (surface->dc); + return CAIRO_STATUS_SUCCESS; } @@ -1009,8 +1014,6 @@ _cairo_win32_printing_surface_intersect_clip_path (void *abstract_surface ASSERT_NOT_REACHED; } - if (surface->clip_saved_dc == 0) - surface->clip_saved_dc = SaveDC (surface->dc); SelectClipPath (surface->dc, RGN_AND); return status; @@ -1325,9 +1328,9 @@ _cairo_win32_printing_surface_show_glyphs (void *abstract_surfac color = _cairo_win32_printing_surface_flatten_transparency (surface, &solid->color); - opaque = cairo_pattern_create_rgb (GetRValue (color), - GetGValue (color), - GetBValue (color)); + opaque = cairo_pattern_create_rgb (GetRValue (color) / 255.0, + GetGValue (color) / 255.0, + GetBValue (color) / 255.0); if (opaque->status) return opaque->status; source = opaque; @@ -1413,7 +1416,8 @@ _cairo_win32_printing_surface_start_page (void *abstract_surface) cairo_win32_surface_t *surface = abstract_surface; XFORM xform; - SaveDC (surface->dc); + SaveDC (surface->dc); /* Save application context first, before doing MWT */ + SetGraphicsMode (surface->dc, GM_ADVANCED); GetWorldTransform(surface->dc, &xform); surface->ctm.xx = xform.eM11; @@ -1426,6 +1430,8 @@ _cairo_win32_printing_surface_start_page (void *abstract_surface) if (!ModifyWorldTransform (surface->dc, NULL, MWT_IDENTITY)) return _cairo_win32_print_gdi_error ("_cairo_win32_printing_surface_start_page:ModifyWorldTransform"); + SaveDC (surface->dc); /* Then save Cairo's known-good clip state, so the clip path can be reset */ + return CAIRO_STATUS_SUCCESS; } @@ -1458,21 +1464,18 @@ cairo_surface_t * cairo_win32_printing_surface_create (HDC hdc) { cairo_win32_surface_t *surface; - RECT rect; int xr, yr; - - /* Try to figure out the drawing bounds for the Device context - */ - if (GetClipBox (hdc, &rect) == ERROR) { - _cairo_win32_print_gdi_error ("cairo_win32_surface_create"); - /* XXX: Can we make a more reasonable guess at the error cause here? */ - return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); - } + RECT rect; surface = malloc (sizeof (cairo_win32_surface_t)); if (surface == NULL) return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); + if (_cairo_win32_save_initial_clip (hdc, surface) != CAIRO_STATUS_SUCCESS) { + free (surface); + return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); + } + surface->image = NULL; surface->format = CAIRO_FORMAT_RGB24; surface->content = CAIRO_CONTENT_COLOR_ALPHA; @@ -1484,28 +1487,14 @@ cairo_win32_printing_surface_create (HDC hdc) surface->brush = NULL; surface->old_brush = NULL; - surface->clip_rect.x = (int16_t) rect.left; - surface->clip_rect.y = (int16_t) rect.top; - surface->clip_rect.width = (uint16_t) (rect.right - rect.left); - surface->clip_rect.height = (uint16_t) (rect.bottom - rect.top); - - if (surface->clip_rect.width == 0 || - surface->clip_rect.height == 0) - { - surface->saved_clip = NULL; - } else { - surface->saved_clip = CreateRectRgn (0, 0, 0, 0); - if (GetClipRgn (hdc, surface->saved_clip) == 0) { - DeleteObject(surface->saved_clip); - surface->saved_clip = NULL; - } - } - - surface->extents = surface->clip_rect; + GetClipBox(hdc, &rect); + surface->extents.x = rect.left; + surface->extents.y = rect.top; + surface->extents.width = rect.right - rect.left; + surface->extents.height = rect.bottom - rect.top; surface->flags = _cairo_win32_flags_for_dc (surface->dc); surface->flags |= CAIRO_WIN32_SURFACE_FOR_PRINTING; - surface->clip_saved_dc = 0; _cairo_win32_printing_surface_init_ps_mode (surface); _cairo_surface_init (&surface->base, &cairo_win32_printing_surface_backend, @@ -1517,8 +1506,8 @@ cairo_win32_printing_surface_create (HDC hdc) return _cairo_paginated_surface_create (&surface->base, CAIRO_CONTENT_COLOR_ALPHA, - rect.right - rect.left, - rect.bottom - rect.top, + surface->extents.width, + surface->extents.height, &cairo_win32_surface_paginated_backend); } diff --git a/src/cairo-win32-private.h b/src/cairo-win32-private.h index 7857d18..704ec4e 100644 --- a/src/cairo-win32-private.h +++ b/src/cairo-win32-private.h @@ -71,12 +71,17 @@ typedef struct _cairo_win32_surface { cairo_surface_t *image; - cairo_rectangle_int_t clip_rect; - - HRGN saved_clip; - cairo_rectangle_int_t extents; + /* Initial clip bits + * We need these kept around so that we maintain + * whatever clip was set on the original DC at creation + * time when cairo is asked to reset the surface clip. + */ + cairo_rectangle_int_t clip_rect; + HRGN initial_clip_rgn; + cairo_bool_t had_simple_clip; + /* Surface DC flags */ uint32_t flags; @@ -86,7 +91,6 @@ typedef struct _cairo_win32_surface { cairo_bool_t path_empty; cairo_bool_t has_ctm; cairo_matrix_t ctm; - int clip_saved_dc; HBRUSH brush, old_brush; } cairo_win32_surface_t; @@ -128,7 +132,7 @@ _cairo_win32_surface_finish (void *abstract_surface); cairo_int_status_t _cairo_win32_surface_get_extents (void *abstract_surface, - cairo_rectangle_int16_t *rectangle); + cairo_rectangle_int_t *rectangle); uint32_t _cairo_win32_flags_for_dc (HDC dc); @@ -168,4 +172,13 @@ _cairo_matrix_to_win32_xform (const cairo_matrix_t *m, xform->eDy = (FLOAT) m->y0; } +cairo_int_status_t +_cairo_win32_save_initial_clip (HDC dc, cairo_win32_surface_t *surface); + +cairo_int_status_t +_cairo_win32_restore_initial_clip (cairo_win32_surface_t *surface); + +void +_cairo_win32_debug_dump_hrgn (HRGN rgn, char *header); + #endif /* CAIRO_WIN32_PRIVATE_H */ diff --git a/src/cairo-win32-surface.c b/src/cairo-win32-surface.c index 881532b..ca8b87c 100644 --- a/src/cairo-win32-surface.c +++ b/src/cairo-win32-surface.c @@ -205,7 +205,7 @@ _create_dc_and_bitmap (cairo_win32_surface_t *surface, * break if we do, especially if we don't set up an image * fallback. It could be a bug with using a 24bpp pixman image * (and creating one with masks). So treat them like 32bpp. - * NOTE: This causes problems when using BitBlt/AlphaBlend/etc! + * Note: This causes problems when using BitBlt/AlphaBlend/etc! * see end of file. */ case CAIRO_FORMAT_RGB24: @@ -354,7 +354,8 @@ _cairo_win32_surface_create_for_dc (HDC original_dc, surface->clip_rect.width = width; surface->clip_rect.height = height; - surface->saved_clip = NULL; + surface->initial_clip_rgn = NULL; + surface->had_simple_clip = FALSE; surface->extents = surface->clip_rect; @@ -473,26 +474,11 @@ _cairo_win32_surface_finish (void *abstract_surface) DeleteObject (surface->bitmap); DeleteDC (surface->dc); } else { - /* otherwise, restore the old clip region on the DC */ - SelectClipRgn (surface->dc, surface->saved_clip); - - if (surface->saved_clip == NULL) { - /* We never had a clip region, so just restore the clip - * to the bounds. */ - if (surface->clip_rect.width != 0 && - surface->clip_rect.height != 0) - { - IntersectClipRect (surface->dc, - surface->clip_rect.x, - surface->clip_rect.y, - surface->clip_rect.x + surface->clip_rect.width, - surface->clip_rect.y + surface->clip_rect.height); - } - } + _cairo_win32_restore_initial_clip (surface); } - if (surface->saved_clip) - DeleteObject (surface->saved_clip); + if (surface->initial_clip_rgn) + DeleteObject (surface->initial_clip_rgn); return CAIRO_STATUS_SUCCESS; } @@ -565,8 +551,8 @@ _cairo_win32_surface_acquire_source_image (void *abstract_sur } status = _cairo_win32_surface_get_subimage (abstract_surface, 0, 0, - surface->clip_rect.width, - surface->clip_rect.height, &local); + surface->extents.width, + surface->extents.height, &local); if (status) return status; @@ -605,8 +591,8 @@ _cairo_win32_surface_acquire_dest_image (void *abstract_surfa image_rect->x = 0; image_rect->y = 0; - image_rect->width = surface->clip_rect.width; - image_rect->height = surface->clip_rect.height; + image_rect->width = surface->extents.width; + image_rect->height = surface->extents.height; *image_out = (cairo_image_surface_t *)surface->image; *image_extra = NULL; @@ -1275,7 +1261,7 @@ UNSUPPORTED: /* This big function tells us how to optimize operators for the * case of solid destination and constant-alpha source * - * NOTE: This function needs revisiting if we add support for + * Note: This function needs revisiting if we add support for * super-luminescent colors (a == 0, r,g,b > 0) */ static enum { DO_CLEAR, DO_SOURCE, DO_NOTHING, DO_UNSUPPORTED } @@ -1440,13 +1426,11 @@ _cairo_win32_surface_set_clip_region (void *abstract_surface, * save the original clip when first setting a clip on surface. */ - if (region == NULL) { - /* Clear any clip set by cairo, return to the original */ - if (SelectClipRgn (surface->dc, surface->saved_clip) == ERROR) - return _cairo_win32_print_gdi_error ("_cairo_win32_surface_set_clip_region (reset)"); + /* Clear any clip set by cairo, return to the original first */ + status = _cairo_win32_restore_initial_clip (surface); - status = CAIRO_STATUS_SUCCESS; - } else { + /* Then combine any new region with it */ + if (region) { cairo_rectangle_int_t extents; cairo_box_int_t *boxes; int num_boxes; @@ -1480,6 +1464,13 @@ _cairo_win32_surface_set_clip_region (void *abstract_surface, _cairo_region_boxes_fini (region, boxes); } else { + /* XXX see notes in _cairo_win32_save_initial_clip -- + * this code will interact badly with a HDC which had an initial + * world transform -- we should probably manually transform the + * region rects, because SelectClipRgn takes device units, not + * logical units (unlike IntersectClipRect). + */ + data_size = sizeof (RGNDATAHEADER) + num_boxes * sizeof (RECT); data = malloc (data_size); if (!data) { @@ -1512,17 +1503,9 @@ _cairo_win32_surface_set_clip_region (void *abstract_surface, if (!gdi_region) return _cairo_error (CAIRO_STATUS_NO_MEMORY); - /* Combine the new region with the original clip */ - if (surface->saved_clip) { - if (CombineRgn (gdi_region, gdi_region, surface->saved_clip, RGN_AND) == ERROR) - status = _cairo_win32_print_gdi_error ("_cairo_win32_surface_set_clip_region"); - } - - /* Then select the new clip region into our surface if everything went ok */ - if (status == CAIRO_STATUS_SUCCESS) { - if (SelectClipRgn (surface->dc, gdi_region) == ERROR) - status = _cairo_win32_print_gdi_error ("_cairo_win32_surface_set_clip_region"); - } + /* AND the new region into our DC */ + if (ExtSelectClipRgn (surface->dc, gdi_region, RGN_AND) == ERROR) + status = _cairo_win32_print_gdi_error ("_cairo_win32_surface_set_clip_region"); DeleteObject (gdi_region); } @@ -1704,19 +1687,10 @@ cairo_surface_t * cairo_win32_surface_create (HDC hdc) { cairo_win32_surface_t *surface; - RECT rect; + int depth; cairo_format_t format; - int clipBoxType; - - /* Try to figure out the drawing bounds for the Device context - */ - clipBoxType = GetClipBox (hdc, &rect); - if (clipBoxType == ERROR) { - _cairo_win32_print_gdi_error ("cairo_win32_surface_create"); - /* XXX: Can we make a more reasonable guess at the error cause here? */ - return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); - } + RECT rect; if (GetDeviceCaps(hdc, TECHNOLOGY) == DT_RASDISPLAY) { depth = GetDeviceCaps(hdc, BITSPIXEL); @@ -1742,6 +1716,11 @@ cairo_win32_surface_create (HDC hdc) if (surface == NULL) return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); + if (_cairo_win32_save_initial_clip (hdc, surface) != CAIRO_STATUS_SUCCESS) { + free (surface); + return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); + } + surface->image = NULL; surface->format = format; @@ -1752,26 +1731,13 @@ cairo_win32_surface_create (HDC hdc) surface->brush = NULL; surface->old_brush = NULL; - surface->clip_rect.x = (int16_t) rect.left; - surface->clip_rect.y = (int16_t) rect.top; - surface->clip_rect.width = (uint16_t) (rect.right - rect.left); - surface->clip_rect.height = (uint16_t) (rect.bottom - rect.top); - - if (clipBoxType == COMPLEXREGION) { - surface->saved_clip = CreateRectRgn (0, 0, 0, 0); - if (GetClipRgn (hdc, surface->saved_clip) == 0) { - /* this should never happen */ - DeleteObject(surface->saved_clip); - surface->saved_clip = NULL; - } - } else { - surface->saved_clip = NULL; - } - - surface->extents = surface->clip_rect; + GetClipBox(hdc, &rect); + surface->extents.x = rect.left; + surface->extents.y = rect.top; + surface->extents.width = rect.right - rect.left; + surface->extents.height = rect.bottom - rect.top; surface->flags = _cairo_win32_flags_for_dc (surface->dc); - surface->clip_saved_dc = 0; _cairo_surface_init (&surface->base, &cairo_win32_surface_backend, _cairo_content_from_format (format)); @@ -1895,10 +1861,10 @@ _cairo_surface_is_win32 (cairo_surface_t *surface) * cairo_win32_surface_get_dc * @surface: a #cairo_surface_t * - * Returns the HDC associated with this surface, or NULL if none. - * Also returns NULL if the surface is not a win32 surface. + * Returns the HDC associated with this surface, or %NULL if none. + * Also returns %NULL if the surface is not a win32 surface. * - * Return value: HDC or NULL if no HDC available. + * Return value: HDC or %NULL if no HDC available. * * Since: 1.2 **/ @@ -1922,10 +1888,10 @@ cairo_win32_surface_get_dc (cairo_surface_t *surface) * * Returns a #cairo_surface_t image surface that refers to the same bits * as the DIB of the Win32 surface. If the passed-in win32 surface - * is not a DIB surface, NULL is returned. + * is not a DIB surface, %NULL is returned. * - * Return value: a #cairo_surface_t (owned by the win32 cairo_surface_t), - * or NULL if the win32 surface is not a DIB. + * Return value: a #cairo_surface_t (owned by the win32 #cairo_surface_t), + * or %NULL if the win32 surface is not a DIB. * * Since: 1.4 */ @@ -2041,3 +2007,119 @@ DllMain (HINSTANCE hinstDLL, #endif +cairo_int_status_t +_cairo_win32_save_initial_clip (HDC hdc, cairo_win32_surface_t *surface) +{ + RECT rect; + int clipBoxType; + int gm; + XFORM saved_xform; + + /* GetClipBox/GetClipRgn and friends interact badly with a world transform + * set. GetClipBox returns values in logical (transformed) coordinates; + * it's unclear what GetClipRgn returns, because the region is empty in the + * case of a SIMPLEREGION clip, but I assume device (untransformed) coordinates. + * Similarily, IntersectClipRect works in logical units, whereas SelectClipRgn + * works in device units. + * + * So, avoid the whole mess and get rid of the world transform + * while we store our initial data and when we restore initial coordinates. + * + * XXX we may need to modify x/y by the ViewportOrg or WindowOrg + * here in GM_COMPATIBLE; unclear. + */ + gm = GetGraphicsMode (hdc); + if (gm == GM_ADVANCED) { + GetWorldTransform (hdc, &saved_xform); + ModifyWorldTransform (hdc, NULL, MWT_IDENTITY); + } + + clipBoxType = GetClipBox (hdc, &rect); + if (clipBoxType == ERROR) { + _cairo_win32_print_gdi_error ("cairo_win32_surface_create"); + SetGraphicsMode (hdc, gm); + /* XXX: Can we make a more reasonable guess at the error cause here? */ + return _cairo_error (CAIRO_STATUS_NO_MEMORY); + } + + surface->clip_rect.x = rect.left; + surface->clip_rect.y = rect.top; + surface->clip_rect.width = rect.right - rect.left; + surface->clip_rect.height = rect.bottom - rect.top; + + surface->initial_clip_rgn = NULL; + surface->had_simple_clip = FALSE; + + if (clipBoxType == COMPLEXREGION) { + surface->initial_clip_rgn = CreateRectRgn (0, 0, 0, 0); + if (GetClipRgn (hdc, surface->initial_clip_rgn) <= 0) { + DeleteObject(surface->initial_clip_rgn); + surface->initial_clip_rgn = NULL; + } + } else if (clipBoxType == SIMPLEREGION) { + surface->had_simple_clip = TRUE; + } + + if (gm == GM_ADVANCED) + SetWorldTransform (hdc, &saved_xform); + + return CAIRO_STATUS_SUCCESS; +} + +cairo_int_status_t +_cairo_win32_restore_initial_clip (cairo_win32_surface_t *surface) +{ + cairo_int_status_t status = CAIRO_STATUS_SUCCESS; + + XFORM saved_xform; + int gm = GetGraphicsMode (surface->dc); + if (gm == GM_ADVANCED) { + GetWorldTransform (surface->dc, &saved_xform); + ModifyWorldTransform (surface->dc, NULL, MWT_IDENTITY); + } + + /* initial_clip_rgn will either be a real region or NULL (which means reset to no clip region) */ + SelectClipRgn (surface->dc, surface->initial_clip_rgn); + + if (surface->had_simple_clip) { + /* then if we had a simple clip, intersect */ + IntersectClipRect (surface->dc, + surface->clip_rect.x, + surface->clip_rect.y, + surface->clip_rect.x + surface->clip_rect.width, + surface->clip_rect.y + surface->clip_rect.height); + } + + if (gm == GM_ADVANCED) + SetWorldTransform (surface->dc, &saved_xform); + + return status; +} + +void +_cairo_win32_debug_dump_hrgn (HRGN rgn, char *header) +{ + RGNDATA *rd; + int z; + + if (header) + fprintf (stderr, "%s\n", header); + + if (rgn == NULL) { + fprintf (stderr, " NULL\n"); + } + + z = GetRegionData(rgn, 0, NULL); + rd = (RGNDATA*) malloc(z); + z = GetRegionData(rgn, z, rd); + + fprintf (stderr, " %d rects, bounds: %d %d %d %d\n", rd->rdh.nCount, rd->rdh.rcBound.left, rd->rdh.rcBound.top, rd->rdh.rcBound.right - rd->rdh.rcBound.left, rd->rdh.rcBound.bottom - rd->rdh.rcBound.top); + + for (z = 0; z < rd->rdh.nCount; z++) { + RECT r = ((RECT*)rd->Buffer)[z]; + fprintf (stderr, " [%d]: [%d %d %d %d]\n", z, r.left, r.top, r.right - r.left, r.bottom - r.top); + } + + free(rd); + fflush (stderr); +} diff --git a/src/cairo-xcb-surface.c b/src/cairo-xcb-surface.c index 2b1f888..f7ae9d1 100644 --- a/src/cairo-xcb-surface.c +++ b/src/cairo-xcb-surface.c @@ -313,7 +313,7 @@ _get_image_surface (cairo_xcb_surface_t *surface, y2 = surface->height; if (interest_rect) { - cairo_rectangle_int16_t rect; + cairo_rectangle_int_t rect; rect.x = interest_rect->x; rect.y = interest_rect->y; @@ -1854,7 +1854,7 @@ _cairo_xcb_screen_from_visual (xcb_connection_t *c, xcb_visualtype_t *visual) * The way that colors are represented in the drawable is specified * by the provided visual. * - * NOTE: If @drawable is a window, then the function + * Note: If @drawable is a window, then the function * cairo_xcb_surface_set_size must be called whenever the size of the * window changes. * @@ -1886,7 +1886,7 @@ cairo_xcb_surface_create (xcb_connection_t *c, * @height: the current height of @bitmap * * Creates an XCB surface that draws to the given bitmap. - * This will be drawn to as a CAIRO_FORMAT_A1 object. + * This will be drawn to as a %CAIRO_FORMAT_A1 object. * * Return value: the newly created surface **/ @@ -1916,7 +1916,7 @@ cairo_xcb_surface_create_for_bitmap (xcb_connection_t *c, * The way that colors are represented in the drawable is specified * by the provided picture format. * - * NOTE: If @drawable is a Window, then the function + * Note: If @drawable is a Window, then the function * cairo_xcb_surface_set_size must be called whenever the size of the * window changes. * @@ -2405,7 +2405,7 @@ _cairo_xcb_surface_show_glyphs (void *abstract_dst, (cairo_surface_t **) &src, &attributes); } else { - cairo_rectangle_int16_t glyph_extents; + cairo_rectangle_int_t glyph_extents; status = _cairo_scaled_font_glyph_device_extents (scaled_font, glyphs, diff --git a/src/cairo-xlib-display.c b/src/cairo-xlib-display.c index 8b1fa0a..d10ed1e 100644 --- a/src/cairo-xlib-display.c +++ b/src/cairo-xlib-display.c @@ -125,9 +125,6 @@ _cairo_xlib_display_discard_screens (cairo_xlib_display_t *display) cairo_xlib_display_t * _cairo_xlib_display_reference (cairo_xlib_display_t *display) { - if (display == NULL) - return NULL; - assert (CAIRO_REFERENCE_COUNT_HAS_REFERENCE (&display->ref_count)); _cairo_reference_count_inc (&display->ref_count); @@ -138,9 +135,6 @@ _cairo_xlib_display_reference (cairo_xlib_display_t *display) void _cairo_xlib_display_destroy (cairo_xlib_display_t *display) { - if (display == NULL) - return; - assert (CAIRO_REFERENCE_COUNT_HAS_REFERENCE (&display->ref_count)); if (! _cairo_reference_count_dec_and_test (&display->ref_count)) @@ -213,6 +207,7 @@ _cairo_xlib_close_display (Display *dpy, XExtCodes *codes) } CAIRO_MUTEX_UNLOCK (_cairo_xlib_display_mutex); + assert (display != NULL); _cairo_xlib_display_destroy (display); /* Return value in accordance with requirements of diff --git a/src/cairo-xlib-screen.c b/src/cairo-xlib-screen.c index f8d5936..b759a85 100644 --- a/src/cairo-xlib-screen.c +++ b/src/cairo-xlib-screen.c @@ -244,9 +244,6 @@ _cairo_xlib_init_screen_font_options (Display *dpy, cairo_xlib_screen_info_t *in cairo_xlib_screen_info_t * _cairo_xlib_screen_info_reference (cairo_xlib_screen_info_t *info) { - if (info == NULL) - return NULL; - assert (CAIRO_REFERENCE_COUNT_HAS_REFERENCE (&info->ref_count)); _cairo_reference_count_inc (&info->ref_count); @@ -273,9 +270,6 @@ _cairo_xlib_screen_info_destroy (cairo_xlib_screen_info_t *info) cairo_xlib_screen_info_t **prev; cairo_xlib_screen_info_t *list; - if (info == NULL) - return; - assert (CAIRO_REFERENCE_COUNT_HAS_REFERENCE (&info->ref_count)); if (! _cairo_reference_count_dec_and_test (&info->ref_count)) diff --git a/src/cairo-xlib-surface.c b/src/cairo-xlib-surface.c index 93cd6f8..1111320 100644 --- a/src/cairo-xlib-surface.c +++ b/src/cairo-xlib-surface.c @@ -473,7 +473,7 @@ _get_image_surface (cairo_xlib_surface_t *surface, y2 = surface->height; if (interest_rect) { - cairo_rectangle_int16_t rect; + cairo_rectangle_int_t rect; rect.x = interest_rect->x; rect.y = interest_rect->y; @@ -2070,7 +2070,7 @@ _cairo_xlib_screen_from_visual (Display *dpy, Visual *visual) * The way that colors are represented in the drawable is specified * by the provided visual. * - * NOTE: If @drawable is a Window, then the function + * Note: If @drawable is a Window, then the function * cairo_xlib_surface_set_size must be called whenever the size of the * window changes. * @@ -2108,7 +2108,7 @@ cairo_xlib_surface_create (Display *dpy, * @height: the current height of @bitmap. * * Creates an Xlib surface that draws to the given bitmap. - * This will be drawn to as a CAIRO_FORMAT_A1 object. + * This will be drawn to as a %CAIRO_FORMAT_A1 object. * * Return value: the newly created surface **/ @@ -2140,7 +2140,7 @@ cairo_xlib_surface_create_for_bitmap (Display *dpy, * The way that colors are represented in the drawable is specified * by the provided picture format. * - * NOTE: If @drawable is a Window, then the function + * Note: If @drawable is a Window, then the function * cairo_xlib_surface_set_size must be called whenever the size of the * window changes. * @@ -2160,6 +2160,35 @@ cairo_xlib_surface_create_with_xrender_format (Display *dpy, NULL, format, width, height, 0); } slim_hidden_def (cairo_xlib_surface_create_with_xrender_format); + +/** + * cairo_xlib_surface_get_xrender_format: + * @surface: an xlib surface + * + * Gets the X Render picture format that @surface uses for rendering with the + * X Render extension. If the surface was created by + * cairo_xlib_surface_create_with_xrender_format() originally, the return + * value is the format passed to that constructor. + * + * Return value: the XRenderPictFormat* associated with @surface, + * or %NULL if the surface is not an xlib surface + * or if the X Render extension is not available. + * + * Since: 1.6 + **/ +XRenderPictFormat * +cairo_xlib_surface_get_xrender_format (cairo_surface_t *surface) +{ + cairo_xlib_surface_t *xlib_surface = (cairo_xlib_surface_t *) surface; + + /* Throw an error for a non-xlib surface */ + if (! _cairo_surface_is_xlib (surface)) { + _cairo_error_throw (CAIRO_STATUS_SURFACE_TYPE_MISMATCH); + return NULL; + } + + return xlib_surface->xrender_format; +} #endif /** @@ -2834,7 +2863,7 @@ typedef void (*cairo_xrender_composite_text_func_t) _Xconst XGlyphElt8 *elts, int nelt); -/* Build a struct of the same size of cairo_glyph_t that can be used both as +/* Build a struct of the same size of #cairo_glyph_t that can be used both as * an input glyph with double coordinates, and as "working" glyph with * integer from-current-point offsets. */ typedef struct { @@ -2851,7 +2880,7 @@ typedef struct { } p; } cairo_xlib_glyph_t; -/* compile-time assert that cairo_xlib_glyph_t is the same size as cairo_glyph_t */ +/* compile-time assert that #cairo_xlib_glyph_t is the same size as #cairo_glyph_t */ typedef int cairo_xlib_glyph_t_size_assertion [sizeof (cairo_xlib_glyph_t) == sizeof (cairo_glyph_t) ? 1 : -1]; #define GLYPH_INDEX_SKIP ((unsigned long) -1) @@ -3207,7 +3236,7 @@ _cairo_xlib_surface_show_glyphs (void *abstract_dst, if (status) goto BAIL0; } else { - cairo_rectangle_int16_t glyph_extents; + cairo_rectangle_int_t glyph_extents; status = _cairo_scaled_font_glyph_device_extents (scaled_font, glyphs, diff --git a/src/cairo-xlib-xrender.h b/src/cairo-xlib-xrender.h index 572049d..6dd584f 100644 --- a/src/cairo-xlib-xrender.h +++ b/src/cairo-xlib-xrender.h @@ -54,6 +54,9 @@ cairo_xlib_surface_create_with_xrender_format (Display *dpy, int width, int height); +cairo_public XRenderPictFormat * +cairo_xlib_surface_get_xrender_format (cairo_surface_t *surface); + CAIRO_END_DECLS #else /* CAIRO_HAS_XLIB_XRENDER_SURFACE */ diff --git a/src/cairo.c b/src/cairo.c index 676aeb1..b047d99 100644 --- a/src/cairo.c +++ b/src/cairo.c @@ -63,11 +63,11 @@ static const cairo_t _cairo_nil = { #include <assert.h> -/* This has to be updated whenever cairo_status_t is extended. That's +/* This has to be updated whenever #cairo_status_t is extended. That's * a bit of a pain, but it should be easy to always catch as long as * one adds a new test case to test a trigger of the new status value. */ -#define CAIRO_STATUS_LAST_STATUS CAIRO_STATUS_TEMP_FILE_ERROR +#define CAIRO_STATUS_LAST_STATUS CAIRO_STATUS_INVALID_STRIDE /** * _cairo_error: @@ -125,7 +125,7 @@ _cairo_set_error (cairo_t *cr, cairo_status_t status) * cairo_version: * * Returns the version of the cairo library encoded in a single - * integer as per CAIRO_VERSION_ENCODE. The encoding ensures that + * integer as per %CAIRO_VERSION_ENCODE. The encoding ensures that * later versions compare greater than earlier versions. * * A run-time comparison to check that cairo's version is greater than @@ -172,7 +172,7 @@ slim_hidden_def (cairo_version_string); * default values and with @target as a target surface. The target * surface should be constructed with a backend-specific function such * as cairo_image_surface_create() (or any other - * <literal>cairo_<backend>_surface_create</literal> variant). + * cairo_<emphasis>backend</emphasis>_surface_create variant). * * This function references @target, so you can immediately * call cairo_surface_destroy() on it if you don't need to @@ -461,7 +461,7 @@ slim_hidden_def(cairo_push_group); /** * cairo_push_group_with_content: * @cr: a cairo context - * @content: a %cairo_content_t indicating the type of group that + * @content: a %#cairo_content_t indicating the type of group that * will be created * * Temporarily redirects drawing to an intermediate surface known as a @@ -605,7 +605,7 @@ slim_hidden_def(cairo_pop_group); * operations: * * <informalexample><programlisting> - * cairo_pattern_t *group = cairo_pop_group (cr); + * #cairo_pattern_t *group = cairo_pop_group (cr); * cairo_set_source (cr, group); * cairo_pattern_destroy (group); * </programlisting></informalexample> @@ -1021,7 +1021,7 @@ cairo_set_line_join (cairo_t *cr, cairo_line_join_t line_join) * * 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 + * 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 @@ -1035,8 +1035,8 @@ cairo_set_line_join (cairo_t *cr, cairo_line_join_t line_join) * @dashes. * * If any value in @dashes is negative, or if all values are 0, then - * @cairo_t will be put into an error state with a status of - * #CAIRO_STATUS_INVALID_DASH. + * @cr will be put into an error state with a status of + * #%CAIRO_STATUS_INVALID_DASH. **/ void cairo_set_dash (cairo_t *cr, @@ -1145,7 +1145,7 @@ cairo_set_miter_limit (cairo_t *cr, double limit) * Modifies the current transformation matrix (CTM) by translating the * user-space origin by (@tx, @ty). This offset is interpreted as a * user-space coordinate according to the CTM in place before the new - * call to cairo_translate. In other words, the translation of the + * call to cairo_translate(). In other words, the translation of the * user-space origin takes place after any existing transformation. **/ void @@ -1844,10 +1844,10 @@ cairo_stroke_to_path (cairo_t *cr) * 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, + * If there is no current point before the call to cairo_close_path(), * this function will have no effect. * - * Note: As of cairo version 1.2.4 any call to cairo_close_path will + * Note: As of cairo version 1.2.4 any call to cairo_close_path() will * place an explicit MOVE_TO element into the path immediately after * the CLOSE_PATH element, (which can be seen in cairo_copy_path() for * example). This can simplify path processing in some cases as it may @@ -1870,6 +1870,60 @@ cairo_close_path (cairo_t *cr) slim_hidden_def(cairo_close_path); /** + * cairo_path_extents: + * @cr: a cairo context + * @x1: left of the resulting extents + * @y1: top of the resulting extents + * @x2: right of the resulting extents + * @y2: bottom of the resulting extents + * + * Computes a bounding box in user-space coordinates covering the + * points on the current path. If the current path is empty, returns + * an empty rectangle ((0,0), (0,0)). Stroke parameters, fill rule, + * surface dimensions and clipping are not taken into account. + * + * Contrast with cairo_fill_extents() and cairo_stroke_extents() which + * return the extents of only the area that would be "inked" by + * the corresponding drawing operations. + * + * The result of cairo_path_extents() is defined as equivalent to the + * limit of cairo_stroke_extents() with %CAIRO_LINE_CAP_ROUND as the + * line width approaches 0.0, (but never reaching the empty-rectangle + * returned by cairo_stroke_extents() for a line width of 0.0). + * + * Specifically, this means that zero-area sub-paths such as + * cairo_move_to();cairo_line_to() segments, (even degenerate cases + * where the coordinates to both calls are identical), will be + * considered as contributing to the extents. However, a lone + * cairo_move_to() will not contribute to the results of + * cairo_path_extents(). + * + * Since: 1.6 + **/ +void +cairo_path_extents (cairo_t *cr, + double *x1, double *y1, double *x2, double *y2) +{ + if (cr->status) { + if (x1) + *x1 = 0.0; + if (y1) + *y1 = 0.0; + if (x2) + *x2 = 0.0; + if (y2) + *y2 = 0.0; + + return; + } + + _cairo_gstate_path_extents (cr->gstate, + cr->path, + x1, y1, x2, y2); +} +slim_hidden_def (cairo_path_extents); + +/** * cairo_paint: * @cr: a cairo context * @@ -2015,20 +2069,20 @@ cairo_mask_surface (cairo_t *cr, * 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 + * 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 + * 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 + * 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 + * 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 @@ -2045,7 +2099,7 @@ cairo_stroke (cairo_t *cr) * * A drawing operator that strokes the current path according to the * current line width, line join, line cap, and dash settings. Unlike - * cairo_stroke(), cairo_stroke_preserve preserves the path within the + * cairo_stroke(), cairo_stroke_preserve() preserves the path within the * cairo context. * * See cairo_set_line_width(), cairo_set_line_join(), @@ -2072,7 +2126,7 @@ slim_hidden_def(cairo_stroke_preserve); * * A drawing operator that fills the current path according to the * current fill rule, (each sub-path is implicitly closed before being - * filled). After cairo_fill, the current path will be cleared from + * filled). After cairo_fill(), the current path will be cleared from * the cairo context. See cairo_set_fill_rule() and * cairo_fill_preserve(). **/ @@ -2090,7 +2144,7 @@ cairo_fill (cairo_t *cr) * * A drawing operator that fills the current path according to the * current fill rule, (each sub-path is implicitly closed before being - * filled). Unlike cairo_fill(), cairo_fill_preserve preserves the + * filled). Unlike cairo_fill(), cairo_fill_preserve() preserves the * path within the cairo context. * * See cairo_set_fill_rule() and cairo_fill(). @@ -2236,10 +2290,16 @@ cairo_in_fill (cairo_t *cr, double x, double y) * @y2: bottom of the resulting extents * * Computes a bounding box in user coordinates covering the area that - * would be affected by a cairo_stroke() operation operation given the - * current path and stroke parameters. If the current path is empty, - * returns an empty rectangle (0,0, 0,0). Surface dimensions and - * clipping are not taken into account. + * would be affected, (the "inked" area), by a cairo_stroke() + * operation operation given the current path and stroke + * parameters. If the current path is empty, returns an empty + * rectangle ((0,0), (0,0)). Surface dimensions and clipping are not + * taken into account. + * + * Note that if the line width is set to exactly zero, then + * cairo_stroke_extents will return an empty rectangle. Contrast with + * cairo_path_extents() which can be used to compute the non-empty + * bounds as the line width approaches zero. * * See cairo_stroke(), cairo_set_line_width(), cairo_set_line_join(), * cairo_set_line_cap(), cairo_set_dash(), and @@ -2251,8 +2311,18 @@ cairo_stroke_extents (cairo_t *cr, { cairo_status_t status; - if (cr->status) + if (cr->status) { + if (x1) + *x1 = 0.0; + if (y1) + *y1 = 0.0; + if (x2) + *x2 = 0.0; + if (y2) + *y2 = 0.0; + return; + } status = _cairo_gstate_stroke_extents (cr->gstate, cr->path, @@ -2270,10 +2340,14 @@ cairo_stroke_extents (cairo_t *cr, * @y2: bottom of the resulting extents * * Computes a bounding box in user coordinates covering the area that - * would be affected by a cairo_fill() operation given the current path - * and fill parameters. If the current path is empty, returns an empty - * rectangle (0,0, 0,0). Surface dimensions and clipping are not taken - * into account. + * would be affected, (the "inked" area), by a cairo_fill() operation + * given the current path and fill parameters. If the current path is + * empty, returns an empty rectangle ((0,0), (0,0)). Surface + * dimensions and clipping are not taken into account. + * + * Contrast with cairo_path_extents(), which is similar, but returns + * non-zero extents for some paths no inked area, (such as a simple + * line segment). * * See cairo_fill(), cairo_set_fill_rule() and cairo_fill_preserve(). **/ @@ -2283,8 +2357,18 @@ cairo_fill_extents (cairo_t *cr, { cairo_status_t status; - if (cr->status) + if (cr->status) { + if (x1) + *x1 = 0.0; + if (y1) + *y1 = 0.0; + if (x2) + *x2 = 0.0; + if (y2) + *y2 = 0.0; + return; + } status = _cairo_gstate_fill_extents (cr->gstate, cr->path, @@ -2301,7 +2385,7 @@ cairo_fill_extents (cairo_t *cr, * region with the current path as it would be filled by cairo_fill() * and according to the current fill rule (see cairo_set_fill_rule()). * - * After cairo_clip, the current path will be cleared from the cairo + * After cairo_clip(), the current path will be cleared from the cairo * context. * * The current clip region affects all drawing operations by @@ -2331,7 +2415,7 @@ cairo_clip (cairo_t *cr) * region with the current path as it would be filled by cairo_fill() * and according to the current fill rule (see cairo_set_fill_rule()). * - * Unlike cairo_clip(), cairo_clip_preserve preserves the path within + * Unlike cairo_clip(), cairo_clip_preserve() preserves the path within * the cairo context. * * The current clip region affects all drawing operations by @@ -2408,8 +2492,18 @@ cairo_clip_extents (cairo_t *cr, { cairo_status_t status; - if (cr->status) + if (cr->status) { + if (x1) + *x1 = 0.0; + if (y1) + *y1 = 0.0; + if (x2) + *x2 = 0.0; + if (y2) + *y2 = 0.0; + return; + } status = _cairo_gstate_clip_extents (cr->gstate, x1, y1, x2, y2); if (status) @@ -2443,15 +2537,13 @@ _cairo_rectangle_list_create_in_error (cairo_status_t status) * Gets the current clip region as a list of rectangles in user coordinates. * Never returns %NULL. * - * The status in the list may be CAIRO_STATUS_CLIP_NOT_REPRESENTABLE to + * The status in the list may be %CAIRO_STATUS_CLIP_NOT_REPRESENTABLE to * indicate that the clip region cannot be represented as a list of * user-space rectangles. The status may have other values to indicate * other errors. * - * The caller must always call cairo_rectangle_list_destroy on the result of - * this function. - * - * Returns: the current clip region as a list of rectangles in user coordinates. + * Returns: the current clip region as a list of rectangles in user coordinates, + * which should be destroyed using cairo_rectangle_list_destroy(). * * Since: 1.4 **/ @@ -2509,6 +2601,12 @@ cairo_font_extents (cairo_t *cr, { cairo_status_t status; + extents->ascent = 0.0; + extents->descent = 0.0; + extents->height = 0.0; + extents->max_x_advance = 0.0; + extents->max_y_advance = 0.0; + if (cr->status) return; @@ -2556,7 +2654,7 @@ cairo_set_font_face (cairo_t *cr, * this nil object will cause its error state to propagate to other * objects it is passed to, (for example, calling * cairo_set_font_face() with a nil font will trigger an error that - * will shutdown the cairo_t object). + * will shutdown the #cairo_t object). **/ cairo_font_face_t * cairo_get_font_face (cairo_t *cr) @@ -2666,10 +2764,12 @@ cairo_set_font_options (cairo_t *cr, if (cr->status) return; - status = cairo_font_options_status ((cairo_font_options_t *) options); - if (status) { - _cairo_set_error (cr, status); - return; + if (options != NULL) { + status = cairo_font_options_status ((cairo_font_options_t *) options); + if (status) { + _cairo_set_error (cr, status); + return; + } } _cairo_gstate_set_font_options (cr->gstate, options); @@ -2760,7 +2860,7 @@ BAIL: * this nil object will cause its error state to propagate to other * objects it is passed to, (for example, calling * cairo_set_scaled_font() with a nil font will trigger an error that - * will shutdown the cairo_t object). + * will shutdown the #cairo_t object). * * Since: 1.4 **/ @@ -2812,33 +2912,29 @@ cairo_text_extents (cairo_t *cr, int num_glyphs; double x, y; + extents->x_bearing = 0.0; + extents->y_bearing = 0.0; + extents->width = 0.0; + extents->height = 0.0; + extents->x_advance = 0.0; + extents->y_advance = 0.0; + if (cr->status) return; - if (utf8 == NULL) { - extents->x_bearing = 0.0; - extents->y_bearing = 0.0; - extents->width = 0.0; - extents->height = 0.0; - extents->x_advance = 0.0; - extents->y_advance = 0.0; + if (utf8 == NULL) return; - } - cairo_get_current_point (cr, &x, &y); + (void) cairo_get_current_point (cr, &x, &y); status = _cairo_gstate_text_to_glyphs (cr->gstate, utf8, x, y, &glyphs, &num_glyphs); - if (status) { - if (glyphs) - free (glyphs); - _cairo_set_error (cr, status); - return; - } - - status = _cairo_gstate_glyph_extents (cr->gstate, glyphs, num_glyphs, extents); + if (status == CAIRO_STATUS_SUCCESS) + status = _cairo_gstate_glyph_extents (cr->gstate, + glyphs, num_glyphs, + extents); if (glyphs) free (glyphs); @@ -2872,6 +2968,13 @@ cairo_glyph_extents (cairo_t *cr, { cairo_status_t status; + extents->x_bearing = 0.0; + extents->y_bearing = 0.0; + extents->width = 0.0; + extents->height = 0.0; + extents->x_advance = 0.0; + extents->y_advance = 0.0; + if (cr->status) return; @@ -2902,7 +3005,7 @@ cairo_glyph_extents (cairo_t *cr, * by its advance values. This allows for easy display of a single * logical string with multiple calls to cairo_show_text(). * - * NOTE: The cairo_show_text() function call is part of what the cairo + * Note: The cairo_show_text() function call is part of what the cairo * designers call the "toy" text API. It is convenient for short demos * and simple programs, but it is not expected to be adequate for * serious text-using applications. See cairo_show_glyphs() for the @@ -2923,7 +3026,7 @@ cairo_show_text (cairo_t *cr, const char *utf8) if (utf8 == NULL) return; - cairo_get_current_point (cr, &x, &y); + (void) cairo_get_current_point (cr, &x, &y); status = _cairo_gstate_text_to_glyphs (cr->gstate, utf8, x, y, @@ -3001,7 +3104,7 @@ cairo_show_glyphs (cairo_t *cr, const cairo_glyph_t *glyphs, int num_glyphs) * This allows for chaining multiple calls to to cairo_text_path() * without having to set current point in between. * - * NOTE: The cairo_text_path() function call is part of what the cairo + * Note: The cairo_text_path() function call is part of what the cairo * designers call the "toy" text API. It is convenient for short demos * and simple programs, but it is not expected to be adequate for * serious text-using applications. See cairo_glyph_path() for the @@ -3022,7 +3125,7 @@ cairo_text_path (cairo_t *cr, const char *utf8) if (utf8 == NULL) return; - cairo_get_current_point (cr, &x, &y); + (void) cairo_get_current_point (cr, &x, &y); status = _cairo_gstate_text_to_glyphs (cr->gstate, utf8, x, y, @@ -3169,10 +3272,17 @@ cairo_get_antialias (cairo_t *cr) * * Some functions unset the current path and as a result, current point: * cairo_fill(), cairo_stroke(). + * + * Returns: %CAIRO_STATUS_SUCCESS if current point was successfully + * retrieved. Otherwise, if @cr has been in an error status, that status + * is returned, otherwise %CAIRO_STATUS_NO_CURRENT_POINT is returned if + * no current point exists. In all error cases, both @x and @y will be + * set to 0.0. **/ -void +cairo_status_t cairo_get_current_point (cairo_t *cr, double *x_ret, double *y_ret) { + cairo_status_t status = CAIRO_STATUS_SUCCESS; cairo_fixed_t x_fixed, y_fixed; double x, y; @@ -3185,6 +3295,11 @@ cairo_get_current_point (cairo_t *cr, double *x_ret, double *y_ret) } else { + if (cr->status) + status = cr->status; + else + status = CAIRO_STATUS_NO_CURRENT_POINT; + x = 0.0; y = 0.0; } @@ -3193,6 +3308,8 @@ cairo_get_current_point (cairo_t *cr, double *x_ret, double *y_ret) *x_ret = x; if (y_ret) *y_ret = y; + + return status; } slim_hidden_def(cairo_get_current_point); @@ -3366,7 +3483,7 @@ cairo_get_group_target (cairo_t *cr) * over the returned data structure. * * This function will always return a valid pointer, but the result - * will have no data (<literal>data==NULL</literal> and + * will have no data (<literal>data==%NULL</literal> and * <literal>num_data==0</literal>), if either of the following * conditions hold: * @@ -3412,7 +3529,7 @@ cairo_copy_path (cairo_t *cr) * series of %CAIRO_PATH_LINE_TO elements. * * This function will always return a valid pointer, but the result - * will have no data (<literal>data==NULL</literal> and + * will have no data (<literal>data==%NULL</literal> and * <literal>num_data==0</literal>), if either of the following * conditions hold: * @@ -3492,7 +3609,7 @@ cairo_append_path (cairo_t *cr, * * Checks whether an error has previously occurred for this context. * - * Returns the current status of this context, see #cairo_status_t + * Returns: the current status of this context, see #cairo_status_t **/ cairo_status_t cairo_status (cairo_t *cr) @@ -3507,7 +3624,7 @@ slim_hidden_def (cairo_status); * * Provides a human-readable description of a #cairo_status_t. * - * Returns a string representation of the status + * Returns: a string representation of the status */ const char * cairo_status_to_string (cairo_status_t status) @@ -3561,6 +3678,8 @@ cairo_status_to_string (cairo_status_t status) return "clip region not representable in desired format"; case CAIRO_STATUS_TEMP_FILE_ERROR: return "error creating or writing to a temporary file"; + case CAIRO_STATUS_INVALID_STRIDE: + return "invalid value for stride"; } return "<unknown error status>"; diff --git a/src/cairo.h b/src/cairo.h index 4c58c14..0aea4b5 100644 --- a/src/cairo.h +++ b/src/cairo.h @@ -140,9 +140,9 @@ typedef struct _cairo_matrix { * cairo_pattern_create_rgb() creates a pattern for a solid * opaque color. * - * Other than various cairo_pattern_create_<emphasis>type</emphasis> + * Other than various cairo_pattern_create_<emphasis>type</emphasis>() * functions, some of the pattern types can be implicitly created - * using vairous cairo_set_source_<emphasis>type</emphasis> functions; + * using various cairo_set_source_<emphasis>type</emphasis>() functions; * for example cairo_set_source_rgb(). * * The type of a pattern can be queried with cairo_pattern_get_type(). @@ -177,15 +177,15 @@ typedef struct _cairo_user_data_key { } cairo_user_data_key_t; /** - * cairo_status_t + * cairo_status_t: * @CAIRO_STATUS_SUCCESS: no error has occurred * @CAIRO_STATUS_NO_MEMORY: out of memory - * @CAIRO_STATUS_INVALID_RESTORE: cairo_restore without matching cairo_save + * @CAIRO_STATUS_INVALID_RESTORE: cairo_restore() called without matching cairo_save() * @CAIRO_STATUS_INVALID_POP_GROUP: no saved group to pop * @CAIRO_STATUS_NO_CURRENT_POINT: no current point defined * @CAIRO_STATUS_INVALID_MATRIX: invalid matrix (not invertible) - * @CAIRO_STATUS_INVALID_STATUS: invalid value for an input cairo_status_t - * @CAIRO_STATUS_NULL_POINTER: NULL pointer + * @CAIRO_STATUS_INVALID_STATUS: invalid value for an input #cairo_status_t + * @CAIRO_STATUS_NULL_POINTER: %NULL pointer * @CAIRO_STATUS_INVALID_STRING: input string not valid UTF-8 * @CAIRO_STATUS_INVALID_PATH_DATA: input path data not valid * @CAIRO_STATUS_READ_ERROR: error while reading from input stream @@ -193,8 +193,8 @@ typedef struct _cairo_user_data_key { * @CAIRO_STATUS_SURFACE_FINISHED: target surface has been finished * @CAIRO_STATUS_SURFACE_TYPE_MISMATCH: the surface type is not appropriate for the operation * @CAIRO_STATUS_PATTERN_TYPE_MISMATCH: the pattern type is not appropriate for the operation - * @CAIRO_STATUS_INVALID_CONTENT: invalid value for an input cairo_content_t - * @CAIRO_STATUS_INVALID_FORMAT: invalid value for an input cairo_format_t + * @CAIRO_STATUS_INVALID_CONTENT: invalid value for an input #cairo_content_t + * @CAIRO_STATUS_INVALID_FORMAT: invalid value for an input #cairo_format_t * @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 @@ -202,6 +202,7 @@ typedef struct _cairo_user_data_key { * @CAIRO_STATUS_INVALID_INDEX: invalid index passed to getter (Since 1.4) * @CAIRO_STATUS_CLIP_NOT_REPRESENTABLE: clip region not representable in desired format (Since 1.4) * @CAIRO_STATUS_TEMP_FILE_ERROR: error creating or writing to a temporary file (Since 1.6) + * @CAIRO_STATUS_INVALID_STRIDE: invalid value for stride (Since 1.6) * * #cairo_status_t is used to indicate errors that can occur when * using Cairo. In some cases it is returned directly by functions. @@ -235,12 +236,13 @@ typedef enum _cairo_status { CAIRO_STATUS_INVALID_DSC_COMMENT, CAIRO_STATUS_INVALID_INDEX, CAIRO_STATUS_CLIP_NOT_REPRESENTABLE, - CAIRO_STATUS_TEMP_FILE_ERROR + CAIRO_STATUS_TEMP_FILE_ERROR, + CAIRO_STATUS_INVALID_STRIDE /* after adding a new error: update CAIRO_STATUS_LAST_STATUS in cairo.c */ } cairo_status_t; /** - * cairo_content_t + * cairo_content_t: * @CAIRO_CONTENT_COLOR: The surface will hold color content only. * @CAIRO_CONTENT_ALPHA: The surface will hold alpha content only. * @CAIRO_CONTENT_COLOR_ALPHA: The surface will hold color and alpha content. @@ -249,8 +251,8 @@ typedef enum _cairo_status { * contain, whether color information, alpha information (translucence * vs. opacity), or both. * - * Note: The large values here are designed to keep cairo_content_t - * values distinct from cairo_format_t values so that the + * Note: The large values here are designed to keep #cairo_content_t + * values distinct from #cairo_format_t values so that the * implementation can detect the error if users confuse the two types. **/ typedef enum _cairo_content { @@ -286,7 +288,7 @@ typedef cairo_status_t (*cairo_write_func_t) (void *closure, * @length: the amount of data to read * * #cairo_read_func_t is the type of function which is called when a - * backend needs to read data from an intput stream. It is passed the + * backend needs to read data from an input stream. It is passed the * closure which was specified by the user at the time the read * function was registered, the buffer to read the data into and the * length of the data in bytes. The read function should return @@ -342,6 +344,48 @@ cairo_pop_group_to_source (cairo_t *cr); /* Modify state */ +/** + * cairo_operator_t: + * @CAIRO_OPERATOR_CLEAR: clear destination layer (bounded) + * @CAIRO_OPERATOR_SOURCE: replace destination layer (bounded) + * @CAIRO_OPERATOR_OVER: draw source layer on top of destination layer + * (bounded) + * @CAIRO_OPERATOR_IN: draw source where there was destination content + * (unbounded) + * @CAIRO_OPERATOR_OUT: draw source where there was no destination + * content (unbounded) + * @CAIRO_OPERATOR_ATOP: draw source on top of destination content and + * only there + * @CAIRO_OPERATOR_DEST: ignore the source + * @CAIRO_OPERATOR_DEST_OVER: draw destination on top of source + * @CAIRO_OPERATOR_DEST_IN: leave destination only where there was + * source content (unbounded) + * @CAIRO_OPERATOR_DEST_OUT: leave destination only where there was no + * source content + * @CAIRO_OPERATOR_DEST_ATOP: leave destination on top of source content + * and only there (unbounded) + * @CAIRO_OPERATOR_XOR: source and destination are shown where there is only + * one of them + * @CAIRO_OPERATOR_ADD: source and destination layers are accumulated + * @CAIRO_OPERATOR_SATURATE: like over, but assuming source and dest are + * disjoint geometries + * + * #cairo_operator_t is used to set the compositing operator for all cairo + * drawing operations. + * + * The operators marked as <firstterm>unbounded</firstterm> modify their + * destination even outside of the mask layer (that is, their effect is not + * bound by the mask layer). However, their effect can still be limited by + * way of clipping. + * + * To keep things simple, the operator descriptions here + * document the behavior for when both source and destination are either fully + * transparent or fully opaque. The actual implementation works for + * translucent layers too. + * For a more detailed explanation of the effects of each operator, including + * the mathematical definitions, see + * <ulink url="http://cairographics.org/operators/">http://cairographics.org/operators/</ulink>. + **/ typedef enum _cairo_operator { CAIRO_OPERATOR_CLEAR, @@ -409,7 +453,7 @@ cairo_public void cairo_set_antialias (cairo_t *cr, cairo_antialias_t antialias); /** - * cairo_fill_rule_t + * cairo_fill_rule_t: * @CAIRO_FILL_RULE_WINDING: If the path crosses the ray from * left-to-right, counts +1. If the path crosses the ray * from right to left, counts -1. (Left and right are determined @@ -443,7 +487,7 @@ cairo_public void cairo_set_line_width (cairo_t *cr, double width); /** - * cairo_line_cap_t + * cairo_line_cap_t: * @CAIRO_LINE_CAP_BUTT: start(stop) the line exactly at the start(end) point * @CAIRO_LINE_CAP_ROUND: use a round ending, the center of the circle is the end point * @CAIRO_LINE_CAP_SQUARE: use squared ending, the center of the square is the end point @@ -460,7 +504,7 @@ cairo_public void cairo_set_line_cap (cairo_t *cr, cairo_line_cap_t line_cap); /** - * cairo_line_join_t + * cairo_line_join_t: * @CAIRO_LINE_JOIN_MITER: use a sharp (angled) corner, see * cairo_set_miter_limit() * @CAIRO_LINE_JOIN_ROUND: use a rounded join, the center of the circle is the @@ -584,6 +628,11 @@ cairo_stroke_to_path (cairo_t *cr); cairo_public void cairo_close_path (cairo_t *cr); +cairo_public void +cairo_path_extents (cairo_t *cr, + double *x1, double *y1, + double *x2, double *y2); + /* Painting functions */ cairo_public void cairo_paint (cairo_t *cr); @@ -697,7 +746,7 @@ cairo_rectangle_list_destroy (cairo_rectangle_list_t *rectangle_list); * cairo_scaled_font_t: * * A #cairo_scaled_font_t is a font scaled to a particular size and device - * resolution. A cairo_scaled_font_t is most useful for low-level font + * resolution. A #cairo_scaled_font_t is most useful for low-level font * usage where a library or application wants to cache a reference * to a scaled font to speed up the computation of metrics. * @@ -1095,7 +1144,7 @@ cairo_public cairo_status_t cairo_font_face_status (cairo_font_face_t *font_face); /** - * cairo_font_type_t + * cairo_font_type_t: * @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 @@ -1110,18 +1159,18 @@ cairo_font_face_status (cairo_font_face_t *font_face); * 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 + * The various #cairo_font_face_t functions can be used with a font face * of any type. * * The type of a scaled font is determined by the type of the font - * face passed to cairo_scaled_font_create. The scaled font type can + * face passed to cairo_scaled_font_create(). The scaled font type can * be queried with cairo_scaled_font_get_type() * - * The various cairo_scaled_font functions can be used with scaled + * The various #cairo_scaled_font_t functions can be used with scaled * 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_<emphasis>type</emphasis>_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. @@ -1227,7 +1276,7 @@ cairo_get_tolerance (cairo_t *cr); cairo_public cairo_antialias_t cairo_get_antialias (cairo_t *cr); -cairo_public void +cairo_public cairo_status_t cairo_get_current_point (cairo_t *cr, double *x, double *y); cairo_public cairo_fill_rule_t @@ -1309,26 +1358,26 @@ typedef enum _cairo_path_data_type { * * <informalexample><programlisting> * int i; - * cairo_path_t *path; - * cairo_path_data_t *data; + * #cairo_path_t *path; + * #cairo_path_data_t *data; * * path = cairo_copy_path (cr); * * for (i=0; i < path->num_data; i += path->data[i].header.length) { * data = &path->data[i]; * switch (data->header.type) { - * case CAIRO_PATH_MOVE_TO: + * case %CAIRO_PATH_MOVE_TO: * do_move_to_things (data[1].point.x, data[1].point.y); * break; - * case CAIRO_PATH_LINE_TO: + * case %CAIRO_PATH_LINE_TO: * do_line_to_things (data[1].point.x, data[1].point.y); * break; - * case CAIRO_PATH_CURVE_TO: + * case %CAIRO_PATH_CURVE_TO: * do_curve_to_things (data[1].point.x, data[1].point.y, * data[2].point.x, data[2].point.y, * data[3].point.x, data[3].point.y); * break; - * case CAIRO_PATH_CLOSE_PATH: + * case %CAIRO_PATH_CLOSE_PATH: * do_close_path_things (); * break; * } @@ -1425,7 +1474,7 @@ cairo_public cairo_status_t cairo_surface_status (cairo_surface_t *surface); /** - * cairo_surface_type_t + * cairo_surface_type_t: * @CAIRO_SURFACE_TYPE_IMAGE: The surface is of type image * @CAIRO_SURFACE_TYPE_PDF: The surface is of type pdf * @CAIRO_SURFACE_TYPE_PS: The surface is of type ps @@ -1445,12 +1494,12 @@ cairo_surface_status (cairo_surface_t *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_<emphasis>type</emphasis>_surface_create, - * (though see cairo_surface_create_similar as well). + * 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() * - * The various cairo_surface functions can be used with surfaces of + * The various #cairo_surface_t functions can be used with surfaces of * 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 @@ -1540,16 +1589,16 @@ cairo_surface_set_fallback_resolution (cairo_surface_t *surface, double x_pixels_per_inch, double y_pixels_per_inch); -cairo_public cairo_status_t +cairo_public void cairo_surface_copy_page (cairo_surface_t *surface); -cairo_public cairo_status_t +cairo_public void cairo_surface_show_page (cairo_surface_t *surface); /* Image-surface functions */ /** - * cairo_format_t + * cairo_format_t: * @CAIRO_FORMAT_ARGB32: each pixel is a 32-bit quantity, with * alpha in the upper 8 bits, then red, then green, then blue. * The 32-bit quantities are stored native-endian. Pre-multiplied @@ -1591,6 +1640,10 @@ cairo_image_surface_create (cairo_format_t format, int width, int height); +cairo_public int +cairo_format_stride_for_width (cairo_format_t format, + int width); + cairo_public cairo_surface_t * cairo_image_surface_create_for_data (unsigned char *data, cairo_format_t format, @@ -1667,7 +1720,7 @@ cairo_pattern_set_user_data (cairo_pattern_t *pattern, cairo_destroy_func_t destroy); /** - * cairo_pattern_type_t + * 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). @@ -1684,7 +1737,7 @@ cairo_pattern_set_user_data (cairo_pattern_t *pattern, * * The pattern type can be queried with cairo_pattern_get_type() * - * Most cairo_pattern functions can be called with a pattern of any + * Most #cairo_pattern_t functions can be called with a pattern of any * type, (though trying to change the extend or filter for a solid * pattern will have no effect). A notable exception is * cairo_pattern_add_color_stop_rgb() and @@ -1726,7 +1779,7 @@ cairo_pattern_get_matrix (cairo_pattern_t *pattern, cairo_matrix_t *matrix); /** - * cairo_extend_t + * cairo_extend_t: * @CAIRO_EXTEND_NONE: pixels outside of the source pattern * are fully transparent * @CAIRO_EXTEND_REPEAT: the pattern is tiled by repeating @@ -1754,6 +1807,24 @@ cairo_pattern_set_extend (cairo_pattern_t *pattern, cairo_extend_t extend); cairo_public cairo_extend_t cairo_pattern_get_extend (cairo_pattern_t *pattern); +/** + * cairo_filter_t: + * @CAIRO_FILTER_FAST: A high-performance filter, with quality similar + * to %CAIRO_FILTER_NEAREST + * @CAIRO_FILTER_GOOD: A reasonable-performance filter, with quality + * similar to %CAIRO_FILTER_BILINEAR + * @CAIRO_FILTER_BEST: The highest-quality available, performance may + * not be suitable for interactive use. + * @CAIRO_FILTER_NEAREST: Nearest-neighbor filtering + * @CAIRO_FILTER_BILINEAR: Linear interpolation in two dimensions + * @CAIRO_FILTER_GAUSSIAN: This filter value is currently + * unimplemented, and should not be used in current code. + * + * #cairo_filter_t is used to indicate what filtering should be + * applied when reading pixel values from patterns. See + * cairo_pattern_set_source() for indicating the desired filter to be + * used with a particular pattern. + */ typedef enum _cairo_filter { CAIRO_FILTER_FAST, CAIRO_FILTER_GOOD, diff --git a/src/cairoint.h b/src/cairoint.h index 889862d..13f21fb 100644 --- a/src/cairoint.h +++ b/src/cairoint.h @@ -68,17 +68,6 @@ #include "cairo-compiler-private.h" -#ifdef _MSC_VER -#define snprintf _snprintf -#undef inline -#define inline __inline -#endif - -#ifdef __STRICT_ANSI__ -#undef inline -#define inline __inline__ -#endif - CAIRO_BEGIN_DECLS #ifdef _WIN32 @@ -105,6 +94,10 @@ _cairo_win32_tmpfile (void); #define M_PI 3.14159265358979323846 #endif +#ifndef M_SQRT2 +#define M_SQRT2 1.41421356237309504880 +#endif + #undef ARRAY_LENGTH #define ARRAY_LENGTH(__array) ((int) (sizeof (__array) / sizeof (__array[0]))) @@ -251,7 +244,7 @@ _cairo_hash_string (const char *c); typedef struct _cairo_unscaled_font_backend cairo_unscaled_font_backend_t; /* - * A cairo_unscaled_font_t is just an opaque handle we use in the + * A #cairo_unscaled_font_t is just an opaque handle we use in the * glyph cache. */ typedef struct _cairo_unscaled_font { @@ -298,7 +291,7 @@ struct _cairo_unscaled_font_backend { void (*destroy) (void *unscaled_font); }; -/* cairo_toy_font_face_t - simple family/slant/weight font faces used for +/* #cairo_toy_font_face_t - simple family/slant/weight font faces used for * the built-in font API */ @@ -708,7 +701,7 @@ struct _cairo_image_surface { extern const cairo_private cairo_surface_backend_t cairo_image_surface_backend; -/* XXX: Right now, the cairo_color structure puts unpremultiplied +/* XXX: Right now, the _cairo_color structure puts unpremultiplied color in the doubles and premultiplied color in the shorts. Yes, this is crazy insane, (but at least we don't export this madness). I'm still working on a cleaner API, but in the meantime, @@ -1016,6 +1009,12 @@ _cairo_gstate_backend_to_user_rectangle (cairo_gstate_t *gstate, double *x2, double *y2, cairo_bool_t *is_tight); +cairo_private void +_cairo_gstate_path_extents (cairo_gstate_t *gstate, + cairo_path_fixed_t *path, + double *x1, double *y1, + double *x2, double *y2); + cairo_private cairo_status_t _cairo_gstate_paint (cairo_gstate_t *gstate); @@ -1261,13 +1260,6 @@ _cairo_hull_compute (cairo_pen_vertex_t *vertices, int *num_vertices); 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); - -cairo_private cairo_bool_t -_cairo_operator_always_translucent (cairo_operator_t op); - /* cairo_path.c */ cairo_private void _cairo_path_fixed_init (cairo_path_fixed_t *path); @@ -1358,10 +1350,20 @@ _cairo_path_fixed_interpret (cairo_path_fixed_t *path, cairo_path_fixed_close_path_func_t *close_path, void *closure); +cairo_private cairo_status_t +_cairo_path_fixed_interpret_flat (cairo_path_fixed_t *path, + cairo_direction_t dir, + cairo_path_fixed_move_to_func_t *move_to, + cairo_path_fixed_line_to_func_t *line_to, + cairo_path_fixed_close_path_func_t *close_path, + void *closure, + double tolerance); + cairo_private void _cairo_path_fixed_bounds (cairo_path_fixed_t *path, double *x1, double *y1, - double *x2, double *y2); + double *x2, double *y2, + double tolerance); cairo_private void _cairo_path_fixed_device_transform (cairo_path_fixed_t *path, @@ -1393,7 +1395,7 @@ _cairo_scaled_font_init (cairo_scaled_font_t *scaled_font, const cairo_font_options_t *options, const cairo_scaled_font_backend_t *backend); -cairo_private void +cairo_private cairo_status_t _cairo_scaled_font_set_metrics (cairo_scaled_font_t *scaled_font, cairo_font_extents_t *fs_metrics); @@ -1416,7 +1418,7 @@ cairo_private cairo_status_t _cairo_scaled_font_glyph_device_extents (cairo_scaled_font_t *scaled_font, const cairo_glyph_t *glyphs, int num_glyphs, - cairo_rectangle_int16_t *extents); + cairo_rectangle_int_t *extents); cairo_private cairo_status_t _cairo_scaled_font_show_glyphs (cairo_scaled_font_t *scaled_font, @@ -1754,24 +1756,24 @@ _cairo_surface_has_device_transform (cairo_surface_t *surface); /* cairo_image_surface.c */ -/* XXX: In cairo 1.2.0 we added a new CAIRO_FORMAT_RGB16_565 but +/* XXX: In cairo 1.2.0 we added a new %CAIRO_FORMAT_RGB16_565 but * neglected to adjust this macro. The net effect is that it's * impossible to externally create an image surface with this * format. This is perhaps a good thing since we also neglected to fix - * up things like cairo_surface_write_to_png for the new format + * up things like cairo_surface_write_to_png() for the new format * (-Wswitch-enum will tell you where). Is it obvious that format was * added in haste? * * The reason for the new format was to allow the xlib backend to be * used on X servers with a 565 visual. So the new format did its job * for that, even without being considered "valid" for the sake of - * things like cairo_image_surface_create. + * things like cairo_image_surface_create(). * * Since 1.2.0 we ran into the same situtation with X servers with BGR - * visuals. This time we invented cairo_internal_format_t instead, + * visuals. This time we invented #cairo_internal_format_t instead, * (see it for more discussion). * - * The punchline is that CAIRO_FORMAT_VALID must not conside any + * The punchline is that %CAIRO_FORMAT_VALID must not conside any * internal format to be valid. Also we need to decide if the * RGB16_565 should be moved to instead be an internal format. If so, * this macro need not change for it. (We probably will need to leave @@ -1779,9 +1781,9 @@ _cairo_surface_has_device_transform (cairo_surface_t *surface); * might have that value in it.) * * If we do decide to start fully supporting RGB16_565 as an external - * format, then CAIRO_FORMAT_VALID needs to be adjusted to include + * format, then %CAIRO_FORMAT_VALID needs to be adjusted to include * it. But that should not happen before all necessary code is fixed - * to support it (at least cairo_surface_write_to_png and a few spots + * to support it (at least cairo_surface_write_to_png() and a few spots * in cairo-xlib-surface.c--again see -Wswitch-enum). */ #define CAIRO_FORMAT_INVALID ((unsigned int) -1) @@ -1793,8 +1795,8 @@ _cairo_surface_has_device_transform (cairo_surface_t *surface); CAIRO_CONTENT_COLOR_ALPHA))\ == 0)) -cairo_private cairo_format_t -_cairo_format_width (cairo_format_t format); +cairo_private int +_cairo_format_bits_per_pixel (cairo_format_t format); cairo_private cairo_format_t _cairo_format_from_content (cairo_content_t content); @@ -1809,7 +1811,7 @@ _cairo_image_surface_create_for_pixman_image (pixman_image_t *pixman_image, cairo_private pixman_format_code_t _pixman_format_from_masks (cairo_format_masks_t *masks); -void +cairo_private void _pixman_format_to_masks (pixman_format_code_t pixman_format, uint32_t *bpp, uint32_t *red, @@ -1965,7 +1967,7 @@ _cairo_matrix_is_invertible (const cairo_matrix_t *matrix); cairo_private void _cairo_matrix_compute_determinant (const cairo_matrix_t *matrix, double *det); -cairo_private void +cairo_private cairo_status_t _cairo_matrix_compute_scale_factors (const cairo_matrix_t *matrix, double *sx, double *sy, int x_major); @@ -2221,6 +2223,7 @@ slim_hidden_proto (cairo_matrix_translate); slim_hidden_proto (cairo_move_to); slim_hidden_proto (cairo_new_path); slim_hidden_proto (cairo_paint); +slim_hidden_proto (cairo_path_extents); slim_hidden_proto (cairo_pattern_create_for_surface); slim_hidden_proto (cairo_pattern_create_rgb); slim_hidden_proto (cairo_pattern_create_rgba); @@ -2278,6 +2281,7 @@ slim_hidden_proto (cairo_surface_write_to_png_stream); CAIRO_END_DECLS #include "cairo-mutex-private.h" +#include "cairo-fixed-private.h" #include "cairo-wideint-private.h" #include "cairo-malloc-private.h" #include "cairo-hash-private.h" diff --git a/src/check-def.sh b/src/check-def.sh index a7aa131..3a45b32 100755 --- a/src/check-def.sh +++ b/src/check-def.sh @@ -11,7 +11,7 @@ test -z "$srcdir" && srcdir=. test -z "$MAKE" && MAKE=make status=0 -$MAKE check-has-hidden-symbols.i || exit 1 +$MAKE check-has-hidden-symbols.i > /dev/null || exit 1 if tail -1 check-has-hidden-symbols.i | grep CAIRO_HAS_HIDDEN_SYMBOLS >/dev/null; then echo "Compiler doesn't support symbol visibility; skipping test" exit 0 @@ -23,7 +23,7 @@ if [ "`uname -s`" = "Linux" ]; then fi defs="cairo.def" -$MAKE $defs +$MAKE $defs > /dev/null for def in $defs; do lib=`echo "$def" | sed 's/[.]def$//'` lib=`echo "$lib" | sed 's@.*/@@'` diff --git a/src/check-doc-syntax.sh b/src/check-doc-syntax.sh new file mode 100755 index 0000000..16d5372 --- /dev/null +++ b/src/check-doc-syntax.sh @@ -0,0 +1,64 @@ +#!/bin/sh + +LANG=C + +if ! grep --version 2>/dev/null | grep GNU >/dev/null; then + echo "GNU grep not found; skipping test" + exit 0 +fi + +test -z "$srcdir" && srcdir=. +status=0 + +echo Checking documentation for incorrect syntax + +# Note: this test is also run from doc/public/ to check the SGML files + +if test "x$SGML_DOCS" = x; then + FILES=`find "$srcdir" -name '*.h' -or -name '*.c' -or -name '*.cpp'` +fi + +enum_regexp='\([^%@]\|^\)\<\(FALSE\|TRUE\|NULL\|CAIRO_[0-9A-Z_]*[^(0-9A-Z_]\)' +if test "x$SGML_DOCS" = x; then + enum_regexp='^[/ ][*] .*'$enum_regexp +fi +if grep "$enum_regexp" $FILES | grep -v '#####'; then + status=1 + echo Error: some macros in the docs are not prefixed by percent sign. + echo Fix this by searching for the following regexp in the above files: + echo " '$enum_regexp'" +fi + +type_regexp='\( .*[^#]\| \|^\)\<cairo[0-9a-z_]*_t\>\($\|[^:]$\|[^:].\)' +if test "x$SGML_DOCS" = x; then + type_regexp='^[/ ][*]'$type_regexp +else + type_regexp='\(.'$type_regexp'\)\|\('$type_regexp'.\)' +fi +if grep "$type_regexp" $FILES | grep -v '#####'; then + status=1 + echo Error: some type names in the docs are not prefixed by hash sign, + echo neither are the only token in the doc line followed by colon. + echo Fix this by searching for the following regexp in the above files: + echo " '$type_regexp'" +fi + +func_regexp='\([^#]\|^\)\<\(cairo_[][<>/0-9a-z_]*\> \?[^][ <>(]\)' +if test "x$SGML_DOCS" = x; then + func_regexp='^[/ ][*] .*'$func_regexp +fi +if grep "$func_regexp" $FILES | grep -v '#####'; then + status=1 + echo Error: some function names in the docs are not followed by parentheses. + echo Fix this by searching for the following regexp in the above files: + echo " '$func_regexp'" +fi + +note_regexp='NOTE' +if grep "$note_regexp" $FILES; then + status=1 + echo Error: some source files contain the string 'NOTE'. + echo Be civil and replace it by 'Note' please. +fi + +exit $status diff --git a/src/check-headers.sh b/src/check-headers.sh index 2ac74fd..4792b2d 100755 --- a/src/check-headers.sh +++ b/src/check-headers.sh @@ -7,7 +7,7 @@ status=0 echo Checking public headers for missing cairo_public decorators -find "$srcdir" -name '*.h' ! -name '*-private.h' ! -name '*-test.h' ! -name 'cairoint.h' | +find "$srcdir" -name '*.h' ! -name '*-private.h' ! -name '*-test.h' ! -name 'cairoint.h' ! -name 'cairo-no-features.h' | xargs grep -B 1 '^cairo_.*[ ]\+(' | awk ' /^--$/ { context=""; public=0; next; } diff --git a/src/check-plt.sh b/src/check-plt.sh index 82ea6de..c69813b 100755 --- a/src/check-plt.sh +++ b/src/check-plt.sh @@ -11,7 +11,7 @@ test -z "$srcdir" && srcdir=. test -z "$MAKE" && MAKE=make status=0 -$MAKE check-has-hidden-symbols.i || exit 1 +$MAKE check-has-hidden-symbols.i > /dev/null || exit 1 if tail -1 check-has-hidden-symbols.i | grep CAIRO_HAS_HIDDEN_SYMBOLS >/dev/null; then echo "Compiler doesn't support symbol visibility; skipping test" exit 0 diff --git a/src/test-fallback-surface.c b/src/test-fallback-surface.c index 0bac87e..e720e88 100644 --- a/src/test-fallback-surface.c +++ b/src/test-fallback-surface.c @@ -37,8 +37,8 @@ * test suite to test a mythical backend that uses nothing but * fallbacks. * - * The defining feature of this backend is that it has as many NULL - * backend function entries as possible. The ones that aren't NULL are + * The defining feature of this backend is that it has as many %NULL + * backend function entries as possible. The ones that aren't %NULL are * simply those that must be implemented to have working fallbacks. * (Except for create_similar---fallbacks would work fine without * that---I implemented it here in order to create as many surfaces as diff --git a/test/Makefile.am b/test/Makefile.am index 805ac16..220ec73 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -2,6 +2,8 @@ SUBDIRS=pdiff . # Here are all the tests that are run unconditionally TESTS = \ +a1-image-sample$(EXEEXT) \ +a1-traps-sample$(EXEEXT) \ a8-mask$(EXEEXT) \ big-trap$(EXEEXT) \ caps-joins$(EXEEXT) \ @@ -25,6 +27,7 @@ create-for-stream$(EXEEXT) \ create-from-png$(EXEEXT) \ create-from-png-stream$(EXEEXT) \ dash-caps-joins$(EXEEXT) \ +dash-curve$(EXEEXT) \ dash-no-dash$(EXEEXT) \ dash-offset-negative$(EXEEXT) \ dash-scale$(EXEEXT) \ @@ -35,6 +38,10 @@ degenerate-pen$(EXEEXT) \ device-offset$(EXEEXT) \ device-offset-positive$(EXEEXT) \ extend-pad$(EXEEXT) \ +extend-reflect$(EXEEXT) \ +extend-reflect-similar$(EXEEXT) \ +extend-repeat$(EXEEXT) \ +extend-repeat-similar$(EXEEXT) \ fill-and-stroke$(EXEEXT) \ fill-and-stroke-alpha$(EXEEXT) \ fill-and-stroke-alpha-add$(EXEEXT) \ @@ -44,15 +51,18 @@ fill-rule$(EXEEXT) \ filter-nearest-offset$(EXEEXT) \ font-face-get-type$(EXEEXT) \ font-matrix-translation$(EXEEXT) \ +font-options$(EXEEXT) \ glyph-cache-pressure$(EXEEXT) \ get-and-set$(EXEEXT) \ get-clip$(EXEEXT) \ get-group-target$(EXEEXT) \ get-path-extents$(EXEEXT) \ +get-xrender-format$(EXEEXT) \ gradient-alpha$(EXEEXT) \ gradient-zero-stops$(EXEEXT) \ infinite-join$(EXEEXT) \ in-fill-empty-trapezoid$(EXEEXT) \ +in-fill-trapezoid$(EXEEXT) \ invalid-matrix$(EXEEXT) \ leaky-dash$(EXEEXT) \ leaky-polygon$(EXEEXT) \ @@ -88,6 +98,7 @@ push-group$(EXEEXT) \ radial-gradient$(EXEEXT) \ random-intersections$(EXEEXT) \ rectangle-rounding-error$(EXEEXT) \ +rectilinear-miter-limit$(EXEEXT) \ rectilinear-stroke$(EXEEXT) \ rel-path$(EXEEXT) \ rgb24-ignore-alpha$(EXEEXT) \ @@ -167,7 +178,6 @@ zero-alpha$(EXEEXT) # that's just a bug in the test rig that should just consider # the abort an XFAIL like any other. DISABLED_TESTS = \ -extend-reflect$(EXEEXT) \ show-glyphs-many$(EXEEXT) \ text-glyph-range$(EXEEXT) @@ -202,6 +212,10 @@ if CAIRO_HAS_XLIB_SURFACE TESTS += xlib-surface$(EXEEXT) endif +if CAIRO_HAS_XLIB_XRENDER_SURFACE +TESTS += get-xrender-format$(EXEEXT) +endif + if CAIRO_HAS_MULTI_PAGE_SURFACES TESTS += multi-page$(EXEEXT) endif @@ -216,6 +230,8 @@ endif # All tests which have a reference image go here. REFERENCE_IMAGES = \ + a1-image-sample-ref.png \ + a1-traps-sample-ref.png \ a8-mask-ref.png \ bitmap-font-pdf-argb32-ref.png \ bitmap-font-ref.png \ @@ -265,6 +281,7 @@ REFERENCE_IMAGES = \ dash-caps-joins-ps-rgb24-ref.png \ dash-caps-joins-quartz-ref.png \ dash-caps-joins-ref.png \ + dash-curve-ref.png \ dash-no-dash-ref.png \ dash-offset-negative-ref.png \ dash-scale-ps-argb32-ref.png \ @@ -288,6 +305,9 @@ REFERENCE_IMAGES = \ device-offset-rgb24-ref.png \ extend-pad-ref.png \ extend-reflect-ref.png \ + extend-reflect-similar-ref.png \ + extend-repeat-ref.png \ + extend-repeat-similar-ref.png \ fill-and-stroke-alpha-add-quartz-ref.png \ fill-and-stroke-alpha-add-ref.png \ fill-and-stroke-alpha-quartz-ref.png \ @@ -311,6 +331,7 @@ REFERENCE_IMAGES = \ fill-rule-quartz-rgb24-ref.png \ fill-rule-ref.png \ fill-rule-rgb24-ref.png \ + fill-rule-ps-rgb24-ref.png \ filter-nearest-offset-ref.png \ font-matrix-translation-ps-argb32-ref.png \ font-matrix-translation-ps-rgb24-ref.png \ @@ -361,6 +382,8 @@ REFERENCE_IMAGES = \ mask-svg-argb32-ref.png \ meta-surface-pattern-ref.png \ meta-surface-pattern-rgb24-ref.png \ + meta-surface-pattern-pdf-ref.png \ + meta-surface-pattern-pdf-rgb24-ref.png \ miter-precision-ref.png \ move-to-show-surface-ref.png \ new-sub-path-ps-argb32-ref.png \ @@ -413,6 +436,7 @@ REFERENCE_IMAGES = \ random-intersections-ref.png \ rgb24-ignore-alpha-ref.png \ rectangle-rounding-error-ref.png \ + rectilinear-miter-limit-ref.png \ rectilinear-stroke-ref.png \ rel-path-quartz-ref.png \ rel-path-quartz-rgb24-ref.png \ @@ -504,11 +528,7 @@ $(REFERENCE_IMAGES) # Of course, before any "release" of cairo we should eliminate # everything from this list by fixing the bugs. (We don't necessarily # have to be that strict for "snapshots" though.) -# -# Also, any test listed here should call cairo_test_expect_failure and -# provide an explanation for the expected failure. XFAIL_TESTS = \ -a8-mask$(EXEEXT) \ big-trap$(EXEEXT) \ extend-pad$(EXEEXT) \ filter-nearest-offset$(EXEEXT) \ @@ -521,19 +541,20 @@ surface-pattern-scale-up$(EXEEXT) # Any test that doesn't generate a log file goes here NOLOG_TESTS = \ -user-data \ -svg-surface \ -svg-clip \ +fallback-resolution \ +font-options \ +multi-page \ pdf-features \ ps-features \ -multi-page \ -fallback-resolution +svg-clip \ +svg-surface \ +user-data # A hook that summarises the failures check: AM_MAKEFLAGS+=-k check-local: @FAILED_TESTS=""; \ - for t in *.log; do \ + for t in $(TESTS:$(EXEEXT)=.log); do \ if grep -e '\<FAIL\>' $$t >/dev/null 2>&1; then \ FAILED_TESTS="$$FAILED_TESTS $${t%.log}"; \ fi; \ @@ -694,13 +715,40 @@ index.html: $(srcdir)/make-html.pl $(TESTS:$(EXEEXT)=.log) # Identify identical reference images check-ref-dups: - @sha1sum *-ref.png > ref.hash - @join ref.hash ref.hash | grep -v -E '( .*-ref.png).*\1' | cut -d' ' -f 1-2 | sort -u + @LANG=C; \ + ( cd "$(scrdir)" && sha1sum *-ref.png | sort ) > ref.hash; \ + join ref.hash ref.hash | grep -v -E '( .*-ref.png).*\1' | cut -d' ' -f 1-2 | sort -u # Not exactly the best script in the world... check-ref-missing: - @for i in *-ref.png; do\ - echo ${REFERENCE_IMAGES} | grep -sq $$i || echo $$i; \ - done - -.PHONY: check-valgrind test recheck retest html rehtml check-ref-dups check-ref-missing + @cd "$(srcdir)"; \ + REFS=`git ls-files "*-ref.png"`; \ + test x = "x$$REFS" && REFS=`ls *-ref.png`; \ + ret=true; \ + missing=""; \ + for i in $$REFS; do \ + echo "" $(REFERENCE_IMAGES) "" | grep -sq " $$i " || missing="$$missing $$i" ; \ + done ; \ + if test -n "$$missing"; then \ + echo "*** Error: Sanity check failed"; \ + echo "Some reference files are not included in the distribution."; \ + echo "You probably need to add these to Makefile.am's REFERENCE_IMAGES."; \ + echo "Missing: $$missing"; \ + ret=false; \ + fi >&2; \ + missing=""; \ + for i in $(REFERENCE_IMAGES); do \ + echo "" $$REFS "" | grep -sq " $$i " || missing="$$missing $$i" ; \ + done ; \ + if test -n "$$missing"; then \ + echo "*** Error: Sanity check failed"; \ + echo "Some reference files included in the distribution do not exist"; \ + echo "or are not in git. You probably want to add these to git first."; \ + echo "Missing: $$missing"; \ + ret=false; \ + fi >&2; \ + $$ret + +release-verify-sane-tests: check-ref-missing + +.PHONY: check-valgrind test recheck retest html rehtml check-ref-dups check-ref-missing release-verify-sane-tests diff --git a/test/Makefile.in b/test/Makefile.in index 8deb773..ba76484 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -49,14 +49,15 @@ host_triplet = @host@ @CAIRO_HAS_PDF_SURFACE_TRUE@am__append_4 = pdf-features$(EXEEXT) @CAIRO_HAS_PS_SURFACE_TRUE@am__append_5 = ps-features$(EXEEXT) @CAIRO_HAS_XLIB_SURFACE_TRUE@am__append_6 = xlib-surface$(EXEEXT) -@CAIRO_HAS_MULTI_PAGE_SURFACES_TRUE@am__append_7 = multi-page$(EXEEXT) -@CAIRO_HAS_PDF_SURFACE_TRUE@@CAIRO_HAS_PS_SURFACE_TRUE@@CAIRO_HAS_SVG_SURFACE_TRUE@am__append_8 = fallback-resolution$(EXEEXT) +@CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE@am__append_7 = get-xrender-format$(EXEEXT) +@CAIRO_HAS_MULTI_PAGE_SURFACES_TRUE@am__append_8 = multi-page$(EXEEXT) +@CAIRO_HAS_PDF_SURFACE_TRUE@@CAIRO_HAS_PS_SURFACE_TRUE@@CAIRO_HAS_SVG_SURFACE_TRUE@am__append_9 = fallback-resolution$(EXEEXT) check_PROGRAMS = imagediff$(EXEEXT) png-flatten$(EXEEXT) \ - $(am__EXEEXT_11) $(am__EXEEXT_12) -EXTRA_PROGRAMS = $(am__EXEEXT_9) $(am__EXEEXT_10) -@HAVE_PTHREAD_TRUE@am__append_9 = -lpthread -@CAIRO_CAN_TEST_PDF_SURFACE_TRUE@am__append_10 = pdf2png -@CAIRO_CAN_TEST_SVG_SURFACE_TRUE@am__append_11 = svg2png + $(am__EXEEXT_12) $(am__EXEEXT_13) +EXTRA_PROGRAMS = $(am__EXEEXT_10) $(am__EXEEXT_11) +@HAVE_PTHREAD_TRUE@am__append_10 = -lpthread +@CAIRO_CAN_TEST_PDF_SURFACE_TRUE@am__append_11 = pdf2png +@CAIRO_CAN_TEST_SVG_SURFACE_TRUE@am__append_12 = svg2png subdir = test DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 @@ -84,10 +85,12 @@ libcairotest_la_OBJECTS = $(am_libcairotest_la_OBJECTS) @CAIRO_HAS_PDF_SURFACE_TRUE@am__EXEEXT_4 = pdf-features$(EXEEXT) @CAIRO_HAS_PS_SURFACE_TRUE@am__EXEEXT_5 = ps-features$(EXEEXT) @CAIRO_HAS_XLIB_SURFACE_TRUE@am__EXEEXT_6 = xlib-surface$(EXEEXT) -@CAIRO_HAS_MULTI_PAGE_SURFACES_TRUE@am__EXEEXT_7 = \ +@CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE@am__EXEEXT_7 = get-xrender-format$(EXEEXT) +@CAIRO_HAS_MULTI_PAGE_SURFACES_TRUE@am__EXEEXT_8 = \ @CAIRO_HAS_MULTI_PAGE_SURFACES_TRUE@ multi-page$(EXEEXT) -@CAIRO_HAS_PDF_SURFACE_TRUE@@CAIRO_HAS_PS_SURFACE_TRUE@@CAIRO_HAS_SVG_SURFACE_TRUE@am__EXEEXT_8 = fallback-resolution$(EXEEXT) -am__EXEEXT_9 = a8-mask$(EXEEXT) big-trap$(EXEEXT) caps-joins$(EXEEXT) \ +@CAIRO_HAS_PDF_SURFACE_TRUE@@CAIRO_HAS_PS_SURFACE_TRUE@@CAIRO_HAS_SVG_SURFACE_TRUE@am__EXEEXT_9 = fallback-resolution$(EXEEXT) +am__EXEEXT_10 = a1-image-sample$(EXEEXT) a1-traps-sample$(EXEEXT) \ + a8-mask$(EXEEXT) big-trap$(EXEEXT) caps-joins$(EXEEXT) \ caps-joins-alpha$(EXEEXT) caps-sub-paths$(EXEEXT) \ clip-all$(EXEEXT) clip-empty$(EXEEXT) clip-fill-rule$(EXEEXT) \ clip-fill-rule-pixel-aligned$(EXEEXT) clip-nesting$(EXEEXT) \ @@ -98,23 +101,27 @@ am__EXEEXT_9 = a8-mask$(EXEEXT) big-trap$(EXEEXT) caps-joins$(EXEEXT) \ composite-integer-translate-over-repeat$(EXEEXT) \ copy-path$(EXEEXT) create-for-stream$(EXEEXT) \ create-from-png$(EXEEXT) create-from-png-stream$(EXEEXT) \ - dash-caps-joins$(EXEEXT) dash-no-dash$(EXEEXT) \ - dash-offset-negative$(EXEEXT) dash-scale$(EXEEXT) \ - dash-state$(EXEEXT) dash-zero-length$(EXEEXT) \ - degenerate-path$(EXEEXT) degenerate-pen$(EXEEXT) \ - device-offset$(EXEEXT) device-offset-positive$(EXEEXT) \ - extend-pad$(EXEEXT) fill-and-stroke$(EXEEXT) \ - fill-and-stroke-alpha$(EXEEXT) \ + dash-caps-joins$(EXEEXT) dash-curve$(EXEEXT) \ + dash-no-dash$(EXEEXT) dash-offset-negative$(EXEEXT) \ + dash-scale$(EXEEXT) dash-state$(EXEEXT) \ + dash-zero-length$(EXEEXT) degenerate-path$(EXEEXT) \ + degenerate-pen$(EXEEXT) device-offset$(EXEEXT) \ + device-offset-positive$(EXEEXT) extend-pad$(EXEEXT) \ + extend-reflect$(EXEEXT) extend-reflect-similar$(EXEEXT) \ + extend-repeat$(EXEEXT) extend-repeat-similar$(EXEEXT) \ + fill-and-stroke$(EXEEXT) fill-and-stroke-alpha$(EXEEXT) \ fill-and-stroke-alpha-add$(EXEEXT) \ fill-degenerate-sort-order$(EXEEXT) fill-missed-stop$(EXEEXT) \ fill-rule$(EXEEXT) filter-nearest-offset$(EXEEXT) \ font-face-get-type$(EXEEXT) font-matrix-translation$(EXEEXT) \ - glyph-cache-pressure$(EXEEXT) get-and-set$(EXEEXT) \ - get-clip$(EXEEXT) get-group-target$(EXEEXT) \ - get-path-extents$(EXEEXT) gradient-alpha$(EXEEXT) \ + font-options$(EXEEXT) glyph-cache-pressure$(EXEEXT) \ + get-and-set$(EXEEXT) get-clip$(EXEEXT) \ + get-group-target$(EXEEXT) get-path-extents$(EXEEXT) \ + get-xrender-format$(EXEEXT) gradient-alpha$(EXEEXT) \ gradient-zero-stops$(EXEEXT) infinite-join$(EXEEXT) \ - in-fill-empty-trapezoid$(EXEEXT) invalid-matrix$(EXEEXT) \ - leaky-dash$(EXEEXT) leaky-polygon$(EXEEXT) line-width$(EXEEXT) \ + in-fill-empty-trapezoid$(EXEEXT) in-fill-trapezoid$(EXEEXT) \ + invalid-matrix$(EXEEXT) leaky-dash$(EXEEXT) \ + leaky-polygon$(EXEEXT) line-width$(EXEEXT) \ line-width-scale$(EXEEXT) line-width-zero$(EXEEXT) \ linear-gradient$(EXEEXT) linear-gradient-reflect$(EXEEXT) \ long-lines$(EXEEXT) mask$(EXEEXT) mask-alpha$(EXEEXT) \ @@ -130,7 +137,8 @@ am__EXEEXT_9 = a8-mask$(EXEEXT) big-trap$(EXEEXT) caps-joins$(EXEEXT) \ pattern-getters$(EXEEXT) pixman-rotate$(EXEEXT) \ push-group$(EXEEXT) radial-gradient$(EXEEXT) \ random-intersections$(EXEEXT) \ - rectangle-rounding-error$(EXEEXT) rectilinear-stroke$(EXEEXT) \ + rectangle-rounding-error$(EXEEXT) \ + rectilinear-miter-limit$(EXEEXT) rectilinear-stroke$(EXEEXT) \ rel-path$(EXEEXT) rgb24-ignore-alpha$(EXEEXT) \ rotate-image-surface-paint$(EXEEXT) \ scale-down-source-surface-paint$(EXEEXT) \ @@ -153,11 +161,20 @@ am__EXEEXT_9 = a8-mask$(EXEEXT) big-trap$(EXEEXT) caps-joins$(EXEEXT) \ user-data$(EXEEXT) zero-alpha$(EXEEXT) $(am__EXEEXT_1) \ $(am__EXEEXT_2) $(am__EXEEXT_3) $(am__EXEEXT_4) \ $(am__EXEEXT_5) $(am__EXEEXT_6) $(am__EXEEXT_7) \ - $(am__EXEEXT_8) -am__EXEEXT_10 = extend-reflect$(EXEEXT) show-glyphs-many$(EXEEXT) \ - text-glyph-range$(EXEEXT) -@CAIRO_CAN_TEST_PDF_SURFACE_TRUE@am__EXEEXT_11 = pdf2png$(EXEEXT) -@CAIRO_CAN_TEST_SVG_SURFACE_TRUE@am__EXEEXT_12 = svg2png$(EXEEXT) + $(am__EXEEXT_8) $(am__EXEEXT_9) +am__EXEEXT_11 = show-glyphs-many$(EXEEXT) text-glyph-range$(EXEEXT) +@CAIRO_CAN_TEST_PDF_SURFACE_TRUE@am__EXEEXT_12 = pdf2png$(EXEEXT) +@CAIRO_CAN_TEST_SVG_SURFACE_TRUE@am__EXEEXT_13 = svg2png$(EXEEXT) +a1_image_sample_SOURCES = a1-image-sample.c +a1_image_sample_OBJECTS = a1-image-sample.$(OBJEXT) +a1_image_sample_LDADD = $(LDADD) +a1_image_sample_DEPENDENCIES = $(am__DEPENDENCIES_1) libcairotest.la \ + $(am__DEPENDENCIES_1) +a1_traps_sample_SOURCES = a1-traps-sample.c +a1_traps_sample_OBJECTS = a1-traps-sample.$(OBJEXT) +a1_traps_sample_LDADD = $(LDADD) +a1_traps_sample_DEPENDENCIES = $(am__DEPENDENCIES_1) libcairotest.la \ + $(am__DEPENDENCIES_1) a8_mask_SOURCES = a8-mask.c a8_mask_OBJECTS = a8-mask.$(OBJEXT) a8_mask_LDADD = $(LDADD) @@ -285,6 +302,11 @@ dash_caps_joins_OBJECTS = dash-caps-joins.$(OBJEXT) dash_caps_joins_LDADD = $(LDADD) dash_caps_joins_DEPENDENCIES = $(am__DEPENDENCIES_1) libcairotest.la \ $(am__DEPENDENCIES_1) +dash_curve_SOURCES = dash-curve.c +dash_curve_OBJECTS = dash-curve.$(OBJEXT) +dash_curve_LDADD = $(LDADD) +dash_curve_DEPENDENCIES = $(am__DEPENDENCIES_1) libcairotest.la \ + $(am__DEPENDENCIES_1) dash_no_dash_SOURCES = dash-no-dash.c dash_no_dash_OBJECTS = dash-no-dash.$(OBJEXT) dash_no_dash_LDADD = $(LDADD) @@ -340,6 +362,21 @@ extend_reflect_OBJECTS = extend-reflect.$(OBJEXT) extend_reflect_LDADD = $(LDADD) extend_reflect_DEPENDENCIES = $(am__DEPENDENCIES_1) libcairotest.la \ $(am__DEPENDENCIES_1) +extend_reflect_similar_SOURCES = extend-reflect-similar.c +extend_reflect_similar_OBJECTS = extend-reflect-similar.$(OBJEXT) +extend_reflect_similar_LDADD = $(LDADD) +extend_reflect_similar_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + libcairotest.la $(am__DEPENDENCIES_1) +extend_repeat_SOURCES = extend-repeat.c +extend_repeat_OBJECTS = extend-repeat.$(OBJEXT) +extend_repeat_LDADD = $(LDADD) +extend_repeat_DEPENDENCIES = $(am__DEPENDENCIES_1) libcairotest.la \ + $(am__DEPENDENCIES_1) +extend_repeat_similar_SOURCES = extend-repeat-similar.c +extend_repeat_similar_OBJECTS = extend-repeat-similar.$(OBJEXT) +extend_repeat_similar_LDADD = $(LDADD) +extend_repeat_similar_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + libcairotest.la $(am__DEPENDENCIES_1) fallback_resolution_SOURCES = fallback-resolution.c fallback_resolution_OBJECTS = fallback-resolution.$(OBJEXT) fallback_resolution_LDADD = $(LDADD) @@ -392,6 +429,11 @@ font_matrix_translation_OBJECTS = font-matrix-translation.$(OBJEXT) font_matrix_translation_LDADD = $(LDADD) font_matrix_translation_DEPENDENCIES = $(am__DEPENDENCIES_1) \ libcairotest.la $(am__DEPENDENCIES_1) +font_options_SOURCES = font-options.c +font_options_OBJECTS = font-options.$(OBJEXT) +font_options_LDADD = $(LDADD) +font_options_DEPENDENCIES = $(am__DEPENDENCIES_1) libcairotest.la \ + $(am__DEPENDENCIES_1) ft_font_create_for_ft_face_SOURCES = ft-font-create-for-ft-face.c ft_font_create_for_ft_face_OBJECTS = \ ft-font-create-for-ft-face.$(OBJEXT) @@ -437,6 +479,11 @@ get_path_extents_OBJECTS = get-path-extents.$(OBJEXT) get_path_extents_LDADD = $(LDADD) get_path_extents_DEPENDENCIES = $(am__DEPENDENCIES_1) libcairotest.la \ $(am__DEPENDENCIES_1) +get_xrender_format_SOURCES = get-xrender-format.c +get_xrender_format_OBJECTS = get-xrender-format.$(OBJEXT) +get_xrender_format_LDADD = $(LDADD) +get_xrender_format_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + libcairotest.la $(am__DEPENDENCIES_1) glyph_cache_pressure_SOURCES = glyph-cache-pressure.c glyph_cache_pressure_OBJECTS = glyph-cache-pressure.$(OBJEXT) glyph_cache_pressure_LDADD = $(LDADD) @@ -462,6 +509,11 @@ in_fill_empty_trapezoid_OBJECTS = in-fill-empty-trapezoid.$(OBJEXT) in_fill_empty_trapezoid_LDADD = $(LDADD) in_fill_empty_trapezoid_DEPENDENCIES = $(am__DEPENDENCIES_1) \ libcairotest.la $(am__DEPENDENCIES_1) +in_fill_trapezoid_SOURCES = in-fill-trapezoid.c +in_fill_trapezoid_OBJECTS = in-fill-trapezoid.$(OBJEXT) +in_fill_trapezoid_LDADD = $(LDADD) +in_fill_trapezoid_DEPENDENCIES = $(am__DEPENDENCIES_1) libcairotest.la \ + $(am__DEPENDENCIES_1) infinite_join_SOURCES = infinite-join.c infinite_join_OBJECTS = infinite-join.$(OBJEXT) infinite_join_LDADD = $(LDADD) @@ -674,6 +726,11 @@ rectangle_rounding_error_OBJECTS = rectangle-rounding-error.$(OBJEXT) rectangle_rounding_error_LDADD = $(LDADD) rectangle_rounding_error_DEPENDENCIES = $(am__DEPENDENCIES_1) \ libcairotest.la $(am__DEPENDENCIES_1) +rectilinear_miter_limit_SOURCES = rectilinear-miter-limit.c +rectilinear_miter_limit_OBJECTS = rectilinear-miter-limit.$(OBJEXT) +rectilinear_miter_limit_LDADD = $(LDADD) +rectilinear_miter_limit_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + libcairotest.la $(am__DEPENDENCIES_1) rectilinear_stroke_SOURCES = rectilinear-stroke.c rectilinear_stroke_OBJECTS = rectilinear-stroke.$(OBJEXT) rectilinear_stroke_LDADD = $(LDADD) @@ -909,32 +966,35 @@ LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ -SOURCES = $(libcairotest_la_SOURCES) a8-mask.c big-trap.c \ - bitmap-font.c caps-joins.c caps-joins-alpha.c caps-sub-paths.c \ - clip-all.c clip-empty.c clip-fill-rule.c \ - clip-fill-rule-pixel-aligned.c clip-nesting.c clip-operator.c \ - clip-push-group.c clip-twice.c clip-zero.c close-path.c \ - composite-integer-translate-over.c \ +SOURCES = $(libcairotest_la_SOURCES) a1-image-sample.c \ + a1-traps-sample.c a8-mask.c big-trap.c bitmap-font.c \ + caps-joins.c caps-joins-alpha.c caps-sub-paths.c clip-all.c \ + clip-empty.c clip-fill-rule.c clip-fill-rule-pixel-aligned.c \ + clip-nesting.c clip-operator.c clip-push-group.c clip-twice.c \ + clip-zero.c close-path.c composite-integer-translate-over.c \ composite-integer-translate-over-repeat.c \ composite-integer-translate-source.c copy-path.c \ create-for-stream.c create-from-png.c create-from-png-stream.c \ - dash-caps-joins.c dash-no-dash.c dash-offset-negative.c \ - dash-scale.c dash-state.c dash-zero-length.c degenerate-path.c \ - degenerate-pen.c device-offset.c device-offset-positive.c \ - extend-pad.c extend-reflect.c fallback-resolution.c \ + dash-caps-joins.c dash-curve.c dash-no-dash.c \ + dash-offset-negative.c dash-scale.c dash-state.c \ + dash-zero-length.c degenerate-path.c degenerate-pen.c \ + device-offset.c device-offset-positive.c extend-pad.c \ + extend-reflect.c extend-reflect-similar.c extend-repeat.c \ + extend-repeat-similar.c fallback-resolution.c \ fill-and-stroke.c fill-and-stroke-alpha.c \ fill-and-stroke-alpha-add.c fill-degenerate-sort-order.c \ fill-missed-stop.c fill-rule.c filter-nearest-offset.c \ - font-face-get-type.c font-matrix-translation.c \ + font-face-get-type.c font-matrix-translation.c font-options.c \ ft-font-create-for-ft-face.c ft-text-antialias-none.c \ ft-text-vertical-layout-type1.c \ ft-text-vertical-layout-type3.c get-and-set.c get-clip.c \ - get-group-target.c get-path-extents.c glyph-cache-pressure.c \ - gradient-alpha.c gradient-zero-stops.c imagediff.c \ - in-fill-empty-trapezoid.c infinite-join.c invalid-matrix.c \ - leaky-dash.c leaky-polygon.c line-width.c line-width-scale.c \ - line-width-zero.c linear-gradient.c linear-gradient-reflect.c \ - long-lines.c mask.c mask-alpha.c mask-ctm.c mask-surface-ctm.c \ + get-group-target.c get-path-extents.c get-xrender-format.c \ + glyph-cache-pressure.c gradient-alpha.c gradient-zero-stops.c \ + imagediff.c in-fill-empty-trapezoid.c in-fill-trapezoid.c \ + infinite-join.c invalid-matrix.c leaky-dash.c leaky-polygon.c \ + line-width.c line-width-scale.c line-width-zero.c \ + linear-gradient.c linear-gradient-reflect.c long-lines.c \ + mask.c mask-alpha.c mask-ctm.c mask-surface-ctm.c \ meta-surface-pattern.c miter-precision.c \ move-to-show-surface.c multi-page.c new-sub-path.c \ nil-surface.c operator-clear.c operator-source.c \ @@ -944,49 +1004,52 @@ SOURCES = $(libcairotest_la_SOURCES) a8-mask.c big-trap.c \ pattern-getters.c pdf-features.c pdf2png.c pixman-rotate.c \ png-flatten.c ps-features.c pthread-show-text.c push-group.c \ radial-gradient.c random-intersections.c \ - rectangle-rounding-error.c rectilinear-stroke.c rel-path.c \ - rgb24-ignore-alpha.c rotate-image-surface-paint.c \ - scale-down-source-surface-paint.c scale-source-surface-paint.c \ - select-font-face.c select-font-no-show-text.c self-copy.c \ - self-intersecting.c set-source.c show-glyphs-many.c \ - show-text-current-point.c skew-extreme.c \ - solid-pattern-cache-stress.c source-clip.c source-clip-scale.c \ - source-surface-scale-paint.c surface-finish-twice.c \ - surface-pattern.c surface-pattern-big-scale-down.c \ - surface-pattern-scale-down.c surface-pattern-scale-up.c \ - svg-clip.c svg-surface.c svg2png.c text-antialias-gray.c \ - text-antialias-none.c text-antialias-subpixel.c \ - text-cache-crash.c text-glyph-range.c text-pattern.c \ - text-rotate.c text-zero-len.c transforms.c \ - translate-show-surface.c trap-clip.c truetype-tables.c \ - unantialiased-shapes.c unbounded-operator.c user-data.c \ - xlib-surface.c zero-alpha.c -DIST_SOURCES = $(libcairotest_la_SOURCES) a8-mask.c big-trap.c \ - bitmap-font.c caps-joins.c caps-joins-alpha.c caps-sub-paths.c \ - clip-all.c clip-empty.c clip-fill-rule.c \ - clip-fill-rule-pixel-aligned.c clip-nesting.c clip-operator.c \ - clip-push-group.c clip-twice.c clip-zero.c close-path.c \ - composite-integer-translate-over.c \ + rectangle-rounding-error.c rectilinear-miter-limit.c \ + rectilinear-stroke.c rel-path.c rgb24-ignore-alpha.c \ + rotate-image-surface-paint.c scale-down-source-surface-paint.c \ + scale-source-surface-paint.c select-font-face.c \ + select-font-no-show-text.c self-copy.c self-intersecting.c \ + set-source.c show-glyphs-many.c show-text-current-point.c \ + skew-extreme.c solid-pattern-cache-stress.c source-clip.c \ + source-clip-scale.c source-surface-scale-paint.c \ + surface-finish-twice.c surface-pattern.c \ + surface-pattern-big-scale-down.c surface-pattern-scale-down.c \ + surface-pattern-scale-up.c svg-clip.c svg-surface.c svg2png.c \ + text-antialias-gray.c text-antialias-none.c \ + text-antialias-subpixel.c text-cache-crash.c \ + text-glyph-range.c text-pattern.c text-rotate.c \ + text-zero-len.c transforms.c translate-show-surface.c \ + trap-clip.c truetype-tables.c unantialiased-shapes.c \ + unbounded-operator.c user-data.c xlib-surface.c zero-alpha.c +DIST_SOURCES = $(libcairotest_la_SOURCES) a1-image-sample.c \ + a1-traps-sample.c a8-mask.c big-trap.c bitmap-font.c \ + caps-joins.c caps-joins-alpha.c caps-sub-paths.c clip-all.c \ + clip-empty.c clip-fill-rule.c clip-fill-rule-pixel-aligned.c \ + clip-nesting.c clip-operator.c clip-push-group.c clip-twice.c \ + clip-zero.c close-path.c composite-integer-translate-over.c \ composite-integer-translate-over-repeat.c \ composite-integer-translate-source.c copy-path.c \ create-for-stream.c create-from-png.c create-from-png-stream.c \ - dash-caps-joins.c dash-no-dash.c dash-offset-negative.c \ - dash-scale.c dash-state.c dash-zero-length.c degenerate-path.c \ - degenerate-pen.c device-offset.c device-offset-positive.c \ - extend-pad.c extend-reflect.c fallback-resolution.c \ + dash-caps-joins.c dash-curve.c dash-no-dash.c \ + dash-offset-negative.c dash-scale.c dash-state.c \ + dash-zero-length.c degenerate-path.c degenerate-pen.c \ + device-offset.c device-offset-positive.c extend-pad.c \ + extend-reflect.c extend-reflect-similar.c extend-repeat.c \ + extend-repeat-similar.c fallback-resolution.c \ fill-and-stroke.c fill-and-stroke-alpha.c \ fill-and-stroke-alpha-add.c fill-degenerate-sort-order.c \ fill-missed-stop.c fill-rule.c filter-nearest-offset.c \ - font-face-get-type.c font-matrix-translation.c \ + font-face-get-type.c font-matrix-translation.c font-options.c \ ft-font-create-for-ft-face.c ft-text-antialias-none.c \ ft-text-vertical-layout-type1.c \ ft-text-vertical-layout-type3.c get-and-set.c get-clip.c \ - get-group-target.c get-path-extents.c glyph-cache-pressure.c \ - gradient-alpha.c gradient-zero-stops.c imagediff.c \ - in-fill-empty-trapezoid.c infinite-join.c invalid-matrix.c \ - leaky-dash.c leaky-polygon.c line-width.c line-width-scale.c \ - line-width-zero.c linear-gradient.c linear-gradient-reflect.c \ - long-lines.c mask.c mask-alpha.c mask-ctm.c mask-surface-ctm.c \ + get-group-target.c get-path-extents.c get-xrender-format.c \ + glyph-cache-pressure.c gradient-alpha.c gradient-zero-stops.c \ + imagediff.c in-fill-empty-trapezoid.c in-fill-trapezoid.c \ + infinite-join.c invalid-matrix.c leaky-dash.c leaky-polygon.c \ + line-width.c line-width-scale.c line-width-zero.c \ + linear-gradient.c linear-gradient-reflect.c long-lines.c \ + mask.c mask-alpha.c mask-ctm.c mask-surface-ctm.c \ meta-surface-pattern.c miter-precision.c \ move-to-show-surface.c multi-page.c new-sub-path.c \ nil-surface.c operator-clear.c operator-source.c \ @@ -996,23 +1059,23 @@ DIST_SOURCES = $(libcairotest_la_SOURCES) a8-mask.c big-trap.c \ pattern-getters.c pdf-features.c pdf2png.c pixman-rotate.c \ png-flatten.c ps-features.c pthread-show-text.c push-group.c \ radial-gradient.c random-intersections.c \ - rectangle-rounding-error.c rectilinear-stroke.c rel-path.c \ - rgb24-ignore-alpha.c rotate-image-surface-paint.c \ - scale-down-source-surface-paint.c scale-source-surface-paint.c \ - select-font-face.c select-font-no-show-text.c self-copy.c \ - self-intersecting.c set-source.c show-glyphs-many.c \ - show-text-current-point.c skew-extreme.c \ - solid-pattern-cache-stress.c source-clip.c source-clip-scale.c \ - source-surface-scale-paint.c surface-finish-twice.c \ - surface-pattern.c surface-pattern-big-scale-down.c \ - surface-pattern-scale-down.c surface-pattern-scale-up.c \ - svg-clip.c svg-surface.c svg2png.c text-antialias-gray.c \ - text-antialias-none.c text-antialias-subpixel.c \ - text-cache-crash.c text-glyph-range.c text-pattern.c \ - text-rotate.c text-zero-len.c transforms.c \ - translate-show-surface.c trap-clip.c truetype-tables.c \ - unantialiased-shapes.c unbounded-operator.c user-data.c \ - xlib-surface.c zero-alpha.c + rectangle-rounding-error.c rectilinear-miter-limit.c \ + rectilinear-stroke.c rel-path.c rgb24-ignore-alpha.c \ + rotate-image-surface-paint.c scale-down-source-surface-paint.c \ + scale-source-surface-paint.c select-font-face.c \ + select-font-no-show-text.c self-copy.c self-intersecting.c \ + set-source.c show-glyphs-many.c show-text-current-point.c \ + skew-extreme.c solid-pattern-cache-stress.c source-clip.c \ + source-clip-scale.c source-surface-scale-paint.c \ + surface-finish-twice.c surface-pattern.c \ + surface-pattern-big-scale-down.c surface-pattern-scale-down.c \ + surface-pattern-scale-up.c svg-clip.c svg-surface.c svg2png.c \ + text-antialias-gray.c text-antialias-none.c \ + text-antialias-subpixel.c text-cache-crash.c \ + text-glyph-range.c text-pattern.c text-rotate.c \ + text-zero-len.c transforms.c translate-show-surface.c \ + trap-clip.c truetype-tables.c unantialiased-shapes.c \ + unbounded-operator.c user-data.c xlib-surface.c zero-alpha.c RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-exec-recursive install-info-recursive \ @@ -1253,7 +1316,8 @@ xlib_xrender_LIBS = @xlib_xrender_LIBS@ SUBDIRS = pdiff . # Here are all the tests that are run unconditionally -TESTS = a8-mask$(EXEEXT) big-trap$(EXEEXT) caps-joins$(EXEEXT) \ +TESTS = a1-image-sample$(EXEEXT) a1-traps-sample$(EXEEXT) \ + a8-mask$(EXEEXT) big-trap$(EXEEXT) caps-joins$(EXEEXT) \ caps-joins-alpha$(EXEEXT) caps-sub-paths$(EXEEXT) \ clip-all$(EXEEXT) clip-empty$(EXEEXT) clip-fill-rule$(EXEEXT) \ clip-fill-rule-pixel-aligned$(EXEEXT) clip-nesting$(EXEEXT) \ @@ -1264,23 +1328,27 @@ TESTS = a8-mask$(EXEEXT) big-trap$(EXEEXT) caps-joins$(EXEEXT) \ composite-integer-translate-over-repeat$(EXEEXT) \ copy-path$(EXEEXT) create-for-stream$(EXEEXT) \ create-from-png$(EXEEXT) create-from-png-stream$(EXEEXT) \ - dash-caps-joins$(EXEEXT) dash-no-dash$(EXEEXT) \ - dash-offset-negative$(EXEEXT) dash-scale$(EXEEXT) \ - dash-state$(EXEEXT) dash-zero-length$(EXEEXT) \ - degenerate-path$(EXEEXT) degenerate-pen$(EXEEXT) \ - device-offset$(EXEEXT) device-offset-positive$(EXEEXT) \ - extend-pad$(EXEEXT) fill-and-stroke$(EXEEXT) \ - fill-and-stroke-alpha$(EXEEXT) \ + dash-caps-joins$(EXEEXT) dash-curve$(EXEEXT) \ + dash-no-dash$(EXEEXT) dash-offset-negative$(EXEEXT) \ + dash-scale$(EXEEXT) dash-state$(EXEEXT) \ + dash-zero-length$(EXEEXT) degenerate-path$(EXEEXT) \ + degenerate-pen$(EXEEXT) device-offset$(EXEEXT) \ + device-offset-positive$(EXEEXT) extend-pad$(EXEEXT) \ + extend-reflect$(EXEEXT) extend-reflect-similar$(EXEEXT) \ + extend-repeat$(EXEEXT) extend-repeat-similar$(EXEEXT) \ + fill-and-stroke$(EXEEXT) fill-and-stroke-alpha$(EXEEXT) \ fill-and-stroke-alpha-add$(EXEEXT) \ fill-degenerate-sort-order$(EXEEXT) fill-missed-stop$(EXEEXT) \ fill-rule$(EXEEXT) filter-nearest-offset$(EXEEXT) \ font-face-get-type$(EXEEXT) font-matrix-translation$(EXEEXT) \ - glyph-cache-pressure$(EXEEXT) get-and-set$(EXEEXT) \ - get-clip$(EXEEXT) get-group-target$(EXEEXT) \ - get-path-extents$(EXEEXT) gradient-alpha$(EXEEXT) \ + font-options$(EXEEXT) glyph-cache-pressure$(EXEEXT) \ + get-and-set$(EXEEXT) get-clip$(EXEEXT) \ + get-group-target$(EXEEXT) get-path-extents$(EXEEXT) \ + get-xrender-format$(EXEEXT) gradient-alpha$(EXEEXT) \ gradient-zero-stops$(EXEEXT) infinite-join$(EXEEXT) \ - in-fill-empty-trapezoid$(EXEEXT) invalid-matrix$(EXEEXT) \ - leaky-dash$(EXEEXT) leaky-polygon$(EXEEXT) line-width$(EXEEXT) \ + in-fill-empty-trapezoid$(EXEEXT) in-fill-trapezoid$(EXEEXT) \ + invalid-matrix$(EXEEXT) leaky-dash$(EXEEXT) \ + leaky-polygon$(EXEEXT) line-width$(EXEEXT) \ line-width-scale$(EXEEXT) line-width-zero$(EXEEXT) \ linear-gradient$(EXEEXT) linear-gradient-reflect$(EXEEXT) \ long-lines$(EXEEXT) mask$(EXEEXT) mask-alpha$(EXEEXT) \ @@ -1296,7 +1364,8 @@ TESTS = a8-mask$(EXEEXT) big-trap$(EXEEXT) caps-joins$(EXEEXT) \ pattern-getters$(EXEEXT) pixman-rotate$(EXEEXT) \ push-group$(EXEEXT) radial-gradient$(EXEEXT) \ random-intersections$(EXEEXT) \ - rectangle-rounding-error$(EXEEXT) rectilinear-stroke$(EXEEXT) \ + rectangle-rounding-error$(EXEEXT) \ + rectilinear-miter-limit$(EXEEXT) rectilinear-stroke$(EXEEXT) \ rel-path$(EXEEXT) rgb24-ignore-alpha$(EXEEXT) \ rotate-image-surface-paint$(EXEEXT) \ scale-down-source-surface-paint$(EXEEXT) \ @@ -1319,7 +1388,7 @@ TESTS = a8-mask$(EXEEXT) big-trap$(EXEEXT) caps-joins$(EXEEXT) \ user-data$(EXEEXT) zero-alpha$(EXEEXT) $(am__append_1) \ $(am__append_2) $(am__append_3) $(am__append_4) \ $(am__append_5) $(am__append_6) $(am__append_7) \ - $(am__append_8) + $(am__append_8) $(am__append_9) # XXX: Here are some existing tests that are currently disabled for # one reason or another. They can still be built and run (manually) @@ -1362,13 +1431,14 @@ TESTS = a8-mask$(EXEEXT) big-trap$(EXEEXT) caps-joins$(EXEEXT) \ # that's just a bug in the test rig that should just consider # the abort an XFAIL like any other. DISABLED_TESTS = \ -extend-reflect$(EXEEXT) \ show-glyphs-many$(EXEEXT) \ text-glyph-range$(EXEEXT) # All tests which have a reference image go here. REFERENCE_IMAGES = \ + a1-image-sample-ref.png \ + a1-traps-sample-ref.png \ a8-mask-ref.png \ bitmap-font-pdf-argb32-ref.png \ bitmap-font-ref.png \ @@ -1418,6 +1488,7 @@ REFERENCE_IMAGES = \ dash-caps-joins-ps-rgb24-ref.png \ dash-caps-joins-quartz-ref.png \ dash-caps-joins-ref.png \ + dash-curve-ref.png \ dash-no-dash-ref.png \ dash-offset-negative-ref.png \ dash-scale-ps-argb32-ref.png \ @@ -1441,6 +1512,9 @@ REFERENCE_IMAGES = \ device-offset-rgb24-ref.png \ extend-pad-ref.png \ extend-reflect-ref.png \ + extend-reflect-similar-ref.png \ + extend-repeat-ref.png \ + extend-repeat-similar-ref.png \ fill-and-stroke-alpha-add-quartz-ref.png \ fill-and-stroke-alpha-add-ref.png \ fill-and-stroke-alpha-quartz-ref.png \ @@ -1464,6 +1538,7 @@ REFERENCE_IMAGES = \ fill-rule-quartz-rgb24-ref.png \ fill-rule-ref.png \ fill-rule-rgb24-ref.png \ + fill-rule-ps-rgb24-ref.png \ filter-nearest-offset-ref.png \ font-matrix-translation-ps-argb32-ref.png \ font-matrix-translation-ps-rgb24-ref.png \ @@ -1514,6 +1589,8 @@ REFERENCE_IMAGES = \ mask-svg-argb32-ref.png \ meta-surface-pattern-ref.png \ meta-surface-pattern-rgb24-ref.png \ + meta-surface-pattern-pdf-ref.png \ + meta-surface-pattern-pdf-rgb24-ref.png \ miter-precision-ref.png \ move-to-show-surface-ref.png \ new-sub-path-ps-argb32-ref.png \ @@ -1566,6 +1643,7 @@ REFERENCE_IMAGES = \ random-intersections-ref.png \ rgb24-ignore-alpha-ref.png \ rectangle-rounding-error-ref.png \ + rectilinear-miter-limit-ref.png \ rectilinear-stroke-ref.png \ rel-path-quartz-ref.png \ rel-path-quartz-rgb24-ref.png \ @@ -1658,11 +1736,7 @@ $(REFERENCE_IMAGES) # Of course, before any "release" of cairo we should eliminate # everything from this list by fixing the bugs. (We don't necessarily # have to be that strict for "snapshots" though.) -# -# Also, any test listed here should call cairo_test_expect_failure and -# provide an explanation for the expected failure. XFAIL_TESTS = \ -a8-mask$(EXEEXT) \ big-trap$(EXEEXT) \ extend-pad$(EXEEXT) \ filter-nearest-offset$(EXEEXT) \ @@ -1676,13 +1750,14 @@ surface-pattern-scale-up$(EXEEXT) # Any test that doesn't generate a log file goes here NOLOG_TESTS = \ -user-data \ -svg-surface \ -svg-clip \ +fallback-resolution \ +font-options \ +multi-page \ pdf-features \ ps-features \ -multi-page \ -fallback-resolution +svg-clip \ +svg-surface \ +user-data # We're using _GNU_SOURCE to get the prototype for asprintf. This may @@ -1712,7 +1787,7 @@ libcairotest_la_LIBADD = \ $(top_builddir)/src/libcairo.la \ $(CAIRO_LDADD) -LDADD = $(CAIRO_LDADD) libcairotest.la $(am__append_9) +LDADD = $(CAIRO_LDADD) libcairotest.la $(am__append_10) @CAIRO_CAN_TEST_PDF_SURFACE_TRUE@pdf2png_CFLAGS = $(POPPLER_CFLAGS) # add LDADD, so poppler uses "our" cairo @CAIRO_CAN_TEST_PDF_SURFACE_TRUE@pdf2png_LDADD = $(LDADD) $(POPPLER_LIBS) @@ -1786,6 +1861,12 @@ clean-checkPROGRAMS: echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done +a1-image-sample$(EXEEXT): $(a1_image_sample_OBJECTS) $(a1_image_sample_DEPENDENCIES) + @rm -f a1-image-sample$(EXEEXT) + $(LINK) $(a1_image_sample_LDFLAGS) $(a1_image_sample_OBJECTS) $(a1_image_sample_LDADD) $(LIBS) +a1-traps-sample$(EXEEXT): $(a1_traps_sample_OBJECTS) $(a1_traps_sample_DEPENDENCIES) + @rm -f a1-traps-sample$(EXEEXT) + $(LINK) $(a1_traps_sample_LDFLAGS) $(a1_traps_sample_OBJECTS) $(a1_traps_sample_LDADD) $(LIBS) 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) @@ -1858,6 +1939,9 @@ create-from-png-stream$(EXEEXT): $(create_from_png_stream_OBJECTS) $(create_from dash-caps-joins$(EXEEXT): $(dash_caps_joins_OBJECTS) $(dash_caps_joins_DEPENDENCIES) @rm -f dash-caps-joins$(EXEEXT) $(LINK) $(dash_caps_joins_LDFLAGS) $(dash_caps_joins_OBJECTS) $(dash_caps_joins_LDADD) $(LIBS) +dash-curve$(EXEEXT): $(dash_curve_OBJECTS) $(dash_curve_DEPENDENCIES) + @rm -f dash-curve$(EXEEXT) + $(LINK) $(dash_curve_LDFLAGS) $(dash_curve_OBJECTS) $(dash_curve_LDADD) $(LIBS) dash-no-dash$(EXEEXT): $(dash_no_dash_OBJECTS) $(dash_no_dash_DEPENDENCIES) @rm -f dash-no-dash$(EXEEXT) $(LINK) $(dash_no_dash_LDFLAGS) $(dash_no_dash_OBJECTS) $(dash_no_dash_LDADD) $(LIBS) @@ -1891,6 +1975,15 @@ extend-pad$(EXEEXT): $(extend_pad_OBJECTS) $(extend_pad_DEPENDENCIES) 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) +extend-reflect-similar$(EXEEXT): $(extend_reflect_similar_OBJECTS) $(extend_reflect_similar_DEPENDENCIES) + @rm -f extend-reflect-similar$(EXEEXT) + $(LINK) $(extend_reflect_similar_LDFLAGS) $(extend_reflect_similar_OBJECTS) $(extend_reflect_similar_LDADD) $(LIBS) +extend-repeat$(EXEEXT): $(extend_repeat_OBJECTS) $(extend_repeat_DEPENDENCIES) + @rm -f extend-repeat$(EXEEXT) + $(LINK) $(extend_repeat_LDFLAGS) $(extend_repeat_OBJECTS) $(extend_repeat_LDADD) $(LIBS) +extend-repeat-similar$(EXEEXT): $(extend_repeat_similar_OBJECTS) $(extend_repeat_similar_DEPENDENCIES) + @rm -f extend-repeat-similar$(EXEEXT) + $(LINK) $(extend_repeat_similar_LDFLAGS) $(extend_repeat_similar_OBJECTS) $(extend_repeat_similar_LDADD) $(LIBS) fallback-resolution$(EXEEXT): $(fallback_resolution_OBJECTS) $(fallback_resolution_DEPENDENCIES) @rm -f fallback-resolution$(EXEEXT) $(LINK) $(fallback_resolution_LDFLAGS) $(fallback_resolution_OBJECTS) $(fallback_resolution_LDADD) $(LIBS) @@ -1921,6 +2014,9 @@ font-face-get-type$(EXEEXT): $(font_face_get_type_OBJECTS) $(font_face_get_type_ font-matrix-translation$(EXEEXT): $(font_matrix_translation_OBJECTS) $(font_matrix_translation_DEPENDENCIES) @rm -f font-matrix-translation$(EXEEXT) $(LINK) $(font_matrix_translation_LDFLAGS) $(font_matrix_translation_OBJECTS) $(font_matrix_translation_LDADD) $(LIBS) +font-options$(EXEEXT): $(font_options_OBJECTS) $(font_options_DEPENDENCIES) + @rm -f font-options$(EXEEXT) + $(LINK) $(font_options_LDFLAGS) $(font_options_OBJECTS) $(font_options_LDADD) $(LIBS) 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) @@ -1945,6 +2041,9 @@ get-group-target$(EXEEXT): $(get_group_target_OBJECTS) $(get_group_target_DEPEND get-path-extents$(EXEEXT): $(get_path_extents_OBJECTS) $(get_path_extents_DEPENDENCIES) @rm -f get-path-extents$(EXEEXT) $(LINK) $(get_path_extents_LDFLAGS) $(get_path_extents_OBJECTS) $(get_path_extents_LDADD) $(LIBS) +get-xrender-format$(EXEEXT): $(get_xrender_format_OBJECTS) $(get_xrender_format_DEPENDENCIES) + @rm -f get-xrender-format$(EXEEXT) + $(LINK) $(get_xrender_format_LDFLAGS) $(get_xrender_format_OBJECTS) $(get_xrender_format_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) @@ -1960,6 +2059,9 @@ imagediff$(EXEEXT): $(imagediff_OBJECTS) $(imagediff_DEPENDENCIES) in-fill-empty-trapezoid$(EXEEXT): $(in_fill_empty_trapezoid_OBJECTS) $(in_fill_empty_trapezoid_DEPENDENCIES) @rm -f in-fill-empty-trapezoid$(EXEEXT) $(LINK) $(in_fill_empty_trapezoid_LDFLAGS) $(in_fill_empty_trapezoid_OBJECTS) $(in_fill_empty_trapezoid_LDADD) $(LIBS) +in-fill-trapezoid$(EXEEXT): $(in_fill_trapezoid_OBJECTS) $(in_fill_trapezoid_DEPENDENCIES) + @rm -f in-fill-trapezoid$(EXEEXT) + $(LINK) $(in_fill_trapezoid_LDFLAGS) $(in_fill_trapezoid_OBJECTS) $(in_fill_trapezoid_LDADD) $(LIBS) infinite-join$(EXEEXT): $(infinite_join_OBJECTS) $(infinite_join_DEPENDENCIES) @rm -f infinite-join$(EXEEXT) $(LINK) $(infinite_join_LDFLAGS) $(infinite_join_OBJECTS) $(infinite_join_LDADD) $(LIBS) @@ -2086,6 +2188,9 @@ random-intersections$(EXEEXT): $(random_intersections_OBJECTS) $(random_intersec rectangle-rounding-error$(EXEEXT): $(rectangle_rounding_error_OBJECTS) $(rectangle_rounding_error_DEPENDENCIES) @rm -f rectangle-rounding-error$(EXEEXT) $(LINK) $(rectangle_rounding_error_LDFLAGS) $(rectangle_rounding_error_OBJECTS) $(rectangle_rounding_error_LDADD) $(LIBS) +rectilinear-miter-limit$(EXEEXT): $(rectilinear_miter_limit_OBJECTS) $(rectilinear_miter_limit_DEPENDENCIES) + @rm -f rectilinear-miter-limit$(EXEEXT) + $(LINK) $(rectilinear_miter_limit_LDFLAGS) $(rectilinear_miter_limit_OBJECTS) $(rectilinear_miter_limit_LDADD) $(LIBS) rectilinear-stroke$(EXEEXT): $(rectilinear_stroke_OBJECTS) $(rectilinear_stroke_DEPENDENCIES) @rm -f rectilinear-stroke$(EXEEXT) $(LINK) $(rectilinear_stroke_LDFLAGS) $(rectilinear_stroke_OBJECTS) $(rectilinear_stroke_LDADD) $(LIBS) @@ -2222,6 +2327,8 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/a1-image-sample.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/a1-traps-sample.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/a8-mask.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/big-trap.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bitmap-font.Po@am__quote@ @@ -2248,6 +2355,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/create-from-png-stream.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/create-from-png.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dash-caps-joins.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dash-curve.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dash-no-dash.Po@am__quote@ @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@ @@ -2258,7 +2366,10 @@ distclean-compile: @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-pad.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/extend-reflect-similar.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/extend-reflect.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/extend-repeat-similar.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/extend-repeat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fallback-resolution.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fill-and-stroke-alpha-add.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fill-and-stroke-alpha.Po@am__quote@ @@ -2269,6 +2380,7 @@ 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)/font-matrix-translation.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/font-options.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-type1.Po@am__quote@ @@ -2277,11 +2389,13 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/get-clip.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/get-group-target.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/get-path-extents.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/get-xrender-format.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)/gradient-zero-stops.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imagediff.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/in-fill-empty-trapezoid.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/in-fill-trapezoid.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/infinite-join.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/invalid-matrix.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/leaky-dash.Po@am__quote@ @@ -2324,6 +2438,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/radial-gradient.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/random-intersections.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rectangle-rounding-error.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rectilinear-miter-limit.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rectilinear-stroke.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rel-path.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rgb24-ignore-alpha.Po@am__quote@ @@ -2777,7 +2892,7 @@ uninstall-info: uninstall-info-recursive check: AM_MAKEFLAGS+=-k check-local: @FAILED_TESTS=""; \ - for t in *.log; do \ + for t in $(TESTS:$(EXEEXT)=.log); do \ if grep -e '\<FAIL\>' $$t >/dev/null 2>&1; then \ FAILED_TESTS="$$FAILED_TESTS $${t%.log}"; \ fi; \ @@ -2856,16 +2971,43 @@ index.html: $(srcdir)/make-html.pl $(TESTS:$(EXEEXT)=.log) # Identify identical reference images check-ref-dups: - @sha1sum *-ref.png > ref.hash - @join ref.hash ref.hash | grep -v -E '( .*-ref.png).*\1' | cut -d' ' -f 1-2 | sort -u + @LANG=C; \ + ( cd "$(scrdir)" && sha1sum *-ref.png | sort ) > ref.hash; \ + join ref.hash ref.hash | grep -v -E '( .*-ref.png).*\1' | cut -d' ' -f 1-2 | sort -u # Not exactly the best script in the world... check-ref-missing: - @for i in *-ref.png; do\ - echo ${REFERENCE_IMAGES} | grep -sq $$i || echo $$i; \ - done - -.PHONY: check-valgrind test recheck retest html rehtml check-ref-dups check-ref-missing + @cd "$(srcdir)"; \ + REFS=`git ls-files "*-ref.png"`; \ + test x = "x$$REFS" && REFS=`ls *-ref.png`; \ + ret=true; \ + missing=""; \ + for i in $$REFS; do \ + echo "" $(REFERENCE_IMAGES) "" | grep -sq " $$i " || missing="$$missing $$i" ; \ + done ; \ + if test -n "$$missing"; then \ + echo "*** Error: Sanity check failed"; \ + echo "Some reference files are not included in the distribution."; \ + echo "You probably need to add these to Makefile.am's REFERENCE_IMAGES."; \ + echo "Missing: $$missing"; \ + ret=false; \ + fi >&2; \ + missing=""; \ + for i in $(REFERENCE_IMAGES); do \ + echo "" $$REFS "" | grep -sq " $$i " || missing="$$missing $$i" ; \ + done ; \ + if test -n "$$missing"; then \ + echo "*** Error: Sanity check failed"; \ + echo "Some reference files included in the distribution do not exist"; \ + echo "or are not in git. You probably want to add these to git first."; \ + echo "Missing: $$missing"; \ + ret=false; \ + fi >&2; \ + $$ret + +release-verify-sane-tests: check-ref-missing + +.PHONY: check-valgrind test recheck retest html rehtml check-ref-dups check-ref-missing release-verify-sane-tests # 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/test/a1-image-sample-ref.png b/test/a1-image-sample-ref.png Binary files differnew file mode 100644 index 0000000..b4e81eb --- /dev/null +++ b/test/a1-image-sample-ref.png diff --git a/test/a1-image-sample.c b/test/a1-image-sample.c new file mode 100644 index 0000000..2dc4254 --- /dev/null +++ b/test/a1-image-sample.c @@ -0,0 +1,83 @@ +/* + * Copyright © 2008 Red Hat, Inc. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: Carl D. Worth <cworth@cworth.org> + */ + +#include "cairo-test.h" + +static cairo_test_draw_function_t draw; + +#define POINTS 10 +#define STEP (1.0 / POINTS) +#define PAD 1 +#define WIDTH (PAD + POINTS * 2 + PAD) +#define HEIGHT (WIDTH) + +cairo_test_t test = { + "a1-image-sample", + "Test sample position when drawing images with FILTER_NEAREST", + WIDTH, HEIGHT, + draw +}; + +/* A single, black pixel */ +static const uint32_t black_pixel = 0xff000000; + +static cairo_test_status_t +draw (cairo_t *cr, int width, int height) +{ + int i, j; + cairo_surface_t *surface; + + surface = cairo_image_surface_create_for_data ((unsigned char *) &black_pixel, + CAIRO_FORMAT_ARGB32, + 1, 1, 4); + + /* Fill background white */ + cairo_set_source_rgb (cr, 1, 1, 1); + cairo_paint (cr); + + /* Draw in black */ + cairo_set_source_rgb (cr, 0, 0, 0); + + cairo_translate (cr, PAD, PAD); + cairo_set_antialias (cr, CAIRO_ANTIALIAS_NONE); + + for (i = 0; i < POINTS; i++) + for (j = 0; j < POINTS; j++) { + cairo_set_source_surface (cr, surface, + 2 * i + i * STEP, 2 * j + j * STEP); + cairo_pattern_set_filter (cairo_get_source (cr), + CAIRO_FILTER_NEAREST); + cairo_paint (cr); + } + + return CAIRO_TEST_SUCCESS; +} + +int +main (void) +{ + return cairo_test (&test); +} diff --git a/test/a1-traps-sample-ref.png b/test/a1-traps-sample-ref.png Binary files differnew file mode 100644 index 0000000..b4e81eb --- /dev/null +++ b/test/a1-traps-sample-ref.png diff --git a/test/a1-traps-sample.c b/test/a1-traps-sample.c new file mode 100644 index 0000000..1148a8b --- /dev/null +++ b/test/a1-traps-sample.c @@ -0,0 +1,72 @@ +/* + * Copyright © 2008 Red Hat, Inc. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: Carl D. Worth <cworth@cworth.org> + */ + +#include "cairo-test.h" + +static cairo_test_draw_function_t draw; + +#define POINTS 10 +#define STEP (1.0 / POINTS) +#define PAD 1 +#define WIDTH (PAD + POINTS * 2 + PAD) +#define HEIGHT (WIDTH) + +cairo_test_t test = { + "a1-traps-sample", + "Test sample position when drawing trapezoids with ANTIALIAS_NONE", + WIDTH, HEIGHT, + draw +}; + +static cairo_test_status_t +draw (cairo_t *cr, int width, int height) +{ + int i, j; + + /* Fill background white */ + cairo_set_source_rgb (cr, 1, 1, 1); + cairo_paint (cr); + + /* Draw in black */ + cairo_set_source_rgb (cr, 0, 0, 0); + + cairo_translate (cr, PAD, PAD); + cairo_set_antialias (cr, CAIRO_ANTIALIAS_NONE); + + for (i = 0; i < POINTS; i++) + for (j = 0; j < POINTS; j++) { + cairo_rectangle (cr, 2 * i + i * STEP, 2 * j + j * STEP, 1, 1); + cairo_fill (cr); + } + + return CAIRO_TEST_SUCCESS; +} + +int +main (void) +{ + return cairo_test (&test); +} diff --git a/test/a8-mask.c b/test/a8-mask.c index e21b9df..14d4f8f 100644 --- a/test/a8-mask.c +++ b/test/a8-mask.c @@ -20,7 +20,8 @@ * 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> + * Authors: Jeff Muizelaar <jeff@infidigm.net> + * Carl Worth <cworth@cworth.org> */ #include "cairo-test.h" @@ -29,42 +30,142 @@ static cairo_test_draw_function_t draw; cairo_test_t test = { "a8-mask", - "test masks of CAIRO_FORMAT_A8" - "\nimage backend fails because libpixman only handles (stride % sizeof(pixman_bits) == 0)", + "test masks of CAIRO_FORMAT_A8", 8, 8, draw }; -static unsigned char mask[] = { - 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0, - 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0, - 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0, - 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0, - 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0, - 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0, - 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0, - 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0 +#define MASK_WIDTH 8 +#define MASK_HEIGHT 8 + +static unsigned char mask[MASK_WIDTH * MASK_HEIGHT] = { + 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0, 0x0, }; static cairo_test_status_t -draw (cairo_t *cr, int width, int height) +check_status (cairo_status_t status, cairo_status_t expected) +{ + if (status == expected) + return CAIRO_TEST_SUCCESS; + + cairo_test_log ("Error: Expected status value %d (%s), received %d (%s)\n", + expected, + cairo_status_to_string (expected), + status, + cairo_status_to_string (status)); + return CAIRO_TEST_FAILURE; +} + +static cairo_test_status_t +test_surface_with_width_and_stride (int width, int stride, + cairo_status_t expected) +{ + cairo_test_status_t status; + cairo_surface_t *surface; + cairo_t *cr; + unsigned char *data; + + cairo_test_log ("Creating surface with width %d and stride %d\n", + width, stride); + + data = malloc (stride); + + surface = cairo_image_surface_create_for_data (data, CAIRO_FORMAT_A8, + width, 1, stride); + cr = cairo_create (surface); + + cairo_paint (cr); + + status = check_status (cairo_surface_status (surface), expected); + if (status) + return status; + + status = check_status (cairo_status (cr), expected); + if (status) + return status; + + free (data); + + return CAIRO_TEST_SUCCESS; +} + +static cairo_test_status_t +draw (cairo_t *cr, int dst_width, int dst_height) { + int test_width, stride, row; + unsigned char *src, *dst, *mask_aligned; cairo_surface_t *surface; cairo_pattern_t *pattern; + cairo_test_status_t status; + cairo_status_t expected; + + for (test_width = 0; test_width < 40; test_width++) { + stride = cairo_format_stride_for_width (CAIRO_FORMAT_A8, + test_width); + + /* First create a surface using the width as the stride, (most + * of these should fail). */ + expected = (stride == test_width) ? + CAIRO_STATUS_SUCCESS : CAIRO_STATUS_INVALID_STRIDE; - cairo_set_source_rgb (cr, 0, 0, 1); + status = test_surface_with_width_and_stride (test_width, + test_width, + expected); + if (status) + return status; + + /* Then create a surface using the correct stride, (should + always succeed).*/ + status = test_surface_with_width_and_stride (test_width, + stride, + CAIRO_STATUS_SUCCESS); + if (status) + return status; + } + + /* Now test actually drawing through our mask data, allocating and + * copying with the proper stride. */ + stride = cairo_format_stride_for_width (CAIRO_FORMAT_A8, + MASK_WIDTH); + + mask_aligned = malloc (stride * MASK_HEIGHT); + + src = mask; + dst = mask_aligned; + for (row = 0; row < MASK_HEIGHT; row++) { + memcpy (dst, src, MASK_WIDTH); + src += MASK_WIDTH; + dst += stride; + } + + surface = cairo_image_surface_create_for_data (mask, + CAIRO_FORMAT_A8, + MASK_WIDTH, + MASK_HEIGHT, + stride); + + /* Paint background blue */ + cairo_set_source_rgb (cr, 0, 0, 1); /* blue */ cairo_paint (cr); - surface = cairo_image_surface_create_for_data (mask, CAIRO_FORMAT_A8, - 7, 8, 7); + /* Then paint red through our mask */ pattern = cairo_pattern_create_for_surface (surface); - cairo_set_source_rgb (cr, 1, 0, 0); + cairo_set_source_rgb (cr, 1, 0, 0); /* red */ cairo_mask (cr, pattern); cairo_pattern_destroy (pattern); cairo_surface_destroy (surface); + free (mask_aligned); + return CAIRO_TEST_SUCCESS; } diff --git a/test/bitmap-font.c b/test/bitmap-font.c index 2a9754e..a9e4e8b 100644 --- a/test/bitmap-font.c +++ b/test/bitmap-font.c @@ -45,11 +45,44 @@ cairo_test_t test = { draw }; +static cairo_bool_t +font_extents_equal (const cairo_font_extents_t *A, + const cairo_font_extents_t *B) +{ + return + CAIRO_TEST_DOUBLE_EQUALS (A->ascent, B->ascent) && + CAIRO_TEST_DOUBLE_EQUALS (A->descent, B->descent) && + CAIRO_TEST_DOUBLE_EQUALS (A->height, B->height) && + CAIRO_TEST_DOUBLE_EQUALS (A->max_x_advance, B->max_x_advance) && + CAIRO_TEST_DOUBLE_EQUALS (A->max_y_advance, B->max_y_advance); +} + +static cairo_test_status_t +check_font_extents (cairo_t *cr, const char *comment) +{ + cairo_font_extents_t font_extents, ref_font_extents = {11, 2, 13, 6, 0}; + + memset (&font_extents, 0xff, sizeof (cairo_font_extents_t)); + cairo_font_extents (cr, &font_extents); + if (! font_extents_equal (&font_extents, &ref_font_extents)) { + cairo_test_log ("Error: %s: cairo_font_extents(); extents (%g, %g, %g, %g, %g)\n", + comment, + font_extents.ascent, font_extents.descent, + font_extents.height, + font_extents.max_x_advance, font_extents.max_y_advance); + return CAIRO_TEST_FAILURE; + } + + return CAIRO_TEST_SUCCESS; +} + static cairo_test_status_t draw (cairo_t *cr, int width, int height) { FcPattern *pattern; cairo_font_face_t *font_face; + cairo_font_extents_t font_extents; + cairo_font_options_t *font_options; cairo_status_t status; const char *srcdir = getenv ("srcdir"); char *filename; @@ -92,12 +125,44 @@ draw (cairo_t *cr, int width, int height) cairo_set_font_face (cr, font_face); +#define CHECK_FONT_EXTENTS(comment) if (check_font_extents (cr, (comment)) != CAIRO_TEST_SUCCESS) return CAIRO_TEST_FAILURE + + cairo_font_extents (cr, &font_extents); + CHECK_FONT_EXTENTS ("default"); + FcPatternDestroy (pattern); cairo_font_face_destroy (font_face); - cairo_move_to (cr, 1, TEXT_SIZE - 3); + font_options = cairo_font_options_create (); + + cairo_font_options_set_hint_metrics (font_options, CAIRO_HINT_METRICS_ON); + cairo_set_font_options (cr, font_options); + + CHECK_FONT_EXTENTS ("HINT_METRICS_ON"); + + cairo_move_to (cr, 1, font_extents.ascent - 1); cairo_set_source_rgb (cr, 0.0, 0.0, 1.0); /* blue */ - cairo_show_text (cr, "the quick brown fox"); + + + cairo_font_options_set_hint_style (font_options, CAIRO_HINT_STYLE_NONE); + cairo_set_font_options (cr, font_options); + CHECK_FONT_EXTENTS ("HINT_METRICS_ON HINT_STYLE_NONE"); + cairo_show_text (cr, "the "); + + cairo_font_options_set_hint_style (font_options, CAIRO_HINT_STYLE_SLIGHT); + cairo_set_font_options (cr, font_options); + CHECK_FONT_EXTENTS ("HINT_METRICS_ON HINT_STYLE_SLIGHT"); + cairo_show_text (cr, "quick "); + + cairo_font_options_set_hint_style (font_options, CAIRO_HINT_STYLE_MEDIUM); + cairo_set_font_options (cr, font_options); + CHECK_FONT_EXTENTS ("HINT_METRICS_ON HINT_STYLE_MEDIUM"); + cairo_show_text (cr, "brown"); + + cairo_font_options_set_hint_style (font_options, CAIRO_HINT_STYLE_FULL); + cairo_set_font_options (cr, font_options); + CHECK_FONT_EXTENTS ("HINT_METRICS_ON HINT_STYLE_FULL"); + cairo_show_text (cr, " fox"); /* Switch from show_text to text_path/fill to exercise bug #7889 */ cairo_text_path (cr, " jumps over a lazy dog"); @@ -105,13 +170,35 @@ draw (cairo_t *cr, int width, int height) /* And test it rotated as well for the sake of bug #7888 */ - /* XXX: The math for the vertical positioning here is all wrong, - * but it is landing where I want it. Someone who understands - * fonts at all should fix this. */ - cairo_move_to (cr, width -1, 2 * (TEXT_SIZE - 5)); + cairo_translate (cr, width, height); cairo_rotate (cr, M_PI); - cairo_show_text (cr, "the quick"); - cairo_show_text (cr, " brown fox"); + + cairo_font_options_set_hint_style (font_options, CAIRO_HINT_STYLE_DEFAULT); + cairo_font_options_set_hint_metrics (font_options, CAIRO_HINT_METRICS_OFF); + cairo_set_font_options (cr, font_options); + CHECK_FONT_EXTENTS ("HINT_METRICS_OFF"); + + cairo_move_to (cr, 1, font_extents.height - font_extents.descent - 1); + + cairo_font_options_set_hint_style (font_options, CAIRO_HINT_STYLE_NONE); + cairo_set_font_options (cr, font_options); + CHECK_FONT_EXTENTS ("HINT_METRICS_OFF HINT_STYLE_NONE"); + cairo_show_text (cr, "the "); + + cairo_font_options_set_hint_style (font_options, CAIRO_HINT_STYLE_SLIGHT); + cairo_set_font_options (cr, font_options); + CHECK_FONT_EXTENTS ("HINT_METRICS_OFF HINT_STYLE_SLIGHT"); + cairo_show_text (cr, "quick"); + + cairo_font_options_set_hint_style (font_options, CAIRO_HINT_STYLE_MEDIUM); + cairo_set_font_options (cr, font_options); + CHECK_FONT_EXTENTS ("HINT_METRICS_OFF HINT_STYLE_MEDIUM"); + cairo_show_text (cr, " brown"); + + cairo_font_options_set_hint_style (font_options, CAIRO_HINT_STYLE_FULL); + cairo_set_font_options (cr, font_options); + CHECK_FONT_EXTENTS ("HINT_METRICS_OFF HINT_STYLE_FULL"); + cairo_show_text (cr, " fox"); cairo_text_path (cr, " jumps over"); cairo_text_path (cr, " a lazy dog"); diff --git a/test/cairo-test.c b/test/cairo-test.c index 8fbd5e3..61cbb31 100644 --- a/test/cairo-test.c +++ b/test/cairo-test.c @@ -79,6 +79,8 @@ static const char *vector_ignored_tests[] = { /* We can't match the results of tests that depend on * CAIRO_ANTIALIAS_NONE/SUBPIXEL for vector backends * (nor do we care). */ + "a1-image-sample", + "a1-traps-sample", "ft-text-antialias-none", "rectangle-rounding-error", "text-antialias-gray", @@ -701,8 +703,6 @@ cairo_test_create_surface_from_png (const char *filename) image = cairo_image_surface_create_from_png (srcdir_filename); free (srcdir_filename); } - if (cairo_surface_status(image)) - return NULL; } return image; diff --git a/test/cairo-test.h b/test/cairo-test.h index d7ed3a7..6b6b373 100644 --- a/test/cairo-test.h +++ b/test/cairo-test.h @@ -133,6 +133,8 @@ cairo_test_create_pattern_from_png (const char *filename); cairo_status_t cairo_test_paint_checkered (cairo_t *cr); +#define CAIRO_TEST_DOUBLE_EQUALS(a,b) (fabs((a)-(b)) < 0.00001) + CAIRO_END_DECLS #endif diff --git a/test/dash-curve-ref.png b/test/dash-curve-ref.png Binary files differnew file mode 100644 index 0000000..542b2d8 --- /dev/null +++ b/test/dash-curve-ref.png diff --git a/test/dash-curve.c b/test/dash-curve.c new file mode 100644 index 0000000..48f5c12 --- /dev/null +++ b/test/dash-curve.c @@ -0,0 +1,74 @@ +/* + * Copyright © 2007 Jeff Smith + * + * 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 Smith not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior + * permission. Jeff Smith makes no representations about the + * suitability of this software for any purpose. It is provided "as + * is" without express or implied warranty. + * + * JEFF SMITH DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS, IN NO EVENT SHALL JEFF SMITH 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 Smith <whydoubt@yahoo.com> + */ + +#include "cairo-test.h" + +static cairo_test_draw_function_t draw; + +cairo_test_t test = { + "dash-curve", + "Tries to explore the state space of the dashing code along curves", + 25*60, 4*60, + draw +}; + +static cairo_test_status_t +draw (cairo_t *cr, int width, int height) +{ + double dashes[2] = {20, 20}; + int a=0, b=0, c=0; + + cairo_set_source_rgb (cr, 0, 0, 0); + cairo_paint (cr); + + for (a=0; a<4; a++) + for (b=0; b<5; b++) + for (c=0; c<5; c++) { + cairo_move_to (cr, ((b*5)+c)*60+10, a*60+10); + cairo_rel_curve_to (cr, + 0, b*10, + 0, b*10, + c*10, b*10); + + cairo_set_source_rgb (cr, 1, 1, 1); + cairo_set_line_width (cr, 8); + cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND); + cairo_set_dash (cr, dashes, 2, a*10); + cairo_stroke_preserve (cr); + + cairo_set_source_rgb (cr, 0, 0.5, 1); + cairo_set_line_width (cr, 2); + cairo_set_line_cap (cr, CAIRO_LINE_CAP_BUTT); + cairo_set_dash (cr, 0, 0, 0); + cairo_stroke (cr); + } + return CAIRO_TEST_SUCCESS; +} + +int +main (void) +{ + return cairo_test (&test); +} diff --git a/test/extend-reflect-similar-ref.png b/test/extend-reflect-similar-ref.png Binary files differnew file mode 100644 index 0000000..93a8b00 --- /dev/null +++ b/test/extend-reflect-similar-ref.png diff --git a/test/extend-reflect-similar.c b/test/extend-reflect-similar.c new file mode 100644 index 0000000..1ff4039 --- /dev/null +++ b/test/extend-reflect-similar.c @@ -0,0 +1,56 @@ +#include "cairo-test.h" + +const char png_filename[] = "romedalen.png"; + +static cairo_test_draw_function_t draw; + +cairo_test_t test = { + "extend-reflect-similar", + "Test CAIRO_EXTEND_REFLECT for surface patterns", + 256 + 32*2, 192 + 32*2, + draw +}; + +static cairo_surface_t * +clone_similar_surface (cairo_surface_t * target, cairo_surface_t *surface) +{ + cairo_t *cr; + cairo_surface_t *similar; + + similar = cairo_surface_create_similar (target, + cairo_surface_get_content (surface), + cairo_image_surface_get_width (surface), + cairo_image_surface_get_height (surface)); + cr = cairo_create (similar); + cairo_set_source_surface (cr, surface, 0, 0); + cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE); + cairo_paint (cr); + cairo_destroy (cr); + + return similar; +} + +static cairo_test_status_t +draw (cairo_t *cr, int width, int height) +{ + cairo_surface_t *surface; + cairo_surface_t *similar; + + surface = cairo_test_create_surface_from_png (png_filename); + similar = clone_similar_surface (cairo_get_group_target (cr), surface); + cairo_set_source_surface (cr, similar, 32, 32); + cairo_pattern_set_extend (cairo_get_source (cr), CAIRO_EXTEND_REFLECT); + + cairo_paint (cr); + + cairo_surface_destroy (similar); + cairo_surface_destroy (surface); + + return CAIRO_TEST_SUCCESS; +} + +int +main (void) +{ + return cairo_test (&test); +} diff --git a/test/extend-reflect.c b/test/extend-reflect.c index e23c8f6..e9d07cc 100644 --- a/test/extend-reflect.c +++ b/test/extend-reflect.c @@ -24,6 +24,8 @@ draw (cairo_t *cr, int width, int height) cairo_paint (cr); + cairo_surface_destroy (surface); + return CAIRO_TEST_SUCCESS; } diff --git a/test/extend-repeat-ref.png b/test/extend-repeat-ref.png Binary files differnew file mode 100644 index 0000000..ee2527f --- /dev/null +++ b/test/extend-repeat-ref.png diff --git a/test/extend-repeat-similar-ref.png b/test/extend-repeat-similar-ref.png Binary files differnew file mode 100644 index 0000000..ee2527f --- /dev/null +++ b/test/extend-repeat-similar-ref.png diff --git a/test/extend-repeat-similar.c b/test/extend-repeat-similar.c new file mode 100644 index 0000000..1a14125 --- /dev/null +++ b/test/extend-repeat-similar.c @@ -0,0 +1,56 @@ +#include "cairo-test.h" + +const char png_filename[] = "romedalen.png"; + +static cairo_test_draw_function_t draw; + +cairo_test_t test = { + "extend-repeat-similar", + "Test CAIRO_EXTEND_REPEAT for surface patterns", + 256 + 32*2, 192 + 32*2, + draw +}; + +static cairo_surface_t * +clone_similar_surface (cairo_surface_t * target, cairo_surface_t *surface) +{ + cairo_t *cr; + cairo_surface_t *similar; + + similar = cairo_surface_create_similar (target, + cairo_surface_get_content (surface), + cairo_image_surface_get_width (surface), + cairo_image_surface_get_height (surface)); + cr = cairo_create (similar); + cairo_set_source_surface (cr, surface, 0, 0); + cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE); + cairo_paint (cr); + cairo_destroy (cr); + + return similar; +} + +static cairo_test_status_t +draw (cairo_t *cr, int width, int height) +{ + cairo_surface_t *surface; + cairo_surface_t *similar; + + surface = cairo_test_create_surface_from_png (png_filename); + similar = clone_similar_surface (cairo_get_group_target (cr), surface); + cairo_set_source_surface (cr, similar, 32, 32); + cairo_pattern_set_extend (cairo_get_source (cr), CAIRO_EXTEND_REPEAT); + + cairo_paint (cr); + + cairo_surface_destroy (similar); + cairo_surface_destroy (surface); + + return CAIRO_TEST_SUCCESS; +} + +int +main (void) +{ + return cairo_test (&test); +} diff --git a/test/extend-repeat.c b/test/extend-repeat.c new file mode 100644 index 0000000..351b63b --- /dev/null +++ b/test/extend-repeat.c @@ -0,0 +1,34 @@ +#include "cairo-test.h" + +const char png_filename[] = "romedalen.png"; + +static cairo_test_draw_function_t draw; + +cairo_test_t test = { + "extend-repeat", + "Test CAIRO_EXTEND_REPEAT for surface patterns", + 256 + 32*2, 192 + 32*2, + draw +}; + +static cairo_test_status_t +draw (cairo_t *cr, int width, int height) +{ + cairo_surface_t *surface; + + surface = cairo_test_create_surface_from_png (png_filename); + cairo_set_source_surface (cr, surface, 32, 32); + cairo_pattern_set_extend (cairo_get_source (cr), CAIRO_EXTEND_REPEAT); + + cairo_paint (cr); + + cairo_surface_destroy (surface); + + return CAIRO_TEST_SUCCESS; +} + +int +main (void) +{ + return cairo_test (&test); +} diff --git a/test/fill-rule-ps-rgb24-ref.png b/test/fill-rule-ps-rgb24-ref.png Binary files differnew file mode 100644 index 0000000..8e1efc2 --- /dev/null +++ b/test/fill-rule-ps-rgb24-ref.png diff --git a/test/font-matrix-translation.c b/test/font-matrix-translation.c index 067cbb5..06b407d 100644 --- a/test/font-matrix-translation.c +++ b/test/font-matrix-translation.c @@ -38,15 +38,44 @@ cairo_test_t test = { draw }; -static void +static cairo_bool_t +text_extents_equal (const cairo_text_extents_t *A, + const cairo_text_extents_t *B) +{ + return A->x_bearing == B->x_bearing && + A->y_bearing == B->y_bearing && + A->width == B->width && + A->height == B->height && + A->x_advance == B->x_advance && + A->y_advance == B->y_advance; +} + +static cairo_test_status_t box_text (cairo_t *cr, const char *utf8, double x, double y) { double line_width; - cairo_text_extents_t extents; + cairo_text_extents_t extents = {}, scaled_extents = {}; + cairo_scaled_font_t *scaled_font; cairo_save (cr); cairo_text_extents (cr, utf8, &extents); + + scaled_font = cairo_get_scaled_font (cr); + cairo_scaled_font_text_extents (scaled_font, TEXT, &scaled_extents); + if (! text_extents_equal (&extents, &scaled_extents)) { + cairo_test_log ("Error: extents differ when they shouldn't:\n" + "cairo_text_extents(); extents (%g, %g, %g, %g, %g, %g)\n" + "cairo_scaled_font_text_extents(); extents (%g, %g, %g, %g, %g, %g)\n", + extents.x_bearing, extents.y_bearing, + extents.width, extents.height, + extents.x_advance, extents.y_advance, + scaled_extents.x_bearing, scaled_extents.y_bearing, + scaled_extents.width, scaled_extents.height, + scaled_extents.x_advance, scaled_extents.y_advance); + return CAIRO_TEST_FAILURE; + } + line_width = cairo_get_line_width (cr); cairo_rectangle (cr, x + extents.x_bearing - line_width / 2, @@ -59,11 +88,14 @@ box_text (cairo_t *cr, const char *utf8, double x, double y) cairo_show_text (cr, utf8); cairo_restore (cr); + + return CAIRO_TEST_SUCCESS; } static cairo_test_status_t draw (cairo_t *cr, int width, int height) { + cairo_test_status_t status; cairo_text_extents_t extents; cairo_matrix_t matrix; @@ -82,7 +114,9 @@ draw (cairo_t *cr, int width, int height) /* Draw text and bounding box */ cairo_set_source_rgb (cr, 0, 0, 0); /* black */ - box_text (cr, TEXT, 0, - extents.y_bearing); + status = box_text (cr, TEXT, 0, - extents.y_bearing); + if (status) + return status; /* Then draw again with the same coordinates, but with a font * matrix to position the text below and shifted a bit to the @@ -92,7 +126,9 @@ draw (cairo_t *cr, int width, int height) cairo_set_font_matrix (cr, &matrix); cairo_set_source_rgb (cr, 0, 0, 1); /* blue */ - box_text (cr, TEXT, 0, - extents.y_bearing); + status = box_text (cr, TEXT, 0, - extents.y_bearing); + if (status) + return status; return CAIRO_TEST_SUCCESS; } diff --git a/test/font-options.c b/test/font-options.c new file mode 100644 index 0000000..fdcde15 --- /dev/null +++ b/test/font-options.c @@ -0,0 +1,91 @@ +/* + * Copyright © 2008 Chris Wilson + * + * 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 + * Chris Wilson not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior + * permission. Chris Wilson makes no representations about the + * suitability of this software for any purpose. It is provided "as + * is" without express or implied warranty. + * + * CHRIS WILSON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS, IN NO EVENT SHALL CHRIS WILSON 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: Chris Wilson <chris@chris-wilson.co.uk> + */ + +#include <cairo.h> +#include <assert.h> +#include <stdlib.h> + +int +main (void) +{ + cairo_font_options_t *options1; + cairo_font_options_t *options2; + cairo_surface_t *surface; + cairo_matrix_t identity; + cairo_t *cr; + cairo_scaled_font_t *scaled_font; + + /* first check NULL handling of cairo_font_options_t */ + options1 = cairo_font_options_create (); + options2 = cairo_font_options_copy (NULL); + + assert (cairo_font_options_equal (options1, options2)); + assert (cairo_font_options_equal (NULL, options2)); + assert (cairo_font_options_equal (options1, NULL)); + + assert (cairo_font_options_hash (options1) == cairo_font_options_hash (options2)); + assert (cairo_font_options_hash (NULL) == cairo_font_options_hash (options2)); + assert (cairo_font_options_hash (options1) == cairo_font_options_hash (NULL)); + + cairo_font_options_merge (NULL, NULL); + cairo_font_options_merge (options1, NULL); + cairo_font_options_merge (options1, options2); + + cairo_font_options_destroy (NULL); + cairo_font_options_destroy (options1); + cairo_font_options_destroy (options2); + + cairo_font_options_set_antialias (NULL, CAIRO_ANTIALIAS_DEFAULT); + cairo_font_options_get_antialias (NULL); + + cairo_font_options_set_subpixel_order (NULL, CAIRO_SUBPIXEL_ORDER_DEFAULT); + cairo_font_options_get_subpixel_order (NULL); + + cairo_font_options_set_hint_style (NULL, CAIRO_HINT_STYLE_DEFAULT); + cairo_font_options_get_hint_style (NULL); + + cairo_font_options_set_hint_metrics (NULL, CAIRO_HINT_METRICS_DEFAULT); + cairo_font_options_get_hint_metrics (NULL); + + /* Now try creating fonts with NULLs */ + surface = cairo_image_surface_create (CAIRO_FORMAT_RGB24, 0, 0); + cr = cairo_create (surface); + cairo_surface_destroy (surface); + + cairo_matrix_init_identity (&identity); + scaled_font = cairo_scaled_font_create (cairo_get_font_face (cr), + &identity, &identity, + NULL); + assert (cairo_scaled_font_status (scaled_font) == CAIRO_STATUS_SUCCESS); + cairo_scaled_font_get_font_options (scaled_font, NULL); + cairo_scaled_font_destroy (scaled_font); + + cairo_set_font_options (cr, NULL); + cairo_get_font_options (cr, NULL); + + cairo_destroy (cr); + + return 0; +} diff --git a/test/get-path-extents.c b/test/get-path-extents.c index 917039e..12901fd 100644 --- a/test/get-path-extents.c +++ b/test/get-path-extents.c @@ -36,7 +36,7 @@ cairo_test_t test = { draw }; -enum ExtentsType { FILL, STROKE }; +enum ExtentsType { FILL, STROKE, PATH }; enum Relation { EQUALS, APPROX_EQUALS, CONTAINS }; @@ -59,6 +59,10 @@ check_extents (const char *message, cairo_t *cr, enum ExtentsType type, type_string = "stroke"; cairo_stroke_extents (cr, &ext_x1, &ext_y1, &ext_x2, &ext_y2); break; + case PATH: + type_string = "path"; + cairo_path_extents (cr, &ext_x1, &ext_y1, &ext_x2, &ext_y2); + break; } /* let empty rects match */ @@ -102,7 +106,8 @@ draw (cairo_t *cr, int width, int height) cairo_surface_t *surface; cairo_t *cr2; const char *phase; - cairo_text_extents_t extents; + const char string[] = "The quick brown fox jumps over the lazy dog."; + cairo_text_extents_t extents, scaled_font_extents; cairo_test_status_t ret = CAIRO_TEST_SUCCESS; surface = cairo_surface_create_similar (cairo_get_group_target (cr), @@ -118,9 +123,77 @@ draw (cairo_t *cr, int width, int height) phase = "No path"; if (!check_extents (phase, cr2, FILL, EQUALS, 0, 0, 0, 0) || - !check_extents (phase, cr2, STROKE, EQUALS, 0, 0, 0, 0)) + !check_extents (phase, cr2, STROKE, EQUALS, 0, 0, 0, 0) || + !check_extents (phase, cr2, PATH, EQUALS, 0, 0, 0, 0)) + ret = CAIRO_TEST_FAILURE; + + cairo_save (cr2); + + cairo_new_path (cr2); + cairo_move_to (cr2, 200, 400); + cairo_rel_line_to (cr2, 0., 0.); + phase = "Degenerate line"; + if (!check_extents (phase, cr2, FILL, EQUALS, 0, 0, 0, 0) || + !check_extents (phase, cr2, STROKE, EQUALS, 0, 0, 0, 0) || + !check_extents (phase, cr2, PATH, EQUALS, 200, 400, 0, 0)) + ret = CAIRO_TEST_FAILURE; + + cairo_new_path (cr2); + cairo_move_to (cr2, 200, 400); + cairo_rel_curve_to (cr2, 0., 0., 0., 0., 0., 0.); + phase = "Degenerate curve"; + if (!check_extents (phase, cr2, FILL, EQUALS, 0, 0, 0, 0) || + !check_extents (phase, cr2, STROKE, EQUALS, 0, 0, 0, 0) || + !check_extents (phase, cr2, PATH, EQUALS, 200, 400, 0, 0)) + ret = CAIRO_TEST_FAILURE; + + cairo_new_path (cr2); + cairo_arc (cr2, 200, 400, 0., 0, 2 * M_PI); + phase = "Degenerate arc (R=0)"; + if (!check_extents (phase, cr2, FILL, EQUALS, 0, 0, 0, 0) || + !check_extents (phase, cr2, STROKE, EQUALS, 0, 0, 0, 0) || + !check_extents (phase, cr2, PATH, EQUALS, 200, 400, 0, 0)) ret = CAIRO_TEST_FAILURE; + cairo_new_path (cr2); + cairo_arc (cr2, 200, 400, 10., 0, 0); + phase = "Degenerate arc (Θ=0)"; + if (!check_extents (phase, cr2, FILL, EQUALS, 0, 0, 0, 0) || + !check_extents (phase, cr2, STROKE, EQUALS, 0, 0, 0, 0) || + !check_extents (phase, cr2, PATH, EQUALS, 200, 400, 0, 0)) + ret = CAIRO_TEST_FAILURE; + + cairo_new_path (cr2); + cairo_restore (cr2); + + /* Test that with CAIRO_LINE_CAP_ROUND, we get "dots" from + * cairo_move_to; cairo_rel_line_to(0,0) */ + cairo_save (cr2); + + cairo_set_line_cap (cr2, CAIRO_LINE_CAP_ROUND); + cairo_set_line_width (cr2, 20); + + cairo_move_to (cr2, 200, 400); + cairo_rel_line_to (cr2, 0, 0); + phase = "Single 'dot'"; + if (!check_extents (phase, cr2, FILL, EQUALS, 0, 0, 0, 0) || + !check_extents (phase, cr2, STROKE, EQUALS, 190, 390, 20, 20) || + !check_extents (phase, cr2, PATH, EQUALS, 200, 400, 0, 0)) + ret = CAIRO_TEST_FAILURE; + + /* Add another dot without starting a new path */ + cairo_move_to (cr2, 100, 500); + cairo_rel_line_to (cr2, 0, 0); + phase = "Multiple 'dots'"; + if (!check_extents (phase, cr2, FILL, EQUALS, 0, 0, 0, 0) || + !check_extents (phase, cr2, STROKE, EQUALS, 90, 390, 120, 120) || + !check_extents (phase, cr2, PATH, EQUALS, 100, 400, 100, 100)) + ret = CAIRO_TEST_FAILURE; + + cairo_new_path (cr2); + + cairo_restore (cr2); + /* http://bugs.freedesktop.org/show_bug.cgi?id=7965 */ phase = "A vertical, open path"; cairo_save (cr2); @@ -129,7 +202,8 @@ draw (cairo_t *cr, int width, int height) cairo_move_to (cr2, 0, 180); cairo_line_to (cr2, 750, 180); if (!check_extents (phase, cr2, FILL, EQUALS, 0, 0, 0, 0) || - !check_extents (phase, cr2, STROKE, EQUALS, -5, 175, 760, 10)) + !check_extents (phase, cr2, STROKE, EQUALS, -5, 175, 760, 10) || + !check_extents (phase, cr2, PATH, EQUALS, 0, 180, 755, 0)) ret = CAIRO_TEST_FAILURE; cairo_new_path (cr2); cairo_restore (cr2); @@ -138,7 +212,8 @@ draw (cairo_t *cr, int width, int height) cairo_save (cr2); cairo_rectangle (cr2, 10, 10, 80, 80); if (!check_extents (phase, cr2, FILL, EQUALS, 10, 10, 80, 80) || - !check_extents (phase, cr2, STROKE, EQUALS, 5, 5, 90, 90)) + !check_extents (phase, cr2, STROKE, EQUALS, 5, 5, 90, 90) || + !check_extents (phase, cr2, PATH, EQUALS, 10, 10, 80, 80)) ret = CAIRO_TEST_FAILURE; cairo_new_path (cr2); cairo_restore (cr2); @@ -148,7 +223,8 @@ draw (cairo_t *cr, int width, int height) cairo_rectangle (cr2, 10, 10, 10, 10); cairo_rectangle (cr2, 20, 20, 10, 10); if (!check_extents (phase, cr2, FILL, EQUALS, 10, 10, 20, 20) || - !check_extents (phase, cr2, STROKE, EQUALS, 5, 5, 30, 30)) + !check_extents (phase, cr2, STROKE, EQUALS, 5, 5, 30, 30) || + !check_extents (phase, cr2, PATH, EQUALS, 10, 10, 20, 20)) ret = CAIRO_TEST_FAILURE; cairo_new_path (cr2); cairo_restore (cr2); @@ -162,11 +238,61 @@ draw (cairo_t *cr, int width, int height) /* miter joins protrude 5*(1+sqrt(2)) above the top-left corner and to the right of the bottom-right corner */ if (!check_extents (phase, cr2, FILL, EQUALS, 10, 10, 80, 80) || - !check_extents (phase, cr2, STROKE, CONTAINS, 0, 5, 95, 95)) + !check_extents (phase, cr2, STROKE, CONTAINS, 0, 5, 95, 95) || + !check_extents (phase, cr2, PATH, CONTAINS, 10, 10, 80, 80)) ret = CAIRO_TEST_FAILURE; cairo_new_path (cr2); cairo_restore (cr2); + cairo_save (cr2); + + cairo_set_line_width (cr2, 4); + + cairo_rectangle (cr2, 10, 10, 30, 30); + cairo_rectangle (cr2, 25, 10, 15, 30); + + cairo_set_fill_rule (cr2, CAIRO_FILL_RULE_EVEN_ODD); + phase = "EVEN_ODD overlapping rectangles"; + if (!check_extents (phase, cr2, FILL, EQUALS, 10, 10, 15, 30) || + !check_extents (phase, cr2, STROKE, EQUALS, 8, 8, 34, 34) || + !check_extents (phase, cr2, PATH, EQUALS, 10, 10, 30, 30)) + ret = CAIRO_TEST_FAILURE; + + /* Test other fill rule with the same path. */ + + cairo_set_fill_rule (cr2, CAIRO_FILL_RULE_WINDING); + phase = "WINDING overlapping rectangles"; + if (!check_extents (phase, cr2, FILL, EQUALS, 10, 10, 30, 30) || + !check_extents (phase, cr2, STROKE, EQUALS, 8, 8, 34, 34) || + !check_extents (phase, cr2, PATH, EQUALS, 10, 10, 30, 30)) + ret = CAIRO_TEST_FAILURE; + + /* Now, change the direction of the second rectangle and test both + * fill rules again. */ + cairo_new_path (cr2); + cairo_rectangle (cr2, 10, 10, 30, 30); + cairo_rectangle (cr2, 25, 40, 15, -30); + + cairo_set_fill_rule (cr2, CAIRO_FILL_RULE_EVEN_ODD); + phase = "EVEN_ODD overlapping rectangles"; + if (!check_extents (phase, cr2, FILL, EQUALS, 10, 10, 15, 30) || + !check_extents (phase, cr2, STROKE, EQUALS, 8, 8, 34, 34) || + !check_extents (phase, cr2, PATH, EQUALS, 10, 10, 30, 30)) + ret = CAIRO_TEST_FAILURE; + + /* Test other fill rule with the same path. */ + + cairo_set_fill_rule (cr2, CAIRO_FILL_RULE_WINDING); + phase = "WINDING overlapping rectangles"; + if (!check_extents (phase, cr2, FILL, EQUALS, 10, 10, 15, 30) || + !check_extents (phase, cr2, STROKE, EQUALS, 8, 8, 34, 34) || + !check_extents (phase, cr2, PATH, EQUALS, 10, 10, 30, 30)) + ret = CAIRO_TEST_FAILURE; + + cairo_new_path (cr2); + + cairo_restore (cr2); + /* http://bugs.freedesktop.org/show_bug.cgi?id=7245 */ phase = "Arc"; cairo_save (cr2); @@ -179,16 +305,35 @@ draw (cairo_t *cr, int width, int height) phase = "Text"; cairo_save (cr2); + cairo_set_tolerance (cr2, 100.0); cairo_select_font_face (cr2, "Bitstream Vera Sans", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL); cairo_set_font_size (cr2, 12); - cairo_text_extents (cr2, "The quick brown fox jumped over the lazy dog.", &extents); + cairo_text_extents (cr2, string, &extents); + /* double check that the two methods of measuring the text agree... */ + cairo_scaled_font_text_extents (cairo_get_scaled_font (cr2), + string, + &scaled_font_extents); + if (memcmp (&extents, &scaled_font_extents, sizeof (extents))) { + cairo_test_log ("Error: cairo_text_extents() does not match cairo_scaled_font_text_extents() - font extents (%f, %f) x (%f, %f) should be (%f, %f) x (%f, %f)\n", + scaled_font_extents.x_bearing, + scaled_font_extents.y_bearing, + scaled_font_extents.width, + scaled_font_extents.height, + extents.x_bearing, + extents.y_bearing, + extents.width, + extents.height); + ret = CAIRO_TEST_FAILURE; + } + cairo_move_to (cr2, -extents.x_bearing, -extents.y_bearing); - cairo_text_path (cr2, "The quick brown fox jumped over the lazy dog."); + cairo_text_path (cr2, string); cairo_set_line_width (cr2, 2.0); if (!check_extents (phase, cr2, FILL, EQUALS, 0, 0, extents.width, extents.height) || - !check_extents (phase, cr2, STROKE, EQUALS, -1, -1, extents.width+2, extents.height+2)) + !check_extents (phase, cr2, STROKE, EQUALS, -1, -1, extents.width+2, extents.height+2) || + !check_extents (phase, cr2, PATH, EQUALS, 0, 0, extents.width, extents.height)) ret = CAIRO_TEST_FAILURE; cairo_new_path (cr2); cairo_restore (cr2); @@ -198,7 +343,8 @@ draw (cairo_t *cr, int width, int height) cairo_scale (cr2, 2, 2); cairo_rectangle (cr2, 5, 5, 40, 40); if (!check_extents (phase, cr2, FILL, EQUALS, 5, 5, 40, 40) || - !check_extents (phase, cr2, STROKE, EQUALS, 0, 0, 50, 50)) + !check_extents (phase, cr2, STROKE, EQUALS, 0, 0, 50, 50) || + !check_extents (phase, cr2, PATH, EQUALS, 5, 5, 40, 40)) ret = CAIRO_TEST_FAILURE; cairo_new_path (cr2); cairo_restore (cr2); @@ -210,7 +356,8 @@ draw (cairo_t *cr, int width, int height) cairo_rectangle (cr2, 5, 5, 40, 40); cairo_restore (cr2); if (!check_extents (phase, cr2, FILL, EQUALS, 10, 10, 80, 80) || - !check_extents (phase, cr2, STROKE, EQUALS, 5, 5, 90, 90)) + !check_extents (phase, cr2, STROKE, EQUALS, 5, 5, 90, 90) || + !check_extents (phase, cr2, PATH, EQUALS, 10, 10, 80, 80)) ret = CAIRO_TEST_FAILURE; cairo_new_path (cr2); cairo_restore (cr2); @@ -229,7 +376,8 @@ draw (cairo_t *cr, int width, int height) the largest axis-aligned square is a bit over 38 on either side of the axes. */ if (!check_extents (phase, cr2, FILL, CONTAINS, -35, -35, 35, 35) || - !check_extents (phase, cr2, STROKE, CONTAINS, -38, -38, 38, 38)) + !check_extents (phase, cr2, STROKE, CONTAINS, -38, -38, 38, 38) || + !check_extents (phase, cr2, PATH, CONTAINS, -35, -35, 35, 35)) ret = CAIRO_TEST_FAILURE; cairo_new_path (cr2); cairo_restore (cr2); diff --git a/test/get-xrender-format.c b/test/get-xrender-format.c new file mode 100644 index 0000000..0c9ce9a --- /dev/null +++ b/test/get-xrender-format.c @@ -0,0 +1,115 @@ +/* + * Copyright © 2008 Red Hat, Inc. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: Carl D. Worth <cworth@cworth.org> + */ + +#include "cairo-test.h" + +#include "cairo-xlib.h" +#include "cairo-xlib-xrender.h" + +#include "cairo-boilerplate-xlib.h" + +int +main (void) +{ + Display *dpy; + XRenderPictFormat *orig_format, *format; + cairo_surface_t *surface; + Pixmap pixmap; + int screen; + + cairo_test_init ("get-xrender-format"); + + dpy = XOpenDisplay (NULL); + if (! dpy) { + cairo_test_log ("Error: Cannot open display: %s.\n", + XDisplayName (NULL)); + cairo_test_fini (); + return CAIRO_TEST_UNTESTED; + } + + screen = DefaultScreen (dpy); + + cairo_test_log ("Testing with image surface.\n"); + + surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 1, 1); + + format = cairo_xlib_surface_get_xrender_format (surface); + if (format != NULL) { + cairo_test_log ("Error: expected NULL for image surface\n"); + return CAIRO_TEST_FAILURE; + } + + cairo_surface_destroy (surface); + + cairo_test_log ("Testing with non-xrender xlib surface.\n"); + + pixmap = XCreatePixmap (dpy, DefaultRootWindow (dpy), + 1, 1, DefaultDepth (dpy, screen)); + surface = cairo_xlib_surface_create (dpy, pixmap, + DefaultVisual (dpy, screen), + 1, 1); + orig_format = XRenderFindVisualFormat (dpy, DefaultVisual (dpy, screen)); + format = cairo_xlib_surface_get_xrender_format (surface); + if (format != orig_format) { + cairo_test_log ("Error: did not receive the same format as XRenderFindVisualFormat\n"); + return CAIRO_TEST_FAILURE; + } + cairo_surface_destroy (surface); + XFreePixmap (dpy, pixmap); + + cairo_test_log ("Testing with xlib xrender surface.\n"); + + orig_format = XRenderFindStandardFormat (dpy, PictStandardARGB32); + pixmap = XCreatePixmap (dpy, DefaultRootWindow (dpy), + 1, 1, 32); + surface = cairo_xlib_surface_create_with_xrender_format (dpy, + pixmap, + DefaultScreenOfDisplay (dpy), + orig_format, + 1, 1); + format = cairo_xlib_surface_get_xrender_format (surface); + if (format != orig_format) { + cairo_test_log ("Error: did not receive the same format originally set\n"); + return CAIRO_TEST_FAILURE; + } + + cairo_test_log ("Testing without the X Render extension.\n"); + + cairo_boilerplate_xlib_surface_disable_render (surface); + + format = cairo_xlib_surface_get_xrender_format (surface); + if (format != NULL) { + cairo_test_log ("Error: did not receive a NULL format as expected\n"); + return CAIRO_TEST_FAILURE; + } + + + XCloseDisplay (dpy); + + cairo_test_fini (); + + return CAIRO_TEST_SUCCESS; +} diff --git a/test/in-fill-trapezoid.c b/test/in-fill-trapezoid.c new file mode 100644 index 0000000..a544e43 --- /dev/null +++ b/test/in-fill-trapezoid.c @@ -0,0 +1,86 @@ +/* + * Copyright © 2008 Chris Wilson + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: Chris Wilson <chris@chris-wilson.co.uk> + */ + +#include "cairo-test.h" + +static cairo_test_draw_function_t draw; + +cairo_test_t test = { + "in-fill-trapezoid", + "Test _cairo_trap_contains via cairo_in_fill", + 0, 0, + draw +}; + +static cairo_test_status_t +draw (cairo_t *cr, int width, int height) +{ + cairo_test_status_t ret = CAIRO_TEST_SUCCESS; + + cairo_set_fill_rule (cr, CAIRO_FILL_RULE_EVEN_ODD); + + /* simple rectangle */ + cairo_new_path (cr); + cairo_rectangle (cr, -10, -10, 20, 20); + if (! cairo_in_fill (cr, 0, 0)) { + cairo_test_log ("Error: Failed to find point inside rectangle\n"); + ret = CAIRO_TEST_FAILURE; + } + + /* simple circle */ + cairo_new_path (cr); + cairo_arc (cr, 0, 0, 10, 0, 2 * M_PI); + if (! cairo_in_fill (cr, 0, 0)) { + cairo_test_log ("Error: Failed to find point inside circle\n"); + ret = CAIRO_TEST_FAILURE; + } + + /* holey rectangle */ + cairo_new_path (cr); + cairo_rectangle (cr, -10, -10, 20, 20); + cairo_rectangle (cr, -5, -5, 10, 10); + if (cairo_in_fill (cr, 0, 0)) { + cairo_test_log ("Error: Found an unexpected point inside rectangular hole\n"); + ret = CAIRO_TEST_FAILURE; + } + + /* holey circle */ + cairo_new_path (cr); + cairo_arc (cr, 0, 0, 10, 0, 2 * M_PI); + cairo_arc (cr, 0, 0, 5, 0, 2 * M_PI); + if (cairo_in_fill (cr, 0, 0)) { + cairo_test_log ("Error: Found an unexpected point inside circular hole\n"); + ret = CAIRO_TEST_FAILURE; + } + + return ret; +} + +int +main (void) +{ + return cairo_test (&test); +} diff --git a/test/meta-surface-pattern-pdf-ref.png b/test/meta-surface-pattern-pdf-ref.png Binary files differnew file mode 100644 index 0000000..2e561b2 --- /dev/null +++ b/test/meta-surface-pattern-pdf-ref.png diff --git a/test/meta-surface-pattern-pdf-rgb24-ref.png b/test/meta-surface-pattern-pdf-rgb24-ref.png Binary files differnew file mode 100644 index 0000000..680f0f5 --- /dev/null +++ b/test/meta-surface-pattern-pdf-rgb24-ref.png diff --git a/test/pattern-getters.c b/test/pattern-getters.c index 695245d..aa420bf 100644 --- a/test/pattern-getters.c +++ b/test/pattern-getters.c @@ -38,14 +38,12 @@ cairo_test_t test = { #define CHECK_SUCCESS do { if (status) return CAIRO_TEST_FAILURE; } while (0) -#define DOUBLE_EQUALS(a,b) (fabs((a)-(b)) < 0.00001) - static int double_buf_equal (double *a, double *b, int nc) { int i; for (i = 0; i < nc; i++) { - if (!DOUBLE_EQUALS(a[i],b[i])) { + if (!CAIRO_TEST_DOUBLE_EQUALS(a[i],b[i])) { cairo_test_log ("Error: doubles not equal: %g, %g\n", a[i], b[i]); return 0; @@ -68,10 +66,10 @@ draw (cairo_t *cr, int width, int height) status = cairo_pattern_get_rgba (pat, &r, &g, &b, &a); CHECK_SUCCESS; - if (!DOUBLE_EQUALS(r,0.2) || - !DOUBLE_EQUALS(g,0.3) || - !DOUBLE_EQUALS(b,0.4) || - !DOUBLE_EQUALS(a,0.5)) { + if (!CAIRO_TEST_DOUBLE_EQUALS(r,0.2) || + !CAIRO_TEST_DOUBLE_EQUALS(g,0.3) || + !CAIRO_TEST_DOUBLE_EQUALS(b,0.4) || + !CAIRO_TEST_DOUBLE_EQUALS(a,0.5)) { cairo_test_log ("Error: cairo_pattern_get_rgba returned unexepcted results: %g, %g, %g, %g\n", r, g, b, a); return CAIRO_TEST_FAILURE; @@ -120,10 +118,10 @@ draw (cairo_t *cr, int width, int height) status = cairo_pattern_get_linear_points (pat, &x0, &y0, &x1, &y1); CHECK_SUCCESS; - if (!DOUBLE_EQUALS(x0,1.0) || - !DOUBLE_EQUALS(y0,2.0) || - !DOUBLE_EQUALS(x1,3.0) || - !DOUBLE_EQUALS(y1,4.0)) + if (!CAIRO_TEST_DOUBLE_EQUALS(x0,1.0) || + !CAIRO_TEST_DOUBLE_EQUALS(y0,2.0) || + !CAIRO_TEST_DOUBLE_EQUALS(x1,3.0) || + !CAIRO_TEST_DOUBLE_EQUALS(y1,4.0)) return CAIRO_TEST_FAILURE; status = cairo_pattern_get_color_stop_count (pat, &i); @@ -161,12 +159,12 @@ draw (cairo_t *cr, int width, int height) status = cairo_pattern_get_radial_circles (pat, &a, &b, &c, &d, &e, &f); CHECK_SUCCESS; - if (!DOUBLE_EQUALS(a,1.0) || - !DOUBLE_EQUALS(b,2.0) || - !DOUBLE_EQUALS(c,3.0) || - !DOUBLE_EQUALS(d,4.0) || - !DOUBLE_EQUALS(e,5.0) || - !DOUBLE_EQUALS(f,6.0)) + if (!CAIRO_TEST_DOUBLE_EQUALS(a,1.0) || + !CAIRO_TEST_DOUBLE_EQUALS(b,2.0) || + !CAIRO_TEST_DOUBLE_EQUALS(c,3.0) || + !CAIRO_TEST_DOUBLE_EQUALS(d,4.0) || + !CAIRO_TEST_DOUBLE_EQUALS(e,5.0) || + !CAIRO_TEST_DOUBLE_EQUALS(f,6.0)) return CAIRO_TEST_FAILURE; cairo_pattern_destroy (pat); diff --git a/test/rectangle-rounding-error-ref.png b/test/rectangle-rounding-error-ref.png Binary files differindex c3a6840..413345d 100644 --- a/test/rectangle-rounding-error-ref.png +++ b/test/rectangle-rounding-error-ref.png diff --git a/test/rectilinear-miter-limit-ref.png b/test/rectilinear-miter-limit-ref.png Binary files differnew file mode 100644 index 0000000..53bfee0 --- /dev/null +++ b/test/rectilinear-miter-limit-ref.png diff --git a/test/rectilinear-miter-limit.c b/test/rectilinear-miter-limit.c new file mode 100644 index 0000000..114472c --- /dev/null +++ b/test/rectilinear-miter-limit.c @@ -0,0 +1,80 @@ +/* + * Copyright © 2008 Red Hat, Inc. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: Carl D. Worth <cworth@cworth.org> + */ + +#include "cairo-test.h" + +#define LINE_WIDTH 10 +#define PAD 2 +#define WIDTH (PAD + LINE_WIDTH + PAD) +#define HEIGHT (WIDTH) + +static cairo_test_draw_function_t draw; + +cairo_test_t test = { + "rectilinear-miter-limit", + "Test that the rectilinear stroke optimization doesn't break cairo_set_miter_limit", + WIDTH, HEIGHT, + draw +}; + +static cairo_test_status_t +draw (cairo_t *cr, int width, int height) +{ + cairo_translate (cr, PAD, PAD); + + /* Paint background white, then draw in black. */ + cairo_set_source_rgb (cr, 1.0, 1.0, 1.0); /* white */ + cairo_paint (cr); + cairo_set_source_rgb (cr, 0.0, 0.0, 0.0); /* black */ + + cairo_set_line_cap (cr, CAIRO_LINE_CAP_BUTT); + cairo_set_line_width (cr, LINE_WIDTH); + + /* The default miter limit value of 10.0 guarantees that + * right-angle turns, (in fact, any angle greater than 11 + * degrees), gets a miter rather than a bevel join. The + * rectilinear stroke optimization was originally written in a + * buggy way that did not respect the miter limit, (that is, + * inappropriately drawing miter joins when the miter limit would + * turn them into bevels). So we draw here with a miter limit of + * 1.0 to force all miter joins into bevels. */ + cairo_set_line_join (cr, CAIRO_LINE_JOIN_MITER); + cairo_set_miter_limit (cr, 1.0); + + cairo_move_to (cr, LINE_WIDTH / 2.0, LINE_WIDTH); + cairo_rel_line_to (cr, 0, - LINE_WIDTH / 2.0); + cairo_rel_line_to (cr, LINE_WIDTH / 2.0, 0); + + cairo_stroke (cr); + + return CAIRO_TEST_SUCCESS; +} + +int +main (void) +{ + return cairo_test (&test); +} diff --git a/test/rotate-image-surface-paint-ref.png b/test/rotate-image-surface-paint-ref.png Binary files differindex 7ccc9ac..a63e9cb 100644 --- a/test/rotate-image-surface-paint-ref.png +++ b/test/rotate-image-surface-paint-ref.png diff --git a/test/text-zero-len.c b/test/text-zero-len.c index e64daa8..6c2a836 100644 --- a/test/text-zero-len.c +++ b/test/text-zero-len.c @@ -66,11 +66,23 @@ text_extents_equal (const cairo_text_extents_t *A, A->y_advance == B->y_advance; } +static cairo_bool_t +font_extents_equal (const cairo_font_extents_t *A, + const cairo_font_extents_t *B) +{ + return A->ascent == B->ascent && + A->descent == B->descent && + A->height == B->height && + A->max_x_advance == B->max_x_advance && + A->max_y_advance == B->max_y_advance; +} + static cairo_test_status_t draw (cairo_t *cr, int width, int height) { - cairo_text_extents_t nil_extents; - cairo_text_extents_t extents; + cairo_text_extents_t extents, nil_extents; + cairo_font_extents_t font_extents, nil_font_extents; + cairo_scaled_font_t *scaled_font; cairo_select_font_face (cr, "Bitstream Vera Sans", CAIRO_FONT_SLANT_NORMAL, @@ -121,6 +133,75 @@ draw (cairo_t *cr, int width, int height) return CAIRO_TEST_FAILURE; } + scaled_font = cairo_get_scaled_font (cr); + + memset (&extents, 0xff, sizeof (cairo_text_extents_t)); + cairo_scaled_font_text_extents (scaled_font, "", &extents); + if (! text_extents_equal (&extents, &nil_extents)) { + cairo_test_log ("Error: cairo_scaled_font_text_extents(\"\"); extents (%g, %g, %g, %g, %g, %g)\n", + extents.x_bearing, extents.y_bearing, + extents.width, extents.height, + extents.x_advance, extents.y_advance); + return CAIRO_TEST_FAILURE; + } + + memset (&extents, 0xff, sizeof (cairo_text_extents_t)); + cairo_scaled_font_text_extents (scaled_font, NULL, &extents); + if (! text_extents_equal (&extents, &nil_extents)) { + cairo_test_log ("Error: cairo_scaled_font_text_extents(NULL); extents (%g, %g, %g, %g, %g, %g)\n", + extents.x_bearing, extents.y_bearing, + extents.width, extents.height, + extents.x_advance, extents.y_advance); + return CAIRO_TEST_FAILURE; + } + + memset (&extents, 0xff, sizeof (cairo_text_extents_t)); + cairo_scaled_font_glyph_extents (scaled_font, (void*)8, 0, &extents); + if (! text_extents_equal (&extents, &nil_extents)) { + cairo_test_log ("Error: cairo_scaled_font_glyph_extents(NULL); extents (%g, %g, %g, %g, %g, %g)\n", + extents.x_bearing, extents.y_bearing, + extents.width, extents.height, + extents.x_advance, extents.y_advance); + return CAIRO_TEST_FAILURE; + } + + /* Lets also try font size 0 while here */ + cairo_set_font_size (cr, 0); + + memset (&extents, 0xff, sizeof (cairo_text_extents_t)); + cairo_text_extents (cr, "test", &extents); + if (! text_extents_equal (&extents, &nil_extents)) { + cairo_test_log ("Error: cairo_set_font_size(0); cairo_text_extents(\"test\"); extents (%g, %g, %g, %g, %g, %g)\n", + extents.x_bearing, extents.y_bearing, + extents.width, extents.height, + extents.x_advance, extents.y_advance); + return CAIRO_TEST_FAILURE; + } + + memset (&nil_font_extents, 0, sizeof (cairo_font_extents_t)); + + memset (&font_extents, 0xff, sizeof (cairo_font_extents_t)); + cairo_font_extents (cr, &font_extents); + if (! font_extents_equal (&font_extents, &nil_font_extents)) { + cairo_test_log ("Error: cairo_set_font_size(0); cairo_font_extents(); extents (%g, %g, %g, %g, %g)\n", + font_extents.ascent, font_extents.descent, + font_extents.height, + font_extents.max_x_advance, font_extents.max_y_advance); + return CAIRO_TEST_FAILURE; + } + + scaled_font = cairo_get_scaled_font (cr); + + memset (&font_extents, 0xff, sizeof (cairo_font_extents_t)); + cairo_scaled_font_extents (scaled_font, &font_extents); + if (! font_extents_equal (&font_extents, &nil_font_extents)) { + cairo_test_log ("Error: cairo_set_font_size(0); cairo_scaled_font_extents(); extents (%g, %g, %g, %g, %g)\n", + font_extents.ascent, font_extents.descent, + font_extents.height, + font_extents.max_x_advance, font_extents.max_y_advance); + return CAIRO_TEST_FAILURE; + } + return CAIRO_TEST_SUCCESS; } diff --git a/test/unantialiased-shapes-ref.png b/test/unantialiased-shapes-ref.png Binary files differindex ad79993..d350ad9 100644 --- a/test/unantialiased-shapes-ref.png +++ b/test/unantialiased-shapes-ref.png |