From 530ffd0b7d3c39757b20f00716e486b5caf89aff Mon Sep 17 00:00:00 2001 From: sanine Date: Wed, 12 Oct 2022 12:03:23 -0500 Subject: add cairo --- libs/cairo-1.16.0/doc/public/Makefile.am | 61 + libs/cairo-1.16.0/doc/public/Makefile.in | 1919 +++++++++++ libs/cairo-1.16.0/doc/public/README | 37 + libs/cairo-1.16.0/doc/public/cairo-docs.xml | 87 + libs/cairo-1.16.0/doc/public/cairo-overrides.txt | 0 libs/cairo-1.16.0/doc/public/cairo-sections.txt | 759 +++++ libs/cairo-1.16.0/doc/public/cairo.types | 0 libs/cairo-1.16.0/doc/public/check-doc-coverage.sh | 54 + libs/cairo-1.16.0/doc/public/check-doc-syntax.sh | 12 + .../doc/public/html/bindings-errors.html | 121 + .../doc/public/html/bindings-fonts.html | 52 + .../doc/public/html/bindings-memory.html | 122 + .../doc/public/html/bindings-overloading.html | 120 + .../doc/public/html/bindings-path.html | 116 + .../doc/public/html/bindings-patterns.html | 74 + .../doc/public/html/bindings-return-values.html | 119 + .../doc/public/html/bindings-streams.html | 91 + .../doc/public/html/bindings-surfaces.html | 92 + .../doc/public/html/cairo-Error-handling.html | 486 +++ .../doc/public/html/cairo-FreeType-Fonts.html | 553 ++++ .../doc/public/html/cairo-Image-Surfaces.html | 583 ++++ .../doc/public/html/cairo-PDF-Surfaces.html | 829 +++++ .../doc/public/html/cairo-PNG-Support.html | 413 +++ libs/cairo-1.16.0/doc/public/html/cairo-Paths.html | 1550 +++++++++ .../doc/public/html/cairo-PostScript-Surfaces.html | 749 +++++ .../public/html/cairo-Quartz-(CGFont)-Fonts.html | 163 + .../doc/public/html/cairo-Quartz-Surfaces.html | 249 ++ .../doc/public/html/cairo-Raster-Sources.html | 794 +++++ .../doc/public/html/cairo-Recording-Surfaces.html | 279 ++ .../doc/public/html/cairo-Regions.html | 1133 +++++++ .../doc/public/html/cairo-SVG-Surfaces.html | 576 ++++ .../doc/public/html/cairo-Script-Surfaces.html | 490 +++ .../doc/public/html/cairo-Tags-and-Links.html | 505 +++ .../doc/public/html/cairo-Transformations.html | 563 ++++ libs/cairo-1.16.0/doc/public/html/cairo-Types.html | 209 ++ .../doc/public/html/cairo-User-Fonts.html | 827 +++++ .../doc/public/html/cairo-Version-Information.html | 377 +++ .../doc/public/html/cairo-Win32-Fonts.html | 436 +++ .../doc/public/html/cairo-Win32-Surfaces.html | 413 +++ .../doc/public/html/cairo-XCB-Surfaces.html | 658 ++++ .../doc/public/html/cairo-XLib-Surfaces.html | 713 ++++ .../public/html/cairo-XLib-XRender-Backend.html | 208 ++ .../doc/public/html/cairo-cairo-device-t.html | 821 +++++ .../doc/public/html/cairo-cairo-font-face-t.html | 476 +++ .../public/html/cairo-cairo-font-options-t.html | 941 ++++++ .../doc/public/html/cairo-cairo-matrix-t.html | 779 +++++ .../doc/public/html/cairo-cairo-pattern-t.html | 2710 +++++++++++++++ .../doc/public/html/cairo-cairo-scaled-font-t.html | 1301 ++++++++ .../doc/public/html/cairo-cairo-surface-t.html | 2130 ++++++++++++ .../doc/public/html/cairo-cairo-t.html | 3488 ++++++++++++++++++++ .../doc/public/html/cairo-drawing.html | 55 + libs/cairo-1.16.0/doc/public/html/cairo-fonts.html | 52 + .../doc/public/html/cairo-support.html | 43 + .../doc/public/html/cairo-surfaces.html | 73 + libs/cairo-1.16.0/doc/public/html/cairo-text.html | 1480 +++++++++ libs/cairo-1.16.0/doc/public/html/cairo.devhelp2 | 829 +++++ libs/cairo-1.16.0/doc/public/html/home.png | Bin 0 -> 169 bytes libs/cairo-1.16.0/doc/public/html/index-1.10.html | 176 + libs/cairo-1.16.0/doc/public/html/index-1.12.html | 192 ++ libs/cairo-1.16.0/doc/public/html/index-1.14.html | 56 + libs/cairo-1.16.0/doc/public/html/index-1.16.html | 96 + libs/cairo-1.16.0/doc/public/html/index-1.2.html | 178 + libs/cairo-1.16.0/doc/public/html/index-1.4.html | 122 + libs/cairo-1.16.0/doc/public/html/index-1.6.html | 106 + libs/cairo-1.16.0/doc/public/html/index-1.8.html | 127 + libs/cairo-1.16.0/doc/public/html/index-all.html | 1163 +++++++ libs/cairo-1.16.0/doc/public/html/index.html | 161 + .../doc/public/html/language-bindings.html | 72 + .../doc/public/html/left-insensitive.png | Bin 0 -> 334 bytes libs/cairo-1.16.0/doc/public/html/left.png | Bin 0 -> 185 bytes .../doc/public/html/right-insensitive.png | Bin 0 -> 233 bytes libs/cairo-1.16.0/doc/public/html/right.png | Bin 0 -> 184 bytes libs/cairo-1.16.0/doc/public/html/style.css | 479 +++ .../doc/public/html/up-insensitive.png | Bin 0 -> 288 bytes libs/cairo-1.16.0/doc/public/html/up.png | Bin 0 -> 186 bytes libs/cairo-1.16.0/doc/public/language-bindings.xml | 745 +++++ libs/cairo-1.16.0/doc/public/version.xml | 1 + libs/cairo-1.16.0/doc/public/xml/api-index-1.0.xml | 272 ++ .../cairo-1.16.0/doc/public/xml/api-index-1.10.xml | 77 + .../cairo-1.16.0/doc/public/xml/api-index-1.12.xml | 86 + .../cairo-1.16.0/doc/public/xml/api-index-1.14.xml | 19 + .../cairo-1.16.0/doc/public/xml/api-index-1.16.xml | 37 + libs/cairo-1.16.0/doc/public/xml/api-index-1.2.xml | 78 + libs/cairo-1.16.0/doc/public/xml/api-index-1.4.xml | 50 + libs/cairo-1.16.0/doc/public/xml/api-index-1.6.xml | 43 + libs/cairo-1.16.0/doc/public/xml/api-index-1.8.xml | 52 + libs/cairo-1.16.0/doc/public/xml/api-index-TBD.xml | 7 + .../doc/public/xml/api-index-deprecated.xml | 7 + .../cairo-1.16.0/doc/public/xml/api-index-full.xml | 578 ++++ libs/cairo-1.16.0/doc/public/xml/cairo-device.xml | 585 ++++ .../doc/public/xml/cairo-font-face.xml | 358 ++ .../doc/public/xml/cairo-font-options.xml | 677 ++++ libs/cairo-1.16.0/doc/public/xml/cairo-ft.xml | 408 +++ libs/cairo-1.16.0/doc/public/xml/cairo-image.xml | 425 +++ libs/cairo-1.16.0/doc/public/xml/cairo-matrix.xml | 574 ++++ libs/cairo-1.16.0/doc/public/xml/cairo-paths.xml | 1125 +++++++ libs/cairo-1.16.0/doc/public/xml/cairo-pattern.xml | 1966 +++++++++++ libs/cairo-1.16.0/doc/public/xml/cairo-pdf.xml | 595 ++++ libs/cairo-1.16.0/doc/public/xml/cairo-png.xml | 309 ++ libs/cairo-1.16.0/doc/public/xml/cairo-ps.xml | 548 +++ .../doc/public/xml/cairo-quartz-fonts.xml | 129 + libs/cairo-1.16.0/doc/public/xml/cairo-quartz.xml | 183 + .../doc/public/xml/cairo-raster-source.xml | 550 +++ .../doc/public/xml/cairo-recording.xml | 204 ++ libs/cairo-1.16.0/doc/public/xml/cairo-region.xml | 793 +++++ .../doc/public/xml/cairo-scaled-font.xml | 925 ++++++ libs/cairo-1.16.0/doc/public/xml/cairo-script.xml | 349 ++ libs/cairo-1.16.0/doc/public/xml/cairo-skia.xml | 32 + libs/cairo-1.16.0/doc/public/xml/cairo-status.xml | 366 ++ .../doc/public/xml/cairo-surface-observer.xml | 233 ++ libs/cairo-1.16.0/doc/public/xml/cairo-surface.xml | 1525 +++++++++ libs/cairo-1.16.0/doc/public/xml/cairo-svg.xml | 425 +++ libs/cairo-1.16.0/doc/public/xml/cairo-tag.xml | 353 ++ libs/cairo-1.16.0/doc/public/xml/cairo-text.xml | 1090 ++++++ .../doc/public/xml/cairo-transforms.xml | 389 +++ libs/cairo-1.16.0/doc/public/xml/cairo-types.xml | 161 + .../doc/public/xml/cairo-user-fonts.xml | 626 ++++ libs/cairo-1.16.0/doc/public/xml/cairo-version.xml | 278 ++ .../doc/public/xml/cairo-win32-fonts.xml | 323 ++ libs/cairo-1.16.0/doc/public/xml/cairo-win32.xml | 306 ++ libs/cairo-1.16.0/doc/public/xml/cairo-xcb.xml | 474 +++ .../doc/public/xml/cairo-xlib-xrender.xml | 162 + libs/cairo-1.16.0/doc/public/xml/cairo-xlib.xml | 507 +++ libs/cairo-1.16.0/doc/public/xml/cairo.xml | 2538 ++++++++++++++ 124 files changed, 58241 insertions(+) create mode 100644 libs/cairo-1.16.0/doc/public/Makefile.am create mode 100644 libs/cairo-1.16.0/doc/public/Makefile.in create mode 100644 libs/cairo-1.16.0/doc/public/README create mode 100644 libs/cairo-1.16.0/doc/public/cairo-docs.xml create mode 100644 libs/cairo-1.16.0/doc/public/cairo-overrides.txt create mode 100644 libs/cairo-1.16.0/doc/public/cairo-sections.txt create mode 100644 libs/cairo-1.16.0/doc/public/cairo.types create mode 100755 libs/cairo-1.16.0/doc/public/check-doc-coverage.sh create mode 100755 libs/cairo-1.16.0/doc/public/check-doc-syntax.sh create mode 100644 libs/cairo-1.16.0/doc/public/html/bindings-errors.html create mode 100644 libs/cairo-1.16.0/doc/public/html/bindings-fonts.html create mode 100644 libs/cairo-1.16.0/doc/public/html/bindings-memory.html create mode 100644 libs/cairo-1.16.0/doc/public/html/bindings-overloading.html create mode 100644 libs/cairo-1.16.0/doc/public/html/bindings-path.html create mode 100644 libs/cairo-1.16.0/doc/public/html/bindings-patterns.html create mode 100644 libs/cairo-1.16.0/doc/public/html/bindings-return-values.html create mode 100644 libs/cairo-1.16.0/doc/public/html/bindings-streams.html create mode 100644 libs/cairo-1.16.0/doc/public/html/bindings-surfaces.html create mode 100644 libs/cairo-1.16.0/doc/public/html/cairo-Error-handling.html create mode 100644 libs/cairo-1.16.0/doc/public/html/cairo-FreeType-Fonts.html create mode 100644 libs/cairo-1.16.0/doc/public/html/cairo-Image-Surfaces.html create mode 100644 libs/cairo-1.16.0/doc/public/html/cairo-PDF-Surfaces.html create mode 100644 libs/cairo-1.16.0/doc/public/html/cairo-PNG-Support.html create mode 100644 libs/cairo-1.16.0/doc/public/html/cairo-Paths.html create mode 100644 libs/cairo-1.16.0/doc/public/html/cairo-PostScript-Surfaces.html create mode 100644 libs/cairo-1.16.0/doc/public/html/cairo-Quartz-(CGFont)-Fonts.html create mode 100644 libs/cairo-1.16.0/doc/public/html/cairo-Quartz-Surfaces.html create mode 100644 libs/cairo-1.16.0/doc/public/html/cairo-Raster-Sources.html create mode 100644 libs/cairo-1.16.0/doc/public/html/cairo-Recording-Surfaces.html create mode 100644 libs/cairo-1.16.0/doc/public/html/cairo-Regions.html create mode 100644 libs/cairo-1.16.0/doc/public/html/cairo-SVG-Surfaces.html create mode 100644 libs/cairo-1.16.0/doc/public/html/cairo-Script-Surfaces.html create mode 100644 libs/cairo-1.16.0/doc/public/html/cairo-Tags-and-Links.html create mode 100644 libs/cairo-1.16.0/doc/public/html/cairo-Transformations.html create mode 100644 libs/cairo-1.16.0/doc/public/html/cairo-Types.html create mode 100644 libs/cairo-1.16.0/doc/public/html/cairo-User-Fonts.html create mode 100644 libs/cairo-1.16.0/doc/public/html/cairo-Version-Information.html create mode 100644 libs/cairo-1.16.0/doc/public/html/cairo-Win32-Fonts.html create mode 100644 libs/cairo-1.16.0/doc/public/html/cairo-Win32-Surfaces.html create mode 100644 libs/cairo-1.16.0/doc/public/html/cairo-XCB-Surfaces.html create mode 100644 libs/cairo-1.16.0/doc/public/html/cairo-XLib-Surfaces.html create mode 100644 libs/cairo-1.16.0/doc/public/html/cairo-XLib-XRender-Backend.html create mode 100644 libs/cairo-1.16.0/doc/public/html/cairo-cairo-device-t.html create mode 100644 libs/cairo-1.16.0/doc/public/html/cairo-cairo-font-face-t.html create mode 100644 libs/cairo-1.16.0/doc/public/html/cairo-cairo-font-options-t.html create mode 100644 libs/cairo-1.16.0/doc/public/html/cairo-cairo-matrix-t.html create mode 100644 libs/cairo-1.16.0/doc/public/html/cairo-cairo-pattern-t.html create mode 100644 libs/cairo-1.16.0/doc/public/html/cairo-cairo-scaled-font-t.html create mode 100644 libs/cairo-1.16.0/doc/public/html/cairo-cairo-surface-t.html create mode 100644 libs/cairo-1.16.0/doc/public/html/cairo-cairo-t.html create mode 100644 libs/cairo-1.16.0/doc/public/html/cairo-drawing.html create mode 100644 libs/cairo-1.16.0/doc/public/html/cairo-fonts.html create mode 100644 libs/cairo-1.16.0/doc/public/html/cairo-support.html create mode 100644 libs/cairo-1.16.0/doc/public/html/cairo-surfaces.html create mode 100644 libs/cairo-1.16.0/doc/public/html/cairo-text.html create mode 100644 libs/cairo-1.16.0/doc/public/html/cairo.devhelp2 create mode 100644 libs/cairo-1.16.0/doc/public/html/home.png create mode 100644 libs/cairo-1.16.0/doc/public/html/index-1.10.html create mode 100644 libs/cairo-1.16.0/doc/public/html/index-1.12.html create mode 100644 libs/cairo-1.16.0/doc/public/html/index-1.14.html create mode 100644 libs/cairo-1.16.0/doc/public/html/index-1.16.html create mode 100644 libs/cairo-1.16.0/doc/public/html/index-1.2.html create mode 100644 libs/cairo-1.16.0/doc/public/html/index-1.4.html create mode 100644 libs/cairo-1.16.0/doc/public/html/index-1.6.html create mode 100644 libs/cairo-1.16.0/doc/public/html/index-1.8.html create mode 100644 libs/cairo-1.16.0/doc/public/html/index-all.html create mode 100644 libs/cairo-1.16.0/doc/public/html/index.html create mode 100644 libs/cairo-1.16.0/doc/public/html/language-bindings.html create mode 100644 libs/cairo-1.16.0/doc/public/html/left-insensitive.png create mode 100644 libs/cairo-1.16.0/doc/public/html/left.png create mode 100644 libs/cairo-1.16.0/doc/public/html/right-insensitive.png create mode 100644 libs/cairo-1.16.0/doc/public/html/right.png create mode 100644 libs/cairo-1.16.0/doc/public/html/style.css create mode 100644 libs/cairo-1.16.0/doc/public/html/up-insensitive.png create mode 100644 libs/cairo-1.16.0/doc/public/html/up.png create mode 100644 libs/cairo-1.16.0/doc/public/language-bindings.xml create mode 100644 libs/cairo-1.16.0/doc/public/version.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/api-index-1.0.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/api-index-1.10.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/api-index-1.12.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/api-index-1.14.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/api-index-1.16.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/api-index-1.2.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/api-index-1.4.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/api-index-1.6.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/api-index-1.8.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/api-index-TBD.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/api-index-deprecated.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/api-index-full.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-device.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-font-face.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-font-options.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-ft.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-image.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-matrix.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-paths.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-pattern.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-pdf.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-png.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-ps.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-quartz-fonts.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-quartz.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-raster-source.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-recording.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-region.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-scaled-font.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-script.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-skia.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-status.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-surface-observer.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-surface.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-svg.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-tag.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-text.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-transforms.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-types.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-user-fonts.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-version.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-win32-fonts.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-win32.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-xcb.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-xlib-xrender.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-xlib.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo.xml (limited to 'libs/cairo-1.16.0/doc/public') diff --git a/libs/cairo-1.16.0/doc/public/Makefile.am b/libs/cairo-1.16.0/doc/public/Makefile.am new file mode 100644 index 0000000..33bccab --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/Makefile.am @@ -0,0 +1,61 @@ +include $(top_srcdir)/build/Makefile.am.common +include $(top_srcdir)/src/Makefile.am.features + +# The name of the module. +DOC_MODULE=cairo + +# The top-level SGML file. +DOC_MAIN_SGML_FILE=cairo-docs.xml + +# Extra options to supply to gtkdoc-scan +SCAN_OPTIONS=--deprecated-guards="CAIRO_DISABLE_DEPRECATED" --ignore-decorators="cairo_public|cairo_private" + +# The directory containing the source code. +DOC_SOURCE_DIR=$(top_srcdir)/src + +# Used for dependencies +HFILE_GLOB=$(top_srcdir)/src/cairo*.h +CFILE_GLOB=$(top_srcdir)/src/cairo*.c +EXTRA_HFILES=$(top_builddir)/src/cairo-supported-features.h + +# Headers to ignore +IGNORE_HFILES= \ + drm \ + cairo-features.h \ + cairo-features-win32.h \ + $(all_cairo_private) \ + $(unsupported_cairo_headers) \ + $(NULL) + +# Extra options to supply to gtkdoc-mkdb +MKDB_OPTIONS=--sgml-mode --output-format=xml --name-space=cairo + +# Non-autogenerated SGML files to be included in $(DOC_MAIN_SGML_FILE) +content_files = \ + language-bindings.xml \ + version.xml \ + $(NULL) + +version.xml: $(top_srcdir)/cairo-version.h + echo $(CAIRO_VERSION_MAJOR).$(CAIRO_VERSION_MINOR).$(CAIRO_VERSION_MICRO) > $@ + +# Images to copy into HTML directory +HTML_IMAGES = + +# Extra options to supply to gtkdoc-fixref +FIXXREF_OPTIONS= + +include $(top_srcdir)/build/Makefile.am.gtk-doc + +dist-hook: doc + +# This line really belongs in gtk-doc.mk +$(REPORT_FILES): sgml-build.stamp + +if ENABLE_GTK_DOC +TESTS += check-doc-coverage.sh +endif + +TESTS += check-doc-syntax.sh +EXTRA_DIST += check-doc-coverage.sh check-doc-syntax.sh +TESTS_ENVIRONMENT = srcdir="$(srcdir)" top_srcdir="$(top_srcdir)" MAKE="$(MAKE) $(AM_MAKEFLAGS)" DOC_MODULE="$(DOC_MODULE)" REPORT_FILES="$(REPORT_FILES)" diff --git a/libs/cairo-1.16.0/doc/public/Makefile.in b/libs/cairo-1.16.0/doc/public/Makefile.in new file mode 100644 index 0000000..cb7d90a --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/Makefile.in @@ -0,0 +1,1919 @@ +# Makefile.in generated by automake 1.15.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2017 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Generated by configure. Do not edit. + +# Makefile.sources +# +# This file is the canonical location listing all the source files used +# to build the cairo library. Every source file is categorized as one of: +# +# * public header file +# * private header file (must end in -private.h except for cairoint.h) +# * source code file +# +# Every source file should be specified exactly once, grouped with the +# feature that uses the source file. If more than one feature use the +# file (like pdf_operators or font_subset files), the files should be +# appended to to the base cairo files, and the code inside them +# enabled/disabled using C preprocessor macros defined in cairoint.h. +# See how pdf_operators or font_subset are handled. +# +# The sources are picked up according to the configured features +# by the generated file Makefile.am.features or Makefile.win32.features. +# +# These are a few special source files. Those are not included in this +# file to not confuse build systems. Each build system must handle them +# separately. These files include: +# +# * cairo-features.h: +# This file is generated by configure and includes macros signifying +# which features are enabled. This file should be installed like +# other public headers, but should NOT be distributed in the cairo +# distribution. +# +# * cairo-version.h: +# This is a dummy header file used during the build, but it should +# NOT be installed. Its sole purpose is to make sure changes in the +# cairo version do not trigger a full rebuild of the library, but +# just the functions actually using the version information. +# +# * $(top_srcdir)/cairo-version.h: +# This is the real file holding the cairo version number. This file +# should be installed like other public headers. This is used during +# the build by cairo-version.c only. +# +# * cairo-supported-features.h: +# This file is generated by configure and includes macros signifying +# all supported features. This is used by gtk-doc to generate +# documentation for all those macros, enabled or not. +# This file is NOT used during the build of the library and should +# NOT be installed or distributed. +# +# Please follow the strict syntax of this file, including keeping file +# lists sorted. +# + +# BEFORE MODIFYING THIS FILE: +# +# This file is a descendant of an old copy of gtk-doc.make, modified for cairo minimally: +# +# - Moved to build/ +# - Made it append to EXTRA_DIST and CLEANFILES +# - Instead of all-local, make "doc" build docs, and err if gtk-doc not enabled +# - Some other changed introduced in 7f114b781f5c530d57530e5f76402e41cdabac6b +# +# Before changing it, check to see if a newer gtk-doc.make has fixed the issue you are facing. +# From time to time, it would be nice to update this to the latest copy of gtk-doc.make, but +# please do review all the differences and port our modifications forward. +# + +# -*- mode: makefile -*- + +#################################### +# Everything below here is generic # +#################################### +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +EXTRA_PROGRAMS = +check_PROGRAMS = +@CAIRO_HAS_XLIB_SURFACE_TRUE@am__append_1 = $(cairo_xlib_headers) +@CAIRO_HAS_XLIB_SURFACE_TRUE@am__append_2 = $(cairo_xlib_private) +@CAIRO_HAS_XLIB_SURFACE_TRUE@am__append_3 = $(cairo_xlib_cxx_sources) +@CAIRO_HAS_XLIB_SURFACE_TRUE@am__append_4 = $(cairo_xlib_sources) +@CAIRO_HAS_XLIB_SURFACE_TRUE@am__append_5 = cairo-xlib.pc +@CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE@am__append_6 = $(cairo_xlib_xrender_headers) +@CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE@am__append_7 = $(cairo_xlib_xrender_private) +@CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE@am__append_8 = $(cairo_xlib_xrender_cxx_sources) +@CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE@am__append_9 = $(cairo_xlib_xrender_sources) +@CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE@am__append_10 = cairo-xlib-xrender.pc +@CAIRO_HAS_XCB_SURFACE_TRUE@am__append_11 = $(cairo_xcb_headers) +@CAIRO_HAS_XCB_SURFACE_TRUE@am__append_12 = $(cairo_xcb_private) +@CAIRO_HAS_XCB_SURFACE_TRUE@am__append_13 = $(cairo_xcb_cxx_sources) +@CAIRO_HAS_XCB_SURFACE_TRUE@am__append_14 = $(cairo_xcb_sources) +@CAIRO_HAS_XCB_SURFACE_TRUE@am__append_15 = cairo-xcb.pc +@CAIRO_HAS_XLIB_XCB_FUNCTIONS_TRUE@am__append_16 = $(cairo_xlib_xcb_headers) +@CAIRO_HAS_XLIB_XCB_FUNCTIONS_TRUE@am__append_17 = $(cairo_xlib_xcb_private) +@CAIRO_HAS_XLIB_XCB_FUNCTIONS_TRUE@am__append_18 = $(cairo_xlib_xcb_cxx_sources) +@CAIRO_HAS_XLIB_XCB_FUNCTIONS_TRUE@am__append_19 = $(cairo_xlib_xcb_sources) +@CAIRO_HAS_XLIB_XCB_FUNCTIONS_TRUE@am__append_20 = cairo-xlib-xcb.pc +@CAIRO_HAS_XCB_SHM_FUNCTIONS_TRUE@am__append_21 = $(cairo_xcb_shm_headers) +@CAIRO_HAS_XCB_SHM_FUNCTIONS_TRUE@am__append_22 = $(cairo_xcb_shm_private) +@CAIRO_HAS_XCB_SHM_FUNCTIONS_TRUE@am__append_23 = $(cairo_xcb_shm_cxx_sources) +@CAIRO_HAS_XCB_SHM_FUNCTIONS_TRUE@am__append_24 = $(cairo_xcb_shm_sources) +@CAIRO_HAS_XCB_SHM_FUNCTIONS_TRUE@am__append_25 = cairo-xcb-shm.pc +@CAIRO_HAS_QT_SURFACE_TRUE@am__append_26 = $(cairo_qt_headers) +@CAIRO_HAS_QT_SURFACE_TRUE@am__append_27 = $(cairo_qt_private) +@CAIRO_HAS_QT_SURFACE_TRUE@am__append_28 = $(cairo_qt_cxx_sources) +@CAIRO_HAS_QT_SURFACE_TRUE@am__append_29 = $(cairo_qt_sources) +@CAIRO_HAS_QT_SURFACE_TRUE@am__append_30 = cairo-qt.pc +@CAIRO_HAS_QUARTZ_SURFACE_TRUE@am__append_31 = $(cairo_quartz_headers) +@CAIRO_HAS_QUARTZ_SURFACE_TRUE@am__append_32 = $(cairo_quartz_private) +@CAIRO_HAS_QUARTZ_SURFACE_TRUE@am__append_33 = $(cairo_quartz_cxx_sources) +@CAIRO_HAS_QUARTZ_SURFACE_TRUE@am__append_34 = $(cairo_quartz_sources) +@CAIRO_HAS_QUARTZ_SURFACE_TRUE@am__append_35 = cairo-quartz.pc +@CAIRO_HAS_QUARTZ_FONT_TRUE@am__append_36 = $(cairo_quartz_font_headers) +@CAIRO_HAS_QUARTZ_FONT_TRUE@am__append_37 = $(cairo_quartz_font_private) +@CAIRO_HAS_QUARTZ_FONT_TRUE@am__append_38 = $(cairo_quartz_font_cxx_sources) +@CAIRO_HAS_QUARTZ_FONT_TRUE@am__append_39 = $(cairo_quartz_font_sources) +@CAIRO_HAS_QUARTZ_FONT_TRUE@am__append_40 = cairo-quartz-font.pc +@CAIRO_HAS_QUARTZ_IMAGE_SURFACE_TRUE@am__append_41 = $(cairo_quartz_image_headers) +@CAIRO_HAS_QUARTZ_IMAGE_SURFACE_TRUE@am__append_42 = $(cairo_quartz_image_private) +@CAIRO_HAS_QUARTZ_IMAGE_SURFACE_TRUE@am__append_43 = $(cairo_quartz_image_cxx_sources) +@CAIRO_HAS_QUARTZ_IMAGE_SURFACE_TRUE@am__append_44 = $(cairo_quartz_image_sources) +@CAIRO_HAS_QUARTZ_IMAGE_SURFACE_TRUE@am__append_45 = cairo-quartz-image.pc +@CAIRO_HAS_WIN32_SURFACE_TRUE@am__append_46 = $(cairo_win32_headers) +@CAIRO_HAS_WIN32_SURFACE_TRUE@am__append_47 = $(cairo_win32_private) +@CAIRO_HAS_WIN32_SURFACE_TRUE@am__append_48 = $(cairo_win32_cxx_sources) +@CAIRO_HAS_WIN32_SURFACE_TRUE@am__append_49 = $(cairo_win32_sources) +@CAIRO_HAS_WIN32_SURFACE_TRUE@am__append_50 = cairo-win32.pc +@CAIRO_HAS_WIN32_FONT_TRUE@am__append_51 = $(cairo_win32_font_headers) +@CAIRO_HAS_WIN32_FONT_TRUE@am__append_52 = $(cairo_win32_font_private) +@CAIRO_HAS_WIN32_FONT_TRUE@am__append_53 = $(cairo_win32_font_cxx_sources) +@CAIRO_HAS_WIN32_FONT_TRUE@am__append_54 = $(cairo_win32_font_sources) +@CAIRO_HAS_WIN32_FONT_TRUE@am__append_55 = cairo-win32-font.pc +@CAIRO_HAS_OS2_SURFACE_TRUE@am__append_56 = $(cairo_os2_headers) +@CAIRO_HAS_OS2_SURFACE_TRUE@am__append_57 = $(cairo_os2_private) +@CAIRO_HAS_OS2_SURFACE_TRUE@am__append_58 = $(cairo_os2_cxx_sources) +@CAIRO_HAS_OS2_SURFACE_TRUE@am__append_59 = $(cairo_os2_sources) +@CAIRO_HAS_OS2_SURFACE_TRUE@am__append_60 = cairo-os2.pc +@CAIRO_HAS_BEOS_SURFACE_TRUE@am__append_61 = $(cairo_beos_headers) +@CAIRO_HAS_BEOS_SURFACE_TRUE@am__append_62 = $(cairo_beos_private) +@CAIRO_HAS_BEOS_SURFACE_TRUE@am__append_63 = $(cairo_beos_cxx_sources) +@CAIRO_HAS_BEOS_SURFACE_TRUE@am__append_64 = $(cairo_beos_sources) +@CAIRO_HAS_BEOS_SURFACE_TRUE@am__append_65 = cairo-beos.pc +@CAIRO_HAS_DRM_SURFACE_TRUE@am__append_66 = $(cairo_drm_headers) +@CAIRO_HAS_DRM_SURFACE_TRUE@am__append_67 = $(cairo_drm_private) +@CAIRO_HAS_DRM_SURFACE_TRUE@am__append_68 = $(cairo_drm_cxx_sources) +@CAIRO_HAS_DRM_SURFACE_TRUE@am__append_69 = $(cairo_drm_sources) +@CAIRO_HAS_DRM_SURFACE_TRUE@am__append_70 = cairo-drm.pc +@CAIRO_HAS_GALLIUM_SURFACE_TRUE@am__append_71 = $(cairo_gallium_headers) +@CAIRO_HAS_GALLIUM_SURFACE_TRUE@am__append_72 = $(cairo_gallium_private) +@CAIRO_HAS_GALLIUM_SURFACE_TRUE@am__append_73 = $(cairo_gallium_cxx_sources) +@CAIRO_HAS_GALLIUM_SURFACE_TRUE@am__append_74 = $(cairo_gallium_sources) +@CAIRO_HAS_GALLIUM_SURFACE_TRUE@am__append_75 = cairo-gallium.pc +@CAIRO_HAS_PNG_FUNCTIONS_TRUE@am__append_76 = $(cairo_png_headers) +@CAIRO_HAS_PNG_FUNCTIONS_TRUE@am__append_77 = $(cairo_png_private) +@CAIRO_HAS_PNG_FUNCTIONS_TRUE@am__append_78 = $(cairo_png_cxx_sources) +@CAIRO_HAS_PNG_FUNCTIONS_TRUE@am__append_79 = $(cairo_png_sources) +@CAIRO_HAS_PNG_FUNCTIONS_TRUE@am__append_80 = cairo-png.pc +@CAIRO_HAS_GL_SURFACE_TRUE@am__append_81 = $(cairo_gl_headers) +@CAIRO_HAS_GL_SURFACE_TRUE@am__append_82 = $(cairo_gl_private) +@CAIRO_HAS_GL_SURFACE_TRUE@am__append_83 = $(cairo_gl_cxx_sources) +@CAIRO_HAS_GL_SURFACE_TRUE@am__append_84 = $(cairo_gl_sources) +@CAIRO_HAS_GL_SURFACE_TRUE@am__append_85 = cairo-gl.pc +@CAIRO_HAS_GLESV2_SURFACE_TRUE@am__append_86 = $(cairo_glesv2_headers) +@CAIRO_HAS_GLESV2_SURFACE_TRUE@am__append_87 = $(cairo_glesv2_private) +@CAIRO_HAS_GLESV2_SURFACE_TRUE@am__append_88 = $(cairo_glesv2_cxx_sources) +@CAIRO_HAS_GLESV2_SURFACE_TRUE@am__append_89 = $(cairo_glesv2_sources) +@CAIRO_HAS_GLESV2_SURFACE_TRUE@am__append_90 = cairo-glesv2.pc +@CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_91 = $(cairo_glesv3_headers) +@CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_92 = $(cairo_glesv3_private) +@CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_93 = $(cairo_glesv3_cxx_sources) +@CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_94 = $(cairo_glesv3_sources) +@CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_95 = cairo-glesv3.pc +@CAIRO_HAS_COGL_SURFACE_TRUE@am__append_96 = $(cairo_cogl_headers) +@CAIRO_HAS_COGL_SURFACE_TRUE@am__append_97 = $(cairo_cogl_private) +@CAIRO_HAS_COGL_SURFACE_TRUE@am__append_98 = $(cairo_cogl_cxx_sources) +@CAIRO_HAS_COGL_SURFACE_TRUE@am__append_99 = $(cairo_cogl_sources) +@CAIRO_HAS_COGL_SURFACE_TRUE@am__append_100 = cairo-cogl.pc +@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_101 = $(cairo_directfb_headers) +@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_102 = $(cairo_directfb_private) +@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_103 = $(cairo_directfb_cxx_sources) +@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_104 = $(cairo_directfb_sources) +@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_105 = cairo-directfb.pc +@CAIRO_HAS_VG_SURFACE_TRUE@am__append_106 = $(cairo_vg_headers) +@CAIRO_HAS_VG_SURFACE_TRUE@am__append_107 = $(cairo_vg_private) +@CAIRO_HAS_VG_SURFACE_TRUE@am__append_108 = $(cairo_vg_cxx_sources) +@CAIRO_HAS_VG_SURFACE_TRUE@am__append_109 = $(cairo_vg_sources) +@CAIRO_HAS_VG_SURFACE_TRUE@am__append_110 = cairo-vg.pc +@CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_111 = $(cairo_egl_headers) +@CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_112 = $(cairo_egl_private) +@CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_113 = $(cairo_egl_cxx_sources) +@CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_114 = $(cairo_egl_sources) +@CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_115 = cairo-egl.pc +@CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_116 = $(cairo_glx_headers) +@CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_117 = $(cairo_glx_private) +@CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_118 = $(cairo_glx_cxx_sources) +@CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_119 = $(cairo_glx_sources) +@CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_120 = cairo-glx.pc +@CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_121 = $(cairo_wgl_headers) +@CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_122 = $(cairo_wgl_private) +@CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_123 = $(cairo_wgl_cxx_sources) +@CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_124 = $(cairo_wgl_sources) +@CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_125 = cairo-wgl.pc +@CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_126 = $(cairo_script_headers) +@CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_127 = $(cairo_script_private) +@CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_128 = $(cairo_script_cxx_sources) +@CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_129 = $(cairo_script_sources) +@CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_130 = cairo-script.pc +@CAIRO_HAS_FT_FONT_TRUE@am__append_131 = $(cairo_ft_headers) +@CAIRO_HAS_FT_FONT_TRUE@am__append_132 = $(cairo_ft_private) +@CAIRO_HAS_FT_FONT_TRUE@am__append_133 = $(cairo_ft_cxx_sources) +@CAIRO_HAS_FT_FONT_TRUE@am__append_134 = $(cairo_ft_sources) +@CAIRO_HAS_FT_FONT_TRUE@am__append_135 = cairo-ft.pc +@CAIRO_HAS_FC_FONT_TRUE@am__append_136 = $(cairo_fc_headers) +@CAIRO_HAS_FC_FONT_TRUE@am__append_137 = $(cairo_fc_private) +@CAIRO_HAS_FC_FONT_TRUE@am__append_138 = $(cairo_fc_cxx_sources) +@CAIRO_HAS_FC_FONT_TRUE@am__append_139 = $(cairo_fc_sources) +@CAIRO_HAS_FC_FONT_TRUE@am__append_140 = cairo-fc.pc +@CAIRO_HAS_PS_SURFACE_TRUE@am__append_141 = $(cairo_ps_headers) +@CAIRO_HAS_PS_SURFACE_TRUE@am__append_142 = $(cairo_ps_private) +@CAIRO_HAS_PS_SURFACE_TRUE@am__append_143 = $(cairo_ps_cxx_sources) +@CAIRO_HAS_PS_SURFACE_TRUE@am__append_144 = $(cairo_ps_sources) +@CAIRO_HAS_PS_SURFACE_TRUE@am__append_145 = cairo-ps.pc +@CAIRO_HAS_PDF_SURFACE_TRUE@am__append_146 = $(cairo_pdf_headers) +@CAIRO_HAS_PDF_SURFACE_TRUE@am__append_147 = $(cairo_pdf_private) +@CAIRO_HAS_PDF_SURFACE_TRUE@am__append_148 = $(cairo_pdf_cxx_sources) +@CAIRO_HAS_PDF_SURFACE_TRUE@am__append_149 = $(cairo_pdf_sources) +@CAIRO_HAS_PDF_SURFACE_TRUE@am__append_150 = cairo-pdf.pc +@CAIRO_HAS_SVG_SURFACE_TRUE@am__append_151 = $(cairo_svg_headers) +@CAIRO_HAS_SVG_SURFACE_TRUE@am__append_152 = $(cairo_svg_private) +@CAIRO_HAS_SVG_SURFACE_TRUE@am__append_153 = $(cairo_svg_cxx_sources) +@CAIRO_HAS_SVG_SURFACE_TRUE@am__append_154 = $(cairo_svg_sources) +@CAIRO_HAS_SVG_SURFACE_TRUE@am__append_155 = cairo-svg.pc +@CAIRO_HAS_TEST_SURFACES_TRUE@am__append_156 = $(cairo_test_surfaces_private) $(cairo_test_surfaces_headers) +@CAIRO_HAS_TEST_SURFACES_TRUE@am__append_157 = $(cairo_test_surfaces_cxx_sources) +@CAIRO_HAS_TEST_SURFACES_TRUE@am__append_158 = $(cairo_test_surfaces_sources) +@CAIRO_HAS_TEE_SURFACE_TRUE@am__append_159 = $(cairo_tee_headers) +@CAIRO_HAS_TEE_SURFACE_TRUE@am__append_160 = $(cairo_tee_private) +@CAIRO_HAS_TEE_SURFACE_TRUE@am__append_161 = $(cairo_tee_cxx_sources) +@CAIRO_HAS_TEE_SURFACE_TRUE@am__append_162 = $(cairo_tee_sources) +@CAIRO_HAS_TEE_SURFACE_TRUE@am__append_163 = cairo-tee.pc +@CAIRO_HAS_XML_SURFACE_TRUE@am__append_164 = $(cairo_xml_headers) +@CAIRO_HAS_XML_SURFACE_TRUE@am__append_165 = $(cairo_xml_private) +@CAIRO_HAS_XML_SURFACE_TRUE@am__append_166 = $(cairo_xml_cxx_sources) +@CAIRO_HAS_XML_SURFACE_TRUE@am__append_167 = $(cairo_xml_sources) +@CAIRO_HAS_XML_SURFACE_TRUE@am__append_168 = cairo-xml.pc +@CAIRO_HAS_PTHREAD_TRUE@am__append_169 = $(cairo_pthread_private) $(cairo_pthread_headers) +@CAIRO_HAS_PTHREAD_TRUE@am__append_170 = $(cairo_pthread_cxx_sources) +@CAIRO_HAS_PTHREAD_TRUE@am__append_171 = $(cairo_pthread_sources) +@CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_172 = $(cairo_gobject_headers) +@CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_173 = $(cairo_gobject_private) +@CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_174 = $(cairo_gobject_cxx_sources) +@CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_175 = $(cairo_gobject_sources) +@CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_176 = cairo-gobject.pc +@CAIRO_HAS_TRACE_TRUE@am__append_177 = $(cairo_trace_private) $(cairo_trace_headers) +@CAIRO_HAS_TRACE_TRUE@am__append_178 = $(cairo_trace_cxx_sources) +@CAIRO_HAS_TRACE_TRUE@am__append_179 = $(cairo_trace_sources) +@CAIRO_HAS_INTERPRETER_TRUE@am__append_180 = $(cairo_interpreter_private) $(cairo_interpreter_headers) +@CAIRO_HAS_INTERPRETER_TRUE@am__append_181 = $(cairo_interpreter_cxx_sources) +@CAIRO_HAS_INTERPRETER_TRUE@am__append_182 = $(cairo_interpreter_sources) +@CAIRO_HAS_SYMBOL_LOOKUP_TRUE@am__append_183 = $(cairo_symbol_lookup_private) $(cairo_symbol_lookup_headers) +@CAIRO_HAS_SYMBOL_LOOKUP_TRUE@am__append_184 = $(cairo_symbol_lookup_cxx_sources) +@CAIRO_HAS_SYMBOL_LOOKUP_TRUE@am__append_185 = $(cairo_symbol_lookup_sources) +@ENABLE_GTK_DOC_TRUE@am__append_186 = check-doc-coverage.sh +subdir = doc/public +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/build/aclocal.cairo.m4 \ + $(top_srcdir)/build/aclocal.compare.m4 \ + $(top_srcdir)/build/aclocal.enable.m4 \ + $(top_srcdir)/build/aclocal.float.m4 \ + $(top_srcdir)/build/aclocal.makefile.m4 \ + $(top_srcdir)/build/aclocal.pkg.m4 \ + $(top_srcdir)/build/gtk-doc.m4 $(top_srcdir)/build/libtool.m4 \ + $(top_srcdir)/build/ltoptions.m4 \ + $(top_srcdir)/build/ltsugar.m4 \ + $(top_srcdir)/build/ltversion.m4 \ + $(top_srcdir)/build/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/cairo-version.h \ + $(top_srcdir)/build/configure.ac.version \ + $(top_srcdir)/build/configure.ac.tools \ + $(top_srcdir)/build/configure.ac.features \ + $(top_srcdir)/build/configure.ac.warnings \ + $(top_srcdir)/build/configure.ac.system \ + $(top_srcdir)/build/configure.ac.analysis \ + $(top_srcdir)/build/configure.ac.noversion \ + $(top_srcdir)/build/configure.ac.pthread \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__tty_colors_dummy = \ + mgn= red= grn= lgn= blu= brg= std=; \ + am__color_tests=no +am__tty_colors = { \ + $(am__tty_colors_dummy); \ + if test "X$(AM_COLOR_TESTS)" = Xno; then \ + am__color_tests=no; \ + elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ + am__color_tests=yes; \ + elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ + am__color_tests=yes; \ + fi; \ + if test $$am__color_tests = yes; then \ + red=''; \ + grn=''; \ + lgn=''; \ + blu=''; \ + mgn=''; \ + brg=''; \ + std=''; \ + fi; \ +} +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__recheck_rx = ^[ ]*:recheck:[ ]* +am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* +am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* +# A command that, given a newline-separated list of test names on the +# standard input, print the name of the tests that are to be re-run +# upon "make recheck". +am__list_recheck_tests = $(AWK) '{ \ + recheck = 1; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + { \ + if ((getline line2 < ($$0 ".log")) < 0) \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ + { \ + recheck = 0; \ + break; \ + } \ + else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ + { \ + break; \ + } \ + }; \ + if (recheck) \ + print $$0; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# A command that, given a newline-separated list of test names on the +# standard input, create the global log from their .trs and .log files. +am__create_global_log = $(AWK) ' \ +function fatal(msg) \ +{ \ + print "fatal: making $@: " msg | "cat >&2"; \ + exit 1; \ +} \ +function rst_section(header) \ +{ \ + print header; \ + len = length(header); \ + for (i = 1; i <= len; i = i + 1) \ + printf "="; \ + printf "\n\n"; \ +} \ +{ \ + copy_in_global_log = 1; \ + global_test_result = "RUN"; \ + while ((rc = (getline line < ($$0 ".trs"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".trs"); \ + if (line ~ /$(am__global_test_result_rx)/) \ + { \ + sub("$(am__global_test_result_rx)", "", line); \ + sub("[ ]*$$", "", line); \ + global_test_result = line; \ + } \ + else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ + copy_in_global_log = 0; \ + }; \ + if (copy_in_global_log) \ + { \ + rst_section(global_test_result ": " $$0); \ + while ((rc = (getline line < ($$0 ".log"))) != 0) \ + { \ + if (rc < 0) \ + fatal("failed to read from " $$0 ".log"); \ + print line; \ + }; \ + printf "\n"; \ + }; \ + close ($$0 ".trs"); \ + close ($$0 ".log"); \ +}' +# Restructured Text title. +am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } +# Solaris 10 'make', and several other traditional 'make' implementations, +# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it +# by disabling -e (using the XSI extension "set +e") if it's set. +am__sh_e_setup = case $$- in *e*) set +e;; esac +# Default flags passed to test drivers. +am__common_driver_flags = \ + --color-tests "$$am__color_tests" \ + --enable-hard-errors "$$am__enable_hard_errors" \ + --expect-failure "$$am__expect_failure" +# To be inserted before the command running the test. Creates the +# directory for the log if needed. Stores in $dir the directory +# containing $f, in $tst the test, in $log the log. Executes the +# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and +# passes TESTS_ENVIRONMENT. Set up options for the wrapper that +# will run the test scripts (or their associated LOG_COMPILER, if +# thy have one). +am__check_pre = \ +$(am__sh_e_setup); \ +$(am__vpath_adj_setup) $(am__vpath_adj) \ +$(am__tty_colors); \ +srcdir=$(srcdir); export srcdir; \ +case "$@" in \ + */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ + *) am__odir=.;; \ +esac; \ +test "x$$am__odir" = x"." || test -d "$$am__odir" \ + || $(MKDIR_P) "$$am__odir" || exit $$?; \ +if test -f "./$$f"; then dir=./; \ +elif test -f "$$f"; then dir=; \ +else dir="$(srcdir)/"; fi; \ +tst=$$dir$$f; log='$@'; \ +if test -n '$(DISABLE_HARD_ERRORS)'; then \ + am__enable_hard_errors=no; \ +else \ + am__enable_hard_errors=yes; \ +fi; \ +case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ + am__expect_failure=yes;; \ + *) \ + am__expect_failure=no;; \ +esac; \ +$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) +# A shell command to get the names of the tests scripts with any registered +# extension removed (i.e., equivalently, the names of the test logs, with +# the '.log' extension removed). The result is saved in the shell variable +# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, +# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", +# since that might cause problem with VPATH rewrites for suffix-less tests. +# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. +am__set_TESTS_bases = \ + bases='$(TEST_LOGS)'; \ + bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ + bases=`echo $$bases` +RECHECK_LOGS = $(TEST_LOGS) +AM_RECURSIVE_TARGETS = check recheck +TEST_SUITE_LOG = test-suite.log +TEST_EXTENSIONS = @EXEEXT@ .test +LOG_DRIVER = $(SHELL) $(top_srcdir)/build/test-driver +LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) +am__set_b = \ + case '$@' in \ + */*) \ + case '$*' in \ + */*) b='$*';; \ + *) b=`echo '$@' | sed 's/\.log$$//'`; \ + esac;; \ + *) \ + b='$*';; \ + esac +am__test_logs1 = $(TESTS:=.log) +am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) +TEST_LOGS = $(am__test_logs2:.test.log=.log) +TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build/test-driver +TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ + $(TEST_LOG_FLAGS) +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/build/Makefile.am.common \ + $(top_srcdir)/build/Makefile.am.gtk-doc \ + $(top_srcdir)/build/test-driver \ + $(top_srcdir)/src/Makefile.am.features \ + $(top_srcdir)/src/Makefile.sources README +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BFD_LIBS = @BFD_LIBS@ +CAIROBOILERPLATE_LIBS = @CAIROBOILERPLATE_LIBS@ +CAIRO_CFLAGS = @CAIRO_CFLAGS@ +CAIRO_LDFLAGS = @CAIRO_LDFLAGS@ +CAIRO_LIBS = @CAIRO_LIBS@ +CAIRO_LIBTOOL_VERSION_INFO = @CAIRO_LIBTOOL_VERSION_INFO@ +CAIRO_NONPKGCONFIG_CFLAGS = @CAIRO_NONPKGCONFIG_CFLAGS@ +CAIRO_NONPKGCONFIG_LIBS = @CAIRO_NONPKGCONFIG_LIBS@ +CAIRO_RELEASE_STATUS = @CAIRO_RELEASE_STATUS@ +CAIRO_REQUIRES = @CAIRO_REQUIRES@ +CAIRO_TEST_MODE = @CAIRO_TEST_MODE@ +CAIRO_TEST_UNDEFINED_LDFLAGS = @CAIRO_TEST_UNDEFINED_LDFLAGS@ +CAIRO_VERSION_MAJOR = @CAIRO_VERSION_MAJOR@ +CAIRO_VERSION_MICRO = @CAIRO_VERSION_MICRO@ +CAIRO_VERSION_MINOR = @CAIRO_VERSION_MINOR@ +CAIRO_VERSION_SONUM = @CAIRO_VERSION_SONUM@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FIND = @FIND@ +FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@ +FONTCONFIG_LIBS = @FONTCONFIG_LIBS@ +FREETYPE_CFLAGS = @FREETYPE_CFLAGS@ +FREETYPE_CONFIG = @FREETYPE_CONFIG@ +FREETYPE_LIBS = @FREETYPE_LIBS@ +GOBJECT_CFLAGS = @GOBJECT_CFLAGS@ +GOBJECT_LIBS = @GOBJECT_LIBS@ +GREP = @GREP@ +GS = @GS@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ +GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ +GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBM = @LIBM@ +LIBOBJS = @LIBOBJS@ +LIBRSVG_CFLAGS = @LIBRSVG_CFLAGS@ +LIBRSVG_LIBS = @LIBRSVG_LIBS@ +LIBS = @LIBS@ +LIBSPECTRE_CFLAGS = @LIBSPECTRE_CFLAGS@ +LIBSPECTRE_LIBS = @LIBSPECTRE_LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LTP = @LTP@ +LTP_GENHTML = @LTP_GENHTML@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@ +PKG_CONFIG = @PKG_CONFIG@ +POPPLER_CFLAGS = @POPPLER_CFLAGS@ +POPPLER_LIBS = @POPPLER_LIBS@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SHLIB_EXT = @SHLIB_EXT@ +SHM_LIBS = @SHM_LIBS@ +SHTOOL = @SHTOOL@ +STRIP = @STRIP@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VERSION = @VERSION@ +XARGS = @XARGS@ +XMKMF = @XMKMF@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +cogl_CFLAGS = @cogl_CFLAGS@ +cogl_LIBS = @cogl_LIBS@ +datadir = @datadir@ +datarootdir = @datarootdir@ +directfb_CFLAGS = @directfb_CFLAGS@ +directfb_LIBS = @directfb_LIBS@ +docdir = @docdir@ +drm_CFLAGS = @drm_CFLAGS@ +drm_LIBS = @drm_LIBS@ +dvidir = @dvidir@ +egl_CFLAGS = @egl_CFLAGS@ +egl_LIBS = @egl_LIBS@ +exec_prefix = @exec_prefix@ +gallium_DIR = @gallium_DIR@ +gl_CFLAGS = @gl_CFLAGS@ +gl_LIBS = @gl_LIBS@ +glesv2_CFLAGS = @glesv2_CFLAGS@ +glesv2_LIBS = @glesv2_LIBS@ +glesv3_CFLAGS = @glesv3_CFLAGS@ +glesv3_LIBS = @glesv3_LIBS@ +glib_CFLAGS = @glib_CFLAGS@ +glib_LIBS = @glib_LIBS@ +gtk_CFLAGS = @gtk_CFLAGS@ +gtk_LIBS = @gtk_LIBS@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lzo_LIBS = @lzo_LIBS@ +mandir = @mandir@ +mesa_DIR = @mesa_DIR@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pixman_CFLAGS = @pixman_CFLAGS@ +pixman_LIBS = @pixman_LIBS@ +png_CFLAGS = @png_CFLAGS@ +png_LIBS = @png_LIBS@ +png_REQUIRES = @png_REQUIRES@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pthread_CFLAGS = @pthread_CFLAGS@ +pthread_LIBS = @pthread_LIBS@ +qt_CFLAGS = @qt_CFLAGS@ +qt_LIBS = @qt_LIBS@ +real_pthread_CFLAGS = @real_pthread_CFLAGS@ +real_pthread_LIBS = @real_pthread_LIBS@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +shm_LIBS = @shm_LIBS@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +xcb_CFLAGS = @xcb_CFLAGS@ +xcb_LIBS = @xcb_LIBS@ +xcb_shm_CFLAGS = @xcb_shm_CFLAGS@ +xcb_shm_LIBS = @xcb_shm_LIBS@ +xlib_CFLAGS = @xlib_CFLAGS@ +xlib_LIBS = @xlib_LIBS@ +xlib_xcb_CFLAGS = @xlib_xcb_CFLAGS@ +xlib_xcb_LIBS = @xlib_xcb_LIBS@ +xlib_xrender_CFLAGS = @xlib_xrender_CFLAGS@ +xlib_xrender_LIBS = @xlib_xrender_LIBS@ +BUILT_SOURCES = +CLEANFILES = *.i *.s *.gch $(EXTRA_LTLIBRARIES) $(EXTRA_PROGRAMS) \ + $(check_PROGRAMS) $(SCANOBJ_FILES) $(REPORT_FILES) \ + $(DOC_STAMPS) +DISTCLEANFILES = $(BUILT_SOURCES) +EXTRA_DIST = $(content_files) $(HTML_IMAGES) $(DOC_MAIN_SGML_FILE) \ + $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt \ + check-doc-coverage.sh check-doc-syntax.sh +EXTRA_LTLIBRARIES = +MAINTAINERCLEANFILES = Makefile.in +TESTS = $(am__append_186) check-doc-syntax.sh +cairo_headers = cairo.h cairo-deprecated.h +cairo_private = cairoint.h cairo-analysis-surface-private.h \ + cairo-arc-private.h cairo-array-private.h \ + cairo-atomic-private.h cairo-backend-private.h \ + cairo-box-inline.h cairo-boxes-private.h cairo-cache-private.h \ + cairo-clip-inline.h cairo-clip-private.h \ + cairo-combsort-inline.h cairo-compiler-private.h \ + cairo-composite-rectangles-private.h \ + cairo-compositor-private.h cairo-contour-inline.h \ + cairo-contour-private.h cairo-damage-private.h \ + cairo-default-context-private.h cairo-device-private.h \ + cairo-error-inline.h cairo-error-private.h \ + cairo-fixed-private.h cairo-fixed-type-private.h \ + cairo-fontconfig-private.h cairo-freed-pool-private.h \ + cairo-freelist-private.h cairo-freelist-type-private.h \ + cairo-gstate-private.h cairo-hash-private.h \ + cairo-image-info-private.h cairo-image-surface-inline.h \ + cairo-image-surface-private.h cairo-line-inline.h \ + cairo-line-private.h cairo-list-inline.h cairo-list-private.h \ + cairo-malloc-private.h cairo-mempool-private.h \ + cairo-mutex-impl-private.h cairo-mutex-list-private.h \ + cairo-mutex-private.h cairo-mutex-type-private.h \ + cairo-output-stream-private.h cairo-paginated-private.h \ + cairo-paginated-surface-private.h cairo-path-fixed-private.h \ + cairo-path-private.h cairo-pattern-inline.h \ + cairo-pattern-private.h cairo-pixman-private.h cairo-private.h \ + cairo-recording-surface-inline.h \ + cairo-recording-surface-private.h \ + cairo-reference-count-private.h cairo-region-private.h \ + cairo-rtree-private.h cairo-scaled-font-private.h \ + cairo-slope-private.h cairo-spans-compositor-private.h \ + cairo-spans-private.h cairo-stroke-dash-private.h \ + cairo-surface-backend-private.h \ + cairo-surface-clipper-private.h \ + cairo-surface-fallback-private.h cairo-surface-inline.h \ + cairo-surface-observer-inline.h \ + cairo-surface-observer-private.h \ + cairo-surface-offset-private.h cairo-surface-private.h \ + cairo-surface-snapshot-inline.h \ + cairo-surface-snapshot-private.h \ + cairo-surface-subsurface-inline.h \ + cairo-surface-subsurface-private.h \ + cairo-surface-wrapper-private.h cairo-time-private.h \ + cairo-traps-private.h cairo-tristrip-private.h \ + cairo-types-private.h cairo-user-font-private.h \ + cairo-wideint-private.h cairo-wideint-type-private.h $(NULL) \ + $(_cairo_font_subset_private) $(_cairo_pdf_operators_private) +cairo_sources = cairo-analysis-surface.c cairo-arc.c cairo-array.c \ + cairo-atomic.c cairo-base64-stream.c cairo-base85-stream.c \ + cairo-bentley-ottmann-rectangular.c \ + cairo-bentley-ottmann-rectilinear.c cairo-bentley-ottmann.c \ + cairo-botor-scan-converter.c cairo-boxes-intersect.c \ + cairo-boxes.c cairo-cache.c cairo-clip-boxes.c \ + cairo-clip-polygon.c cairo-clip-region.c cairo-clip-surface.c \ + cairo-clip-tor-scan-converter.c cairo-clip.c cairo-color.c \ + cairo-composite-rectangles.c cairo-compositor.c \ + cairo-contour.c cairo-damage.c cairo-debug.c \ + cairo-default-context.c cairo-device.c cairo-error.c \ + cairo-fallback-compositor.c cairo-fixed.c \ + cairo-font-face-twin-data.c cairo-font-face-twin.c \ + cairo-font-face.c cairo-font-options.c cairo-freed-pool.c \ + cairo-freelist.c cairo-gstate.c cairo-hash.c cairo-hull.c \ + cairo-image-compositor.c cairo-image-info.c \ + cairo-image-source.c cairo-image-surface.c cairo-line.c \ + cairo-lzw.c cairo-mask-compositor.c cairo-matrix.c \ + cairo-mempool.c cairo-mesh-pattern-rasterizer.c cairo-misc.c \ + cairo-mono-scan-converter.c cairo-mutex.c \ + cairo-no-compositor.c cairo-observer.c cairo-output-stream.c \ + cairo-paginated-surface.c cairo-path-bounds.c \ + cairo-path-fill.c cairo-path-fixed.c cairo-path-in-fill.c \ + cairo-path-stroke-boxes.c cairo-path-stroke-polygon.c \ + cairo-path-stroke-traps.c cairo-path-stroke-tristrip.c \ + cairo-path-stroke.c cairo-path.c cairo-pattern.c cairo-pen.c \ + cairo-polygon-intersect.c cairo-polygon-reduce.c \ + cairo-polygon.c cairo-raster-source-pattern.c \ + cairo-recording-surface.c cairo-rectangle.c \ + cairo-rectangular-scan-converter.c cairo-region.c \ + cairo-rtree.c cairo-scaled-font.c \ + cairo-shape-mask-compositor.c cairo-slope.c \ + cairo-spans-compositor.c cairo-spans.c cairo-spline.c \ + cairo-stroke-dash.c cairo-stroke-style.c \ + cairo-surface-clipper.c cairo-surface-fallback.c \ + cairo-surface-observer.c cairo-surface-offset.c \ + cairo-surface-snapshot.c cairo-surface-subsurface.c \ + cairo-surface-wrapper.c cairo-surface.c cairo-time.c \ + cairo-tor-scan-converter.c cairo-tor22-scan-converter.c \ + cairo-toy-font-face.c cairo-traps-compositor.c cairo-traps.c \ + cairo-tristrip.c cairo-unicode.c cairo-user-font.c \ + cairo-version.c cairo-wideint.c cairo.c $(NULL) \ + $(_cairo_font_subset_sources) $(_cairo_pdf_operators_sources) \ + $(_cairo_deflate_stream_sources) +_cairo_font_subset_private = \ + cairo-scaled-font-subsets-private.h \ + cairo-truetype-subset-private.h \ + cairo-type1-private.h \ + cairo-type3-glyph-surface-private.h \ + $(NULL) + +_cairo_font_subset_sources = \ + cairo-cff-subset.c \ + cairo-scaled-font-subsets.c \ + cairo-truetype-subset.c \ + cairo-type1-fallback.c \ + cairo-type1-glyph-names.c \ + cairo-type1-subset.c \ + cairo-type3-glyph-surface.c \ + $(NULL) + +cairo_egl_sources = cairo-egl-context.c +cairo_glx_sources = cairo-glx-context.c +cairo_wgl_sources = cairo-wgl-context.c +_cairo_pdf_operators_private = \ + cairo-pdf-operators-private.h \ + cairo-pdf-shading-private.h \ + cairo-tag-attributes-private.h \ + $(NULL) + +_cairo_pdf_operators_sources = \ + cairo-pdf-operators.c \ + cairo-pdf-shading.c \ + cairo-tag-attributes.c \ + $(NULL) + +cairo_png_sources = cairo-png.c +cairo_ps_headers = cairo-ps.h +cairo_ps_private = cairo-ps-surface-private.h +cairo_ps_sources = cairo-ps-surface.c +_cairo_deflate_stream_sources = cairo-deflate-stream.c +cairo_pdf_headers = cairo-pdf.h +cairo_pdf_private = cairo-pdf-surface-private.h cairo-tag-stack-private.h +cairo_pdf_sources = cairo-pdf-surface.c cairo-pdf-interchange.c cairo-tag-stack.c +cairo_svg_headers = cairo-svg.h +cairo_svg_private = cairo-svg-surface-private.h +cairo_svg_sources = cairo-svg-surface.c +cairo_ft_headers = cairo-ft.h +cairo_ft_private = cairo-ft-private.h +cairo_ft_sources = cairo-ft-font.c + +# These are private, even though they look like public headers +cairo_test_surfaces_private = \ + test-compositor-surface.h \ + test-compositor-surface-private.h \ + test-null-compositor-surface.h \ + test-paginated-surface.h \ + $(NULL) + +cairo_test_surfaces_sources = \ + test-compositor-surface.c \ + test-null-compositor-surface.c \ + test-base-compositor-surface.c \ + test-paginated-surface.c \ + $(NULL) + +cairo_xlib_headers = cairo-xlib.h +cairo_xlib_private = \ + cairo-xlib-private.h \ + cairo-xlib-surface-private.h \ + cairo-xlib-xrender-private.h \ + $(NULL) + +cairo_xlib_sources = \ + cairo-xlib-display.c \ + cairo-xlib-core-compositor.c \ + cairo-xlib-fallback-compositor.c \ + cairo-xlib-render-compositor.c \ + cairo-xlib-screen.c \ + cairo-xlib-source.c \ + cairo-xlib-surface.c \ + cairo-xlib-surface-shm.c \ + cairo-xlib-visual.c \ + cairo-xlib-xcb-surface.c \ + $(NULL) + +cairo_xlib_xrender_headers = cairo-xlib-xrender.h +cairo_xcb_headers = cairo-xcb.h +cairo_xcb_private = cairo-xcb-private.h +cairo_xcb_sources = \ + cairo-xcb-connection.c \ + cairo-xcb-connection-core.c \ + cairo-xcb-connection-render.c \ + cairo-xcb-connection-shm.c \ + cairo-xcb-screen.c \ + cairo-xcb-shm.c \ + cairo-xcb-surface.c \ + cairo-xcb-surface-core.c \ + cairo-xcb-surface-render.c \ + cairo-xcb-resources.c \ + $(NULL) + +cairo_qt_headers = cairo-qt.h +cairo_qt_cxx_sources = cairo-qt-surface.cpp +cairo_quartz_headers = cairo-quartz.h +cairo_quartz_private = cairo-quartz-private.h +cairo_quartz_sources = cairo-quartz-surface.c +cairo_quartz_image_headers = cairo-quartz-image.h +cairo_quartz_image_sources = cairo-quartz-image-surface.c +cairo_quartz_font_sources = cairo-quartz-font.c +cairo_win32_headers = cairo-win32.h +cairo_win32_private = win32/cairo-win32-private.h +cairo_win32_sources = \ + win32/cairo-win32-debug.c \ + win32/cairo-win32-device.c \ + win32/cairo-win32-gdi-compositor.c \ + win32/cairo-win32-system.c \ + win32/cairo-win32-surface.c \ + win32/cairo-win32-display-surface.c \ + win32/cairo-win32-printing-surface.c \ + $(NULL) + +cairo_win32_font_sources = \ + win32/cairo-win32-font.c \ + $(NULL) + +cairo_os2_headers = cairo-os2.h +cairo_os2_private = cairo-os2-private.h +cairo_os2_sources = cairo-os2-surface.c + +# automake is stupid enough to always use c++ linker if we enable the +# following lines, even if beos surface is not enabled. Disable it for now. +cairo_beos_headers = cairo-beos.h +cairo_beos_cxx_sources = cairo-beos-surface.cpp +cairo_gl_headers = cairo-gl.h +cairo_gl_private = cairo-gl-private.h \ + cairo-gl-dispatch-private.h \ + cairo-gl-ext-def-private.h \ + cairo-gl-gradient-private.h + +cairo_gl_sources = cairo-gl-composite.c \ + cairo-gl-device.c \ + cairo-gl-dispatch.c \ + cairo-gl-glyphs.c \ + cairo-gl-gradient.c \ + cairo-gl-info.c \ + cairo-gl-msaa-compositor.c \ + cairo-gl-operand.c \ + cairo-gl-shaders.c \ + cairo-gl-source.c \ + cairo-gl-spans-compositor.c \ + cairo-gl-surface.c \ + cairo-gl-traps-compositor.c + +cairo_glesv2_headers = $(cairo_gl_headers) +cairo_glesv2_private = $(cairo_gl_private) +cairo_glesv2_sources = $(cairo_gl_sources) +cairo_glesv3_headers = $(cairo_gl_headers) +cairo_glesv3_private = $(cairo_gl_private) +cairo_glesv3_sources = $(cairo_gl_sources) +cairo_directfb_headers = cairo-directfb.h +cairo_directfb_sources = cairo-directfb-surface.c +cairo_drm_headers = cairo-drm.h +cairo_drm_private = drm/cairo-drm-private.h \ + drm/cairo-drm-intel-private.h \ + drm/cairo-drm-intel-brw-defines.h \ + drm/cairo-drm-intel-brw-structs.h \ + drm/cairo-drm-intel-brw-eu.h \ + drm/cairo-drm-intel-command-private.h \ + drm/cairo-drm-intel-ioctl-private.h \ + drm/cairo-drm-i915-private.h \ + drm/cairo-drm-i965-private.h \ + drm/cairo-drm-radeon-private.h + +cairo_drm_sources = drm/cairo-drm.c \ + drm/cairo-drm-bo.c \ + drm/cairo-drm-surface.c \ + drm/cairo-drm-intel.c \ + drm/cairo-drm-intel-debug.c \ + drm/cairo-drm-intel-surface.c \ + drm/cairo-drm-i915-surface.c \ + drm/cairo-drm-i915-glyphs.c \ + drm/cairo-drm-i915-shader.c \ + drm/cairo-drm-i915-spans.c \ + drm/cairo-drm-i965-surface.c \ + drm/cairo-drm-i965-glyphs.c \ + drm/cairo-drm-i965-shader.c \ + drm/cairo-drm-i965-spans.c \ + drm/cairo-drm-intel-brw-eu.c \ + drm/cairo-drm-intel-brw-eu-emit.c \ + drm/cairo-drm-intel-brw-eu-util.c \ + drm/cairo-drm-radeon.c \ + drm/cairo-drm-radeon-surface.c + +cairo_gallium_sources = drm/cairo-drm-gallium-surface.c +cairo_script_headers = cairo-script.h +cairo_script_private = cairo-script-private.h +cairo_script_sources = cairo-script-surface.c +cairo_tee_headers = cairo-tee.h +cairo_tee_private = cairo-tee-surface-private.h +cairo_tee_sources = cairo-tee-surface.c +cairo_xml_headers = cairo-xml.h +cairo_xml_sources = cairo-xml-surface.c +cairo_vg_headers = cairo-vg.h +cairo_vg_sources = cairo-vg-surface.c +cairo_cogl_headers = cairo-cogl.h +cairo_cogl_private = cairo-cogl-private.h \ + cairo-cogl-gradient-private.h \ + cairo-cogl-context-private.h \ + cairo-cogl-utils-private.h + +cairo_cogl_sources = cairo-cogl-surface.c \ + cairo-cogl-gradient.c \ + cairo-cogl-context.c \ + cairo-cogl-utils.c + +supported_cairo_headers = $(cairo_headers) $(cairo_xlib_headers) \ + $(cairo_xlib_xrender_headers) $(cairo_xcb_headers) \ + $(cairo_xcb_shm_headers) $(cairo_quartz_headers) \ + $(cairo_quartz_font_headers) $(cairo_win32_headers) \ + $(cairo_win32_font_headers) $(cairo_png_headers) \ + $(cairo_egl_headers) $(cairo_glx_headers) $(cairo_wgl_headers) \ + $(cairo_script_headers) $(cairo_ft_headers) \ + $(cairo_fc_headers) $(cairo_ps_headers) $(cairo_pdf_headers) \ + $(cairo_svg_headers) $(cairo_image_headers) \ + $(cairo_mime_headers) $(cairo_recording_headers) \ + $(cairo_observer_headers) $(cairo_user_headers) \ + $(cairo_gobject_headers) +unsupported_cairo_headers = $(cairo_xlib_xcb_headers) \ + $(cairo_qt_headers) $(cairo_quartz_image_headers) \ + $(cairo_os2_headers) $(cairo_beos_headers) \ + $(cairo_drm_headers) $(cairo_gallium_headers) \ + $(cairo_gl_headers) $(cairo_glesv2_headers) \ + $(cairo_glesv3_headers) $(cairo_cogl_headers) \ + $(cairo_directfb_headers) $(cairo_vg_headers) \ + $(cairo_tee_headers) $(cairo_xml_headers) +all_cairo_headers = $(cairo_headers) $(cairo_xlib_headers) \ + $(cairo_xlib_xrender_headers) $(cairo_xcb_headers) \ + $(cairo_xlib_xcb_headers) $(cairo_xcb_shm_headers) \ + $(cairo_qt_headers) $(cairo_quartz_headers) \ + $(cairo_quartz_font_headers) $(cairo_quartz_image_headers) \ + $(cairo_win32_headers) $(cairo_win32_font_headers) \ + $(cairo_os2_headers) $(cairo_beos_headers) \ + $(cairo_drm_headers) $(cairo_gallium_headers) \ + $(cairo_png_headers) $(cairo_gl_headers) \ + $(cairo_glesv2_headers) $(cairo_glesv3_headers) \ + $(cairo_cogl_headers) $(cairo_directfb_headers) \ + $(cairo_vg_headers) $(cairo_egl_headers) $(cairo_glx_headers) \ + $(cairo_wgl_headers) $(cairo_script_headers) \ + $(cairo_ft_headers) $(cairo_fc_headers) $(cairo_ps_headers) \ + $(cairo_pdf_headers) $(cairo_svg_headers) \ + $(cairo_image_headers) $(cairo_mime_headers) \ + $(cairo_recording_headers) $(cairo_observer_headers) \ + $(cairo_tee_headers) $(cairo_xml_headers) \ + $(cairo_user_headers) $(cairo_gobject_headers) +all_cairo_private = $(cairo_private) $(cairo_xlib_private) \ + $(cairo_xlib_xrender_private) $(cairo_xcb_private) \ + $(cairo_xlib_xcb_private) $(cairo_xcb_shm_private) \ + $(cairo_qt_private) $(cairo_quartz_private) \ + $(cairo_quartz_font_private) $(cairo_quartz_image_private) \ + $(cairo_win32_private) $(cairo_win32_font_private) \ + $(cairo_os2_private) $(cairo_beos_private) \ + $(cairo_drm_private) $(cairo_gallium_private) \ + $(cairo_png_private) $(cairo_gl_private) \ + $(cairo_glesv2_private) $(cairo_glesv3_private) \ + $(cairo_cogl_private) $(cairo_directfb_private) \ + $(cairo_vg_private) $(cairo_egl_private) $(cairo_glx_private) \ + $(cairo_wgl_private) $(cairo_script_private) \ + $(cairo_ft_private) $(cairo_fc_private) $(cairo_ps_private) \ + $(cairo_pdf_private) $(cairo_svg_private) \ + $(cairo_test_surfaces_private) $(cairo_test_surfaces_headers) \ + $(cairo_image_private) $(cairo_mime_private) \ + $(cairo_recording_private) $(cairo_observer_private) \ + $(cairo_tee_private) $(cairo_xml_private) \ + $(cairo_user_private) $(cairo_pthread_private) \ + $(cairo_pthread_headers) $(cairo_gobject_private) \ + $(cairo_trace_private) $(cairo_trace_headers) \ + $(cairo_interpreter_private) $(cairo_interpreter_headers) \ + $(cairo_symbol_lookup_private) $(cairo_symbol_lookup_headers) +all_cairo_cxx_sources = $(cairo_cxx_sources) $(cairo_xlib_cxx_sources) \ + $(cairo_xlib_xrender_cxx_sources) $(cairo_xcb_cxx_sources) \ + $(cairo_xlib_xcb_cxx_sources) $(cairo_xcb_shm_cxx_sources) \ + $(cairo_qt_cxx_sources) $(cairo_quartz_cxx_sources) \ + $(cairo_quartz_font_cxx_sources) \ + $(cairo_quartz_image_cxx_sources) $(cairo_win32_cxx_sources) \ + $(cairo_win32_font_cxx_sources) $(cairo_os2_cxx_sources) \ + $(cairo_beos_cxx_sources) $(cairo_drm_cxx_sources) \ + $(cairo_gallium_cxx_sources) $(cairo_png_cxx_sources) \ + $(cairo_gl_cxx_sources) $(cairo_glesv2_cxx_sources) \ + $(cairo_glesv3_cxx_sources) $(cairo_cogl_cxx_sources) \ + $(cairo_directfb_cxx_sources) $(cairo_vg_cxx_sources) \ + $(cairo_egl_cxx_sources) $(cairo_glx_cxx_sources) \ + $(cairo_wgl_cxx_sources) $(cairo_script_cxx_sources) \ + $(cairo_ft_cxx_sources) $(cairo_fc_cxx_sources) \ + $(cairo_ps_cxx_sources) $(cairo_pdf_cxx_sources) \ + $(cairo_svg_cxx_sources) $(cairo_test_surfaces_cxx_sources) \ + $(cairo_image_cxx_sources) $(cairo_mime_cxx_sources) \ + $(cairo_recording_cxx_sources) $(cairo_observer_cxx_sources) \ + $(cairo_tee_cxx_sources) $(cairo_xml_cxx_sources) \ + $(cairo_user_cxx_sources) $(cairo_pthread_cxx_sources) \ + $(cairo_gobject_cxx_sources) $(cairo_trace_cxx_sources) \ + $(cairo_interpreter_cxx_sources) \ + $(cairo_symbol_lookup_cxx_sources) +all_cairo_sources = $(cairo_sources) $(cairo_xlib_sources) \ + $(cairo_xlib_xrender_sources) $(cairo_xcb_sources) \ + $(cairo_xlib_xcb_sources) $(cairo_xcb_shm_sources) \ + $(cairo_qt_sources) $(cairo_quartz_sources) \ + $(cairo_quartz_font_sources) $(cairo_quartz_image_sources) \ + $(cairo_win32_sources) $(cairo_win32_font_sources) \ + $(cairo_os2_sources) $(cairo_beos_sources) \ + $(cairo_drm_sources) $(cairo_gallium_sources) \ + $(cairo_png_sources) $(cairo_gl_sources) \ + $(cairo_glesv2_sources) $(cairo_glesv3_sources) \ + $(cairo_cogl_sources) $(cairo_directfb_sources) \ + $(cairo_vg_sources) $(cairo_egl_sources) $(cairo_glx_sources) \ + $(cairo_wgl_sources) $(cairo_script_sources) \ + $(cairo_ft_sources) $(cairo_fc_sources) $(cairo_ps_sources) \ + $(cairo_pdf_sources) $(cairo_svg_sources) \ + $(cairo_test_surfaces_sources) $(cairo_image_sources) \ + $(cairo_mime_sources) $(cairo_recording_sources) \ + $(cairo_observer_sources) $(cairo_tee_sources) \ + $(cairo_xml_sources) $(cairo_user_sources) \ + $(cairo_pthread_sources) $(cairo_gobject_sources) \ + $(cairo_trace_sources) $(cairo_interpreter_sources) \ + $(cairo_symbol_lookup_sources) +enabled_cairo_headers = $(cairo_headers) $(am__append_1) \ + $(am__append_6) $(am__append_11) $(am__append_16) \ + $(am__append_21) $(am__append_26) $(am__append_31) \ + $(am__append_36) $(am__append_41) $(am__append_46) \ + $(am__append_51) $(am__append_56) $(am__append_61) \ + $(am__append_66) $(am__append_71) $(am__append_76) \ + $(am__append_81) $(am__append_86) $(am__append_91) \ + $(am__append_96) $(am__append_101) $(am__append_106) \ + $(am__append_111) $(am__append_116) $(am__append_121) \ + $(am__append_126) $(am__append_131) $(am__append_136) \ + $(am__append_141) $(am__append_146) $(am__append_151) \ + $(cairo_image_headers) $(cairo_mime_headers) \ + $(cairo_recording_headers) $(cairo_observer_headers) \ + $(am__append_159) $(am__append_164) $(cairo_user_headers) \ + $(am__append_172) +enabled_cairo_private = $(cairo_private) $(am__append_2) \ + $(am__append_7) $(am__append_12) $(am__append_17) \ + $(am__append_22) $(am__append_27) $(am__append_32) \ + $(am__append_37) $(am__append_42) $(am__append_47) \ + $(am__append_52) $(am__append_57) $(am__append_62) \ + $(am__append_67) $(am__append_72) $(am__append_77) \ + $(am__append_82) $(am__append_87) $(am__append_92) \ + $(am__append_97) $(am__append_102) $(am__append_107) \ + $(am__append_112) $(am__append_117) $(am__append_122) \ + $(am__append_127) $(am__append_132) $(am__append_137) \ + $(am__append_142) $(am__append_147) $(am__append_152) \ + $(am__append_156) $(cairo_image_private) $(cairo_mime_private) \ + $(cairo_recording_private) $(cairo_observer_private) \ + $(am__append_160) $(am__append_165) $(cairo_user_private) \ + $(am__append_169) $(am__append_173) $(am__append_177) \ + $(am__append_180) $(am__append_183) +enabled_cairo_cxx_sources = $(cairo_cxx_sources) $(am__append_3) \ + $(am__append_8) $(am__append_13) $(am__append_18) \ + $(am__append_23) $(am__append_28) $(am__append_33) \ + $(am__append_38) $(am__append_43) $(am__append_48) \ + $(am__append_53) $(am__append_58) $(am__append_63) \ + $(am__append_68) $(am__append_73) $(am__append_78) \ + $(am__append_83) $(am__append_88) $(am__append_93) \ + $(am__append_98) $(am__append_103) $(am__append_108) \ + $(am__append_113) $(am__append_118) $(am__append_123) \ + $(am__append_128) $(am__append_133) $(am__append_138) \ + $(am__append_143) $(am__append_148) $(am__append_153) \ + $(am__append_157) $(cairo_image_cxx_sources) \ + $(cairo_mime_cxx_sources) $(cairo_recording_cxx_sources) \ + $(cairo_observer_cxx_sources) $(am__append_161) \ + $(am__append_166) $(cairo_user_cxx_sources) $(am__append_170) \ + $(am__append_174) $(am__append_178) $(am__append_181) \ + $(am__append_184) +enabled_cairo_sources = $(cairo_sources) $(am__append_4) \ + $(am__append_9) $(am__append_14) $(am__append_19) \ + $(am__append_24) $(am__append_29) $(am__append_34) \ + $(am__append_39) $(am__append_44) $(am__append_49) \ + $(am__append_54) $(am__append_59) $(am__append_64) \ + $(am__append_69) $(am__append_74) $(am__append_79) \ + $(am__append_84) $(am__append_89) $(am__append_94) \ + $(am__append_99) $(am__append_104) $(am__append_109) \ + $(am__append_114) $(am__append_119) $(am__append_124) \ + $(am__append_129) $(am__append_134) $(am__append_139) \ + $(am__append_144) $(am__append_149) $(am__append_154) \ + $(am__append_158) $(cairo_image_sources) $(cairo_mime_sources) \ + $(cairo_recording_sources) $(cairo_observer_sources) \ + $(am__append_162) $(am__append_167) $(cairo_user_sources) \ + $(am__append_171) $(am__append_175) $(am__append_179) \ + $(am__append_182) $(am__append_185) +all_cairo_pkgconf = cairo.pc cairo-xlib.pc cairo-xlib-xrender.pc \ + cairo-xcb.pc cairo-xlib-xcb.pc cairo-xcb-shm.pc cairo-qt.pc \ + cairo-quartz.pc cairo-quartz-font.pc cairo-quartz-image.pc \ + cairo-win32.pc cairo-win32-font.pc cairo-os2.pc cairo-beos.pc \ + cairo-drm.pc cairo-gallium.pc cairo-png.pc cairo-gl.pc \ + cairo-glesv2.pc cairo-glesv3.pc cairo-cogl.pc \ + cairo-directfb.pc cairo-vg.pc cairo-egl.pc cairo-glx.pc \ + cairo-wgl.pc cairo-script.pc cairo-ft.pc cairo-fc.pc \ + cairo-ps.pc cairo-pdf.pc cairo-svg.pc cairo-tee.pc \ + cairo-xml.pc cairo-gobject.pc +enabled_cairo_pkgconf = cairo.pc $(am__append_5) $(am__append_10) \ + $(am__append_15) $(am__append_20) $(am__append_25) \ + $(am__append_30) $(am__append_35) $(am__append_40) \ + $(am__append_45) $(am__append_50) $(am__append_55) \ + $(am__append_60) $(am__append_65) $(am__append_70) \ + $(am__append_75) $(am__append_80) $(am__append_85) \ + $(am__append_90) $(am__append_95) $(am__append_100) \ + $(am__append_105) $(am__append_110) $(am__append_115) \ + $(am__append_120) $(am__append_125) $(am__append_130) \ + $(am__append_135) $(am__append_140) $(am__append_145) \ + $(am__append_150) $(am__append_155) $(am__append_163) \ + $(am__append_168) $(am__append_176) + +# The name of the module. +DOC_MODULE = cairo + +# The top-level SGML file. +DOC_MAIN_SGML_FILE = cairo-docs.xml + +# Extra options to supply to gtkdoc-scan +SCAN_OPTIONS = --deprecated-guards="CAIRO_DISABLE_DEPRECATED" --ignore-decorators="cairo_public|cairo_private" + +# The directory containing the source code. +DOC_SOURCE_DIR = $(top_srcdir)/src + +# Used for dependencies +HFILE_GLOB = $(top_srcdir)/src/cairo*.h +CFILE_GLOB = $(top_srcdir)/src/cairo*.c +EXTRA_HFILES = $(top_builddir)/src/cairo-supported-features.h + +# Headers to ignore +IGNORE_HFILES = \ + drm \ + cairo-features.h \ + cairo-features-win32.h \ + $(all_cairo_private) \ + $(unsupported_cairo_headers) \ + $(NULL) + + +# Extra options to supply to gtkdoc-mkdb +MKDB_OPTIONS = --sgml-mode --output-format=xml --name-space=cairo + +# Non-autogenerated SGML files to be included in $(DOC_MAIN_SGML_FILE) +content_files = \ + language-bindings.xml \ + version.xml \ + $(NULL) + + +# Images to copy into HTML directory +HTML_IMAGES = + +# Extra options to supply to gtkdoc-fixref +FIXXREF_OPTIONS = +@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_CC = $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_LD = $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) + +# We set GPATH here; this gives us semantics for GNU make +# which are more like other make's VPATH, when it comes to +# whether a source that is a target of one rule is then +# searched for in VPATH/GPATH. +# +GPATH = $(srcdir) +TARGET_DIR = $(HTML_DIR)/$(DOC_MODULE) +DOC_STAMPS = scan-build.stamp sgml-build.stamp html-build.stamp \ + $(srcdir)/sgml.stamp $(srcdir)/html.stamp + +SCANOBJ_FILES = \ + $(DOC_MODULE).args \ + $(DOC_MODULE).hierarchy \ + $(DOC_MODULE).interfaces \ + $(DOC_MODULE).prerequisites \ + $(DOC_MODULE).signals + +REPORT_FILES = \ + $(DOC_MODULE)-undocumented.txt \ + $(DOC_MODULE)-undeclared.txt \ + $(DOC_MODULE)-unused.txt + +TESTS_ENVIRONMENT = srcdir="$(srcdir)" top_srcdir="$(top_srcdir)" MAKE="$(MAKE) $(AM_MAKEFLAGS)" DOC_MODULE="$(DOC_MODULE)" REPORT_FILES="$(REPORT_FILES)" +all: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) all-am + +.SUFFIXES: +.SUFFIXES: .log .test .test$(EXEEXT) .trs +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/build/Makefile.am.common $(top_srcdir)/src/Makefile.am.features $(top_srcdir)/src/Makefile.sources $(top_srcdir)/build/Makefile.am.gtk-doc $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign doc/public/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign doc/public/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; +$(top_srcdir)/build/Makefile.am.common $(top_srcdir)/src/Makefile.am.features $(top_srcdir)/src/Makefile.sources $(top_srcdir)/build/Makefile.am.gtk-doc $(am__empty): + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-checkPROGRAMS: + @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +# Recover from deleted '.trs' file; this should ensure that +# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create +# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells +# to avoid problems with "make -n". +.log.trs: + rm -f $< $@ + $(MAKE) $(AM_MAKEFLAGS) $< + +# Leading 'am--fnord' is there to ensure the list of targets does not +# expand to empty, as could happen e.g. with make check TESTS=''. +am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) +am--force-recheck: + @: + +$(TEST_SUITE_LOG): $(TEST_LOGS) + @$(am__set_TESTS_bases); \ + am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ + redo_bases=`for i in $$bases; do \ + am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ + done`; \ + if test -n "$$redo_bases"; then \ + redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ + redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ + if $(am__make_dryrun); then :; else \ + rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ + fi; \ + fi; \ + if test -n "$$am__remaking_logs"; then \ + echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ + "recursion detected" >&2; \ + elif test -n "$$redo_logs"; then \ + am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ + fi; \ + if $(am__make_dryrun); then :; else \ + st=0; \ + errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ + for i in $$redo_bases; do \ + test -f $$i.trs && test -r $$i.trs \ + || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ + test -f $$i.log && test -r $$i.log \ + || { echo "$$errmsg $$i.log" >&2; st=1; }; \ + done; \ + test $$st -eq 0 || exit 1; \ + fi + @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ + ws='[ ]'; \ + results=`for b in $$bases; do echo $$b.trs; done`; \ + test -n "$$results" || results=/dev/null; \ + all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ + pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ + fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ + skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ + xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ + xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ + error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ + if test `expr $$fail + $$xpass + $$error` -eq 0; then \ + success=true; \ + else \ + success=false; \ + fi; \ + br='==================='; br=$$br$$br$$br$$br; \ + result_count () \ + { \ + if test x"$$1" = x"--maybe-color"; then \ + maybe_colorize=yes; \ + elif test x"$$1" = x"--no-color"; then \ + maybe_colorize=no; \ + else \ + echo "$@: invalid 'result_count' usage" >&2; exit 4; \ + fi; \ + shift; \ + desc=$$1 count=$$2; \ + if test $$maybe_colorize = yes && test $$count -gt 0; then \ + color_start=$$3 color_end=$$std; \ + else \ + color_start= color_end=; \ + fi; \ + echo "$${color_start}# $$desc $$count$${color_end}"; \ + }; \ + create_testsuite_report () \ + { \ + result_count $$1 "TOTAL:" $$all "$$brg"; \ + result_count $$1 "PASS: " $$pass "$$grn"; \ + result_count $$1 "SKIP: " $$skip "$$blu"; \ + result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ + result_count $$1 "FAIL: " $$fail "$$red"; \ + result_count $$1 "XPASS:" $$xpass "$$red"; \ + result_count $$1 "ERROR:" $$error "$$mgn"; \ + }; \ + { \ + echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ + $(am__rst_title); \ + create_testsuite_report --no-color; \ + echo; \ + echo ".. contents:: :depth: 2"; \ + echo; \ + for b in $$bases; do echo $$b; done \ + | $(am__create_global_log); \ + } >$(TEST_SUITE_LOG).tmp || exit 1; \ + mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ + if $$success; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ + fi; \ + echo "$${col}$$br$${std}"; \ + echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ + echo "$${col}$$br$${std}"; \ + create_testsuite_report --maybe-color; \ + echo "$$col$$br$$std"; \ + if $$success; then :; else \ + echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ + if test -n "$(PACKAGE_BUGREPORT)"; then \ + echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ + fi; \ + echo "$$col$$br$$std"; \ + fi; \ + $$success || exit 1 + +check-TESTS: + @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list + @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + trs_list=`for i in $$bases; do echo $$i.trs; done`; \ + log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ + exit $$?; +recheck: all $(check_PROGRAMS) + @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + @set +e; $(am__set_TESTS_bases); \ + bases=`for i in $$bases; do echo $$i; done \ + | $(am__list_recheck_tests)` || exit 1; \ + log_list=`for i in $$bases; do echo $$i.log; done`; \ + log_list=`echo $$log_list`; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ + am__force_recheck=am--force-recheck \ + TEST_LOGS="$$log_list"; \ + exit $$? +check-doc-coverage.sh.log: check-doc-coverage.sh + @p='check-doc-coverage.sh'; \ + b='check-doc-coverage.sh'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +check-doc-syntax.sh.log: check-doc-syntax.sh + @p='check-doc-syntax.sh'; \ + b='check-doc-syntax.sh'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +.test.log: + @p='$<'; \ + $(am__set_b); \ + $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +@am__EXEEXT_TRUE@.test$(EXEEXT).log: +@am__EXEEXT_TRUE@ @p='$<'; \ +@am__EXEEXT_TRUE@ $(am__set_b); \ +@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ +@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ +@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ +@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) check-am +all-am: Makefile +installdirs: +install: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) + -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) + -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-am + +clean-am: clean-checkPROGRAMS clean-generic clean-libtool clean-local \ + mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-local + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-data-local + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic \ + maintainer-clean-local + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-local + +.MAKE: all check check-am install install-am install-strip + +.PHONY: all all-am check check-TESTS check-am clean \ + clean-checkPROGRAMS clean-generic clean-libtool clean-local \ + cscopelist-am ctags-am dist-hook distclean distclean-generic \ + distclean-libtool distclean-local distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-data-local install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am 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 \ + recheck tags-am uninstall uninstall-am uninstall-local + +.PRECIOUS: Makefile + + +version.xml: $(top_srcdir)/cairo-version.h + echo $(CAIRO_VERSION_MAJOR).$(CAIRO_VERSION_MINOR).$(CAIRO_VERSION_MICRO) > $@ + +@ENABLE_GTK_DOC_TRUE@doc: html-build.stamp +@ENABLE_GTK_DOC_FALSE@doc: +@ENABLE_GTK_DOC_FALSE@ @echo "*** gtk-doc must be installed (and --enable-gtk-doc) in order to make doc" +@ENABLE_GTK_DOC_FALSE@ @false + +docs: html-build.stamp + +#### scan #### + +scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB) $(EXTRA_HFILES) + @echo 'gtk-doc: Scanning header files' + @-chmod -R u+w $(srcdir) + gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="$(IGNORE_HFILES)" $(SCAN_OPTIONS) $(EXTRA_HFILES) --output-dir=$(srcdir) + if grep -l '^..*$$' $(srcdir)/$(DOC_MODULE).types > /dev/null 2>&1 ; then \ + CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" CFLAGS="$(GTKDOC_CFLAGS)" LDFLAGS="$(GTKDOC_LIBS)" gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) --output-dir=$(srcdir) ; \ + else \ + cd $(srcdir) ; \ + for i in $(SCANOBJ_FILES) ; do \ + test -f $$i || touch $$i ; \ + done \ + fi + touch scan-build.stamp + +$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp + @true + +#### xml #### + +# gtkdoc-mkdb is broken and requires a --root-dir=$(srcdir) option +# The _srcdir diversion is fragile but works for make check; make distcheck +sgml-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(expand_content_files) + @echo 'gtk-doc: Building XML' + @-chmod -R u+w $(srcdir) + _srcdir="`pwd`/$(DOC_SOURCE_DIR)"; \ + cd $(srcdir) && gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$$_srcdir --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $(MKDB_OPTIONS) + touch sgml-build.stamp + +sgml.stamp: sgml-build.stamp + @true + +#### html #### + +html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) + @echo 'gtk-doc: Building HTML' + @-chmod -R u+w $(srcdir) + rm -rf $(srcdir)/html + mkdir $(srcdir)/html + cd $(srcdir)/html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) + test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) html ) + @echo 'gtk-doc: Fixing cross-references' + cd $(srcdir) && gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) + touch html-build.stamp + +############## + +clean-local: + rm -f *~ *.bak + rm -rf .libs + +distclean-local: + cd $(srcdir) && \ + rm -rf xml $(REPORT_FILES) \ + $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt + +maintainer-clean-local: clean + cd $(srcdir) && rm -rf xml html + +install-data-local: + -installfiles=`echo $(srcdir)/html/*`; \ + if test "$$installfiles" = '$(srcdir)/html/*'; \ + then echo '-- Nothing to install' ; \ + else \ + $(mkinstalldirs) $(DESTDIR)$(TARGET_DIR); \ + for i in $$installfiles; do \ + echo '-- Installing '$$i ; \ + $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \ + done; \ + echo '-- Installing $(srcdir)/html/index.sgml' ; \ + $(INSTALL_DATA) $(srcdir)/html/index.sgml $(DESTDIR)$(TARGET_DIR) || :; \ + which gtkdoc-rebase >/dev/null && \ + gtkdoc-rebase --relative --dest-dir=$(DESTDIR) --html-dir=$(DESTDIR)$(TARGET_DIR) ; \ + fi + +uninstall-local: + rm -f $(DESTDIR)$(TARGET_DIR)/* + +# +# Require gtk-doc when making dist +# +@ENABLE_GTK_DOC_TRUE@dist-check-gtkdoc: +@ENABLE_GTK_DOC_FALSE@dist-check-gtkdoc: +@ENABLE_GTK_DOC_FALSE@ @echo "*** gtk-doc must be installed (and --enable-gtk-doc) in order to make dist" +@ENABLE_GTK_DOC_FALSE@ @false + +dist-hook: dist-check-gtkdoc dist-hook-local + mkdir $(distdir)/xml + mkdir $(distdir)/html + -cp $(srcdir)/xml/*.xml $(distdir)/xml + cp $(srcdir)/html/* $(distdir)/html + -cp $(srcdir)/$(DOC_MODULE).types $(distdir)/ + -cp $(srcdir)/$(DOC_MODULE)-sections.txt $(distdir)/ + cd $(distdir) && rm -f $(DISTCLEANFILES) + -gtkdoc-rebase --online --relative --html-dir=$(distdir)/html + +.PHONY : dist-hook-local docs + +dist-hook: doc + +# This line really belongs in gtk-doc.mk +$(REPORT_FILES): sgml-build.stamp + +# 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/libs/cairo-1.16.0/doc/public/README b/libs/cairo-1.16.0/doc/public/README new file mode 100644 index 0000000..f3d157b --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/README @@ -0,0 +1,37 @@ +Cairo Reference Documentation +============================= + +The API documentation is generated using gtk-doc. + + +Building +-------- + +The documentation is not built by default. To build it you need to +configure with gtk-doc enabled (--enable-gtk-doc), and run: + + make doc + + +Adding New API +-------------- + +When adding new symbols and macros to the public API, modify +cairo-section.txt and add new symbols to the right place. + +When adding whole new features, you also need to modify cairo-docs.xml +and add a new file under tmpl/. Beware that the files are tmpl/ are +both manually edited AND modified by gtk-doc, gathering documentation +stub from source files. + + +Tests +----- + +There are some tests in this directory, ensuring proper documentation +syntax as well as checking that all public symbols are fully documented. + +After adding any new API, just run: + + make check + diff --git a/libs/cairo-1.16.0/doc/public/cairo-docs.xml b/libs/cairo-1.16.0/doc/public/cairo-docs.xml new file mode 100644 index 0000000..d6d152d --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/cairo-docs.xml @@ -0,0 +1,87 @@ + + +]> + +Cairo: A Vector Graphics Library + + Cairo: A Vector Graphics Library + for Cairo &version; + + + Drawing + + + + + + + + + + + Fonts + + + + + + + + + + Surfaces + + + + + + + + + + + + + + + + + + + Utilities + + + + + + + Index + + + Index of new symbols in 1.2 + + + Index of new symbols in 1.4 + + + Index of new symbols in 1.6 + + + Index of new symbols in 1.8 + + + Index of new symbols in 1.10 + + + Index of new symbols in 1.12 + + + Index of new symbols in 1.14 + + + Index of new symbols in 1.16 + + + diff --git a/libs/cairo-1.16.0/doc/public/cairo-overrides.txt b/libs/cairo-1.16.0/doc/public/cairo-overrides.txt new file mode 100644 index 0000000..e69de29 diff --git a/libs/cairo-1.16.0/doc/public/cairo-sections.txt b/libs/cairo-1.16.0/doc/public/cairo-sections.txt new file mode 100644 index 0000000..4ea86b4 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/cairo-sections.txt @@ -0,0 +1,759 @@ +
+cairo-ft +CAIRO_HAS_FT_FONT +CAIRO_HAS_FC_FONT +cairo_ft_font_face_create_for_ft_face +cairo_ft_font_face_create_for_pattern +cairo_ft_font_options_substitute +cairo_ft_scaled_font_lock_face +cairo_ft_scaled_font_unlock_face +cairo_ft_synthesize_t +cairo_ft_font_face_get_synthesize +cairo_ft_font_face_set_synthesize +cairo_ft_font_face_unset_synthesize +
+ +
+cairo-win32-fonts +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 +cairo_win32_scaled_font_select_font +cairo_win32_scaled_font_done_font +cairo_win32_scaled_font_get_metrics_factor +cairo_win32_scaled_font_get_logical_to_device +cairo_win32_scaled_font_get_device_to_logical +
+ +
+cairo-quartz-fonts +CAIRO_HAS_QUARTZ_FONT +cairo_quartz_font_face_create_for_cgfont +cairo_quartz_font_face_create_for_atsu_font_id +
+ +
+cairo-user-fonts +CAIRO_HAS_USER_FONT +cairo_user_scaled_font_init_func_t +cairo_user_scaled_font_render_glyph_func_t +cairo_user_scaled_font_text_to_glyphs_func_t +cairo_user_scaled_font_unicode_to_glyph_func_t +cairo_user_font_face_create +cairo_user_font_face_set_init_func +cairo_user_font_face_get_init_func +cairo_user_font_face_set_render_glyph_func +cairo_user_font_face_get_render_glyph_func +cairo_user_font_face_set_unicode_to_glyph_func +cairo_user_font_face_get_unicode_to_glyph_func +cairo_user_font_face_set_text_to_glyphs_func +cairo_user_font_face_get_text_to_glyphs_func +
+ +
+cairo-image +CAIRO_HAS_IMAGE_SURFACE +cairo_format_t +cairo_format_stride_for_width +cairo_image_surface_create +cairo_image_surface_create_for_data +cairo_image_surface_get_data +cairo_image_surface_get_format +cairo_image_surface_get_width +cairo_image_surface_get_height +cairo_image_surface_get_stride +
+ +
+cairo-pdf +CAIRO_HAS_PDF_SURFACE +CAIRO_PDF_OUTLINE_ROOT +cairo_pdf_outline_flags_t +cairo_pdf_metadata_t +cairo_pdf_surface_create +cairo_pdf_surface_create_for_stream +cairo_pdf_surface_restrict_to_version +cairo_pdf_version_t +cairo_pdf_get_versions +cairo_pdf_version_to_string +cairo_pdf_surface_set_size +cairo_pdf_surface_add_outline +cairo_pdf_surface_set_metadata +cairo_pdf_surface_set_page_label +cairo_pdf_surface_set_thumbnail_size +
+ +
+cairo-png +CAIRO_HAS_PNG_FUNCTIONS +cairo_image_surface_create_from_png +cairo_read_func_t +cairo_image_surface_create_from_png_stream +cairo_surface_write_to_png +cairo_write_func_t +cairo_surface_write_to_png_stream +
+ +
+cairo-ps +CAIRO_HAS_PS_SURFACE +cairo_ps_surface_create +cairo_ps_surface_create_for_stream +cairo_ps_surface_restrict_to_level +cairo_ps_level_t +cairo_ps_get_levels +cairo_ps_level_to_string +cairo_ps_surface_set_eps +cairo_ps_surface_get_eps +cairo_ps_surface_set_size +cairo_ps_surface_dsc_begin_setup +cairo_ps_surface_dsc_begin_page_setup +cairo_ps_surface_dsc_comment +
+ +
+cairo-recording +CAIRO_HAS_RECORDING_SURFACE +cairo_recording_surface_create +cairo_recording_surface_ink_extents +cairo_recording_surface_get_extents +
+ +
+cairo-skia +cairo_skia_context_t +cairo_skia_surface_t +format_to_sk_config +cairo_skia_surface_create +cairo_skia_surface_create_for_data + +cairo_skia_context +cairo_skia_surface +
+ +
+cairo-win32 +CAIRO_HAS_WIN32_SURFACE +cairo_win32_surface_create +cairo_win32_surface_create_with_dib +cairo_win32_surface_create_with_ddb +cairo_win32_surface_create_with_format +cairo_win32_printing_surface_create +cairo_win32_surface_get_dc +cairo_win32_surface_get_image + +SB_NONE +SHADEBLENDCAPS +WIN32_FONT_LOGICAL_SCALE +cairo_win32_device_t +cairo_win32_display_surface_t +cairo_win32_printing_surface_t +cairo_win32_surface_t +to_win32_device +to_win32_device_from_surface +to_win32_display_surface +to_win32_printing_surface +to_win32_surface +
+ +
+cairo-quartz +CAIRO_HAS_QUARTZ_SURFACE +cairo_quartz_surface_create +cairo_quartz_surface_create_for_cg_context +cairo_quartz_surface_get_cg_context +
+ +
+cairo-xlib +CAIRO_HAS_XLIB_SURFACE +cairo_xlib_surface_create +cairo_xlib_surface_create_for_bitmap +cairo_xlib_surface_set_size +cairo_xlib_surface_get_display +cairo_xlib_surface_get_screen +cairo_xlib_surface_set_drawable +cairo_xlib_surface_get_drawable +cairo_xlib_surface_get_visual +cairo_xlib_surface_get_width +cairo_xlib_surface_get_height +cairo_xlib_surface_get_depth +cairo_xlib_device_debug_cap_xrender_version +cairo_xlib_device_debug_get_precision +cairo_xlib_device_debug_set_precision +
+ +
+cairo-xlib-xrender +CAIRO_HAS_XLIB_XRENDER_SURFACE +cairo_xlib_surface_create_with_xrender_format +cairo_xlib_surface_get_xrender_format +
+ +
+cairo-xcb +CAIRO_HAS_XCB_SURFACE +CAIRO_HAS_XCB_SHM_FUNCTIONS +cairo_xcb_surface_create +cairo_xcb_surface_create_for_bitmap +cairo_xcb_surface_create_with_xrender_format +cairo_xcb_surface_set_size +cairo_xcb_surface_set_drawable +cairo_xcb_device_get_connection +cairo_xcb_device_debug_cap_xrender_version +cairo_xcb_device_debug_cap_xshm_version +cairo_xcb_device_debug_get_precision +cairo_xcb_device_debug_set_precision +
+ +
+cairo-svg +CAIRO_HAS_SVG_SURFACE +cairo_svg_surface_create +cairo_svg_surface_create_for_stream +cairo_svg_surface_get_document_unit +cairo_svg_surface_set_document_unit +cairo_svg_surface_restrict_to_version +cairo_svg_version_t +cairo_svg_get_versions +cairo_svg_version_to_string +cairo_svg_unit_t +
+ +
+cairo-device +cairo_device_t +cairo_device_reference +cairo_device_destroy +cairo_device_status +cairo_device_finish +cairo_device_flush +cairo_device_type_t +cairo_device_get_type +cairo_device_get_reference_count +cairo_device_set_user_data +cairo_device_get_user_data +cairo_device_acquire +cairo_device_release +cairo_device_observer_elapsed +cairo_device_observer_fill_elapsed +cairo_device_observer_glyphs_elapsed +cairo_device_observer_mask_elapsed +cairo_device_observer_paint_elapsed +cairo_device_observer_print +cairo_device_observer_stroke_elapsed +
+ +
+cairo-surface +CAIRO_HAS_MIME_SURFACE +CAIRO_MIME_TYPE_CCITT_FAX +CAIRO_MIME_TYPE_CCITT_FAX_PARAMS +CAIRO_MIME_TYPE_EPS +CAIRO_MIME_TYPE_EPS_PARAMS +CAIRO_MIME_TYPE_JBIG2 +CAIRO_MIME_TYPE_JBIG2_GLOBAL +CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID +CAIRO_MIME_TYPE_JP2 +CAIRO_MIME_TYPE_JPEG +CAIRO_MIME_TYPE_PNG +CAIRO_MIME_TYPE_URI +CAIRO_MIME_TYPE_UNIQUE_ID +cairo_surface_t +cairo_content_t +cairo_surface_create_similar +cairo_surface_create_similar_image +cairo_surface_create_for_rectangle +cairo_surface_reference +cairo_surface_destroy +cairo_surface_status +cairo_surface_finish +cairo_surface_flush +cairo_surface_get_device +cairo_surface_get_font_options +cairo_surface_get_content +cairo_surface_mark_dirty +cairo_surface_mark_dirty_rectangle +cairo_surface_set_device_offset +cairo_surface_get_device_offset +cairo_surface_get_device_scale +cairo_surface_set_device_scale +cairo_surface_set_fallback_resolution +cairo_surface_get_fallback_resolution +cairo_surface_type_t +cairo_surface_get_type +cairo_surface_get_reference_count +cairo_surface_set_user_data +cairo_surface_get_user_data +cairo_surface_copy_page +cairo_surface_show_page +cairo_surface_has_show_text_glyphs +cairo_surface_set_mime_data +cairo_surface_get_mime_data +cairo_surface_supports_mime_type +cairo_surface_map_to_image +cairo_surface_unmap_image +
+ +
+cairo-surface-observer +CAIRO_HAS_OBSERVER_SURFACE +cairo_surface_create_observer +cairo_surface_observer_add_fill_callback +cairo_surface_observer_add_finish_callback +cairo_surface_observer_add_flush_callback +cairo_surface_observer_add_glyphs_callback +cairo_surface_observer_add_mask_callback +cairo_surface_observer_add_paint_callback +cairo_surface_observer_add_stroke_callback +cairo_surface_observer_callback_t +cairo_surface_observer_elapsed +cairo_surface_observer_mode_t +cairo_surface_observer_print +
+ +
+cairo-version +CAIRO_VERSION +CAIRO_VERSION_MAJOR +CAIRO_VERSION_MINOR +CAIRO_VERSION_MICRO +CAIRO_VERSION_STRING +CAIRO_VERSION_ENCODE +CAIRO_VERSION_STRINGIZE +cairo_version +cairo_version_string + +CAIRO_VERSION_STRINGIZE_ +
+ +
+cairo-region +cairo_region_t +cairo_region_create +cairo_region_create_rectangle +cairo_region_create_rectangles +cairo_region_copy +cairo_region_reference +cairo_region_destroy +cairo_region_status +cairo_region_get_extents +cairo_region_num_rectangles +cairo_region_get_rectangle +cairo_region_is_empty +cairo_region_contains_point +cairo_region_overlap_t +cairo_region_contains_rectangle +cairo_region_equal +cairo_region_translate +cairo_region_intersect +cairo_region_intersect_rectangle +cairo_region_subtract +cairo_region_subtract_rectangle +cairo_region_union +cairo_region_union_rectangle +cairo_region_xor +cairo_region_xor_rectangle +
+ +
+cairo-pattern +cairo_pattern_t +cairo_pattern_add_color_stop_rgb +cairo_pattern_add_color_stop_rgba +cairo_pattern_get_color_stop_count +cairo_pattern_get_color_stop_rgba +cairo_pattern_create_rgb +cairo_pattern_create_rgba +cairo_pattern_get_rgba +cairo_pattern_create_for_surface +cairo_pattern_get_surface +cairo_pattern_create_linear +cairo_pattern_get_linear_points +cairo_pattern_create_radial +cairo_pattern_get_radial_circles +cairo_pattern_create_mesh +cairo_mesh_pattern_begin_patch +cairo_mesh_pattern_end_patch +cairo_mesh_pattern_move_to +cairo_mesh_pattern_line_to +cairo_mesh_pattern_curve_to +cairo_mesh_pattern_set_control_point +cairo_mesh_pattern_set_corner_color_rgb +cairo_mesh_pattern_set_corner_color_rgba +cairo_mesh_pattern_get_patch_count +cairo_mesh_pattern_get_path +cairo_mesh_pattern_get_control_point +cairo_mesh_pattern_get_corner_color_rgba +cairo_pattern_reference +cairo_pattern_destroy +cairo_pattern_status +cairo_extend_t +cairo_pattern_set_extend +cairo_pattern_get_extend +cairo_filter_t +cairo_pattern_set_filter +cairo_pattern_get_filter +cairo_pattern_set_matrix +cairo_pattern_get_matrix +cairo_pattern_type_t +cairo_pattern_get_type +cairo_pattern_get_reference_count +cairo_pattern_set_user_data +cairo_pattern_get_user_data +
+ +
+cairo-raster-source +cairo_pattern_create_raster_source +cairo_raster_source_pattern_set_callback_data +cairo_raster_source_pattern_get_callback_data +cairo_raster_source_pattern_set_acquire +cairo_raster_source_pattern_get_acquire +cairo_raster_source_pattern_set_snapshot +cairo_raster_source_pattern_get_snapshot +cairo_raster_source_pattern_set_copy +cairo_raster_source_pattern_get_copy +cairo_raster_source_pattern_set_finish +cairo_raster_source_pattern_get_finish +cairo_raster_source_acquire_func_t +cairo_raster_source_release_func_t +cairo_raster_source_snapshot_func_t +cairo_raster_source_copy_func_t +cairo_raster_source_finish_func_t +
+ +
+cairo-tag +CAIRO_TAG_DEST +CAIRO_TAG_LINK +cairo_tag_begin +cairo_tag_end +
+ +
+cairo-matrix +cairo_matrix_t +cairo_matrix_init +cairo_matrix_init_identity +cairo_matrix_init_translate +cairo_matrix_init_scale +cairo_matrix_init_rotate +cairo_matrix_translate +cairo_matrix_scale +cairo_matrix_rotate +cairo_matrix_invert +cairo_matrix_multiply +cairo_matrix_transform_distance +cairo_matrix_transform_point +
+ +
+cairo-status +cairo_status_t +cairo_status_to_string +cairo_debug_reset_static_data +
+ +
+cairo-font-face +cairo_font_face_t +cairo_font_face_reference +cairo_font_face_destroy +cairo_font_face_status +cairo_font_type_t +cairo_font_face_get_type +cairo_font_face_get_reference_count +cairo_font_face_set_user_data +cairo_font_face_get_user_data +
+ +
+cairo-scaled-font +cairo_scaled_font_t +cairo_scaled_font_create +cairo_scaled_font_reference +cairo_scaled_font_destroy +cairo_scaled_font_status +cairo_font_extents_t +cairo_scaled_font_extents +cairo_text_extents_t +cairo_scaled_font_text_extents +cairo_scaled_font_glyph_extents +cairo_scaled_font_text_to_glyphs +cairo_scaled_font_get_font_face +cairo_scaled_font_get_font_options +cairo_scaled_font_get_font_matrix +cairo_scaled_font_get_ctm +cairo_scaled_font_get_scale_matrix +cairo_scaled_font_get_type +cairo_scaled_font_get_reference_count +cairo_scaled_font_set_user_data +cairo_scaled_font_get_user_data +
+ +
+cairo-font-options +cairo_font_options_t +cairo_font_options_create +cairo_font_options_copy +cairo_font_options_destroy +cairo_font_options_status +cairo_font_options_merge +cairo_font_options_hash +cairo_font_options_equal +cairo_font_options_set_antialias +cairo_font_options_get_antialias +cairo_subpixel_order_t +cairo_font_options_set_subpixel_order +cairo_font_options_get_subpixel_order +cairo_hint_style_t +cairo_font_options_set_hint_style +cairo_font_options_get_hint_style +cairo_hint_metrics_t +cairo_font_options_set_hint_metrics +cairo_font_options_get_hint_metrics +cairo_font_options_get_variations +cairo_font_options_set_variations +
+ +
+cairo-types +cairo_bool_t +cairo_user_data_key_t +cairo_destroy_func_t +cairo_rectangle_int_t +
+ +
+cairo-transforms +cairo_translate +cairo_scale +cairo_rotate +cairo_transform +cairo_set_matrix +cairo_get_matrix +cairo_identity_matrix +cairo_user_to_device +cairo_user_to_device_distance +cairo_device_to_user +cairo_device_to_user_distance +
+ + +
+cairo-paths +cairo_path_t +cairo_path_data_t +cairo_path_data_type_t +cairo_copy_path +cairo_copy_path_flat +cairo_path_destroy +cairo_append_path +cairo_has_current_point +cairo_get_current_point +cairo_new_path +cairo_new_sub_path +cairo_close_path +cairo_arc +cairo_arc_negative +cairo_curve_to +cairo_line_to +cairo_move_to +cairo_rectangle +cairo_glyph_path +cairo_text_path +cairo_rel_curve_to +cairo_rel_line_to +cairo_rel_move_to +cairo_path_extents +
+ +
+cairo-text +cairo_glyph_t +cairo_font_slant_t +cairo_font_weight_t +cairo_text_cluster_t +cairo_text_cluster_flags_t +cairo_select_font_face +cairo_set_font_size +cairo_set_font_matrix +cairo_get_font_matrix +cairo_set_font_options +cairo_get_font_options +cairo_set_font_face +cairo_get_font_face +cairo_set_scaled_font +cairo_get_scaled_font +cairo_show_text +cairo_show_glyphs +cairo_show_text_glyphs +cairo_font_extents +cairo_text_extents +cairo_glyph_extents +cairo_toy_font_face_create +cairo_toy_font_face_get_family +cairo_toy_font_face_get_slant +cairo_toy_font_face_get_weight +cairo_glyph_allocate +cairo_glyph_free +cairo_text_cluster_allocate +cairo_text_cluster_free +
+ +
+cairo +cairo_t +cairo_create +cairo_reference +cairo_destroy +cairo_status +cairo_save +cairo_restore +cairo_get_target +cairo_push_group +cairo_push_group_with_content +cairo_pop_group +cairo_pop_group_to_source +cairo_get_group_target +cairo_set_source_rgb +cairo_set_source_rgba +cairo_set_source +cairo_set_source_surface +cairo_get_source +cairo_antialias_t +cairo_set_antialias +cairo_get_antialias +cairo_set_dash +cairo_get_dash_count +cairo_get_dash +cairo_fill_rule_t +cairo_set_fill_rule +cairo_get_fill_rule +cairo_line_cap_t +cairo_set_line_cap +cairo_get_line_cap +cairo_line_join_t +cairo_set_line_join +cairo_get_line_join +cairo_set_line_width +cairo_get_line_width +cairo_set_miter_limit +cairo_get_miter_limit +cairo_operator_t +cairo_set_operator +cairo_get_operator +cairo_set_tolerance +cairo_get_tolerance +cairo_clip +cairo_clip_preserve +cairo_clip_extents +cairo_in_clip +cairo_reset_clip +cairo_rectangle_t +cairo_rectangle_list_t +cairo_rectangle_list_destroy +cairo_copy_clip_rectangle_list +cairo_fill +cairo_fill_preserve +cairo_fill_extents +cairo_in_fill +cairo_mask +cairo_mask_surface +cairo_paint +cairo_paint_with_alpha +cairo_stroke +cairo_stroke_preserve +cairo_stroke_extents +cairo_in_stroke +cairo_copy_page +cairo_show_page +cairo_get_reference_count +cairo_set_user_data +cairo_get_user_data + +cairo_public +CAIRO_BEGIN_DECLS +CAIRO_END_DECLS +cairo_current_font_extents +cairo_get_font_extents +cairo_current_operator +cairo_current_tolerance +cairo_current_point +cairo_current_fill_rule +cairo_current_line_width +cairo_current_line_cap +cairo_current_line_join +cairo_current_miter_limit +cairo_current_matrix +cairo_current_target_surface +cairo_get_status +cairo_concat_matrix +cairo_scale_font +cairo_select_font +cairo_transform_font +cairo_transform_point +cairo_transform_distance +cairo_inverse_transform_point +cairo_inverse_transform_distance +cairo_init_clip +cairo_surface_create_for_image +cairo_default_matrix +cairo_matrix_set_affine +cairo_matrix_set_identity +cairo_pattern_add_color_stop +cairo_set_rgb_color +cairo_set_pattern +cairo_xlib_surface_create_for_pixmap_with_visual +cairo_xlib_surface_create_for_window_with_visual +cairo_xcb_surface_create_for_pixmap_with_visual +cairo_xcb_surface_create_for_window_with_visual +cairo_ps_surface_set_dpi +cairo_pdf_surface_set_dpi +cairo_svg_surface_set_dpi +cairo_current_path +cairo_current_path_flat +cairo_get_path +cairo_get_path_flat +cairo_set_alpha +cairo_show_surface +cairo_copy +cairo_surface_set_repeat +cairo_surface_set_matrix +cairo_surface_get_matrix +cairo_surface_set_filter +cairo_surface_get_filter +cairo_matrix_create +cairo_matrix_destroy +cairo_matrix_copy +cairo_matrix_get_affine +cairo_set_target_surface +cairo_set_target_image +cairo_set_target_pdf +cairo_set_target_png +cairo_set_target_ps +cairo_set_target_quartz +cairo_set_target_win32 +cairo_set_target_xcb +cairo_set_target_drawable +cairo_get_status_string +cairo_status_string +CAIRO_FONT_TYPE_ATSUI +cairo_atsui_font_face_create_for_atsu_font_id +
+ +
+cairo-script +CAIRO_HAS_SCRIPT_SURFACE +cairo_script_create +cairo_script_create_for_stream +cairo_script_from_recording_surface +cairo_script_get_mode +cairo_script_mode_t +cairo_script_set_mode +cairo_script_surface_create +cairo_script_surface_create_for_target +cairo_script_write_comment +
diff --git a/libs/cairo-1.16.0/doc/public/cairo.types b/libs/cairo-1.16.0/doc/public/cairo.types new file mode 100644 index 0000000..e69de29 diff --git a/libs/cairo-1.16.0/doc/public/check-doc-coverage.sh b/libs/cairo-1.16.0/doc/public/check-doc-coverage.sh new file mode 100755 index 0000000..648ca12 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/check-doc-coverage.sh @@ -0,0 +1,54 @@ +#!/bin/sh + +LC_ALL=C +export LC_ALL + +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 + +if test -n "$REPORT_FILES"; then + $MAKE $REPORT_FILES || exit 1 +fi + +test -z "$srcdir" && srcdir=. +stat=0 + +if test -f "$DOC_MODULE-undeclared.txt"; then + undeclared=`cat "$DOC_MODULE-undeclared.txt"` + if test -n "$undeclared"; then + echo "*** ERROR: Undeclared documentation symbols:" 1>&2 + cat "$DOC_MODULE-undeclared.txt" 1>&2 + stat=1 + fi +fi >&2 +if test -f "$DOC_MODULE-unused.txt"; then + unused=`cat "$DOC_MODULE-unused.txt"` + if test -n "$unused"; then + echo "*** ERROR: Unused documented symbols:" 1>&2 + cat "$DOC_MODULE-unused.txt" 1>&2 + stat=1 + fi +fi >&2 +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 + : + else + echo "*** ERROR: Incomplete or undocumented symbols:" 1>&2 + cat "$DOC_MODULE-undocumented.txt" 1>&2 + stat=1 + fi +fi >&2 + +if test $stat != 0; then + echo "*** IGNORING ERROR ***" +fi +#exit $stat +exit 0 diff --git a/libs/cairo-1.16.0/doc/public/check-doc-syntax.sh b/libs/cairo-1.16.0/doc/public/check-doc-syntax.sh new file mode 100755 index 0000000..129065d --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/check-doc-syntax.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +LC_ALL=C +export LC_ALL + +test -z "$srcdir" && srcdir=. +test -z "$top_srcdir" && top_srcdir=$srcdir/../.. + +SGML_DOCS=true +FILES=`echo $srcdir/tmpl/*.sgml` + +. "$top_srcdir/src/check-doc-syntax.sh" diff --git a/libs/cairo-1.16.0/doc/public/html/bindings-errors.html b/libs/cairo-1.16.0/doc/public/html/bindings-errors.html new file mode 100644 index 0000000..ea96f87 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/bindings-errors.html @@ -0,0 +1,121 @@ + + + + +Error handling: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+

+Error handling

+

+ The error handling approach in C for Cairo has multiple + elements: +

+
    +
  • + When a method on an object fails, the object is put into + an error state. Subsequent operations on the object do + nothing. The status of the object can be queried with + a function like status(). +

  • +
  • +

    + Constructors, rather than + returning NULL on out-of-memory failure, + return a special singleton object on which all + operations do nothing. Retrieving the status of the + singleton object returns CAIRO_STATUS_NO_MEMORY +

    +

    + Is this going to apply to + cairo_surface_t as well? +

    +

    + What about cairo_copy_path_data()? It's probably going to + have to return NULL. +

    +
  • +
  • + Errors propagate from object to object. Setting a pattern + in an out-of-memory state as the source of a + cairo_t puts the type into an error state. +

  • +
+

Much of the above is not yet implemented at the time of + this writing

+

+ A language binding could copy the C approach, and for a + language without exceptions, this is likely the right thing + to do. However, for a language with exceptions, exposing + a completely different style of error handling for cairo + would be strange. So, instead, status should be checked + after every call to cairo, and exceptions thrown as necessary. +

+

+ One problem that can arise with this, in languages + where handling exceptions is mandatory (like Java), is that almost + every cairo function can result in a status being set, + usually because of an out-of-memory condition. This could make + cairo hard to use. To resolve this problem, let's classify then + cairo status codes: +

+
+/* Memory */      
+CAIRO_STATUS_NO_MEMORY,
+
+/* Programmer error */      
+CAIRO_STATUS_INVALID_RESTORE
+CAIRO_STATUS_INVALID_POP_GROUP
+CAIRO_STATUS_NO_CURRENT_POINT
+CAIRO_STATUS_INVALID_MATRIX
+CAIRO_STATUS_NO_TARGET_SURFACE
+CAIRO_STATUS_INVALID_STRING
+CAIRO_STATUS_SURFACE_FINISHED
+CAIRO_STATUS_BAD_NESTING
+
+/* Language binding implementation */
+CAIRO_STATUS_NULL_POINTER
+CAIRO_STATUS_INVALID_PATH_DATA
+CAIRO_STATUS_SURFACE_TYPE_MISMATCH
+
+/* Other */      
+CAIRO_STATUS_READ_ERROR
+CAIRO_STATUS_WRITE_ERROR
+
+

+ If we look at these, the + CAIRO_STATUS_NO_MEMORY + should map to the native out-of-memory exception, which could + happen at any point in any case. Most of the others indicate + programmer error, and handling them in user code would be + silly. These should be mapped into whatever the language uses + for assertion failures, rather than errors that are normally + handled. (In Java, a subclass of Error rather than Exception, + perhaps.) And CAIRO_STATUS_READ_ERROR, + and CAIRO_STATUS_WRITE_ERROR can occur + only in very specific places. (In fact, as described + in the section called “Streams and File I/O”, these errors may be + mapped into the language's native I/O error types.) + So, there really aren't exceptions that the programmer must + handle at most points in the Cairo API. +

+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/bindings-fonts.html b/libs/cairo-1.16.0/doc/public/html/bindings-fonts.html new file mode 100644 index 0000000..622a529 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/bindings-fonts.html @@ -0,0 +1,52 @@ + + + + +Fonts: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+

+Fonts

+

+ Fonts are once more an area where there is a hierarchy of types: +

+
+cairo_font_face_t
+   cairo_ft_font_face_t
+   cairo_win32_font_face_t
+cairo_scaled_font_t
+   cairo_ft_scaled_font_t	
+   cairo_win32_scaled_font_t	
+
+

+ The methods on the subtypes are, however, not useful without + bindings for fontconfig and FreeType or for the Win32 GDI, + so most language bindings will choose not to bind these + types. +

+

+ The cairo_font_face_set_user_data(), + and cairo_font_face_get_user_data() + methods are provided for use in language bindings, and should + not be directly exposed to applications. +

+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/bindings-memory.html b/libs/cairo-1.16.0/doc/public/html/bindings-memory.html new file mode 100644 index 0000000..961ee82 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/bindings-memory.html @@ -0,0 +1,122 @@ + + + + +Memory management: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+

+Memory management

+

+ The objects in cairo can roughly be divided into two types: + reference-counted, opaque types like + cairo_surface_t + and plain structures like + cairo_glyph_t. + cairo_path_t + and + cairo_path_data_t + are special cases and are treated separately in this appendix. +

+

+ Refcounted opaque types all have a + ..._reference() + function to increase the refcount by one and a + ..._destroy() to decrease the refcount + by one. These should not be exposed to the user of the language + binding, but rather used to implement memory management within + the language binding. The simplest way to do memory management + for a language binding is to treat the language binding object + as a simple handle to the cairo object. The language binding + object references the cairo object, and unreferences it when + finalized. This is the recommended method, though there are + a couple of caveats to be noted: +

+
    +
  • + Equality won't work as expected. You can have two language + objects for the same cairo and they won't necessarily + compare equal. If the language allows customizing the + equality operation, then this is fixable by comparing + the underlying pointers. It also can be fixed by creating + at most one language object per cairo object, and + uniquifying via a pin table (a hash + table that goes from cairo object to language object). + For cairo_surface_t you can use also + cairo_surface_set_user_data() + instead of a separate pin table. +

  • +
  • +

    + Derivation from the language object doesn't work because + you can lose the language object while keeping the Cairo + object. Code like: +

    +
    +public class MySurface (ImageSurface) {
    +   public MySurface (width, height) {
    +      super (Format.ARGB32, width, height);
    +   }
    +   public int get42 () {
    +      return 42;	  
    +   }
    +}
    +
    +   cr = Cairo(MySurface(width, height));
    +   surface = cr.getTarget();
    +
    +

    + Can result in surface containing an + ImageSurface not a MySurface. + This is not easily fixable without creating memory leaks, + and it's probably best to simply forbid deriving from the + language objects. +

    +
  • +
+

+ When a plain structure is used as a return value from cairo, + this is done by passing it as a “out parameter”. +

+
+cairo_font_extents_t extents;      
+
+cairo_font_extents (cr, &extents);
+

+ In a language binding, this should typically be treated + as a return value: +

+
+FontExtents extents = cr.fontExtents ();
+

+ A language binding has a choice in how it implements the + language objects for plain structures. It can use a pure + language object with fields corresponding to those of the C + structure, and convert from and to the C structure when calling + cairo functions or converting cairo return values. Or it + can keep a pointer to the C structure internally and wrap + it inside a language object much like occurs for refcounted + objects. The choice should be invisible to the user: they should + be able to imagine that it is implemented as a pure language + object. +

+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/bindings-overloading.html b/libs/cairo-1.16.0/doc/public/html/bindings-overloading.html new file mode 100644 index 0000000..a7a518b --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/bindings-overloading.html @@ -0,0 +1,120 @@ + + + + +Overloading and optional arguments: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+

+Overloading and optional arguments

+

+ Function overloading (having a several variants of a function + with the same name and different arguments) is a language + feature available in many languages but not in C. +

+

+ In general, language binding authors should use restraint in + combining functions in the cairo API via function + overloading. What may seem like an obvious overload now may + turn out to be strange with future additions to cairo. + It might seem logical to make + cairo_set_source_rgb() + an overload of cairo_set_source(), but future plans to add + cairo_set_source_rgb_premultiplied(), + which will also take three doubles make this a bad idea. For + this reason, only the following pairs of functions should + be combined via overloading +

+
+void
+cairo_set_source (cairo_t *cr, cairo_pattern_t *source);
+
+void
+cairo_set_source_surface (cairo_t          *cr,
+                          cairo_surface_t  *source,
+                          double            surface_x,
+                          double            surface_y);
+      
+void
+cairo_mask (cairo_t         *cr,
+	    cairo_pattern_t *pattern);
+
+void
+cairo_mask_surface (cairo_t         *cr,
+		    cairo_surface_t *surface,
+		    double           surface_x,
+		    double           surface_y);
+      
+cairo_surface_t *
+cairo_image_surface_create (cairo_format_t	format,
+			    int			width,
+			    int			height);
+cairo_surface_t *
+cairo_image_surface_create_for_data (unsigned char	       *data,
+				     cairo_format_t		format,
+				     int			width,
+				     int			height,
+				     int			stride);
+
+cairo_status_t
+cairo_surface_write_to_png (cairo_surface_t	*surface,
+			    const char		*filename);
+
+cairo_status_t
+cairo_surface_write_to_png_stream (cairo_surface_t	*surface,
+				   cairo_write_func_t	write_func,
+				   void			*closure);
+
+cairo_surface_t *
+cairo_image_surface_create_from_png (const char	*filename);
+
+cairo_surface_t *
+cairo_image_surface_create_from_png_stream (cairo_read_func_t	read_func,
+					    void		*closure);
+    
+

+ Note that there are cases where all constructors for a type + aren't overloaded together. For example + cairo_image_surface_create_from_png() + should not be overloaded together with + cairo_image_surface_create(). + In such cases, the remaining constructors will typically need to + be bound as static methods. In Java, for example, we might have: +

+
+Surface surface1 = ImageSurface(Format.RGB24, 100, 100);
+Surface surface2 = ImageSurface.createFromPNG("camera.png");
+

+ Some other overloads that add combinations not found in C may be + convenient for users for language bindings that provide + cairo_point_t and cairo_rectangle_t + types, for example: +

+
+void
+cairo_move_to (cairo_t       *cr,
+               cairo_point_t *point);
+void
+cairo_rectangle (cairo_t           *cr,
+                 cairo_rectangle_t *rectangle);
+    
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/bindings-path.html b/libs/cairo-1.16.0/doc/public/html/bindings-path.html new file mode 100644 index 0000000..717271b --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/bindings-path.html @@ -0,0 +1,116 @@ + + + + +cairo_path_t: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + +
+

+cairo_path_t

+

+ The cairo_path_t type is one + area in which most language bindings will differ significantly + from the C API. The C API for cairo_path_t is + designed for efficiency and to avoid auxiliary objects that + would be have to be manually memory managed by the + application. However, + a language binding should not present cairo_path_t as an + array, but rather as an opaque that can be iterated + over. Different languages have quite different conventions for + how iterators work, so it is impossible to give an exact + specification for how this API should work, but the type names + and methods should be similar to the language's mapping of the following: +

+
+typedef struct cairo_path_iterator cairo_path_iterator_t;
+typedef struct cairo_path_element cairo_path_element_t;
+
+cairo_path_iterator_t *
+cairo_path_get_iterator (cairo_path_t *path);
+
+cairo_bool_t
+cairo_path_iterator_has_next (cairo_path_iterator_t *iterator);
+      
+cairo_path_element_t *
+cairo_path_iterator_next (cairo_path_iterator_t *iterator);
+
+cairo_path_element_type_t
+cairo_path_element_get_type (cairo_path_element_t *element);
+      
+void
+cairo_path_element_get_point (cairo_path_element_t *element,
+                              int                   index,
+                              double                *x,
+                              double                *y);
+    
+

+ The above is written using the Java conventions for + iterators. To illustrate how the API for PathIterator might + depend on the native iteration conventions of the API, examine + three versions of the loop, first written in a hypothetical Java + binding: +

+
+PathIterator iter = cr.copyPath().iterator();
+while (cr.hasNext()) {
+    PathElement element = iter.next();
+    if (element.getType() == PathElementType.MOVE_TO) {
+        Point p = element.getPoint(0);
+        doMoveTo (p.x, p.y);
+    }
+}
+

+ And then in a hypothetical C++ binding: +

+
+Path path = cr.copyPath();
+for (PathIterator iter = path.begin(); iter != path.end(); iter++) {
+    PathElement element = *iter;
+    if (element.getType() == PathElementType.MOVE_TO) {
+        Point p = element.getPoint(0);
+        doMoveTo (p.x, p.y);
+    }
+}
+

+ And then finally in a Python binding: +

+
+for element in cr.copy_path():
+    if element.getType == cairo.PATH_ELEMENT_MOVE_TO:
+        (x, y) = element.getPoint(0)
+        doMoveTo (x, y);
+

+ While many of the API elements stay the same in the three + examples, the exact iteration mechanism is quite different, to + match how users of the language would expect to iterate over + a container. +

+

+ You should not present an API for mutating or for creating new + cairo_path_t objects. In the future, these + guidelines may be extended to present an API for creating a + cairo_path_t from scratch for use with + cairo_append_path() + but the current expectation is that cairo_append_path() will + mostly be used with paths from + cairo_copy_path(). +

+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/bindings-patterns.html b/libs/cairo-1.16.0/doc/public/html/bindings-patterns.html new file mode 100644 index 0000000..386bc54 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/bindings-patterns.html @@ -0,0 +1,74 @@ + + + + +Patterns: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+

+Patterns

+

+ The cairo C API allows for creating a number of different types + of patterns. All of these different types of patterns map to + cairo_pattern_t + in C, but in an object oriented language, there should instead + be a hierarchy of types. (The functions that should map to + constructors or static methods for the various types are listed + after the type, methods on that type are listed below. Note that + cairo_pattern_create_rgb() and cairo_pattern_create_rgba() + should not be overloaded with each other as a SolidPattern() + constructor, but should appear as static methods instead. This + is to maintain code clarity by making it clear how the arguments + relate to color components.) +

+
+cairo_pattern_t
+      cairo_pattern_set_matrix()
+      cairo_pattern_get_matrix()
+   cairo_solid_pattern_t (cairo_pattern_create_rgb() and cairo_pattern_create_rgba())
+   cairo_surface_pattern_t (cairo_pattern_create_for_surface())
+         cairo_pattern_set_extend()
+         cairo_pattern_get_extend()
+         cairo_pattern_set_filter()
+         cairo_pattern_get_filter()
+   cairo_gradient_t
+         cairo_pattern_add_color_stop_rgb()
+         cairo_pattern_add_color_stop_rgba()
+      cairo_linear_gradient_t (cairo_pattern_create_linear())
+      cairo_radial_gradient_t (cairo_pattern_create_radial())
+   cairo_mesh_t (cairo_pattern_create_mesh())
+         cairo_mesh_pattern_begin_patch()
+         cairo_mesh_pattern_end_patch()
+         cairo_mesh_pattern_move_to()
+         cairo_mesh_pattern_line_to()
+         cairo_mesh_pattern_curve_to()
+         cairo_mesh_pattern_set_control_point()
+         cairo_mesh_pattern_set_corner_color_rgb()
+         cairo_mesh_pattern_set_corner_color_rgba()
+         cairo_mesh_pattern_get_patch_count()
+         cairo_mesh_pattern_get_path()
+         cairo_mesh_pattern_get_control_point()
+         cairo_mesh_pattern_get_corner_color_rgba()
+    
+

+

+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/bindings-return-values.html b/libs/cairo-1.16.0/doc/public/html/bindings-return-values.html new file mode 100644 index 0000000..3e281b6 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/bindings-return-values.html @@ -0,0 +1,119 @@ + + + + +Multiple return values: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+

+Multiple return values

+

+ There are a number of functions in the cairo API that have + multiple out parameters or + in-out parameters. In some languages + these can be translated into multiple return values. In Python, + what is: +

+
+cairo_user_to_device (cr, &x, &y);
+

+ can by mapped to: +

+
+(x, y) = cr.user_to_device (cr, x, y);
+

+ but many languages don't have provisions for multiple return + values, so it is necessary to introduce auxiliary types. + Most of the functions that require the auxiliary types + require a type that would, in C, look like +

+
+typedef struct _cairo_point cairo_point_t;
+struct _cairo_point {
+    double x;
+    double y;
+}
+

+ The same type should be used both for functions that use a pair + of coordinates as an absolute position, and functions that use + a pair of coordinates as a displacement. While an argument could + be made that having a separate “distance” type is more correct, + it is more likely just to confuse users. +

+
+void
+cairo_user_to_device (cairo_t *cr, double *x, double *y);
+
+void
+cairo_user_to_device_distance (cairo_t *cr, double *dx, double *dy);
+
+void
+cairo_device_to_user (cairo_t *cr, double *x, double *y);
+
+void
+cairo_device_to_user_distance (cairo_t *cr, double *dx, double *dy);
+
+void
+cairo_matrix_transform_distance (cairo_matrix_t *matrix, double *dx, double *dy);
+
+void
+cairo_matrix_transform_point (cairo_matrix_t *matrix, double *x, double *y);
+
+void
+cairo_get_current_point (cairo_t *cr, double *x, double *y);
+    
+

+ There are also a couple of functions that return four values + representing a rectangle. These should be mapped to a + “rectangle” type that looks like: +

+
+typedef struct _cairo_rectangle cairo_rectangle_t;
+struct _cairo_rectangle {
+    double x;
+    double y;
+    double width;
+    double height;
+}
+

+ The C function returns the rectangle as a set of two points to + facilitate rounding to integral extents, but this isn't worth + adding a “box” type to go along with the more obvious + “rectangle” representation. +

+

+ Q: Would it make sense here to define a standard + cairo_rectangle_round() method + that language bindings should map? +

+
+void
+cairo_stroke_extents (cairo_t *cr,
+		      double *x1, double *y1,
+		      double *x2, double *y2);
+
+void
+cairo_fill_extents (cairo_t *cr,
+		    double *x1, double *y1,
+		    double *x2, double *y2);
+    
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/bindings-streams.html b/libs/cairo-1.16.0/doc/public/html/bindings-streams.html new file mode 100644 index 0000000..ab8d3fc --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/bindings-streams.html @@ -0,0 +1,91 @@ + + + + +Streams and File I/O: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+

+Streams and File I/O

+

+ Various places in the cairo API deal with reading and writing + data, whether from and to files, or to other sources and + destinations. In these cases, what is typically provided in the + C API is a simple version that just takes a filename, and a + complex version that takes a callback function. + An example is the PNG handling functions: +

+
+cairo_surface_t *
+cairo_image_surface_create_from_png (const char	*filename);
+
+cairo_surface_t *
+cairo_image_surface_create_from_png_stream (cairo_read_func_t read_func,
+					    void             *closure);
+
+cairo_status_t
+cairo_surface_write_to_png (cairo_surface_t	*surface,
+			    const char		*filename);
+
+cairo_status_t
+cairo_surface_write_to_png_stream (cairo_surface_t	*surface,
+				   cairo_write_func_t	write_func,
+				   void			*closure);
+

+ The expectation is that the filename version will be mapped + literally in the language binding, but the callback version + will be mapped to a version that takes a language stream + object. For example, in Java, the four functions above + might be mapped to: +

+
+static public ImageSurface createFromPNG (String filename) throws IOException;
+static public ImageSurface createFromPNG (InputStream stream) throws IOException;
+public void writeToPNG (String filename) throws IOException;
+public void writeToPNG (OutputStream stream) throws IOException;
+
+

+ In many cases, it will be better to + implement the filename version internally + using the stream version, rather than building it on top of the + filename version in C. The reason for this is that will + naturally give a more standard handling of file errors for + the language, as seen in the above Java example, where + createFromPNG() is marked as raising + an exception. Propagating exceptions from inside the callback + function to the caller will pose a challenge to the language + binding implementor, since an exception must not propagate + through the Cairo code. A technique that will be useful in + some cases is to catch the exception in the callback, + store the exception object inside a structure pointed to by + closure, and then rethrow it once + the function returns. +

+

+ I'm not sure how to handle this for + cairo_pdf_surface_create_for_stream(). + Other than keep a “exception to rethrow” thread-specific + variable + that is checked after every call to a Cairo + function. +

+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/bindings-surfaces.html b/libs/cairo-1.16.0/doc/public/html/bindings-surfaces.html new file mode 100644 index 0000000..c0b5701 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/bindings-surfaces.html @@ -0,0 +1,92 @@ + + + + +Surfaces: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+

+Surfaces

+

+ Like patterns, surfaces, which use only the + cairo_surface_t + type in the C API should be broken up into a hierarchy of types + in a language binding. +

+
+cairo_surface_t
+    cairo_image_surface_t
+    cairo_atsui_surface_t
+    cairo_win32_surface_t
+    cairo_xlib_surface_t
+    cairo_beos_surface_t
+    
+

+ Unlike patterns, the constructors and methods on these types are + clearly named, and can be trivially associated with the + appropriate subtype. Many language bindings will want to avoid + binding the platform-specific subtypes at all, since the + methods on these types are not useful without passing in native + C types. Unless there is a language binding for Xlib available, + there is no way to represent a XLib Display * in + that language. +

+

+ This doesn't mean that platform-specific surface types can't + be used in a language binding that doesn't bind the constructor. + A very common situation is to use a cairo language binding in + combination with a binding for a higher level system like + the GTK+ widget + toolkit. In such a situation, the higher level toolkit provides + ways to get references to platform specific surfaces. +

+

+ The cairo_surface_set_user_data(), + and cairo_surface_get_user_data() + methods are provided for use in language bindings, and should + not be directly exposed to applications. One example of the use + of these functions in a language binding is creating a binding for: +

+
+cairo_surface_t *
+cairo_image_surface_create_for_data (unsigned char	       *data,
+				     cairo_format_t		format,
+				     int			width,
+				     int			height,
+				     int			stride);
+
+

+ The memory block passed in for data must be + kept around until the surface is destroyed, so the language + binding must have some way of determining when that happens. The + way to do this is to use the destroy + argument to cairo_surface_set_user_data(). +

+

+ Some languages may not have a suitable “pointer to a block of + data” type to pass in for data. And even + where a language does have such a type, the user will be + frequently able to cause the backing store to be reallocated + to a different location or truncated. Should we recommend a + standard type name and binding for a buffer object here? +

+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/cairo-Error-handling.html b/libs/cairo-1.16.0/doc/public/html/cairo-Error-handling.html new file mode 100644 index 0000000..5d263dd --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/cairo-Error-handling.html @@ -0,0 +1,486 @@ + + + + +Error handling: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+
+
+ + +
+

Error handling

+

Error handling — Decoding cairo's status

+
+
+

Functions

+
++++ + + + + + + + + + + +
const char * + +cairo_status_to_string () +
+void + +cairo_debug_reset_static_data () +
+
+
+

Types and Values

+
++++ + + + + +
enumcairo_status_t
+
+
+

Description

+

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.

+

Cairo's error handling is designed to be easy to use and safe. All major +cairo objects retain 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.

+
+
+

Functions

+
+

cairo_status_to_string ()

+
const char *
+cairo_status_to_string (cairo_status_t status);
+

Provides a human-readable description of a cairo_status_t.

+
+

Parameters

+
+++++ + + + + + +

status

a cairo status

 
+
+
+

Returns

+

a string representation of the status

+
+

Since: 1.0

+
+
+
+

cairo_debug_reset_static_data ()

+
void
+cairo_debug_reset_static_data (void);
+

Resets all static data within cairo to its original state, +(ie. identical to the state at the time of program invocation). For +example, all caches within cairo will be flushed empty.

+

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(), +it will report all data reachable via cairo's static objects as +"still reachable". Calling cairo_debug_reset_static_data() just prior +to program termination will make it easier to get squeaky clean +reports from valgrind.

+

WARNING: It is only safe to call this function when there are no +active cairo objects remaining, (ie. the appropriate destroy +functions have been called as necessary). If there are active cairo +objects, this call is likely to cause a crash, (eg. an assertion +failure due to a hash table being destroyed when non-empty).

+

Since: 1.0

+
+
+
+

Types and Values

+
+

enum cairo_status_t

+

cairo_status_t is used to indicate errors that can occur when +using Cairo. In some cases it is returned directly by functions. +but when using cairo_t, the last error, if any, is stored in +the context and can be retrieved with cairo_status().

+

New entries may be added in future versions. Use cairo_status_to_string() +to get a human-readable representation of an error message.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

CAIRO_STATUS_SUCCESS

+

no error has occurred (Since 1.0)

+
 

CAIRO_STATUS_NO_MEMORY

+

out of memory (Since 1.0)

+
 

CAIRO_STATUS_INVALID_RESTORE

+

cairo_restore() called without matching cairo_save() (Since 1.0)

+
 

CAIRO_STATUS_INVALID_POP_GROUP

+

no saved group to pop, i.e. cairo_pop_group() without matching cairo_push_group() (Since 1.0)

+
 

CAIRO_STATUS_NO_CURRENT_POINT

+

no current point defined (Since 1.0)

+
 

CAIRO_STATUS_INVALID_MATRIX

+

invalid matrix (not invertible) (Since 1.0)

+
 

CAIRO_STATUS_INVALID_STATUS

+

invalid value for an input cairo_status_t (Since 1.0)

+
 

CAIRO_STATUS_NULL_POINTER

+

NULL pointer (Since 1.0)

+
 

CAIRO_STATUS_INVALID_STRING

+

input string not valid UTF-8 (Since 1.0)

+
 

CAIRO_STATUS_INVALID_PATH_DATA

+

input path data not valid (Since 1.0)

+
 

CAIRO_STATUS_READ_ERROR

+

error while reading from input stream (Since 1.0)

+
 

CAIRO_STATUS_WRITE_ERROR

+

error while writing to output stream (Since 1.0)

+
 

CAIRO_STATUS_SURFACE_FINISHED

+

target surface has been finished (Since 1.0)

+
 

CAIRO_STATUS_SURFACE_TYPE_MISMATCH

+

the surface type is not appropriate for the operation (Since 1.0)

+
 

CAIRO_STATUS_PATTERN_TYPE_MISMATCH

+

the pattern type is not appropriate for the operation (Since 1.0)

+
 

CAIRO_STATUS_INVALID_CONTENT

+

invalid value for an input cairo_content_t (Since 1.0)

+
 

CAIRO_STATUS_INVALID_FORMAT

+

invalid value for an input cairo_format_t (Since 1.0)

+
 

CAIRO_STATUS_INVALID_VISUAL

+

invalid value for an input Visual* (Since 1.0)

+
 

CAIRO_STATUS_FILE_NOT_FOUND

+

file not found (Since 1.0)

+
 

CAIRO_STATUS_INVALID_DASH

+

invalid value for a dash setting (Since 1.0)

+
 

CAIRO_STATUS_INVALID_DSC_COMMENT

+

invalid value for a DSC comment (Since 1.2)

+
 

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_FONT_TYPE_MISMATCH

+

the font type is not appropriate for the operation (Since 1.8)

+
 

CAIRO_STATUS_USER_FONT_IMMUTABLE

+

the user-font is immutable (Since 1.8)

+
 

CAIRO_STATUS_USER_FONT_ERROR

+

error occurred in a user-font callback function (Since 1.8)

+
 

CAIRO_STATUS_NEGATIVE_COUNT

+

negative number used where it is not allowed (Since 1.8)

+
 

CAIRO_STATUS_INVALID_CLUSTERS

+

input clusters do not represent the accompanying text and glyph array (Since 1.8)

+
 

CAIRO_STATUS_INVALID_SLANT

+

invalid value for an input cairo_font_slant_t (Since 1.8)

+
 

CAIRO_STATUS_INVALID_WEIGHT

+

invalid value for an input cairo_font_weight_t (Since 1.8)

+
 

CAIRO_STATUS_INVALID_SIZE

+

invalid value (typically too big) for the size of the input (surface, pattern, etc.) (Since 1.10)

+
 

CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED

+

user-font method not implemented (Since 1.10)

+
 

CAIRO_STATUS_DEVICE_TYPE_MISMATCH

+

the device type is not appropriate for the operation (Since 1.10)

+
 

CAIRO_STATUS_DEVICE_ERROR

+

an operation to the device caused an unspecified error (Since 1.10)

+
 

CAIRO_STATUS_INVALID_MESH_CONSTRUCTION

+

a mesh pattern + construction operation was used outside of a + cairo_mesh_pattern_begin_patch()/cairo_mesh_pattern_end_patch() + pair (Since 1.12)

+
 

CAIRO_STATUS_DEVICE_FINISHED

+

target device has been finished (Since 1.12)

+
 

CAIRO_STATUS_JBIG2_GLOBAL_MISSING

+

CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID has been used on at least one image + but no image provided CAIRO_MIME_TYPE_JBIG2_GLOBAL (Since 1.14)

+
 

CAIRO_STATUS_PNG_ERROR

+

error occurred in libpng while reading from or writing to a PNG file (Since 1.16)

+
 

CAIRO_STATUS_FREETYPE_ERROR

+

error occurred in libfreetype (Since 1.16)

+
 

CAIRO_STATUS_WIN32_GDI_ERROR

+

error occurred in the Windows Graphics Device Interface (Since 1.16)

+
 

CAIRO_STATUS_TAG_ERROR

+

invalid tag name, attributes, or nesting (Since 1.16)

+
 

CAIRO_STATUS_LAST_STATUS

+

this is a special value indicating the number of + status values defined in this enumeration. When using this value, note + that the version of cairo at run-time may have additional status values + defined than the value of this symbol at compile-time. (Since 1.10)

+
 
+
+

Since: 1.0

+
+
+ +
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/cairo-FreeType-Fonts.html b/libs/cairo-1.16.0/doc/public/html/cairo-FreeType-Fonts.html new file mode 100644 index 0000000..126392f --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/cairo-FreeType-Fonts.html @@ -0,0 +1,553 @@ + + + + +FreeType Fonts: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+
+
+ + +
+

FreeType Fonts

+

FreeType Fonts — Font support for FreeType

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+cairo_font_face_t * + +cairo_ft_font_face_create_for_ft_face () +
+cairo_font_face_t * + +cairo_ft_font_face_create_for_pattern () +
+void + +cairo_ft_font_options_substitute () +
+FT_Face + +cairo_ft_scaled_font_lock_face () +
+void + +cairo_ft_scaled_font_unlock_face () +
unsigned int + +cairo_ft_font_face_get_synthesize () +
+void + +cairo_ft_font_face_set_synthesize () +
+void + +cairo_ft_font_face_unset_synthesize () +
+
+
+

Types and Values

+
++++ + + + + + + + + + + + + + + +
#defineCAIRO_HAS_FT_FONT
#defineCAIRO_HAS_FC_FONT
enumcairo_ft_synthesize_t
+
+
+

Description

+

The FreeType font backend is primarily used to render text on GNU/Linux +systems, but can be used on other platforms too.

+
+
+

Functions

+
+

cairo_ft_font_face_create_for_ft_face ()

+
cairo_font_face_t *
+cairo_ft_font_face_create_for_ft_face (FT_Face face,
+                                       int load_flags);
+

Creates a new font face for the FreeType font backend from a +pre-opened FreeType face. This font can then be used with +cairo_set_font_face() or cairo_scaled_font_create(). The +cairo_scaled_font_t returned from cairo_scaled_font_create() is +also for the FreeType backend and can be used with functions such +as cairo_ft_scaled_font_lock_face(). Note that Cairo may keep a reference +to the FT_Face alive in a font-cache and the exact lifetime of the reference +depends highly upon the exact usage pattern and is subject to external +factors. You must not call FT_Done_Face() before the last reference to the +cairo_font_face_t has been dropped.

+

As an example, below is how one might correctly couple the lifetime of +the FreeType face object to the cairo_font_face_t.

+
+ + + + + + + +
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
static const cairo_user_data_key_t key;
+
+font_face = cairo_ft_font_face_create_for_ft_face (ft_face, 0);
+status = cairo_font_face_set_user_data (font_face, &key,
+                               ft_face, (cairo_destroy_func_t) FT_Done_Face);
+if (status) {
+   cairo_font_face_destroy (font_face);
+   FT_Done_Face (ft_face);
+   return ERROR;
+}
+
+ +
+

Parameters

+
+++++ + + + + + + + + + + + + +

face

A FreeType face object, already opened. This must +be kept around until the face's ref_count drops to +zero and it is freed. Since the face may be referenced +internally to Cairo, the best way to determine when it +is safe to free the face is to pass a +cairo_destroy_func_t to cairo_font_face_set_user_data()

 

load_flags

flags to pass to FT_Load_Glyph when loading +glyphs from the font. These flags are OR'ed together with +the flags derived from the cairo_font_options_t passed +to cairo_scaled_font_create(), so only a few values such +as FT_LOAD_VERTICAL_LAYOUT, and FT_LOAD_FORCE_AUTOHINT +are useful. You should not pass any of the flags affecting +the load target, such as FT_LOAD_TARGET_LIGHT.

 
+
+
+

Returns

+

a newly created cairo_font_face_t. Free with +cairo_font_face_destroy() when you are done using it.

+
+

Since: 1.0

+
+
+
+

cairo_ft_font_face_create_for_pattern ()

+
cairo_font_face_t *
+cairo_ft_font_face_create_for_pattern (FcPattern *pattern);
+

Creates a new font face for the FreeType font backend based on a +fontconfig pattern. This font can then be used with +cairo_set_font_face() or cairo_scaled_font_create(). The +cairo_scaled_font_t returned from cairo_scaled_font_create() is +also for the FreeType backend and can be used with functions such +as cairo_ft_scaled_font_lock_face().

+

Font rendering options are represented both here and when you +call cairo_scaled_font_create(). Font options that have a representation +in a FcPattern must be passed in here; to modify FcPattern +appropriately to reflect the options in a cairo_font_options_t, call +cairo_ft_font_options_substitute().

+

The pattern's FC_FT_FACE element is inspected first and if that is set, +that will be the FreeType font face associated with the returned cairo +font face. Otherwise the FC_FILE element is checked. If it's set, +that and the value of the FC_INDEX element (defaults to zero) of pattern + +are used to load a font face from file.

+

If both steps from the previous paragraph fails, pattern + will be passed +to FcConfigSubstitute, FcDefaultSubstitute, and finally FcFontMatch, +and the resulting font pattern is used.

+

If the FC_FT_FACE element of pattern + is set, the user is responsible +for making sure that the referenced FT_Face remains valid for the life +time of the returned cairo_font_face_t. See +cairo_ft_font_face_create_for_ft_face() for an example of how to couple +the life time of the FT_Face to that of the cairo font-face.

+
+

Parameters

+
+++++ + + + + + +

pattern

A fontconfig pattern. Cairo makes a copy of the pattern +if it needs to. You are free to modify or free pattern +after this call.

 
+
+
+

Returns

+

a newly created cairo_font_face_t. Free with +cairo_font_face_destroy() when you are done using it.

+
+

Since: 1.0

+
+
+
+

cairo_ft_font_options_substitute ()

+
void
+cairo_ft_font_options_substitute (const cairo_font_options_t *options,
+                                  FcPattern *pattern);
+

Add options to a FcPattern based on a cairo_font_options_t font +options object. Options that are already in the pattern, are not overridden, +so you should call this function after calling FcConfigSubstitute() (the +user's settings should override options based on the surface type), but +before calling FcDefaultSubstitute().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

options

a cairo_font_options_t object

 

pattern

an existing FcPattern

 
+
+

Since: 1.0

+
+
+
+

cairo_ft_scaled_font_lock_face ()

+
FT_Face
+cairo_ft_scaled_font_lock_face (cairo_scaled_font_t *scaled_font);
+

cairo_ft_scaled_font_lock_face() gets the FT_Face object from a FreeType +backend font and scales it appropriately for the font and applies OpenType +font variations if applicable. You must +release the face with cairo_ft_scaled_font_unlock_face() +when you are done using it. Since the FT_Face object can be +shared between multiple cairo_scaled_font_t objects, you must not +lock any other font objects until you unlock this one. A count is +kept of the number of times cairo_ft_scaled_font_lock_face() is +called. cairo_ft_scaled_font_unlock_face() must be called the same number +of times.

+

You must be careful when using this function in a library or in a +threaded application, because freetype's design makes it unsafe to +call freetype functions simultaneously from multiple threads, (even +if using distinct FT_Face objects). Because of this, application +code that acquires an FT_Face object with this call must add its +own locking to protect any use of that object, (and which also must +protect any other calls into cairo as almost any cairo function +might result in a call into the freetype library).

+
+

Parameters

+
+++++ + + + + + +

scaled_font

A cairo_scaled_font_t from the FreeType font backend. Such an +object can be created by calling cairo_scaled_font_create() on a +FreeType backend font face (see cairo_ft_font_face_create_for_pattern(), +cairo_ft_font_face_create_for_ft_face()).

 
+
+
+

Returns

+

The FT_Face object for font +, scaled appropriately, +or NULL if scaled_font +is in an error state (see +cairo_scaled_font_status()) or there is insufficient memory.

+
+

Since: 1.0

+
+
+
+

cairo_ft_scaled_font_unlock_face ()

+
void
+cairo_ft_scaled_font_unlock_face (cairo_scaled_font_t *scaled_font);
+

Releases a face obtained with cairo_ft_scaled_font_lock_face().

+
+

Parameters

+
+++++ + + + + + +

scaled_font

A cairo_scaled_font_t from the FreeType font backend. Such an +object can be created by calling cairo_scaled_font_create() on a +FreeType backend font face (see cairo_ft_font_face_create_for_pattern(), +cairo_ft_font_face_create_for_ft_face()).

 
+
+

Since: 1.0

+
+
+
+

cairo_ft_font_face_get_synthesize ()

+
unsigned int
+cairo_ft_font_face_get_synthesize (cairo_font_face_t *font_face);
+

See cairo_ft_synthesize_t.

+
+

Parameters

+
+++++ + + + + + +

font_face

The cairo_ft_font_face_t object to query

 
+
+
+

Returns

+

the current set of synthesis options.

+
+

Since: 1.12

+
+
+
+

cairo_ft_font_face_set_synthesize ()

+
void
+cairo_ft_font_face_set_synthesize (cairo_font_face_t *font_face,
+                                   unsigned int synth_flags);
+

FreeType provides the ability to synthesize different glyphs from a base +font, which is useful if you lack those glyphs from a true bold or oblique +font. See also cairo_ft_synthesize_t.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

font_face

The cairo_ft_font_face_t object to modify

 

synth_flags

the set of synthesis options to enable

 
+
+

Since: 1.12

+
+
+
+

cairo_ft_font_face_unset_synthesize ()

+
void
+cairo_ft_font_face_unset_synthesize (cairo_font_face_t *font_face,
+                                     unsigned int synth_flags);
+

See cairo_ft_font_face_set_synthesize().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

font_face

The cairo_ft_font_face_t object to modify

 

synth_flags

the set of synthesis options to disable

 
+
+

Since: 1.12

+
+
+
+

Types and Values

+
+

CAIRO_HAS_FT_FONT

+
#define CAIRO_HAS_FT_FONT 1
+
+

Defined if the FreeType font backend is available. +This macro can be used to conditionally compile backend-specific code.

+

Since: 1.0

+
+
+
+

CAIRO_HAS_FC_FONT

+
#define CAIRO_HAS_FC_FONT 1
+
+

Defined if the Fontconfig-specific functions of the FreeType font backend +are available. +This macro can be used to conditionally compile backend-specific code.

+

Since: 1.10

+
+
+
+

enum cairo_ft_synthesize_t

+

A set of synthesis options to control how FreeType renders the glyphs +for a particular font face.

+

Individual synthesis features of a cairo_ft_font_face_t can be set +using cairo_ft_font_face_set_synthesize(), or disabled using +cairo_ft_font_face_unset_synthesize(). The currently enabled set of +synthesis options can be queried with cairo_ft_font_face_get_synthesize().

+

Note: that when synthesizing glyphs, the font metrics returned will only +be estimates.

+
+

Members

+
+++++ + + + + + + + + + + + + +

CAIRO_FT_SYNTHESIZE_BOLD

+

Embolden the glyphs (redraw with a pixel offset)

+
 

CAIRO_FT_SYNTHESIZE_OBLIQUE

+

Slant the glyph outline by 12 degrees to the +right.

+
 
+
+

Since: 1.12

+
+
+
+

See Also

+

cairo_font_face_t

+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/cairo-Image-Surfaces.html b/libs/cairo-1.16.0/doc/public/html/cairo-Image-Surfaces.html new file mode 100644 index 0000000..c6bbd35 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/cairo-Image-Surfaces.html @@ -0,0 +1,583 @@ + + + + +Image Surfaces: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+
+
+ + +
+

Image Surfaces

+

Image Surfaces — Rendering to memory buffers

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+int + +cairo_format_stride_for_width () +
+cairo_surface_t * + +cairo_image_surface_create () +
+cairo_surface_t * + +cairo_image_surface_create_for_data () +
unsigned char * + +cairo_image_surface_get_data () +
+cairo_format_t + +cairo_image_surface_get_format () +
+int + +cairo_image_surface_get_width () +
+int + +cairo_image_surface_get_height () +
+int + +cairo_image_surface_get_stride () +
+
+
+

Types and Values

+
++++ + + + + + + + + + + +
#defineCAIRO_HAS_IMAGE_SURFACE
enumcairo_format_t
+
+
+

Description

+

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.

+
+
+

Functions

+
+

cairo_format_stride_for_width ()

+
int
+cairo_format_stride_for_width (cairo_format_t format,
+                               int width);
+

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:

+
+ + + + + + + +
1
+2
+3
+4
+5
+6
+7
+8
+9
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,
+					  stride);
+
+ +
+

Parameters

+
+++++ + + + + + + + + + + + + +

format

A cairo_format_t value

 

width

The desired width of an image surface to be created.

 
+
+
+

Returns

+

the appropriate stride to use given the desired +format and width, or -1 if either the format is invalid or the width +too large.

+
+

Since: 1.6

+
+
+
+

cairo_image_surface_create ()

+
cairo_surface_t *
+cairo_image_surface_create (cairo_format_t format,
+                            int width,
+                            int height);
+

Creates an image surface of the specified format and +dimensions. Initially the surface contents are set to 0. +(Specifically, within each pixel, each color or alpha channel +belonging to format will be 0. The contents of bits within a pixel, +but not belonging to the given format are undefined).

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

format

format of pixels in the surface to create

 

width

width of the surface, in pixels

 

height

height of the surface, in pixels

 
+
+
+

Returns

+

a pointer to the newly created surface. The caller +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.

+
+

Since: 1.0

+
+
+
+

cairo_image_surface_create_for_data ()

+
cairo_surface_t *
+cairo_image_surface_create_for_data (unsigned char *data,
+                                     cairo_format_t format,
+                                     int width,
+                                     int height,
+                                     int stride);
+

Creates an image surface for the provided pixel data. The output +buffer must be kept around until the cairo_surface_t is destroyed +or cairo_surface_finish() is called on the surface. The initial +contents of data + will be used as the initial image contents; you +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 then use the resulting stride value +to allocate the data and to create the image surface. See +cairo_format_stride_for_width() for example code.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

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 as allocated. This value should always be computed by +cairo_format_stride_for_width() before allocating the data +buffer.

 
+
+
+

Returns

+

a pointer to the newly created surface. The caller +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 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.

+
+

Since: 1.0

+
+
+
+

cairo_image_surface_get_data ()

+
unsigned char *
+cairo_image_surface_get_data (cairo_surface_t *surface);
+

Get a pointer to the data of the image surface, for direct +inspection or modification.

+

A call to cairo_surface_flush() is required before accessing the +pixel data to ensure that all pending drawing operations are +finished. A call to cairo_surface_mark_dirty() is required after +the data is modified.

+
+

Parameters

+
+++++ + + + + + +

surface

a cairo_image_surface_t

 
+
+
+

Returns

+

a pointer to the image data of this surface or NULL +if surface +is not an image surface, or if cairo_surface_finish() +has been called.

+
+

Since: 1.2

+
+
+
+

cairo_image_surface_get_format ()

+
cairo_format_t
+cairo_image_surface_get_format (cairo_surface_t *surface);
+

Get the format of the surface.

+
+

Parameters

+
+++++ + + + + + +

surface

a cairo_image_surface_t

 
+
+
+

Returns

+

the format of the surface

+
+

Since: 1.2

+
+
+
+

cairo_image_surface_get_width ()

+
int
+cairo_image_surface_get_width (cairo_surface_t *surface);
+

Get the width of the image surface in pixels.

+
+

Parameters

+
+++++ + + + + + +

surface

a cairo_image_surface_t

 
+
+
+

Returns

+

the width of the surface in pixels.

+
+

Since: 1.0

+
+
+
+

cairo_image_surface_get_height ()

+
int
+cairo_image_surface_get_height (cairo_surface_t *surface);
+

Get the height of the image surface in pixels.

+
+

Parameters

+
+++++ + + + + + +

surface

a cairo_image_surface_t

 
+
+
+

Returns

+

the height of the surface in pixels.

+
+

Since: 1.0

+
+
+
+

cairo_image_surface_get_stride ()

+
int
+cairo_image_surface_get_stride (cairo_surface_t *surface);
+

Get the stride of the image surface in bytes

+
+

Parameters

+
+++++ + + + + + +

surface

a cairo_image_surface_t

 
+
+
+

Returns

+

the stride of the image surface in bytes (or 0 if +surface +is not an image surface). The stride is the distance in +bytes from the beginning of one row of the image data to the +beginning of the next row.

+
+

Since: 1.2

+
+
+
+

Types and Values

+
+

CAIRO_HAS_IMAGE_SURFACE

+
#define CAIRO_HAS_IMAGE_SURFACE 1
+
+

Defined if the image surface backend is available. +The image surface backend is always built in. +This macro was added for completeness in cairo 1.8.

+

Since: 1.8

+
+
+
+

enum cairo_format_t

+

cairo_format_t is used to identify the memory format of +image data.

+

New entries may be added in future versions.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

CAIRO_FORMAT_INVALID

+

no such format exists or is supported.

+
 

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 + alpha is used. (That is, 50% transparent red is 0x80800000, + not 0x80ff0000.) (Since 1.0)

+
 

CAIRO_FORMAT_RGB24

+

each pixel is a 32-bit quantity, with + the upper 8 bits unused. Red, Green, and Blue are stored + in the remaining 24 bits in that order. (Since 1.0)

+
 

CAIRO_FORMAT_A8

+

each pixel is a 8-bit quantity holding + an alpha value. (Since 1.0)

+
 

CAIRO_FORMAT_A1

+

each pixel is a 1-bit quantity holding + an alpha value. Pixels are packed together into 32-bit + quantities. The ordering of the bits matches the + endianness of the platform. On a big-endian machine, the + first pixel is in the uppermost bit, on a little-endian + machine the first pixel is in the least-significant bit. (Since 1.0)

+
 

CAIRO_FORMAT_RGB16_565

+

each pixel is a 16-bit quantity + with red in the upper 5 bits, then green in the middle + 6 bits, and blue in the lower 5 bits. (Since 1.2)

+
 

CAIRO_FORMAT_RGB30

+

like RGB24 but with 10bpc. (Since 1.12)

+
 
+
+

Since: 1.0

+
+
+
+

See Also

+

cairo_surface_t

+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/cairo-PDF-Surfaces.html b/libs/cairo-1.16.0/doc/public/html/cairo-PDF-Surfaces.html new file mode 100644 index 0000000..95463d6 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/cairo-PDF-Surfaces.html @@ -0,0 +1,829 @@ + + + + +PDF Surfaces: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+
+
+ + +
+

PDF Surfaces

+

PDF Surfaces — Rendering PDF documents

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+cairo_surface_t * + +cairo_pdf_surface_create () +
+cairo_surface_t * + +cairo_pdf_surface_create_for_stream () +
+void + +cairo_pdf_surface_restrict_to_version () +
+void + +cairo_pdf_get_versions () +
const char * + +cairo_pdf_version_to_string () +
+void + +cairo_pdf_surface_set_size () +
+int + +cairo_pdf_surface_add_outline () +
+void + +cairo_pdf_surface_set_metadata () +
+void + +cairo_pdf_surface_set_page_label () +
+void + +cairo_pdf_surface_set_thumbnail_size () +
+
+
+

Types and Values

+
++++ + + + + + + + + + + + + + + + + + + + + + + +
#defineCAIRO_HAS_PDF_SURFACE
#defineCAIRO_PDF_OUTLINE_ROOT
enumcairo_pdf_outline_flags_t
enumcairo_pdf_metadata_t
enumcairo_pdf_version_t
+
+
+

Description

+

The PDF surface is used to render cairo graphics to Adobe +PDF files and is a multi-page vector surface backend.

+

The following mime types are supported: CAIRO_MIME_TYPE_JPEG, +CAIRO_MIME_TYPE_JP2, CAIRO_MIME_TYPE_UNIQUE_ID, +CAIRO_MIME_TYPE_JBIG2, CAIRO_MIME_TYPE_JBIG2_GLOBAL, +CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID, +CAIRO_MIME_TYPE_CCITT_FAX, CAIRO_MIME_TYPE_CCITT_FAX_PARAMS.

+
+

JBIG2 Images

+

JBIG2 data in PDF must be in the embedded format as described in +ISO/IEC 11544. Image specific JBIG2 data must be in +CAIRO_MIME_TYPE_JBIG2. Any global segments in the JBIG2 data +(segments with page association field set to 0) must be in +CAIRO_MIME_TYPE_JBIG2_GLOBAL. The global data may be shared by +multiple images. All images sharing the same global data must set +CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID to a unique identifier. At least +one of the images must provide the global data using +CAIRO_MIME_TYPE_JBIG2_GLOBAL. The global data will only be +embedded once and shared by all JBIG2 images with the same +CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID.

+
+
+
+

CCITT Fax Images

+

The CAIRO_MIME_TYPE_CCITT_FAX mime data requires a number of decoding +parameters These parameters are specified using CAIRO_MIME_TYPE_CCITT_FAX_PARAMS.

+

CAIRO_MIME_TYPE_CCITT_FAX_PARAMS mime data must contain a string of the form +"param1=value1 param2=value2 ...".

+

Columns +: [required] An integer specifying the width of the image in pixels.

+

Rows +: [required] An integer specifying the height of the image in scan lines.

+

K +: [optional] An integer identifying the encoding scheme used. < 0 +is 2 dimensional Group 4, = 0 is Group3 1 dimensional, > 0 is mixed 1 +and 2 dimensional encoding. Default is 0.

+

EndOfLine +: [optional] If true end-of-line bit patterns are present. Default is false.

+

EncodedByteAlign +: [optional] If true the end of line is padded +with 0 bits so the next line begins on a byte boundary. Default is false.

+

EndOfBlock +: [optional] If true the data contains an end-of-block pattern. Default is true.

+

BlackIs1 +: [optional] If true 1 bits are black pixels. Default is false.

+

DamagedRowsBeforeError +: [optional] An integer specifying the +number of damages rows tolerated before an error occurs. Default is 0.

+

Boolean values may be "true" or "false", or 1 or 0.

+

These parameters are the same as the CCITTFaxDecode parameters in the +PostScript Language Reference +and Portable Document Format (PDF). +Refer to these documents for further details.

+

An example CAIRO_MIME_TYPE_CCITT_FAX_PARAMS string is:

+
+"Columns=10230 Rows=40000 K=1 EndOfLine=true EncodedByteAlign=1 BlackIs1=false"
+
+
+
+
+

Functions

+
+

cairo_pdf_surface_create ()

+
cairo_surface_t *
+cairo_pdf_surface_create (const char *filename,
+                          double width_in_points,
+                          double height_in_points);
+

Creates a PDF surface of the specified size in points to be written +to filename +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

filename

a filename for the PDF output (must be writable), NULL may be +used to specify no output. This will generate a PDF surface that +may be queried and used as a source, without generating a +temporary file.

 

width_in_points

width of the surface, in points (1 point == 1/72.0 inch)

 

height_in_points

height of the surface, in points (1 point == 1/72.0 inch)

 
+
+
+

Returns

+

a pointer to the newly created surface. The caller +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.

+
+

Since: 1.2

+
+
+
+

cairo_pdf_surface_create_for_stream ()

+
cairo_surface_t *
+cairo_pdf_surface_create_for_stream (cairo_write_func_t write_func,
+                                     void *closure,
+                                     double width_in_points,
+                                     double height_in_points);
+

Creates a PDF surface of the specified size in points to be written +incrementally to the stream represented by write_func + and closure +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

write_func

a cairo_write_func_t to accept the output data, may be NULL +to indicate a no-op write_func +. With a no-op write_func +, +the surface may be queried or used as a source without +generating any temporary files.

 

closure

the closure argument for write_func +

 

width_in_points

width of the surface, in points (1 point == 1/72.0 inch)

 

height_in_points

height of the surface, in points (1 point == 1/72.0 inch)

 
+
+
+

Returns

+

a pointer to the newly created surface. The caller +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.

+
+

Since: 1.2

+
+
+
+

cairo_pdf_surface_restrict_to_version ()

+
void
+cairo_pdf_surface_restrict_to_version (cairo_surface_t *surface,
+                                       cairo_pdf_version_t version);
+

Restricts the generated PDF file to version +. See cairo_pdf_get_versions() +for a list of available version values that can be used here.

+

This function should only be called before any drawing operations +have been performed on the given surface. The simplest way to do +this is to call this function immediately after creating the +surface.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

surface

a PDF cairo_surface_t

 

version

PDF version

 
+
+

Since: 1.10

+
+
+
+

cairo_pdf_get_versions ()

+
void
+cairo_pdf_get_versions (cairo_pdf_version_t const **versions,
+                        int *num_versions);
+

Used to retrieve the list of supported versions. See +cairo_pdf_surface_restrict_to_version().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

versions

supported version list

 

num_versions

list length

 
+
+

Since: 1.10

+
+
+
+

cairo_pdf_version_to_string ()

+
const char *
+cairo_pdf_version_to_string (cairo_pdf_version_t version);
+

Get the string representation of the given version + id. This function +will return NULL if version + isn't valid. See cairo_pdf_get_versions() +for a way to get the list of valid version ids.

+
+

Parameters

+
+++++ + + + + + +

version

a version id

 
+
+
+

Returns

+

the string associated to given version.

+
+

Since: 1.10

+
+
+
+

cairo_pdf_surface_set_size ()

+
void
+cairo_pdf_surface_set_size (cairo_surface_t *surface,
+                            double width_in_points,
+                            double height_in_points);
+

Changes the size of a PDF surface for the current (and +subsequent) pages.

+

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 or immediately after completing a page with either +cairo_show_page() or cairo_copy_page().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

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)

 
+
+

Since: 1.2

+
+
+
+

cairo_pdf_surface_add_outline ()

+
int
+cairo_pdf_surface_add_outline (cairo_surface_t *surface,
+                               int parent_id,
+                               const char *utf8,
+                               const char *link_attribs,
+                               cairo_pdf_outline_flags_t flags);
+

Add an item to the document outline hierarchy with the name utf8 + +that links to the location specified by link_attribs +. Link +attributes have the same keys and values as the Link Tag, +excluding the "rect" attribute. The item will be a child of the +item with id parent_id +. Use CAIRO_PDF_OUTLINE_ROOT as the parent +id of top level items.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

surface

a PDF cairo_surface_t

 

parent_id

the id of the parent item or CAIRO_PDF_OUTLINE_ROOT if this is a top level item.

 

utf8

the name of the outline

 

link_attribs

the link attributes specifying where this outline links to

 

flags

outline item flags

 
+
+
+

Returns

+

the id for the added item.

+
+

Since: 1.16

+
+
+
+

cairo_pdf_surface_set_metadata ()

+
void
+cairo_pdf_surface_set_metadata (cairo_surface_t *surface,
+                                cairo_pdf_metadata_t metadata,
+                                const char *utf8);
+

Set document metadata. The CAIRO_PDF_METADATA_CREATE_DATE and +CAIRO_PDF_METADATA_MOD_DATE values must be in ISO-8601 format: +YYYY-MM-DDThh:mm:ss. An optional timezone of the form "[+/-]hh:mm" +or "Z" for UTC time can be appended. All other metadata values can be any UTF-8 +string.

+

For example:

+
+ + + + + + + +
1
+2
cairo_pdf_surface_set_metadata (surface, CAIRO_PDF_METADATA_TITLE, "My Document");
+cairo_pdf_surface_set_metadata (surface, CAIRO_PDF_METADATA_CREATE_DATE, "2015-12-31T23:59+02:00");
+
+ +
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

surface

a PDF cairo_surface_t

 

metadata

The metadata item to set.

 

utf8

metadata value

 
+
+

Since: 1.16

+
+
+
+

cairo_pdf_surface_set_page_label ()

+
void
+cairo_pdf_surface_set_page_label (cairo_surface_t *surface,
+                                  const char *utf8);
+

Set page label for the current page.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

surface

a PDF cairo_surface_t

 

utf8

The page label.

 
+
+

Since: 1.16

+
+
+
+

cairo_pdf_surface_set_thumbnail_size ()

+
void
+cairo_pdf_surface_set_thumbnail_size (cairo_surface_t *surface,
+                                      int width,
+                                      int height);
+

Set the thumbnail image size for the current and all subsequent +pages. Setting a width or height of 0 disables thumbnails for the +current and subsequent pages.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

surface

a PDF cairo_surface_t

 

width

Thumbnail width.

 

height

Thumbnail height

 
+
+

Since: 1.16

+
+
+
+

Types and Values

+
+

CAIRO_HAS_PDF_SURFACE

+
#define CAIRO_HAS_PDF_SURFACE 1
+
+

Defined if the PDF surface backend is available. +This macro can be used to conditionally compile backend-specific code.

+

Since: 1.2

+
+
+
+

CAIRO_PDF_OUTLINE_ROOT

+
#define CAIRO_PDF_OUTLINE_ROOT 0
+
+

The root outline item in cairo_pdf_surface_add_outline().

+

Since: 1.16

+
+
+
+

enum cairo_pdf_outline_flags_t

+

cairo_pdf_outline_flags_t is used by the +cairo_pdf_surface_add_outline() function specify the attributes of +an outline item. These flags may be bitwise-or'd to produce any +combination of flags.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + +

CAIRO_PDF_OUTLINE_FLAG_OPEN

+

The outline item defaults to open in the PDF viewer (Since 1.16)

+
 

CAIRO_PDF_OUTLINE_FLAG_BOLD

+

The outline item is displayed by the viewer in bold text (Since 1.16)

+
 

CAIRO_PDF_OUTLINE_FLAG_ITALIC

+

The outline item is displayed by the viewer in italic text (Since 1.16)

+
 
+
+

Since: 1.16

+
+
+
+

enum cairo_pdf_metadata_t

+

cairo_pdf_metadata_t is used by the +cairo_pdf_surface_set_metadata() function specify the metadata to set.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

CAIRO_PDF_METADATA_TITLE

+

The document title (Since 1.16)

+
 

CAIRO_PDF_METADATA_AUTHOR

+

The document author (Since 1.16)

+
 

CAIRO_PDF_METADATA_SUBJECT

+

The document subject (Since 1.16)

+
 

CAIRO_PDF_METADATA_KEYWORDS

+

The document keywords (Since 1.16)

+
 

CAIRO_PDF_METADATA_CREATOR

+

The document creator (Since 1.16)

+
 

CAIRO_PDF_METADATA_CREATE_DATE

+

The document creation date (Since 1.16)

+
 

CAIRO_PDF_METADATA_MOD_DATE

+

The document modification date (Since 1.16)

+
 
+
+

Since: 1.16

+
+
+
+

enum cairo_pdf_version_t

+

cairo_pdf_version_t is used to describe the version number of the PDF +specification that a generated PDF file will conform to.

+
+

Members

+
+++++ + + + + + + + + + + + + +

CAIRO_PDF_VERSION_1_4

+

The version 1.4 of the PDF specification. (Since 1.10)

+
 

CAIRO_PDF_VERSION_1_5

+

The version 1.5 of the PDF specification. (Since 1.10)

+
 
+
+

Since: 1.10

+
+
+
+

See Also

+

cairo_surface_t

+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/cairo-PNG-Support.html b/libs/cairo-1.16.0/doc/public/html/cairo-PNG-Support.html new file mode 100644 index 0000000..fd24b15 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/cairo-PNG-Support.html @@ -0,0 +1,413 @@ + + + + +PNG Support: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+
+
+ + +
+

PNG Support

+

PNG Support — Reading and writing PNG images

+
+ +
+

Types and Values

+
++++ + + + + +
#defineCAIRO_HAS_PNG_FUNCTIONS
+
+
+

Description

+

The PNG functions allow reading PNG images into image surfaces, and writing +any surface to a PNG file.

+

It is a toy API. It only offers very simple support for reading and +writing PNG files, which is sufficient for testing and +demonstration purposes. Applications which need more control over +the generated PNG file should access the pixel data directly, using +cairo_image_surface_get_data() or a backend-specific access +function, and process it with another library, e.g. gdk-pixbuf or +libpng.

+
+
+

Functions

+
+

cairo_image_surface_create_from_png ()

+
cairo_surface_t *
+cairo_image_surface_create_from_png (const char *filename);
+

Creates a new image surface and initializes the contents to the +given PNG file.

+
+

Parameters

+
+++++ + + + + + +

filename

name of PNG file to load. On Windows this filename +is encoded in UTF-8.

 
+
+
+

Returns

+

a new cairo_surface_t initialized with the contents +of the PNG file, or a "nil" surface if any error occurred. A nil +surface can be checked for with cairo_surface_status(surface) which +may return one of the following values:

+

CAIRO_STATUS_NO_MEMORY +CAIRO_STATUS_FILE_NOT_FOUND +CAIRO_STATUS_READ_ERROR +CAIRO_STATUS_PNG_ERROR

+

Alternatively, you can allow errors to propagate through the drawing +operations and check the status on the context upon completion +using cairo_status().

+
+

Since: 1.0

+
+
+
+

cairo_read_func_t ()

+
cairo_status_t
+(*cairo_read_func_t) (void *closure,
+                      unsigned char *data,
+                      unsigned int length);
+

cairo_read_func_t is the type of function which is called when a +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 +CAIRO_STATUS_SUCCESS if all the data was successfully read, +CAIRO_STATUS_READ_ERROR otherwise.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

closure

the input closure

 

data

the buffer into which to read the data

 

length

the amount of data to read

 
+
+
+

Returns

+

the status code of the read operation

+
+

Since: 1.0

+
+
+
+

cairo_image_surface_create_from_png_stream ()

+
cairo_surface_t *
+cairo_image_surface_create_from_png_stream
+                               (cairo_read_func_t read_func,
+                                void *closure);
+

Creates a new image surface from PNG data read incrementally +via the read_func + function.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

read_func

function called to read the data of the file

 

closure

data to pass to read_func +.

 
+
+
+

Returns

+

a new cairo_surface_t initialized with the contents +of the PNG file or a "nil" surface if the data read is not a valid PNG image +or memory could not be allocated for the operation. A nil +surface can be checked for with cairo_surface_status(surface) which +may return one of the following values:

+

CAIRO_STATUS_NO_MEMORY +CAIRO_STATUS_READ_ERROR +CAIRO_STATUS_PNG_ERROR

+

Alternatively, you can allow errors to propagate through the drawing +operations and check the status on the context upon completion +using cairo_status().

+
+

Since: 1.0

+
+
+
+

cairo_surface_write_to_png ()

+
cairo_status_t
+cairo_surface_write_to_png (cairo_surface_t *surface,
+                            const char *filename);
+

Writes the contents of surface + to a new file filename + as a PNG +image.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

surface

a cairo_surface_t with pixel contents

 

filename

the name of a file to write to; on Windows this filename +is encoded in UTF-8.

 
+
+
+

Returns

+

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 +while attempting to write the file, or CAIRO_STATUS_PNG_ERROR if libpng +returned an error.

+
+

Since: 1.0

+
+
+
+

cairo_write_func_t ()

+
cairo_status_t
+(*cairo_write_func_t) (void *closure,
+                       const unsigned char *data,
+                       unsigned int length);
+

cairo_write_func_t is the type of function which is called when a +backend needs to write data to an output stream. It is passed the +closure which was specified by the user at the time the write +function was registered, the data to write and the length of the +data in bytes. The write function should return +CAIRO_STATUS_SUCCESS if all the data was successfully written, +CAIRO_STATUS_WRITE_ERROR otherwise.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

closure

the output closure

 

data

the buffer containing the data to write

 

length

the amount of data to write

 
+
+
+

Returns

+

the status code of the write operation

+
+

Since: 1.0

+
+
+
+

cairo_surface_write_to_png_stream ()

+
cairo_status_t
+cairo_surface_write_to_png_stream (cairo_surface_t *surface,
+                                   cairo_write_func_t write_func,
+                                   void *closure);
+

Writes the image surface to the write function.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

surface

a cairo_surface_t with pixel contents

 

write_func

a cairo_write_func_t

 

closure

closure data for the write function

 
+
+
+

Returns

+

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, or CAIRO_STATUS_PNG_ERROR if libpng +returned an error.

+
+

Since: 1.0

+
+
+
+

Types and Values

+
+

CAIRO_HAS_PNG_FUNCTIONS

+
#define CAIRO_HAS_PNG_FUNCTIONS 1
+
+

Defined if the PNG functions are available. +This macro can be used to conditionally compile code using the cairo +PNG functions.

+

Since: 1.0

+
+
+
+

See Also

+

cairo_surface_t

+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/cairo-Paths.html b/libs/cairo-1.16.0/doc/public/html/cairo-Paths.html new file mode 100644 index 0000000..5525a19 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/cairo-Paths.html @@ -0,0 +1,1550 @@ + + + + +Paths: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+
+
+ + +
+

Paths

+

Paths — Creating paths and manipulating path data

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+cairo_path_t * + +cairo_copy_path () +
+cairo_path_t * + +cairo_copy_path_flat () +
+void + +cairo_path_destroy () +
+void + +cairo_append_path () +
+cairo_bool_t + +cairo_has_current_point () +
+void + +cairo_get_current_point () +
+void + +cairo_new_path () +
+void + +cairo_new_sub_path () +
+void + +cairo_close_path () +
+void + +cairo_arc () +
+void + +cairo_arc_negative () +
+void + +cairo_curve_to () +
+void + +cairo_line_to () +
+void + +cairo_move_to () +
+void + +cairo_rectangle () +
+void + +cairo_glyph_path () +
+void + +cairo_text_path () +
+void + +cairo_rel_curve_to () +
+void + +cairo_rel_line_to () +
+void + +cairo_rel_move_to () +
+void + +cairo_path_extents () +
+
+
+

Types and Values

+
++++ + + + + + + + + + + + + + + +
 cairo_path_t
unioncairo_path_data_t
enumcairo_path_data_type_t
+
+
+

Description

+

Paths are the most basic drawing tools and are primarily used to implicitly +generate simple masks.

+
+
+

Functions

+
+

cairo_copy_path ()

+
cairo_path_t *
+cairo_copy_path (cairo_t *cr);
+

Creates a copy of the current path and returns it to the user as a +cairo_path_t. See cairo_path_data_t for hints on how to iterate +over the returned data structure.

+

This function will always return a valid pointer, but the result +will have no data (data==NULL and +num_data==0), if either of the following +conditions hold:

+
    +
  1. If there is insufficient memory to copy the path. In this + case path->status will be set to + CAIRO_STATUS_NO_MEMORY.
  2. +
  3. If cr is already in an error state. In this case + path->status will contain the same status that + would be returned by cairo_status().
  4. +
+
+

Parameters

+
+++++ + + + + + +

cr

a cairo context

 
+
+
+

Returns

+

the copy of the current path. The caller owns the +returned object and should call cairo_path_destroy() when finished +with it.

+
+

Since: 1.0

+
+
+
+

cairo_copy_path_flat ()

+
cairo_path_t *
+cairo_copy_path_flat (cairo_t *cr);
+

Gets a flattened copy of the current path and returns it to the +user as a cairo_path_t. See cairo_path_data_t for hints on +how to iterate over the returned data structure.

+

This function is like cairo_copy_path() except that any curves +in the path will be approximated with piecewise-linear +approximations, (accurate to within the current tolerance +value). That is, the result is guaranteed to not have any elements +of type CAIRO_PATH_CURVE_TO which will instead be replaced by a +series of CAIRO_PATH_LINE_TO elements.

+

This function will always return a valid pointer, but the result +will have no data (data==NULL and +num_data==0), if either of the following +conditions hold:

+
    +
  1. If there is insufficient memory to copy the path. In this + case path->status will be set to + CAIRO_STATUS_NO_MEMORY.
  2. +
  3. If cr is already in an error state. In this case + path->status will contain the same status that + would be returned by cairo_status().
  4. +
+
+

Parameters

+
+++++ + + + + + +

cr

a cairo context

 
+
+
+

Returns

+

the copy of the current path. The caller owns the +returned object and should call cairo_path_destroy() when finished +with it.

+
+

Since: 1.0

+
+
+
+

cairo_path_destroy ()

+
void
+cairo_path_destroy (cairo_path_t *path);
+

Immediately releases all memory associated with path +. After a call +to cairo_path_destroy() the path + pointer is no longer valid and +should not be used further.

+

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.

+
+

Parameters

+
+++++ + + + + + +

path

a path previously returned by either cairo_copy_path() or +cairo_copy_path_flat().

 
+
+

Since: 1.0

+
+
+
+

cairo_append_path ()

+
void
+cairo_append_path (cairo_t *cr,
+                   const cairo_path_t *path);
+

Append the path + onto the current path. The path + may be either the +return value from one of cairo_copy_path() or +cairo_copy_path_flat() or it may be constructed manually. See +cairo_path_t for details on how the path data structure should be +initialized, and note that path->status must be +initialized to CAIRO_STATUS_SUCCESS.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

cr

a cairo context

 

path

path to be appended

 
+
+

Since: 1.0

+
+
+
+

cairo_has_current_point ()

+
cairo_bool_t
+cairo_has_current_point (cairo_t *cr);
+

Returns whether a current point is defined on the current path. +See cairo_get_current_point() for details on the current point.

+
+

Parameters

+
+++++ + + + + + +

cr

a cairo context

 
+
+
+

Returns

+

whether a current point is defined.

+
+

Since: 1.6

+
+
+
+

cairo_get_current_point ()

+
void
+cairo_get_current_point (cairo_t *cr,
+                         double *x,
+                         double *y);
+

Gets the current point of the current path, which is +conceptually the final point reached by the path so far.

+

The current point is returned in the user-space coordinate +system. If there is no defined current point or if cr + is in an +error status, x + and y + will both be set to 0.0. It is possible to +check this in advance with cairo_has_current_point().

+

Most path construction functions alter the current point. See the +following for details on how they affect the current point: +cairo_new_path(), cairo_new_sub_path(), +cairo_append_path(), cairo_close_path(), +cairo_move_to(), cairo_line_to(), cairo_curve_to(), +cairo_rel_move_to(), cairo_rel_line_to(), cairo_rel_curve_to(), +cairo_arc(), cairo_arc_negative(), cairo_rectangle(), +cairo_text_path(), cairo_glyph_path(), cairo_stroke_to_path().

+

Some functions use and alter the current point but do not +otherwise change current path: +cairo_show_text().

+

Some functions unset the current path and as a result, current point: +cairo_fill(), cairo_stroke().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

cr

a cairo context

 

x

return value for X coordinate of the current point

 

y

return value for Y coordinate of the current point

 
+
+

Since: 1.0

+
+
+
+

cairo_new_path ()

+
void
+cairo_new_path (cairo_t *cr);
+

Clears the current path. After this call there will be no path and +no current point.

+
+

Parameters

+
+++++ + + + + + +

cr

a cairo context

 
+
+

Since: 1.0

+
+
+
+

cairo_new_sub_path ()

+
void
+cairo_new_sub_path (cairo_t *cr);
+

Begin a new sub-path. Note that the existing path is not +affected. After this call there will be no current point.

+

In many cases, this call is not needed since new sub-paths are +frequently started with cairo_move_to().

+

A call to cairo_new_sub_path() is particularly useful when +beginning a new sub-path with one of the cairo_arc() calls. This +makes things easier as it is no longer necessary to manually +compute the arc's initial coordinates for a call to +cairo_move_to().

+
+

Parameters

+
+++++ + + + + + +

cr

a cairo context

 
+
+

Since: 1.2

+
+
+
+

cairo_close_path ()

+
void
+cairo_close_path (cairo_t *cr);
+

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 +cairo_move_to()), and closes this sub-path. After this call the +current point will be at the joined endpoint of the sub-path.

+

The behavior of cairo_close_path() is distinct from simply calling +cairo_line_to() with the equivalent coordinate in the case of +stroking. When a closed sub-path is stroked, there are no caps on +the ends of the sub-path. Instead, there is a line join connecting +the final and initial segments of the sub-path.

+

If there is no current point before the call to cairo_close_path(), +this function will have no effect.

+

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 +not be necessary to save the "last move_to point" during processing +as the MOVE_TO immediately after the CLOSE_PATH will provide that +point.

+
+

Parameters

+
+++++ + + + + + +

cr

a cairo context

 
+
+

Since: 1.0

+
+
+
+

cairo_arc ()

+
void
+cairo_arc (cairo_t *cr,
+           double xc,
+           double yc,
+           double radius,
+           double angle1,
+           double angle2);
+

Adds a circular arc of the given radius + to the current path. The +arc is centered at (xc +, yc +), begins at angle1 + and proceeds in +the direction of increasing angles to end at angle2 +. If angle2 + is +less than angle1 + it will be progressively increased by +2*M_PI until it is greater than angle1 +.

+

If there is a current point, an initial line segment will be added +to the path to connect the current point to the beginning of the +arc. If this initial line is undesired, it can be avoided by +calling cairo_new_sub_path() before calling cairo_arc().

+

Angles are measured in radians. An angle of 0.0 is in the direction +of the positive X axis (in user space). An angle of +M_PI/2.0 radians (90 degrees) is in the +direction of the positive Y axis (in user space). Angles increase +in the direction from the positive X axis toward the positive Y +axis. So with the default transformation matrix, angles increase in +a clockwise direction.

+

(To convert from degrees to radians, use degrees * (M_PI / +180.).)

+

This function gives the arc in the direction of increasing angles; +see cairo_arc_negative() to get the arc in the direction of +decreasing angles.

+

The arc is circular in user space. To achieve an elliptical arc, +you can scale the current transformation matrix by different +amounts in the X and Y directions. For example, to draw an ellipse +in the box given by x +, y +, width +, height +:

+
+ + + + + + + +
1
+2
+3
+4
+5
cairo_save (cr);
+cairo_translate (cr, x + width / 2., y + height / 2.);
+cairo_scale (cr, width / 2., height / 2.);
+cairo_arc (cr, 0., 0., 1., 0., 2 * M_PI);
+cairo_restore (cr);
+
+ +
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

cr

a cairo context

 

xc

X position of the center of the arc

 

yc

Y position of the center of the arc

 

radius

the radius of the arc

 

angle1

the start angle, in radians

 

angle2

the end angle, in radians

 
+
+

Since: 1.0

+
+
+
+

cairo_arc_negative ()

+
void
+cairo_arc_negative (cairo_t *cr,
+                    double xc,
+                    double yc,
+                    double radius,
+                    double angle1,
+                    double angle2);
+

Adds a circular arc of the given radius + to the current path. The +arc is centered at (xc +, yc +), begins at angle1 + and proceeds in +the direction of decreasing angles to end at angle2 +. If angle2 + is +greater than angle1 + it will be progressively decreased by +2*M_PI until it is less than angle1 +.

+

See cairo_arc() for more details. This function differs only in the +direction of the arc between the two angles.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

cr

a cairo context

 

xc

X position of the center of the arc

 

yc

Y position of the center of the arc

 

radius

the radius of the arc

 

angle1

the start angle, in radians

 

angle2

the end angle, in radians

 
+
+

Since: 1.0

+
+
+
+

cairo_curve_to ()

+
void
+cairo_curve_to (cairo_t *cr,
+                double x1,
+                double y1,
+                double x2,
+                double y2,
+                double x3,
+                double y3);
+

Adds a cubic Bézier spline to the path from the current point to +position (x3 +, y3 +) in user-space coordinates, using (x1 +, y1 +) and +(x2 +, y2 +) as the control points. After this call the current point +will be (x3 +, y3 +).

+

If there is no current point before the call to cairo_curve_to() +this function will behave as if preceded by a call to +cairo_move_to(cr +, x1 +, y1 +).

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

cr

a cairo context

 

x1

the X coordinate of the first control point

 

y1

the Y coordinate of the first control point

 

x2

the X coordinate of the second control point

 

y2

the Y coordinate of the second control point

 

x3

the X coordinate of the end of the curve

 

y3

the Y coordinate of the end of the curve

 
+
+

Since: 1.0

+
+
+
+

cairo_line_to ()

+
void
+cairo_line_to (cairo_t *cr,
+               double x,
+               double y);
+

Adds a line to the path from the current point to position (x +, y +) +in user-space coordinates. After this call the current point +will be (x +, y +).

+

If there is no current point before the call to cairo_line_to() +this function will behave as cairo_move_to(cr +, x +, y +).

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

cr

a cairo context

 

x

the X coordinate of the end of the new line

 

y

the Y coordinate of the end of the new line

 
+
+

Since: 1.0

+
+
+
+

cairo_move_to ()

+
void
+cairo_move_to (cairo_t *cr,
+               double x,
+               double y);
+

Begin a new sub-path. After this call the current point will be (x +, +y +).

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

cr

a cairo context

 

x

the X coordinate of the new position

 

y

the Y coordinate of the new position

 
+
+

Since: 1.0

+
+
+
+

cairo_rectangle ()

+
void
+cairo_rectangle (cairo_t *cr,
+                 double x,
+                 double y,
+                 double width,
+                 double height);
+

Adds a closed sub-path rectangle of the given size to the current +path at position (x +, y +) in user-space coordinates.

+

This function is logically equivalent to:

+
+ + + + + + + +
1
+2
+3
+4
+5
cairo_move_to (cr, x, y);
+cairo_rel_line_to (cr, width, 0);
+cairo_rel_line_to (cr, 0, height);
+cairo_rel_line_to (cr, -width, 0);
+cairo_close_path (cr);
+
+ +
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

cr

a cairo context

 

x

the X coordinate of the top left corner of the rectangle

 

y

the Y coordinate to the top left corner of the rectangle

 

width

the width of the rectangle

 

height

the height of the rectangle

 
+
+

Since: 1.0

+
+
+
+

cairo_glyph_path ()

+
void
+cairo_glyph_path (cairo_t *cr,
+                  const cairo_glyph_t *glyphs,
+                  int num_glyphs);
+

Adds closed paths for the glyphs to the current path. The generated +path if filled, achieves an effect similar to that of +cairo_show_glyphs().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

cr

a cairo context

 

glyphs

array of glyphs to show

 

num_glyphs

number of glyphs to show

 
+
+

Since: 1.0

+
+
+
+

cairo_text_path ()

+
void
+cairo_text_path (cairo_t *cr,
+                 const char *utf8);
+

Adds closed paths for text to the current path. The generated +path if filled, achieves an effect similar to that of +cairo_show_text().

+

Text conversion and positioning is done similar to cairo_show_text().

+

Like cairo_show_text(), After this call the current point is +moved to the origin of where the next glyph would be placed in +this same progression. That is, the current point will be at +the origin of the final glyph offset by its advance values. +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 +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 +"real" text path API in cairo.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

cr

a cairo context

 

utf8

a NUL-terminated string of text encoded in UTF-8, or NULL

 
+
+

Since: 1.0

+
+
+
+

cairo_rel_curve_to ()

+
void
+cairo_rel_curve_to (cairo_t *cr,
+                    double dx1,
+                    double dy1,
+                    double dx2,
+                    double dy2,
+                    double dx3,
+                    double dy3);
+

Relative-coordinate version of cairo_curve_to(). All offsets are +relative to the current point. Adds a cubic Bézier spline to the +path from the current point to a point offset from the current +point by (dx3 +, dy3 +), using points offset by (dx1 +, dy1 +) and +(dx2 +, dy2 +) as the control points. After this call the current +point will be offset by (dx3 +, dy3 +).

+

Given a current point of (x, y), cairo_rel_curve_to(cr +, dx1 +, +dy1 +, dx2 +, dy2 +, dx3 +, dy3 +) is logically equivalent to +cairo_curve_to(cr +, x+dx1 +, y+dy1 +, x+dx2 +, y+dy2 +, x+dx3 +, y+dy3 +).

+

It is an error to call this function with no current point. Doing +so will cause cr + to shutdown with a status of +CAIRO_STATUS_NO_CURRENT_POINT.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

cr

a cairo context

 

dx1

the X offset to the first control point

 

dy1

the Y offset to the first control point

 

dx2

the X offset to the second control point

 

dy2

the Y offset to the second control point

 

dx3

the X offset to the end of the curve

 

dy3

the Y offset to the end of the curve

 
+
+

Since: 1.0

+
+
+
+

cairo_rel_line_to ()

+
void
+cairo_rel_line_to (cairo_t *cr,
+                   double dx,
+                   double dy);
+

Relative-coordinate version of cairo_line_to(). Adds a line to the +path from the current point to a point that is offset from the +current point by (dx +, dy +) in user space. After this call the +current point will be offset by (dx +, dy +).

+

Given a current point of (x, y), cairo_rel_line_to(cr +, dx +, dy +) +is logically equivalent to cairo_line_to(cr +, x + dx +, y + dy +).

+

It is an error to call this function with no current point. Doing +so will cause cr + to shutdown with a status of +CAIRO_STATUS_NO_CURRENT_POINT.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

cr

a cairo context

 

dx

the X offset to the end of the new line

 

dy

the Y offset to the end of the new line

 
+
+

Since: 1.0

+
+
+
+

cairo_rel_move_to ()

+
void
+cairo_rel_move_to (cairo_t *cr,
+                   double dx,
+                   double dy);
+

Begin a new sub-path. After this call the current point will offset +by (x +, y +).

+

Given a current point of (x, y), cairo_rel_move_to(cr +, dx +, dy +) +is logically equivalent to cairo_move_to(cr +, x + dx +, y + dy +).

+

It is an error to call this function with no current point. Doing +so will cause cr + to shutdown with a status of +CAIRO_STATUS_NO_CURRENT_POINT.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

cr

a cairo context

 

dx

the X offset

 

dy

the Y offset

 
+
+

Since: 1.0

+
+
+
+

cairo_path_extents ()

+
void
+cairo_path_extents (cairo_t *cr,
+                    double *x1,
+                    double *y1,
+                    double *x2,
+                    double *y2);
+

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().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

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

 
+
+

Since: 1.6

+
+
+
+

Types and Values

+
+

cairo_path_t

+
typedef struct {
+    cairo_status_t status;
+    cairo_path_data_t *data;
+    int num_data;
+} cairo_path_t;
+
+

A data structure for holding a path. This data structure serves as +the return value for cairo_copy_path() and +cairo_copy_path_flat() as well the input value for +cairo_append_path().

+

See cairo_path_data_t for hints on how to iterate over the +actual data within the path.

+

The num_data member gives the number of elements in the data +array. This number is larger than the number of independent path +portions (defined in cairo_path_data_type_t), since the data +includes both headers and coordinates for each portion.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + +

cairo_status_t status;

the current error status

 

cairo_path_data_t *data;

the elements in the path

 

int num_data;

the number of elements in the data array

 
+
+

Since: 1.0

+
+
+
+

union cairo_path_data_t

+

cairo_path_data_t is used to represent the path data inside a +cairo_path_t.

+

The data structure is designed to try to balance the demands of +efficiency and ease-of-use. A path is represented as an array of +cairo_path_data_t, which is a union of headers and points.

+

Each portion of the path is represented by one or more elements in +the array, (one header followed by 0 or more points). The length +value of the header is the number of array elements for the current +portion including the header, (ie. length == 1 + # of points), and +where the number of points for each element type is as follows:

+
+    %CAIRO_PATH_MOVE_TO:     1 point
+    %CAIRO_PATH_LINE_TO:     1 point
+    %CAIRO_PATH_CURVE_TO:    3 points
+    %CAIRO_PATH_CLOSE_PATH:  0 points
+
+

The semantics and ordering of the coordinate values are consistent +with cairo_move_to(), cairo_line_to(), cairo_curve_to(), and +cairo_close_path().

+

Here is sample code for iterating through a cairo_path_t:

+
+ + + + + + + +
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
int i;
+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:
+        do_move_to_things (data[1].point.x, data[1].point.y);
+        break;
+    case CAIRO_PATH_LINE_TO:
+        do_line_to_things (data[1].point.x, data[1].point.y);
+        break;
+    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:
+        do_close_path_things ();
+        break;
+    }
+}
+cairo_path_destroy (path);
+
+ +

As of cairo 1.4, cairo does not mind if there are more elements in +a portion of the path than needed. Such elements can be used by +users of the cairo API to hold extra values in the path data +structure. For this reason, it is recommended that applications +always use data->header.length to +iterate over the path data, instead of hardcoding the number of +elements for each element type.

+

Since: 1.0

+
+
+
+

enum cairo_path_data_type_t

+

cairo_path_data_t is used to describe the type of one portion +of a path when represented as a cairo_path_t. +See cairo_path_data_t for details.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

CAIRO_PATH_MOVE_TO

+

A move-to operation, since 1.0

+
 

CAIRO_PATH_LINE_TO

+

A line-to operation, since 1.0

+
 

CAIRO_PATH_CURVE_TO

+

A curve-to operation, since 1.0

+
 

CAIRO_PATH_CLOSE_PATH

+

A close-path operation, since 1.0

+
 
+
+

Since: 1.0

+
+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/cairo-PostScript-Surfaces.html b/libs/cairo-1.16.0/doc/public/html/cairo-PostScript-Surfaces.html new file mode 100644 index 0000000..4773376 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/cairo-PostScript-Surfaces.html @@ -0,0 +1,749 @@ + + + + +PostScript Surfaces: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+
+
+ + +
+

PostScript Surfaces

+

PostScript Surfaces — Rendering PostScript documents

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+cairo_surface_t * + +cairo_ps_surface_create () +
+cairo_surface_t * + +cairo_ps_surface_create_for_stream () +
+void + +cairo_ps_surface_restrict_to_level () +
+void + +cairo_ps_get_levels () +
const char * + +cairo_ps_level_to_string () +
+void + +cairo_ps_surface_set_eps () +
+cairo_bool_t + +cairo_ps_surface_get_eps () +
+void + +cairo_ps_surface_set_size () +
+void + +cairo_ps_surface_dsc_begin_setup () +
+void + +cairo_ps_surface_dsc_begin_page_setup () +
+void + +cairo_ps_surface_dsc_comment () +
+
+
+

Types and Values

+
++++ + + + + + + + + + + +
#defineCAIRO_HAS_PS_SURFACE
enumcairo_ps_level_t
+
+
+

Description

+

The PostScript surface is used to render cairo graphics to Adobe +PostScript files and is a multi-page vector surface backend.

+

The following mime types are supported: CAIRO_MIME_TYPE_JPEG, +CAIRO_MIME_TYPE_UNIQUE_ID, +CAIRO_MIME_TYPE_CCITT_FAX, CAIRO_MIME_TYPE_CCITT_FAX_PARAMS, +CAIRO_MIME_TYPE_CCITT_FAX, CAIRO_MIME_TYPE_CCITT_FAX_PARAMS, +CAIRO_MIME_TYPE_EPS, CAIRO_MIME_TYPE_EPS_PARAMS.

+

Source surfaces used by the PostScript surface that have a +CAIRO_MIME_TYPE_UNIQUE_ID mime type will be stored in PostScript +printer memory for the duration of the print +job. CAIRO_MIME_TYPE_UNIQUE_ID should only be used for small +frequently used sources.

+

The CAIRO_MIME_TYPE_CCITT_FAX and CAIRO_MIME_TYPE_CCITT_FAX_PARAMS mime types +are documented in CCITT Fax Images.

+
+

Embedding EPS files

+

Encapsulated PostScript files can be embedded in the PS output by +setting the CAIRO_MIME_TYPE_EPS mime data on a surface to the EPS +data and painting the surface. The EPS will be scaled and +translated to the extents of the surface the EPS data is attached +to.

+

The CAIRO_MIME_TYPE_EPS mime type requires the +CAIRO_MIME_TYPE_EPS_PARAMS mime data to also be provided in order +to specify the embeddding parameters. CAIRO_MIME_TYPE_EPS_PARAMS +mime data must contain a string of the form "bbox=[llx lly urx +ury]" that specifies the bounding box (in PS coordinates) of the +EPS graphics. The parameters are: lower left x, lower left y, upper +right x, upper right y. Normally the bbox data is identical to the +%%BoundingBox data in the EPS file.

+
+
+
+

Functions

+
+

cairo_ps_surface_create ()

+
cairo_surface_t *
+cairo_ps_surface_create (const char *filename,
+                         double width_in_points,
+                         double height_in_points);
+

Creates a PostScript surface of the specified size in points to be +written to filename +. See cairo_ps_surface_create_for_stream() for +a more flexible mechanism for handling the PostScript output than +simply writing it to a named file.

+

Note that the size of individual pages of the PostScript output can +vary. See cairo_ps_surface_set_size().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

filename

a filename for the PS output (must be writable), NULL may be +used to specify no output. This will generate a PS surface that +may be queried and used as a source, without generating a +temporary file.

 

width_in_points

width of the surface, in points (1 point == 1/72.0 inch)

 

height_in_points

height of the surface, in points (1 point == 1/72.0 inch)

 
+
+
+

Returns

+

a pointer to the newly created surface. The caller +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.

+
+

Since: 1.2

+
+
+
+

cairo_ps_surface_create_for_stream ()

+
cairo_surface_t *
+cairo_ps_surface_create_for_stream (cairo_write_func_t write_func,
+                                    void *closure,
+                                    double width_in_points,
+                                    double height_in_points);
+

Creates a PostScript surface of the specified size in points to be +written incrementally to the stream represented by write_func + and +closure +. See cairo_ps_surface_create() for a more convenient way +to simply direct the PostScript output to a named file.

+

Note that the size of individual pages of the PostScript +output can vary. See cairo_ps_surface_set_size().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

write_func

a cairo_write_func_t to accept the output data, may be NULL +to indicate a no-op write_func +. With a no-op write_func +, +the surface may be queried or used as a source without +generating any temporary files.

 

closure

the closure argument for write_func +

 

width_in_points

width of the surface, in points (1 point == 1/72.0 inch)

 

height_in_points

height of the surface, in points (1 point == 1/72.0 inch)

 
+
+
+

Returns

+

a pointer to the newly created surface. The caller +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.

+
+

Since: 1.2

+
+
+
+

cairo_ps_surface_restrict_to_level ()

+
void
+cairo_ps_surface_restrict_to_level (cairo_surface_t *surface,
+                                    cairo_ps_level_t level);
+

Restricts the generated PostSript file to level +. See +cairo_ps_get_levels() for a list of available level values that +can be used here.

+

This function should only be called before any drawing operations +have been performed on the given surface. The simplest way to do +this is to call this function immediately after creating the +surface.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

surface

a PostScript cairo_surface_t

 

level

PostScript level

 
+
+

Since: 1.6

+
+
+
+

cairo_ps_get_levels ()

+
void
+cairo_ps_get_levels (cairo_ps_level_t const **levels,
+                     int *num_levels);
+

Used to retrieve the list of supported levels. See +cairo_ps_surface_restrict_to_level().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

levels

supported level list

 

num_levels

list length

 
+
+

Since: 1.6

+
+
+
+

cairo_ps_level_to_string ()

+
const char *
+cairo_ps_level_to_string (cairo_ps_level_t level);
+

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() +for a way to get the list of valid level ids.

+
+

Parameters

+
+++++ + + + + + +

level

a level id

 
+
+
+

Returns

+

the string associated to given level.

+
+

Since: 1.6

+
+
+
+

cairo_ps_surface_set_eps ()

+
void
+cairo_ps_surface_set_eps (cairo_surface_t *surface,
+                          cairo_bool_t eps);
+

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 +than one page.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

surface

a PostScript cairo_surface_t

 

eps

TRUE to output EPS format PostScript

 
+
+

Since: 1.6

+
+
+
+

cairo_ps_surface_get_eps ()

+
cairo_bool_t
+cairo_ps_surface_get_eps (cairo_surface_t *surface);
+

Check whether the PostScript surface will output Encapsulated PostScript.

+
+

Parameters

+
+++++ + + + + + +

surface

a PostScript cairo_surface_t

 
+
+
+

Returns

+

TRUE if the surface will output Encapsulated PostScript.

+
+

Since: 1.6

+
+
+
+

cairo_ps_surface_set_size ()

+
void
+cairo_ps_surface_set_size (cairo_surface_t *surface,
+                           double width_in_points,
+                           double height_in_points);
+

Changes the size of a PostScript surface for the current (and +subsequent) pages.

+

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 or immediately after completing a page with either +cairo_show_page() or cairo_copy_page().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

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)

 
+
+

Since: 1.2

+
+
+
+

cairo_ps_surface_dsc_begin_setup ()

+
void
+cairo_ps_surface_dsc_begin_setup (cairo_surface_t *surface);
+

This function indicates that subsequent calls to +cairo_ps_surface_dsc_comment() should direct comments to the Setup +section of the PostScript output.

+

This function should be called at most once per surface, and must +be called before any call to cairo_ps_surface_dsc_begin_page_setup() +and before any drawing is performed to the surface.

+

See cairo_ps_surface_dsc_comment() for more details.

+
+

Parameters

+
+++++ + + + + + +

surface

a PostScript cairo_surface_t

 
+
+

Since: 1.2

+
+
+
+

cairo_ps_surface_dsc_begin_page_setup ()

+
void
+cairo_ps_surface_dsc_begin_page_setup (cairo_surface_t *surface);
+

This function indicates that subsequent calls to +cairo_ps_surface_dsc_comment() should direct comments to the +PageSetup section of the PostScript output.

+

This function call is only needed for the first page of a +surface. It should be called after any call to +cairo_ps_surface_dsc_begin_setup() and before any drawing is +performed to the surface.

+

See cairo_ps_surface_dsc_comment() for more details.

+
+

Parameters

+
+++++ + + + + + +

surface

a PostScript cairo_surface_t

 
+
+

Since: 1.2

+
+
+
+

cairo_ps_surface_dsc_comment ()

+
void
+cairo_ps_surface_dsc_comment (cairo_surface_t *surface,
+                              const char *comment);
+

Emit a comment into the PostScript output for the given surface.

+

The comment is expected to conform to the PostScript Language +Document Structuring Conventions (DSC). Please see that manual for +details on the available comments and their meanings. In +particular, the %%IncludeFeature comment allows a +device-independent means of controlling printer device features. So +the PostScript Printer Description Files Specification will also be +a useful reference.

+

The comment string must begin with a percent character (%) and the +total length of the string (including any initial percent +characters) must not exceed 255 characters. Violating either of +these conditions will place surface + into an error state. But +beyond these two conditions, this function will not enforce +conformance of the comment with any particular specification.

+

The comment string should not have a trailing newline.

+

The DSC specifies different sections in which particular comments +can appear. This function provides for comments to be emitted +within three sections: the header, the Setup section, and the +PageSetup section. Comments appearing in the first two sections +apply to the entire document while comments in the BeginPageSetup +section apply only to a single page.

+

For comments to appear in the header section, this function should +be called after the surface is created, but before a call to +cairo_ps_surface_dsc_begin_setup().

+

For comments to appear in the Setup section, this function should +be called after a call to cairo_ps_surface_dsc_begin_setup() but +before a call to cairo_ps_surface_dsc_begin_page_setup().

+

For comments to appear in the PageSetup section, this function +should be called after a call to +cairo_ps_surface_dsc_begin_page_setup().

+

Note that it is only necessary to call +cairo_ps_surface_dsc_begin_page_setup() for the first page of any +surface. After a call to cairo_show_page() or cairo_copy_page() +comments are unambiguously directed to the PageSetup section of the +current page. But it doesn't hurt to call this function at the +beginning of every page as that consistency may make the calling +code simpler.

+

As a final note, cairo automatically generates several comments on +its own. As such, applications must not manually generate any of +the following comments:

+

Header section: %!PS-Adobe-3.0, %%Creator, %%CreationDate, %%Pages, +%%BoundingBox, %%DocumentData, %%LanguageLevel, %%EndComments.

+

Setup section: %%BeginSetup, %%EndSetup

+

PageSetup section: %%BeginPageSetup, %%PageBoundingBox, %%EndPageSetup.

+

Other sections: %%BeginProlog, %%EndProlog, %%Page, %%Trailer, %%EOF

+

Here is an example sequence showing how this function might be used:

+
+ + + + + + + +
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
cairo_surface_t *surface = cairo_ps_surface_create (filename, width, height);
+...
+cairo_ps_surface_dsc_comment (surface, "%%Title: My excellent document");
+cairo_ps_surface_dsc_comment (surface, "%%Copyright: Copyright (C) 2006 Cairo Lover")
+...
+cairo_ps_surface_dsc_begin_setup (surface);
+cairo_ps_surface_dsc_comment (surface, "%%IncludeFeature: *MediaColor White");
+...
+cairo_ps_surface_dsc_begin_page_setup (surface);
+cairo_ps_surface_dsc_comment (surface, "%%IncludeFeature: *PageSize A3");
+cairo_ps_surface_dsc_comment (surface, "%%IncludeFeature: *InputSlot LargeCapacity");
+cairo_ps_surface_dsc_comment (surface, "%%IncludeFeature: *MediaType Glossy");
+cairo_ps_surface_dsc_comment (surface, "%%IncludeFeature: *MediaColor Blue");
+... draw to first page here ..
+cairo_show_page (cr);
+...
+cairo_ps_surface_dsc_comment (surface, "%%IncludeFeature: *PageSize A5");
+...
+
+ +
+

Parameters

+
+++++ + + + + + + + + + + + + +

surface

a PostScript cairo_surface_t

 

comment

a comment string to be emitted into the PostScript output

 
+
+

Since: 1.2

+
+
+
+

Types and Values

+
+

CAIRO_HAS_PS_SURFACE

+
#define CAIRO_HAS_PS_SURFACE 1
+
+

Defined if the PostScript surface backend is available. +This macro can be used to conditionally compile backend-specific code.

+

Since: 1.2

+
+
+
+

enum cairo_ps_level_t

+

cairo_ps_level_t is used to describe the language level of the +PostScript Language Reference that a generated PostScript file will +conform to.

+
+

Members

+
+++++ + + + + + + + + + + + + +

CAIRO_PS_LEVEL_2

+

The language level 2 of the PostScript specification. (Since 1.6)

+
 

CAIRO_PS_LEVEL_3

+

The language level 3 of the PostScript specification. (Since 1.6)

+
 
+
+

Since: 1.6

+
+
+
+

See Also

+

cairo_surface_t

+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/cairo-Quartz-(CGFont)-Fonts.html b/libs/cairo-1.16.0/doc/public/html/cairo-Quartz-(CGFont)-Fonts.html new file mode 100644 index 0000000..8b2754f --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/cairo-Quartz-(CGFont)-Fonts.html @@ -0,0 +1,163 @@ + + + + +Quartz (CGFont) Fonts: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+
+
+ + +
+

Quartz (CGFont) Fonts

+

Quartz (CGFont) Fonts — Font support via CGFont on OS X

+
+ +
+

Types and Values

+
++++ + + + + +
#defineCAIRO_HAS_QUARTZ_FONT
+
+
+

Description

+

The Quartz font backend is primarily used to render text on Apple +MacOS X systems. The CGFont API is used for the internal +implementation of the font backend methods.

+
+
+

Functions

+
+

cairo_quartz_font_face_create_for_cgfont ()

+
cairo_font_face_t *
+cairo_quartz_font_face_create_for_cgfont
+                               (CGFontRef font);
+

Creates a new font for the Quartz font backend based on a +CGFontRef. This font can then be used with +cairo_set_font_face() or cairo_scaled_font_create().

+
+

Parameters

+
+++++ + + + + + +

font

a CGFontRef obtained through a method external to cairo.

 
+
+
+

Returns

+

a newly created cairo_font_face_t. Free with +cairo_font_face_destroy() when you are done using it.

+
+

Since: 1.6

+
+
+
+

cairo_quartz_font_face_create_for_atsu_font_id ()

+
cairo_font_face_t *
+cairo_quartz_font_face_create_for_atsu_font_id
+                               (ATSUFontID font_id);
+

Creates a new font for the Quartz font backend based on an +ATSUFontID. This font can then be used with +cairo_set_font_face() or cairo_scaled_font_create().

+
+

Parameters

+
+++++ + + + + + +

font_id

an ATSUFontID for the font.

 
+
+
+

Returns

+

a newly created cairo_font_face_t. Free with +cairo_font_face_destroy() when you are done using it.

+
+

Since: 1.6

+
+
+
+

Types and Values

+
+

CAIRO_HAS_QUARTZ_FONT

+
#define CAIRO_HAS_QUARTZ_FONT 1
+
+

Defined if the Quartz font backend is available. +This macro can be used to conditionally compile backend-specific code.

+

Since: 1.6

+
+
+
+

See Also

+

cairo_font_face_t

+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/cairo-Quartz-Surfaces.html b/libs/cairo-1.16.0/doc/public/html/cairo-Quartz-Surfaces.html new file mode 100644 index 0000000..a1bc7e4 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/cairo-Quartz-Surfaces.html @@ -0,0 +1,249 @@ + + + + +Quartz Surfaces: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+
+
+ + +
+

Quartz Surfaces

+

Quartz Surfaces — Rendering to Quartz surfaces

+
+
+

Functions

+ +
+
+

Types and Values

+
++++ + + + + +
#defineCAIRO_HAS_QUARTZ_SURFACE
+
+
+

Description

+

The Quartz surface is used to render cairo graphics targeting the +Apple OS X Quartz rendering system.

+
+
+

Functions

+
+

cairo_quartz_surface_create ()

+
cairo_surface_t *
+cairo_quartz_surface_create (cairo_format_t format,
+                             unsigned int width,
+                             unsigned int height);
+

Creates a Quartz surface backed by a CGBitmap. The surface is +created using the Device RGB (or Device Gray, for A8) color space. +All Cairo operations, including those that require software +rendering, will succeed on this surface.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

format

format of pixels in the surface to create

 

width

width of the surface, in pixels

 

height

height of the surface, in pixels

 
+
+
+

Returns

+

the newly created surface.

+
+

Since: 1.6

+
+
+
+

cairo_quartz_surface_create_for_cg_context ()

+
cairo_surface_t *
+cairo_quartz_surface_create_for_cg_context
+                               (CGContextRef cgContext,
+                                unsigned int width,
+                                unsigned int height);
+

Creates a Quartz surface that wraps the given CGContext. The +CGContext is assumed to be in the standard Cairo coordinate space +(that is, with the origin at the upper left and the Y axis +increasing downward). If the CGContext is in the Quartz coordinate +space (with the origin at the bottom left), then it should be +flipped before this function is called. The flip can be accomplished +using a translate and a scale; for example:

+
+ + + + + + + +
1
+2
CGContextTranslateCTM (cgContext, 0.0, height);
+CGContextScaleCTM (cgContext, 1.0, -1.0);
+
+ +

All Cairo operations are implemented in terms of Quartz operations, +as long as Quartz-compatible elements are used (such as Quartz fonts).

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

cgContext

the existing CGContext for which to create the surface

 

width

width of the surface, in pixels

 

height

height of the surface, in pixels

 
+
+
+

Returns

+

the newly created Cairo surface.

+
+

Since: 1.6

+
+
+
+

cairo_quartz_surface_get_cg_context ()

+
CGContextRef
+cairo_quartz_surface_get_cg_context (cairo_surface_t *surface);
+

Returns the CGContextRef that the given Quartz surface is backed +by.

+

A call to cairo_surface_flush() is required before using the +CGContextRef to ensure that all pending drawing operations are +finished and to restore any temporary modification cairo has made +to its state. A call to cairo_surface_mark_dirty() is required +after the state or the content of the CGContextRef has been +modified.

+
+

Parameters

+
+++++ + + + + + +

surface

the Cairo Quartz surface

 
+
+
+

Returns

+

the CGContextRef for the given surface.

+
+

Since: 1.6

+
+
+
+

Types and Values

+
+

CAIRO_HAS_QUARTZ_SURFACE

+
#define CAIRO_HAS_QUARTZ_SURFACE 1
+
+

Defined if the Quartz surface backend is available. +This macro can be used to conditionally compile backend-specific code.

+

Since: 1.6

+
+
+
+

See Also

+

cairo_surface_t

+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/cairo-Raster-Sources.html b/libs/cairo-1.16.0/doc/public/html/cairo-Raster-Sources.html new file mode 100644 index 0000000..499dc96 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/cairo-Raster-Sources.html @@ -0,0 +1,794 @@ + + + + +Raster Sources: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+
+
+ + +
+

Raster Sources

+

Raster Sources — Supplying arbitrary image data

+
+ +
+

Description

+

The raster source provides the ability to supply arbitrary pixel data +whilst rendering. The pixels are queried at the time of rasterisation +by means of user callback functions, allowing for the ultimate +flexibility. For example, in handling compressed image sources, you +may keep a MRU cache of decompressed images and decompress sources on the +fly and discard old ones to conserve memory.

+

For the raster source to be effective, you must at least specify +the acquire and release callbacks which are used to retrieve the pixel +data for the region of interest and demark when it can be freed afterwards. +Other callbacks are provided for when the pattern is copied temporarily +during rasterisation, or more permanently as a snapshot in order to keep +the pixel data available for printing.

+
+
+

Functions

+
+

cairo_pattern_create_raster_source ()

+
cairo_pattern_t *
+cairo_pattern_create_raster_source (void *user_data,
+                                    cairo_content_t content,
+                                    int width,
+                                    int height);
+

Creates a new user pattern for providing pixel data.

+

Use the setter functions to associate callbacks with the returned +pattern. The only mandatory callback is acquire.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

user_data

the user data to be passed to all callbacks

 

content

content type for the pixel data that will be returned. Knowing +the content type ahead of time is used for analysing the operation and +picking the appropriate rendering path.

 

width

maximum size of the sample area

 

height

maximum size of the sample area

 
+
+
+

Returns

+

a newly created cairo_pattern_t. Free with +cairo_pattern_destroy() when you are done using it.

+
+

Since: 1.12

+
+
+
+

cairo_raster_source_pattern_set_callback_data ()

+
void
+cairo_raster_source_pattern_set_callback_data
+                               (cairo_pattern_t *pattern,
+                                void *data);
+

Updates the user data that is provided to all callbacks.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

pattern

the pattern to update

 

data

the user data to be passed to all callbacks

 
+
+

Since: 1.12

+
+
+
+

cairo_raster_source_pattern_get_callback_data ()

+
void *
+cairo_raster_source_pattern_get_callback_data
+                               (cairo_pattern_t *pattern);
+

Queries the current user data.

+
+

Parameters

+
+++++ + + + + + +

pattern

the pattern to update

 
+
+
+

Returns

+

the current user-data passed to each callback

+
+

Since: 1.12

+
+
+
+

cairo_raster_source_pattern_set_acquire ()

+
void
+cairo_raster_source_pattern_set_acquire
+                               (cairo_pattern_t *pattern,
+                                cairo_raster_source_acquire_func_t acquire,
+                                cairo_raster_source_release_func_t release);
+

Specifies the callbacks used to generate the image surface for a rendering +operation (acquire) and the function used to cleanup that surface afterwards.

+

The acquire + callback should create a surface (preferably an image +surface created to match the target using +cairo_surface_create_similar_image()) that defines at least the region +of interest specified by extents. The surface is allowed to be the entire +sample area, but if it does contain a subsection of the sample area, +the surface extents should be provided by setting the device offset (along +with its width and height) using cairo_surface_set_device_offset().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

pattern

the pattern to update

 

acquire

acquire callback

 

release

release callback

 
+
+

Since: 1.12

+
+
+
+

cairo_raster_source_pattern_get_acquire ()

+
void
+cairo_raster_source_pattern_get_acquire
+                               (cairo_pattern_t *pattern,
+                                cairo_raster_source_acquire_func_t *acquire,
+                                cairo_raster_source_release_func_t *release);
+

Queries the current acquire and release callbacks.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

pattern

the pattern to query

 

acquire

return value for the current acquire callback

 

release

return value for the current release callback

 
+
+

Since: 1.12

+
+
+
+

cairo_raster_source_pattern_set_snapshot ()

+
void
+cairo_raster_source_pattern_set_snapshot
+                               (cairo_pattern_t *pattern,
+                                cairo_raster_source_snapshot_func_t snapshot);
+

Sets the callback that will be used whenever a snapshot is taken of the +pattern, that is whenever the current contents of the pattern should be +preserved for later use. This is typically invoked whilst printing.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

pattern

the pattern to update

 

snapshot

snapshot callback

 
+
+

Since: 1.12

+
+
+
+

cairo_raster_source_pattern_get_snapshot ()

+
cairo_raster_source_snapshot_func_t
+cairo_raster_source_pattern_get_snapshot
+                               (cairo_pattern_t *pattern);
+

Queries the current snapshot callback.

+
+

Parameters

+
+++++ + + + + + +

pattern

the pattern to query

 
+
+
+

Returns

+

the current snapshot callback

+
+

Since: 1.12

+
+
+
+

cairo_raster_source_pattern_set_copy ()

+
void
+cairo_raster_source_pattern_set_copy (cairo_pattern_t *pattern,
+                                      cairo_raster_source_copy_func_t copy);
+

Updates the copy callback which is used whenever a temporary copy of the +pattern is taken.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

pattern

the pattern to update

 

copy

the copy callback

 
+
+

Since: 1.12

+
+
+
+

cairo_raster_source_pattern_get_copy ()

+
cairo_raster_source_copy_func_t
+cairo_raster_source_pattern_get_copy (cairo_pattern_t *pattern);
+

Queries the current copy callback.

+
+

Parameters

+
+++++ + + + + + +

pattern

the pattern to query

 
+
+
+

Returns

+

the current copy callback

+
+

Since: 1.12

+
+
+
+

cairo_raster_source_pattern_set_finish ()

+
void
+cairo_raster_source_pattern_set_finish
+                               (cairo_pattern_t *pattern,
+                                cairo_raster_source_finish_func_t finish);
+

Updates the finish callback which is used whenever a pattern (or a copy +thereof) will no longer be used.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

pattern

the pattern to update

 

finish

the finish callback

 
+
+

Since: 1.12

+
+
+
+

cairo_raster_source_pattern_get_finish ()

+
cairo_raster_source_finish_func_t
+cairo_raster_source_pattern_get_finish
+                               (cairo_pattern_t *pattern);
+

Queries the current finish callback.

+
+

Parameters

+
+++++ + + + + + +

pattern

the pattern to query

 
+
+
+

Returns

+

the current finish callback

+
+

Since: 1.12

+
+
+
+

cairo_raster_source_acquire_func_t ()

+
cairo_surface_t
+(*cairo_raster_source_acquire_func_t) (cairo_pattern_t *pattern,
+                                       void *callback_data,
+                                       cairo_surface_t *target,
+                                       const cairo_rectangle_int_t *extents);
+

cairo_raster_source_acquire_func_t is the type of function which is +called when a pattern is being rendered from. It should create a surface +that provides the pixel data for the region of interest as defined by +extents, though the surface itself does not have to be limited to that +area. For convenience the surface should probably be of image type, +created with cairo_surface_create_similar_image() for the target (which +enables the number of copies to be reduced during transfer to the +device). Another option, might be to return a similar surface to the +target for explicit handling by the application of a set of cached sources +on the device. The region of sample data provided should be defined using +cairo_surface_set_device_offset() to specify the top-left corner of the +sample data (along with width and height of the surface).

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

pattern

the pattern being rendered from

 

callback_data

the user data supplied during creation

 

target

the rendering target surface

 

extents

rectangular region of interest in pixels in sample space

 
+
+
+

Returns

+

a cairo_surface_t

+
+

Since: 1.12

+
+
+
+

cairo_raster_source_release_func_t ()

+
void
+(*cairo_raster_source_release_func_t) (cairo_pattern_t *pattern,
+                                       void *callback_data,
+                                       cairo_surface_t *surface);
+

cairo_raster_source_release_func_t is the type of function which is +called when the pixel data is no longer being access by the pattern +for the rendering operation. Typically this function will simply +destroy the surface created during acquire.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

pattern

the pattern being rendered from

 

callback_data

the user data supplied during creation

 

surface

the surface created during acquire

 
+
+

Since: 1.12

+
+
+
+

cairo_raster_source_snapshot_func_t ()

+
cairo_status_t
+(*cairo_raster_source_snapshot_func_t)
+                               (cairo_pattern_t *pattern,
+                                void *callback_data);
+

cairo_raster_source_snapshot_func_t is the type of function which is +called when the pixel data needs to be preserved for later use +during printing. This pattern will be accessed again later, and it +is expected to provide the pixel data that was current at the time +of snapshotting.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

pattern

the pattern being rendered from

 

callback_data

the user data supplied during creation

 
+
+
+

Returns

+

CAIRO_STATUS_SUCCESS on success, or one of the +cairo_status_t error codes for failure.

+
+

Since: 1.12

+
+
+
+

cairo_raster_source_copy_func_t ()

+
cairo_status_t
+(*cairo_raster_source_copy_func_t) (cairo_pattern_t *pattern,
+                                    void *callback_data,
+                                    const cairo_pattern_t *other);
+

cairo_raster_source_copy_func_t is the type of function which is +called when the pattern gets copied as a normal part of rendering.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

pattern

the cairo_pattern_t that was copied to

 

callback_data

the user data supplied during creation

 

other

the cairo_pattern_t being used as the source for the copy

 
+
+
+

Returns

+

CAIRO_STATUS_SUCCESS on success, or one of the +cairo_status_t error codes for failure.

+
+

Since: 1.12

+
+
+
+

cairo_raster_source_finish_func_t ()

+
void
+(*cairo_raster_source_finish_func_t) (cairo_pattern_t *pattern,
+                                      void *callback_data);
+

cairo_raster_source_finish_func_t is the type of function which is +called when the pattern (or a copy thereof) is no longer required.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

pattern

the pattern being rendered from

 

callback_data

the user data supplied during creation

 
+
+

Since: 1.12

+
+
+
+

Types and Values

+
+
+

See Also

+

cairo_pattern_t

+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/cairo-Recording-Surfaces.html b/libs/cairo-1.16.0/doc/public/html/cairo-Recording-Surfaces.html new file mode 100644 index 0000000..eea22ec --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/cairo-Recording-Surfaces.html @@ -0,0 +1,279 @@ + + + + +Recording Surfaces: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+
+
+ + +
+

Recording Surfaces

+

Recording Surfaces — Records all drawing operations

+
+
+

Functions

+ +
+
+

Types and Values

+
++++ + + + + +
#defineCAIRO_HAS_RECORDING_SURFACE
+
+
+

Description

+

A recording surface is a surface that records all drawing operations at +the highest level of the surface backend interface, (that is, the +level of paint, mask, stroke, fill, and show_text_glyphs). The recording +surface can then be "replayed" against any target surface by using it +as a source surface.

+

If you want to replay a surface so that the results in target will be +identical to the results that would have been obtained if the original +operations applied to the recording surface had instead been applied to the +target surface, you can use code like this:

+
+ + + + + + + +
1
+2
+3
+4
+5
+6
cairo_t *cr;
+
+cr = cairo_create (target);
+cairo_set_source_surface (cr, recording_surface, 0.0, 0.0);
+cairo_paint (cr);
+cairo_destroy (cr);
+
+ +

A recording surface is logically unbounded, i.e. it has no implicit constraint +on the size of the drawing surface. However, in practice this is rarely +useful as you wish to replay against a particular target surface with +known bounds. For this case, it is more efficient to specify the target +extents to the recording surface upon creation.

+

The recording phase of the recording surface is careful to snapshot all +necessary objects (paths, patterns, etc.), in order to achieve +accurate replay. The efficiency of the recording surface could be +improved by improving the implementation of snapshot for the +various objects. For example, it would be nice to have a +copy-on-write implementation for _cairo_surface_snapshot.

+
+
+

Functions

+
+

cairo_recording_surface_create ()

+
cairo_surface_t *
+cairo_recording_surface_create (cairo_content_t content,
+                                const cairo_rectangle_t *extents);
+

Creates a recording-surface which can be used to record all drawing operations +at the highest level (that is, the level of paint, mask, stroke, fill +and show_text_glyphs). The recording surface can then be "replayed" against +any target surface by using it as a source to drawing operations.

+

The recording phase of the recording surface is careful to snapshot all +necessary objects (paths, patterns, etc.), in order to achieve +accurate replay.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

content

the content of the recording surface

 

extents

the extents to record in pixels, can be NULL to record +unbounded operations.

 
+
+
+

Returns

+

a pointer to the newly created surface. The caller +owns the surface and should call cairo_surface_destroy() when done +with it.

+
+

Since: 1.10

+
+
+
+

cairo_recording_surface_ink_extents ()

+
void
+cairo_recording_surface_ink_extents (cairo_surface_t *surface,
+                                     double *x0,
+                                     double *y0,
+                                     double *width,
+                                     double *height);
+

Measures the extents of the operations stored within the recording-surface. +This is useful to compute the required size of an image surface (or +equivalent) into which to replay the full sequence of drawing operations.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

surface

a cairo_recording_surface_t

 

x0

the x-coordinate of the top-left of the ink bounding box

 

y0

the y-coordinate of the top-left of the ink bounding box

 

width

the width of the ink bounding box

 

height

the height of the ink bounding box

 
+
+

Since: 1.10

+
+
+
+

cairo_recording_surface_get_extents ()

+
cairo_bool_t
+cairo_recording_surface_get_extents (cairo_surface_t *surface,
+                                     cairo_rectangle_t *extents);
+

Get the extents of the recording-surface.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

surface

a cairo_recording_surface_t

 

extents

the cairo_rectangle_t to be assigned the extents

 
+
+
+

Returns

+

TRUE if the surface is bounded, of recording type, and +not in an error state, otherwise FALSE

+
+

Since: 1.12

+
+
+
+

Types and Values

+
+

CAIRO_HAS_RECORDING_SURFACE

+
#define CAIRO_HAS_RECORDING_SURFACE 1
+
+

Defined if the recording surface backend is available. +The recording surface backend is always built in. +This macro was added for completeness in cairo 1.10.

+

Since: 1.10

+
+
+
+

See Also

+

cairo_surface_t

+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/cairo-Regions.html b/libs/cairo-1.16.0/doc/public/html/cairo-Regions.html new file mode 100644 index 0000000..7115789 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/cairo-Regions.html @@ -0,0 +1,1133 @@ + + + + +Regions: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+
+
+ + +
+

Regions

+

Regions — Representing a pixel-aligned area

+
+ +
+

Types and Values

+
++++ + + + + + + + + + + +
typedefcairo_region_t
enumcairo_region_overlap_t
+
+
+

Description

+

Regions are a simple graphical data type representing an area of +integer-aligned rectangles. They are often used on raster surfaces +to track areas of interest, such as change or clip areas.

+
+
+

Functions

+
+

cairo_region_create ()

+
cairo_region_t *
+cairo_region_create (void);
+

Allocates a new empty region object.

+
+

Returns

+

A newly allocated cairo_region_t. Free with +cairo_region_destroy(). This function always returns a +valid pointer; if memory cannot be allocated, then a special +error object is returned where all operations on the object do nothing. +You can check for this with cairo_region_status().

+
+

Since: 1.10

+
+
+
+

cairo_region_create_rectangle ()

+
cairo_region_t *
+cairo_region_create_rectangle (const cairo_rectangle_int_t *rectangle);
+

Allocates a new region object containing rectangle +.

+
+

Parameters

+
+++++ + + + + + +

rectangle

a cairo_rectangle_int_t

 
+
+
+

Returns

+

A newly allocated cairo_region_t. Free with +cairo_region_destroy(). This function always returns a +valid pointer; if memory cannot be allocated, then a special +error object is returned where all operations on the object do nothing. +You can check for this with cairo_region_status().

+
+

Since: 1.10

+
+
+
+

cairo_region_create_rectangles ()

+
cairo_region_t *
+cairo_region_create_rectangles (const cairo_rectangle_int_t *rects,
+                                int count);
+

Allocates a new region object containing the union of all given rects +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

rects

an array of count +rectangles

 

count

number of rectangles

 
+
+
+

Returns

+

A newly allocated cairo_region_t. Free with +cairo_region_destroy(). This function always returns a +valid pointer; if memory cannot be allocated, then a special +error object is returned where all operations on the object do nothing. +You can check for this with cairo_region_status().

+
+

Since: 1.10

+
+
+
+

cairo_region_copy ()

+
cairo_region_t *
+cairo_region_copy (const cairo_region_t *original);
+

Allocates a new region object copying the area from original +.

+
+

Parameters

+
+++++ + + + + + +

original

a cairo_region_t

 
+
+
+

Returns

+

A newly allocated cairo_region_t. Free with +cairo_region_destroy(). This function always returns a +valid pointer; if memory cannot be allocated, then a special +error object is returned where all operations on the object do nothing. +You can check for this with cairo_region_status().

+
+

Since: 1.10

+
+
+
+

cairo_region_reference ()

+
cairo_region_t *
+cairo_region_reference (cairo_region_t *region);
+

Increases the reference count on region + by one. This prevents +region + from being destroyed until a matching call to +cairo_region_destroy() is made.

+
+

Parameters

+
+++++ + + + + + +

region

a cairo_region_t

 
+
+
+

Returns

+

the referenced cairo_region_t.

+
+

Since: 1.10

+
+
+
+

cairo_region_destroy ()

+
void
+cairo_region_destroy (cairo_region_t *region);
+

Destroys a cairo_region_t object created with +cairo_region_create(), cairo_region_copy(), or +or cairo_region_create_rectangle().

+
+

Parameters

+
+++++ + + + + + +

region

a cairo_region_t

 
+
+

Since: 1.10

+
+
+
+

cairo_region_status ()

+
cairo_status_t
+cairo_region_status (const cairo_region_t *region);
+

Checks whether an error has previous occurred for this +region object.

+
+

Parameters

+
+++++ + + + + + +

region

a cairo_region_t

 
+
+ +

Since: 1.10

+
+
+
+

cairo_region_get_extents ()

+
void
+cairo_region_get_extents (const cairo_region_t *region,
+                          cairo_rectangle_int_t *extents);
+

Gets the bounding rectangle of region + as a cairo_rectangle_int_t

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

region

a cairo_region_t

 

extents

rectangle into which to store the extents

 
+
+

Since: 1.10

+
+
+
+

cairo_region_num_rectangles ()

+
int
+cairo_region_num_rectangles (const cairo_region_t *region);
+

Returns the number of rectangles contained in region +.

+
+

Parameters

+
+++++ + + + + + +

region

a cairo_region_t

 
+
+
+

Returns

+

The number of rectangles contained in region +.

+
+

Since: 1.10

+
+
+
+

cairo_region_get_rectangle ()

+
void
+cairo_region_get_rectangle (const cairo_region_t *region,
+                            int nth,
+                            cairo_rectangle_int_t *rectangle);
+

Stores the nth + rectangle from the region in rectangle +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

region

a cairo_region_t

 

nth

a number indicating which rectangle should be returned

 

rectangle

return location for a cairo_rectangle_int_t

 
+
+

Since: 1.10

+
+
+
+

cairo_region_is_empty ()

+
cairo_bool_t
+cairo_region_is_empty (const cairo_region_t *region);
+

Checks whether region + is empty.

+
+

Parameters

+
+++++ + + + + + +

region

a cairo_region_t

 
+
+
+

Returns

+

TRUE if region +is empty, FALSE if it isn't.

+
+

Since: 1.10

+
+
+
+

cairo_region_contains_point ()

+
cairo_bool_t
+cairo_region_contains_point (const cairo_region_t *region,
+                             int x,
+                             int y);
+

Checks whether (x +, y +) is contained in region +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

region

a cairo_region_t

 

x

the x coordinate of a point

 

y

the y coordinate of a point

 
+
+
+

Returns

+

TRUE if (x +, y +) is contained in region +, FALSE if it is not.

+
+

Since: 1.10

+
+
+
+

cairo_region_contains_rectangle ()

+
cairo_region_overlap_t
+cairo_region_contains_rectangle (const cairo_region_t *region,
+                                 const cairo_rectangle_int_t *rectangle);
+

Checks whether rectangle + is inside, outside or partially contained +in region +

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

region

a cairo_region_t

 

rectangle

a cairo_rectangle_int_t

 
+
+
+

Returns

+

CAIRO_REGION_OVERLAP_IN if rectangle +is entirely inside region +, +CAIRO_REGION_OVERLAP_OUT if rectangle +is entirely outside region +, or +CAIRO_REGION_OVERLAP_PART if rectangle +is partially inside and partially outside region +.

+
+

Since: 1.10

+
+
+
+

cairo_region_equal ()

+
cairo_bool_t
+cairo_region_equal (const cairo_region_t *a,
+                    const cairo_region_t *b);
+

Compares whether region_a is equivalent to region_b. NULL as an argument +is equal to itself, but not to any non-NULL region.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

a

a cairo_region_t or NULL

 

b

a cairo_region_t or NULL

 
+
+
+

Returns

+

TRUE if both regions contained the same coverage, +FALSE if it is not or any region is in an error status.

+
+

Since: 1.10

+
+
+
+

cairo_region_translate ()

+
void
+cairo_region_translate (cairo_region_t *region,
+                        int dx,
+                        int dy);
+

Translates region + by (dx +, dy +).

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

region

a cairo_region_t

 

dx

Amount to translate in the x direction

 

dy

Amount to translate in the y direction

 
+
+

Since: 1.10

+
+
+
+

cairo_region_intersect ()

+
cairo_status_t
+cairo_region_intersect (cairo_region_t *dst,
+                        const cairo_region_t *other);
+

Computes the intersection of dst + with other + and places the result in dst +

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

dst

a cairo_region_t

 

other

another cairo_region_t

 
+
+ +

Since: 1.10

+
+
+
+

cairo_region_intersect_rectangle ()

+
cairo_status_t
+cairo_region_intersect_rectangle (cairo_region_t *dst,
+                                  const cairo_rectangle_int_t *rectangle);
+

Computes the intersection of dst + with rectangle + and places the +result in dst +

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

dst

a cairo_region_t

 

rectangle

a cairo_rectangle_int_t

 
+
+ +

Since: 1.10

+
+
+
+

cairo_region_subtract ()

+
cairo_status_t
+cairo_region_subtract (cairo_region_t *dst,
+                       const cairo_region_t *other);
+

Subtracts other + from dst + and places the result in dst +

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

dst

a cairo_region_t

 

other

another cairo_region_t

 
+
+ +

Since: 1.10

+
+
+
+

cairo_region_subtract_rectangle ()

+
cairo_status_t
+cairo_region_subtract_rectangle (cairo_region_t *dst,
+                                 const cairo_rectangle_int_t *rectangle);
+

Subtracts rectangle + from dst + and places the result in dst +

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

dst

a cairo_region_t

 

rectangle

a cairo_rectangle_int_t

 
+
+ +

Since: 1.10

+
+
+
+

cairo_region_union ()

+
cairo_status_t
+cairo_region_union (cairo_region_t *dst,
+                    const cairo_region_t *other);
+

Computes the union of dst + with other + and places the result in dst +

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

dst

a cairo_region_t

 

other

another cairo_region_t

 
+
+ +

Since: 1.10

+
+
+
+

cairo_region_union_rectangle ()

+
cairo_status_t
+cairo_region_union_rectangle (cairo_region_t *dst,
+                              const cairo_rectangle_int_t *rectangle);
+

Computes the union of dst + with rectangle + and places the result in dst +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

dst

a cairo_region_t

 

rectangle

a cairo_rectangle_int_t

 
+
+ +

Since: 1.10

+
+
+
+

cairo_region_xor ()

+
cairo_status_t
+cairo_region_xor (cairo_region_t *dst,
+                  const cairo_region_t *other);
+

Computes the exclusive difference of dst + with other + and places the +result in dst +. That is, dst + will be set to contain all areas that +are either in dst + or in other +, but not in both.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

dst

a cairo_region_t

 

other

another cairo_region_t

 
+
+ +

Since: 1.10

+
+
+
+

cairo_region_xor_rectangle ()

+
cairo_status_t
+cairo_region_xor_rectangle (cairo_region_t *dst,
+                            const cairo_rectangle_int_t *rectangle);
+

Computes the exclusive difference of dst + with rectangle + and places the +result in dst +. That is, dst + will be set to contain all areas that are +either in dst + or in rectangle +, but not in both.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

dst

a cairo_region_t

 

rectangle

a cairo_rectangle_int_t

 
+
+ +

Since: 1.10

+
+
+
+

Types and Values

+
+

cairo_region_t

+
typedef struct _cairo_region cairo_region_t;
+
+

A cairo_region_t represents a set of integer-aligned rectangles.

+

It allows set-theoretical operations like cairo_region_union() and +cairo_region_intersect() to be performed on them.

+

Memory management of cairo_region_t is done with +cairo_region_reference() and cairo_region_destroy().

+

Since: 1.10

+
+
+
+

enum cairo_region_overlap_t

+

Used as the return value for cairo_region_contains_rectangle().

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + +

CAIRO_REGION_OVERLAP_IN

+

The contents are entirely inside the region. (Since 1.10)

+
 

CAIRO_REGION_OVERLAP_OUT

+

The contents are entirely outside the region. (Since 1.10)

+
 

CAIRO_REGION_OVERLAP_PART

+

The contents are partially inside and + partially outside the region. (Since 1.10)

+
 
+
+

Since: 1.10

+
+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/cairo-SVG-Surfaces.html b/libs/cairo-1.16.0/doc/public/html/cairo-SVG-Surfaces.html new file mode 100644 index 0000000..7b17bb9 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/cairo-SVG-Surfaces.html @@ -0,0 +1,576 @@ + + + + +SVG Surfaces: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+
+
+ + +
+

SVG Surfaces

+

SVG Surfaces — Rendering SVG documents

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+cairo_surface_t * + +cairo_svg_surface_create () +
+cairo_surface_t * + +cairo_svg_surface_create_for_stream () +
+cairo_svg_unit_t + +cairo_svg_surface_get_document_unit () +
+void + +cairo_svg_surface_set_document_unit () +
+void + +cairo_svg_surface_restrict_to_version () +
+void + +cairo_svg_get_versions () +
const char * + +cairo_svg_version_to_string () +
+
+
+

Types and Values

+
++++ + + + + + + + + + + + + + + +
#defineCAIRO_HAS_SVG_SURFACE
enumcairo_svg_version_t
enumcairo_svg_unit_t
+
+
+

Description

+

The SVG surface is used to render cairo graphics to +SVG files and is a multi-page vector surface backend.

+
+
+

Functions

+
+

cairo_svg_surface_create ()

+
cairo_surface_t *
+cairo_svg_surface_create (const char *filename,
+                          double width_in_points,
+                          double height_in_points);
+

Creates a SVG surface of the specified size in points to be written +to filename +.

+

The SVG surface backend recognizes the following MIME types for the +data attached to a surface (see cairo_surface_set_mime_data()) when +it is used as a source pattern for drawing on this surface: +CAIRO_MIME_TYPE_JPEG, CAIRO_MIME_TYPE_PNG, +CAIRO_MIME_TYPE_URI. If any of them is specified, the SVG backend +emits a href with the content of MIME data instead of a surface +snapshot (PNG, Base64-encoded) in the corresponding image tag.

+

The unofficial MIME type CAIRO_MIME_TYPE_URI is examined +first. If present, the URI is emitted as is: assuring the +correctness of URI is left to the client code.

+

If CAIRO_MIME_TYPE_URI is not present, but CAIRO_MIME_TYPE_JPEG +or CAIRO_MIME_TYPE_PNG is specified, the corresponding data is +Base64-encoded and emitted.

+

If CAIRO_MIME_TYPE_UNIQUE_ID is present, all surfaces with the same +unique identifier will only be embedded once.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

filename

a filename for the SVG output (must be writable), NULL may be +used to specify no output. This will generate a SVG surface that +may be queried and used as a source, without generating a +temporary file.

 

width_in_points

width of the surface, in points (1 point == 1/72.0 inch)

 

height_in_points

height of the surface, in points (1 point == 1/72.0 inch)

 
+
+
+

Returns

+

a pointer to the newly created surface. The caller +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.

+
+

Since: 1.2

+
+
+
+

cairo_svg_surface_create_for_stream ()

+
cairo_surface_t *
+cairo_svg_surface_create_for_stream (cairo_write_func_t write_func,
+                                     void *closure,
+                                     double width_in_points,
+                                     double height_in_points);
+

Creates a SVG surface of the specified size in points to be written +incrementally to the stream represented by write_func + and closure +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

write_func

a cairo_write_func_t to accept the output data, may be NULL +to indicate a no-op write_func +. With a no-op write_func +, +the surface may be queried or used as a source without +generating any temporary files.

 

closure

the closure argument for write_func +

 

width_in_points

width of the surface, in points (1 point == 1/72.0 inch)

 

height_in_points

height of the surface, in points (1 point == 1/72.0 inch)

 
+
+
+

Returns

+

a pointer to the newly created surface. The caller +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.

+
+

Since: 1.2

+
+
+
+

cairo_svg_surface_get_document_unit ()

+
cairo_svg_unit_t
+cairo_svg_surface_get_document_unit (cairo_surface_t *surface);
+

Get the unit of the SVG surface.

+

If the surface passed as an argument is not a SVG surface, the function +sets the error status to CAIRO_STATUS_SURFACE_TYPE_MISMATCH and returns +CAIRO_SVG_UNIT_USER.

+
+

Parameters

+
+++++ + + + + + +

surface

a SVG cairo_surface_t

 
+
+
+

Returns

+

the SVG unit of the SVG surface.

+
+

Since: 1.16

+
+
+
+

cairo_svg_surface_set_document_unit ()

+
void
+cairo_svg_surface_set_document_unit (cairo_surface_t *surface,
+                                     cairo_svg_unit_t unit);
+

Use the specified unit for the width and height of the generated SVG file. +See cairo_svg_unit_t for a list of available unit values that can be used +here.

+

This function can be called at any time before generating the SVG file.

+

However to minimize the risk of ambiguities it's recommended to call it +before any drawing operations have been performed on the given surface, to +make it clearer what the unit used in the drawing operations is.

+

The simplest way to do this is to call this function immediately after +creating the SVG surface.

+

Note if this function is never called, the default unit for SVG documents +generated by cairo will be "pt". This is for historical reasons.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

surface

a SVG cairo_surface_t

 

unit

SVG unit

 
+
+

Since: 1.16

+
+
+
+

cairo_svg_surface_restrict_to_version ()

+
void
+cairo_svg_surface_restrict_to_version (cairo_surface_t *surface,
+                                       cairo_svg_version_t version);
+

Restricts the generated SVG file to version +. See cairo_svg_get_versions() +for a list of available version values that can be used here.

+

This function should only be called before any drawing operations +have been performed on the given surface. The simplest way to do +this is to call this function immediately after creating the +surface.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

surface

a SVG cairo_surface_t

 

version

SVG version

 
+
+

Since: 1.2

+
+
+
+

cairo_svg_get_versions ()

+
void
+cairo_svg_get_versions (cairo_svg_version_t const **versions,
+                        int *num_versions);
+

Used to retrieve the list of supported versions. See +cairo_svg_surface_restrict_to_version().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

versions

supported version list

 

num_versions

list length

 
+
+

Since: 1.2

+
+
+
+

cairo_svg_version_to_string ()

+
const char *
+cairo_svg_version_to_string (cairo_svg_version_t version);
+

Get the string representation of the given version + id. This function +will return NULL if version + isn't valid. See cairo_svg_get_versions() +for a way to get the list of valid version ids.

+
+

Parameters

+
+++++ + + + + + +

version

a version id

 
+
+
+

Returns

+

the string associated to given version.

+
+

Since: 1.2

+
+
+
+

Types and Values

+
+

CAIRO_HAS_SVG_SURFACE

+
#define CAIRO_HAS_SVG_SURFACE 1
+
+

Defined if the SVG surface backend is available. +This macro can be used to conditionally compile backend-specific code.

+

Since: 1.2

+
+
+
+

enum cairo_svg_version_t

+

cairo_svg_version_t is used to describe the version number of the SVG +specification that a generated SVG file will conform to.

+
+

Members

+
+++++ + + + + + + + + + + + + +

CAIRO_SVG_VERSION_1_1

+

The version 1.1 of the SVG specification. (Since 1.2)

+
 

CAIRO_SVG_VERSION_1_2

+

The version 1.2 of the SVG specification. (Since 1.2)

+
 
+
+

Since: 1.2

+
+
+
+

enum cairo_svg_unit_t

+

CAIRO_SVG_UNIT_USER +: User unit, a value in the current coordinate system. + If used in the root element for the initial coordinate systems it + corresponds to pixels. (Since 1.16) +CAIRO_SVG_UNIT_EM +: The size of the element's font. (Since 1.16) +CAIRO_SVG_UNIT_EX +: The x-height of the element’s font. (Since 1.16) +CAIRO_SVG_UNIT_PX +: Pixels (1px = 1/96th of 1in). (Since 1.16) +CAIRO_SVG_UNIT_IN +: Inches (1in = 2.54cm = 96px). (Since 1.16) +CAIRO_SVG_UNIT_CM +: Centimeters (1cm = 96px/2.54). (Since 1.16) +CAIRO_SVG_UNIT_MM +: Millimeters (1mm = 1/10th of 1cm). (Since 1.16) +CAIRO_SVG_UNIT_PT +: Points (1pt = 1/72th of 1in). (Since 1.16) +CAIRO_SVG_UNIT_PC +: Picas (1pc = 1/6th of 1in). (Since 1.16) +CAIRO_SVG_UNIT_PERCENT +: Percent, a value that is some fraction of another + reference value. (Since 1.16)

+

cairo_svg_unit_t is used to describe the units valid for coordinates and +lengths in the SVG specification.

+

See also: +https://www.w3.org/TR/SVG/coords.htmlUnits +https://www.w3.org/TR/SVG/types.htmlDataTypeLength +https://www.w3.org/TR/css-values-3/lengths

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

CAIRO_SVG_UNIT_USER

  

CAIRO_SVG_UNIT_EM

  

CAIRO_SVG_UNIT_EX

  

CAIRO_SVG_UNIT_PX

  

CAIRO_SVG_UNIT_IN

  

CAIRO_SVG_UNIT_CM

  

CAIRO_SVG_UNIT_MM

  

CAIRO_SVG_UNIT_PT

  

CAIRO_SVG_UNIT_PC

  

CAIRO_SVG_UNIT_PERCENT

  
+
+

Since: 1.16

+
+
+
+

See Also

+

cairo_surface_t

+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/cairo-Script-Surfaces.html b/libs/cairo-1.16.0/doc/public/html/cairo-Script-Surfaces.html new file mode 100644 index 0000000..797bbc2 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/cairo-Script-Surfaces.html @@ -0,0 +1,490 @@ + + + + +Script Surfaces: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+
+
+ + +
+

Script Surfaces

+

Script Surfaces — Rendering to replayable scripts

+
+
+

Functions

+ +
+
+

Types and Values

+
++++ + + + + + + + + + + +
#defineCAIRO_HAS_SCRIPT_SURFACE
enumcairo_script_mode_t
+
+
+

Description

+

The script surface provides the ability to render to a native +script that matches the cairo drawing model. The scripts can +be replayed using tools under the util/cairo-script directory, +or with cairo-perf-trace.

+
+
+

Functions

+
+

cairo_script_create ()

+
cairo_device_t *
+cairo_script_create (const char *filename);
+

Creates a output device for emitting the script, used when +creating the individual surfaces.

+
+

Parameters

+
+++++ + + + + + +

filename

the name (path) of the file to write the script to

 
+
+
+

Returns

+

a pointer to the newly created device. The caller +owns the surface and should call cairo_device_destroy() when done +with it.

+

This function always returns a valid pointer, but it will return a +pointer to a "nil" device if an error such as out of memory +occurs. You can use cairo_device_status() to check for this.

+
+

Since: 1.12

+
+
+
+

cairo_script_create_for_stream ()

+
cairo_device_t *
+cairo_script_create_for_stream (cairo_write_func_t write_func,
+                                void *closure);
+

Creates a output device for emitting the script, used when +creating the individual surfaces.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

write_func

callback function passed the bytes written to the script

 

closure

user data to be passed to the callback

 
+
+
+

Returns

+

a pointer to the newly created device. The caller +owns the surface and should call cairo_device_destroy() when done +with it.

+

This function always returns a valid pointer, but it will return a +pointer to a "nil" device if an error such as out of memory +occurs. You can use cairo_device_status() to check for this.

+
+

Since: 1.12

+
+
+
+

cairo_script_from_recording_surface ()

+
cairo_status_t
+cairo_script_from_recording_surface (cairo_device_t *script,
+                                     cairo_surface_t *recording_surface);
+

Converts the record operations in recording_surface + into a script.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

script

the script (output device)

 

recording_surface

the recording surface to replay

 
+
+
+

Returns

+

CAIRO_STATUS_SUCCESS on successful completion or an error code.

+
+

Since: 1.12

+
+
+
+

cairo_script_get_mode ()

+
cairo_script_mode_t
+cairo_script_get_mode (cairo_device_t *script);
+

Queries the script for its current output mode.

+
+

Parameters

+
+++++ + + + + + +

script

The script (output device) to query

 
+
+
+

Returns

+

the current output mode of the script

+
+

Since: 1.12

+
+
+
+

cairo_script_set_mode ()

+
void
+cairo_script_set_mode (cairo_device_t *script,
+                       cairo_script_mode_t mode);
+

Change the output mode of the script

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

script

The script (output device)

 

mode

the new mode

 
+
+

Since: 1.12

+
+
+
+

cairo_script_surface_create ()

+
cairo_surface_t *
+cairo_script_surface_create (cairo_device_t *script,
+                             cairo_content_t content,
+                             double width,
+                             double height);
+

Create a new surface that will emit its rendering through script +

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

script

the script (output device)

 

content

the content of the surface

 

width

width in pixels

 

height

height in pixels

 
+
+
+

Returns

+

a pointer to the newly created surface. The caller +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.

+
+

Since: 1.12

+
+
+
+

cairo_script_surface_create_for_target ()

+
cairo_surface_t *
+cairo_script_surface_create_for_target
+                               (cairo_device_t *script,
+                                cairo_surface_t *target);
+

Create a pxoy surface that will render to target + and record +the operations to device +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

script

the script (output device)

 

target

a target surface to wrap

 
+
+
+

Returns

+

a pointer to the newly created surface. The caller +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.

+
+

Since: 1.12

+
+
+
+

cairo_script_write_comment ()

+
void
+cairo_script_write_comment (cairo_device_t *script,
+                            const char *comment,
+                            int len);
+

Emit a string verbatim into the script.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

script

the script (output device)

 

comment

the string to emit

 

len

the length of the sting to write, or -1 to use strlen()

 
+
+

Since: 1.12

+
+
+
+

Types and Values

+
+

CAIRO_HAS_SCRIPT_SURFACE

+
#define CAIRO_HAS_SCRIPT_SURFACE 1
+
+

Defined if the script surface backend is available. +The script surface backend is always built in since 1.12.

+

Since: 1.12

+
+
+
+

enum cairo_script_mode_t

+

A set of script output variants.

+
+

Members

+
+++++ + + + + + + + + + + + + +

CAIRO_SCRIPT_MODE_ASCII

+

the output will be in readable text (default). (Since 1.12)

+
 

CAIRO_SCRIPT_MODE_BINARY

+

the output will use byte codes. (Since 1.12)

+
 
+
+

Since: 1.12

+
+
+
+

See Also

+

cairo_surface_t

+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/cairo-Tags-and-Links.html b/libs/cairo-1.16.0/doc/public/html/cairo-Tags-and-Links.html new file mode 100644 index 0000000..2d8819e --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/cairo-Tags-and-Links.html @@ -0,0 +1,505 @@ + + + + +Tags and Links: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+
+
+ + +
+

Tags and Links

+

Tags and Links — Hyperlinks and document structure

+
+
+

Functions

+
++++ + + + + + + + + + + +
+void + +cairo_tag_begin () +
+void + +cairo_tag_end () +
+
+
+

Types and Values

+
++++ + + + + + + + + + + +
#defineCAIRO_TAG_DEST
#defineCAIRO_TAG_LINK
+
+
+

Description

+

The tag functions provide the ability to specify hyperlinks and +document logical structure on supported backends. The following tags are supported:

+
+
+

Link Tags

+

A hyperlink is specified by enclosing the hyperlink text with the CAIRO_TAG_LINK tag.

+

For example:

+
+ + + + + + + +
1
+2
+3
+4
cairo_tag_begin (cr, CAIRO_TAG_LINK, "uri='https://cairographics.org'");
+cairo_move_to (cr, 50, 50);
+cairo_show_text (cr, "This is a link to the cairo website.");
+cairo_tag_end (cr, CAIRO_TAG_LINK);
+
+ +

The PDF backend uses one or more rectangles to define the clickable +area of the link. By default cairo will use the extents of the +drawing operations enclosed by the begin/end link tags to define the +clickable area. In some cases, such as a link split across two +lines, the default rectangle is undesirable.

+

rect +: [optional] The "rect" attribute allows the application to +specify one or more rectangles that form the clickable region. The +value of this attribute is an array of floats. Each rectangle is +specified by four elements in the array: x, y, width, height. The +array size must be a multiple of four.

+

An example of creating a link with user specified clickable region:

+
+ + + + + + + +
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
cairo_font_extents_t font_extents;
+cairo_text_extents_t text1_extents;
+cairo_text_extents_t text2_extents;
+char attribs[100];
+const char *text1 = "This link is split";
+const char *text2 = "across two lines";
+
+cairo_font_extents (cr, &font_extents);
+cairo_move_to (cr, 450, 50);
+cairo_text_extents (cr, text1, &text1_extents);
+cairo_move_to (cr, 50, 70);
+cairo_text_extents (cr, text2, &text2_extents);
+sprintf (attribs,
+         "rect=[%f %f %f %f %f %f %f %f] uri='https://cairographics.org'",
+         text1_extents.x_bearing,
+         text1_extents.y_bearing,
+         text1_extents.width,
+         text1_extents.height,
+         text2_extents.x_bearing,
+         text2_extents.y_bearing,
+         text2_extents.width,
+         text2_extents.height);
+
+cairo_tag_begin (cr, CAIRO_TAG_LINK, attribs);
+cairo_show_text (cr, "This is a link to the cairo website");
+cairo_move_to (cr, 450, 50);
+cairo_show_text (cr, text1);
+cairo_move_to (cr, 50, 70);
+cairo_show_text (cr, text2);
+cairo_tag_end (cr, CAIRO_TAG_LINK);
+
+ +

There are three types of links. Each type has its own attributes as detailed below.

+
    +
  • Internal Links - A link to a location in the same document

  • +
  • URI Links - A link to a Uniform resource identifier

  • +
  • File Links - A link to a location in another document

  • +
+
+

Internal Links

+

An internal link is a link to a location in the same document. The destination +is specified with either:

+

dest +: a UTF-8 string specifying the destination in the PDF file to link +to. Destinations are created with the CAIRO_TAG_DEST tag.

+

or the two attributes:

+

page +: An integer specifying the page number in the PDF file to link to.

+

pos +: [optional] An array of two floats specifying the x,y position +on the page.

+

An example of the link attributes to link to a page and x,y position:

+
+"page=3 pos=[3.1 6.2]"
+
+
+
+

URI Links

+

A URI link is a link to a Uniform Resource Identifier (RFC 2396).

+

A URI is specified with the following attribute:

+

uri +: An ASCII string specifying the URI.

+

An example of the link attributes to the cairo website:

+
+"uri='https://cairographics.org'"
+
+
+
+

File Links

+

A file link is a link a location in another PDF file.

+

The file attribute (required) specifies the name of the PDF file:

+

file +: File name of PDF file to link to.

+

The position is specified by either:

+

dest +: a UTF-8 string specifying the named destination in the PDF file.

+

or

+

page +: An integer specifying the page number in the PDF file.

+

pos +: [optional] An array of two floats specifying the x,y + position on the page. Position coordinates in external files are in PDF + coordinates (0,0 at bottom left).

+

An example of the link attributes to PDF file:

+
+"file='document.pdf' page=16 pos=[25 40]"
+
+
+
+
+
+

Destination Tags

+

A destination is specified by enclosing the destination drawing +operations with the CAIRO_TAG_DEST tag.

+

name +: [required] A UTF-8 string specifying the name of this destination.

+

x +: [optional] A float specifying the x coordinate of destination + position on this page. If not specified the default + x coordinate is the left side of the extents of the + operations enclosed by the CAIRO_TAG_DEST begin/end tags. If + no operations are enclosed, the x coordidate is 0.

+

y +: [optional] A float specifying the y coordinate of destination + position on this page. If not specified the default + y coordinate is the top of the extents of the + operations enclosed by the CAIRO_TAG_DEST begin/end tags. If + no operations are enclosed, the y coordidate is 0.

+

internal +: A boolean that if true, the destination name may be + omitted from PDF where possible. In this case, links + refer directly to the page and position instead of via + the named destination table. Note that if this + destination is referenced by another PDF (see File Links), + this attribute must be false. Default is false.

+
+ + + + + + + +
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
/* Create a hyperlink */
+cairo_tag_begin (cr, CAIRO_TAG_LINK, "dest='mydest' internal");
+cairo_move_to (cr, 50, 50);
+cairo_show_text (cr, "This is a hyperlink.");
+cairo_tag_end (cr, CAIRO_TAG_LINK);
+
+/* Create a destination */
+cairo_tag_begin (cr, CAIRO_TAG_DEST, "name='mydest'");
+cairo_move_to (cr, 50, 250);
+cairo_show_text (cr, "This paragraph is the destination of the above link.");
+cairo_tag_end (cr, CAIRO_TAG_DEST);
+
+ +
+
+
+

Document Structure (PDF)

+

The document structure tags provide a means of specifying structural information +such as headers, paragraphs, tables, and figures. The inclusion of structural information facilitates:

+
    +
  • Extraction of text and graphics for copy and paste

  • +
  • Reflow of text and graphics in the viewer

  • +
  • Processing text eg searching and indexing

  • +
  • Conversion to other formats

  • +
  • Accessability support

  • +
+

The list of structure types is specified in section 14.8.4 of the +PDF Reference.

+

Note the PDF "Link" structure tag is the same as the cairo CAIRO_TAG_LINK tag.

+

The following example creates a document structure for a document containing two section, each with +a header and a paragraph.

+
+ + + + + + + +
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
cairo_tag_begin (cr, "Document", NULL);
+
+cairo_tag_begin (cr, "Sect", NULL);
+cairo_tag_begin (cr, "H1", NULL);
+cairo_show_text (cr, "Heading 1");
+cairo_tag_end (cr, "H1");
+
+cairo_tag_begin (cr, "P", NULL);
+cairo_show_text (cr, "Paragraph 1");
+cairo_tag_end (cr, "P");
+cairo_tag_end (cr, "Sect");
+
+cairo_tag_begin (cr, "Sect", NULL);
+cairo_tag_begin (cr, "H1", NULL);
+cairo_show_text (cr, "Heading 2");
+cairo_tag_end (cr, "H1");
+
+cairo_tag_begin (cr, "P", NULL);
+cairo_show_text (cr, "Paragraph 2");
+cairo_tag_end (cr, "P");
+cairo_tag_end (cr, "Sect");
+
+cairo_tag_end (cr, "Document");
+
+ +
+
+
+

Functions

+
+

cairo_tag_begin ()

+
void
+cairo_tag_begin (cairo_t *cr,
+                 const char *tag_name,
+                 const char *attributes);
+

Marks the beginning of the tag_name + structure. Call +cairo_tag_end() with the same tag_name + to mark the end of the +structure.

+

The attributes string is of the form "key1=value2 key2=value2 ...". +Values may be boolean (true/false or 1/0), integer, float, string, +or an array.

+

String values are enclosed in single quotes +('). Single quotes and backslashes inside the string should be +escaped with a backslash.

+

Boolean values may be set to true by only +specifying the key. eg the attribute string "key" is the equivalent +to "key=true".

+

Arrays are enclosed in '[]'. eg "rect=[1.2 4.3 2.0 3.0]".

+

If no attributes are required, attributes + can be an empty string or NULL.

+

See Tags and Links Description +for the list of tags and attributes.

+

Invalid nesting of tags or invalid attributes will cause cr + to +shutdown with a status of CAIRO_STATUS_TAG_ERROR.

+

See cairo_tag_end().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

cr

a cairo context

 

tag_name

tag name

 

attributes

tag attributes

 
+
+

Since: 1.16

+
+
+
+

cairo_tag_end ()

+
void
+cairo_tag_end (cairo_t *cr,
+               const char *tag_name);
+

Marks the end of the tag_name + structure.

+

Invalid nesting of tags will cause cr + to shutdown with a status of +CAIRO_STATUS_TAG_ERROR.

+

See cairo_tag_begin().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

cr

a cairo context

 

tag_name

tag name

 
+
+

Since: 1.16

+
+
+
+

Types and Values

+
+

CAIRO_TAG_DEST

+
#define CAIRO_TAG_DEST "cairo.dest"
+
+

Create a destination for a hyperlink. Destination tag attributes +are detailed at Destinations.

+

Since: 1.16

+
+
+
+

CAIRO_TAG_LINK

+
#define CAIRO_TAG_LINK "Link"
+
+

Create hyperlink. Link tag attributes are detailed at +Links.

+

Since: 1.16

+
+
+
+

See Also

+

cairo_pdf_surface_t

+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/cairo-Transformations.html b/libs/cairo-1.16.0/doc/public/html/cairo-Transformations.html new file mode 100644 index 0000000..23154df --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/cairo-Transformations.html @@ -0,0 +1,563 @@ + + + + +Transformations: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+
+
+ + +
+

Transformations

+

Transformations — Manipulating the current transformation matrix

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+void + +cairo_translate () +
+void + +cairo_scale () +
+void + +cairo_rotate () +
+void + +cairo_transform () +
+void + +cairo_set_matrix () +
+void + +cairo_get_matrix () +
+void + +cairo_identity_matrix () +
+void + +cairo_user_to_device () +
+void + +cairo_user_to_device_distance () +
+void + +cairo_device_to_user () +
+void + +cairo_device_to_user_distance () +
+
+
+

Description

+

The current transformation matrix, ctm, is a +two-dimensional affine transformation that maps all coordinates and other +drawing instruments from the user space into the +surface's canonical coordinate system, also known as the device +space.

+
+
+

Functions

+
+

cairo_translate ()

+
void
+cairo_translate (cairo_t *cr,
+                 double tx,
+                 double ty);
+

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 +user-space origin takes place after any existing transformation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

cr

a cairo context

 

tx

amount to translate in the X direction

 

ty

amount to translate in the Y direction

 
+
+

Since: 1.0

+
+
+
+

cairo_scale ()

+
void
+cairo_scale (cairo_t *cr,
+             double sx,
+             double sy);
+

Modifies the current transformation matrix (CTM) by scaling the X +and Y user-space axes by sx + and sy + respectively. The scaling of +the axes takes place after any existing transformation of user +space.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

cr

a cairo context

 

sx

scale factor for the X dimension

 

sy

scale factor for the Y dimension

 
+
+

Since: 1.0

+
+
+
+

cairo_rotate ()

+
void
+cairo_rotate (cairo_t *cr,
+              double angle);
+

Modifies the current transformation matrix (CTM) by rotating the +user-space axes by angle + radians. The rotation of the axes takes +places after any existing transformation of user space. The +rotation direction for positive angles is from the positive X axis +toward the positive Y axis.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

cr

a cairo context

 

angle

angle (in radians) by which the user-space axes will be +rotated

 
+
+

Since: 1.0

+
+
+
+

cairo_transform ()

+
void
+cairo_transform (cairo_t *cr,
+                 const cairo_matrix_t *matrix);
+

Modifies the current transformation matrix (CTM) by applying +matrix + as an additional transformation. The new transformation of +user space takes place after any existing transformation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

cr

a cairo context

 

matrix

a transformation to be applied to the user-space axes

 
+
+

Since: 1.0

+
+
+
+

cairo_set_matrix ()

+
void
+cairo_set_matrix (cairo_t *cr,
+                  const cairo_matrix_t *matrix);
+

Modifies the current transformation matrix (CTM) by setting it +equal to matrix +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

cr

a cairo context

 

matrix

a transformation matrix from user space to device space

 
+
+

Since: 1.0

+
+
+
+

cairo_get_matrix ()

+
void
+cairo_get_matrix (cairo_t *cr,
+                  cairo_matrix_t *matrix);
+

Stores the current transformation matrix (CTM) into matrix +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

cr

a cairo context

 

matrix

return value for the matrix

 
+
+

Since: 1.0

+
+
+
+

cairo_identity_matrix ()

+
void
+cairo_identity_matrix (cairo_t *cr);
+

Resets the current transformation matrix (CTM) by setting it equal +to the identity matrix. That is, the user-space and device-space +axes will be aligned and one user-space unit will transform to one +device-space unit.

+
+

Parameters

+
+++++ + + + + + +

cr

a cairo context

 
+
+

Since: 1.0

+
+
+
+

cairo_user_to_device ()

+
void
+cairo_user_to_device (cairo_t *cr,
+                      double *x,
+                      double *y);
+

Transform a coordinate from user space to device space by +multiplying the given point by the current transformation matrix +(CTM).

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

cr

a cairo context

 

x

X value of coordinate (in/out parameter)

 

y

Y value of coordinate (in/out parameter)

 
+
+

Since: 1.0

+
+
+
+

cairo_user_to_device_distance ()

+
void
+cairo_user_to_device_distance (cairo_t *cr,
+                               double *dx,
+                               double *dy);
+

Transform a distance vector from user space to device space. This +function is similar to cairo_user_to_device() except that the +translation components of the CTM will be ignored when transforming +(dx +,dy +).

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

cr

a cairo context

 

dx

X component of a distance vector (in/out parameter)

 

dy

Y component of a distance vector (in/out parameter)

 
+
+

Since: 1.0

+
+
+
+

cairo_device_to_user ()

+
void
+cairo_device_to_user (cairo_t *cr,
+                      double *x,
+                      double *y);
+

Transform a coordinate from device space to user space by +multiplying the given point by the inverse of the current +transformation matrix (CTM).

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

cr

a cairo

 

x

X value of coordinate (in/out parameter)

 

y

Y value of coordinate (in/out parameter)

 
+
+

Since: 1.0

+
+
+
+

cairo_device_to_user_distance ()

+
void
+cairo_device_to_user_distance (cairo_t *cr,
+                               double *dx,
+                               double *dy);
+

Transform a distance vector from device space to user space. This +function is similar to cairo_device_to_user() except that the +translation components of the inverse CTM will be ignored when +transforming (dx +,dy +).

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

cr

a cairo context

 

dx

X component of a distance vector (in/out parameter)

 

dy

Y component of a distance vector (in/out parameter)

 
+
+

Since: 1.0

+
+
+
+

Types and Values

+
+
+

See Also

+

cairo_matrix_t

+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/cairo-Types.html b/libs/cairo-1.16.0/doc/public/html/cairo-Types.html new file mode 100644 index 0000000..cf7eb47 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/cairo-Types.html @@ -0,0 +1,209 @@ + + + + +Types: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+
+
+ + +
+

Types

+

Types — Generic data types

+
+
+

Functions

+
++++ + + + + +
+void + +(*cairo_destroy_func_t) () +
+
+
+

Types and Values

+
++++ + + + + + + + + + + + + + + +
typedefcairo_bool_t
 cairo_user_data_key_t
 cairo_rectangle_int_t
+
+
+

Description

+

This section lists generic data types used in the cairo API.

+
+
+

Functions

+
+

cairo_destroy_func_t ()

+
void
+(*cairo_destroy_func_t) (void *data);
+

cairo_destroy_func_t the type of function which is called when a +data element is destroyed. It is passed the pointer to the data +element and should free any memory and resources allocated for it.

+
+

Parameters

+
+++++ + + + + + +

data

The data element being destroyed.

 
+
+

Since: 1.0

+
+
+
+

Types and Values

+
+

cairo_bool_t

+
typedef int cairo_bool_t;
+
+

cairo_bool_t is used for boolean values. Returns of type +cairo_bool_t will always be either 0 or 1, but testing against +these values explicitly is not encouraged; just use the +value as a boolean condition.

+
+ + + + + + + +
1
+2
+3
if (cairo_in_stroke (cr, x, y)) {
+    /* do something */
+}
+
+ +

Since: 1.0

+
+
+
+

cairo_user_data_key_t

+
typedef struct {
+    int unused;
+} cairo_user_data_key_t;
+
+

cairo_user_data_key_t is used for attaching user data to cairo +data structures. The actual contents of the struct is never used, +and there is no need to initialize the object; only the unique +address of a cairo_data_key_t object is used. Typically, you +would just use the address of a static cairo_data_key_t object.

+
+

Members

+
+++++ + + + + + +

int unused;

not used; ignore.

 
+
+

Since: 1.0

+
+
+
+

cairo_rectangle_int_t

+
typedef struct {
+    int x, y;
+    int width, height;
+} cairo_rectangle_int_t;
+
+

A data structure for holding a rectangle with integer coordinates.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

int x;

X coordinate of the left side of the rectangle

 

int y;

Y coordinate of the the top side of the rectangle

 

int width;

width of the rectangle

 

int height;

height of the rectangle

 
+
+

Since: 1.10

+
+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/cairo-User-Fonts.html b/libs/cairo-1.16.0/doc/public/html/cairo-User-Fonts.html new file mode 100644 index 0000000..3ed735c --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/cairo-User-Fonts.html @@ -0,0 +1,827 @@ + + + + +User Fonts: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+
+
+ + +
+

User Fonts

+

User Fonts — Font support with font data provided by the user

+
+ +
+

Types and Values

+
++++ + + + + +
#defineCAIRO_HAS_USER_FONT
+
+
+

Description

+

The user-font feature allows the cairo user to provide drawings for glyphs +in a font. This is most useful in implementing fonts in non-standard +formats, like SVG fonts and Flash fonts, but can also be used by games and +other application to draw "funky" fonts.

+
+
+

Functions

+
+

cairo_user_scaled_font_init_func_t ()

+
cairo_status_t
+(*cairo_user_scaled_font_init_func_t) (cairo_scaled_font_t *scaled_font,
+                                       cairo_t *cr,
+                                       cairo_font_extents_t *extents);
+

cairo_user_scaled_font_init_func_t is the type of function which is +called when a scaled-font needs to be created for a user font-face.

+

The cairo context cr + is not used by the caller, but is prepared in font +space, similar to what the cairo contexts passed to the render_glyph +method will look like. The callback can use this context for extents +computation for example. After the callback is called, cr + is checked +for any error status.

+

The extents + argument is where the user font sets the font extents for +scaled_font +. It is in font space, which means that for most cases its +ascent and descent members should add to 1.0. extents + is preset to +hold a value of 1.0 for ascent, height, and max_x_advance, and 0.0 for +descent and max_y_advance members.

+

The callback is optional. If not set, default font extents as described +in the previous paragraph will be used.

+

Note that scaled_font + is not fully initialized at this +point and trying to use it for text operations in the callback will result +in deadlock.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

scaled_font

the scaled-font being created

 

cr

a cairo context, in font space

 

extents

font extents to fill in, in font space

 
+
+
+

Returns

+

CAIRO_STATUS_SUCCESS upon success, or an error status on error.

+
+

Since: 1.8

+
+
+
+

cairo_user_scaled_font_render_glyph_func_t ()

+
cairo_status_t
+(*cairo_user_scaled_font_render_glyph_func_t)
+                               (cairo_scaled_font_t *scaled_font,
+                                unsigned long  glyph,
+                                cairo_t *cr,
+                                cairo_text_extents_t *extents);
+

cairo_user_scaled_font_render_glyph_func_t is the type of function which +is called when a user scaled-font needs to render a glyph.

+

The callback is mandatory, and expected to draw the glyph with code glyph + to +the cairo context cr +. cr + is prepared such that the glyph drawing is done in +font space. That is, the matrix set on cr + is the scale matrix of scaled_font +, +The extents + argument is where the user font sets the font extents for +scaled_font +. However, if user prefers to draw in user space, they can +achieve that by changing the matrix on cr +. All cairo rendering operations +to cr + are permitted, however, the result is undefined if any source other +than the default source on cr + is used. That means, glyph bitmaps should +be rendered using cairo_mask() instead of cairo_paint().

+

Other non-default settings on cr + include a font size of 1.0 (given that +it is set up to be in font space), and font options corresponding to +scaled_font +.

+

The extents + argument is preset to have x_bearing, +width, and y_advance of zero, +y_bearing set to -font_extents.ascent, +height to font_extents.ascent+font_extents.descent, +and x_advance to font_extents.max_x_advance. +The only field user needs to set in majority of cases is +x_advance. +If the width field is zero upon the callback returning +(which is its preset value), the glyph extents are automatically computed +based on the drawings done to cr +. This is in most cases exactly what the +desired behavior is. However, if for any reason the callback sets the +extents, it must be ink extents, and include the extents of all drawing +done to cr + in the callback.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

scaled_font

user scaled-font

 

glyph

glyph code to render

 

cr

cairo context to draw to, in font space

 

extents

glyph extents to fill in, in font space

 
+
+
+

Returns

+

CAIRO_STATUS_SUCCESS upon success, or +CAIRO_STATUS_USER_FONT_ERROR or any other error status on error.

+
+

Since: 1.8

+
+
+
+

cairo_user_scaled_font_text_to_glyphs_func_t ()

+
cairo_status_t
+(*cairo_user_scaled_font_text_to_glyphs_func_t)
+                               (cairo_scaled_font_t *scaled_font,
+                                const char *utf8,
+                                int utf8_len,
+                                cairo_glyph_t **glyphs,
+                                int *num_glyphs,
+                                cairo_text_cluster_t **clusters,
+                                int *num_clusters,
+                                cairo_text_cluster_flags_t *cluster_flags);
+

cairo_user_scaled_font_text_to_glyphs_func_t is the type of function which +is called to convert input text to an array of glyphs. This is used by the +cairo_show_text() operation.

+

Using this callback the user-font has full control on glyphs and their +positions. That means, it allows for features like ligatures and kerning, +as well as complex shaping required for scripts like +Arabic and Indic.

+

The num_glyphs + argument is preset to the number of glyph entries available +in the glyphs + buffer. If the glyphs + buffer is NULL, the value of +num_glyphs + will be zero. If the provided glyph array is too short for +the conversion (or for convenience), a new glyph array may be allocated +using cairo_glyph_allocate() and placed in glyphs +. Upon return, +num_glyphs + should contain the number of generated glyphs. If the value +glyphs + points at has changed after the call, the caller will free the +allocated glyph array using cairo_glyph_free(). The caller will also free +the original value of glyphs +, so the callback shouldn't do so. +The callback should populate the glyph indices and positions (in font space) +assuming that the text is to be shown at the origin.

+

If clusters + is not NULL, num_clusters + and cluster_flags + are also +non-NULL, and cluster mapping should be computed. The semantics of how +cluster array allocation works is similar to the glyph array. That is, +if clusters + initially points to a non-NULL value, that array may be used +as a cluster buffer, and num_clusters + points to the number of cluster +entries available there. If the provided cluster array is too short for +the conversion (or for convenience), a new cluster array may be allocated +using cairo_text_cluster_allocate() and placed in clusters +. In this case, +the original value of clusters + will still be freed by the caller. Upon +return, num_clusters + should contain the number of generated clusters. +If the value clusters + points at has changed after the call, the caller +will free the allocated cluster array using cairo_text_cluster_free().

+

The callback is optional. If num_glyphs + is negative upon +the callback returning or if the return value +is CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED, the unicode_to_glyph callback +is tried. See cairo_user_scaled_font_unicode_to_glyph_func_t.

+

Note: While cairo does not impose any limitation on glyph indices, +some applications may assume that a glyph index fits in a 16-bit +unsigned integer. As such, it is advised that user-fonts keep their +glyphs in the 0 to 65535 range. Furthermore, some applications may +assume that glyph 0 is a special glyph-not-found glyph. User-fonts +are advised to use glyph 0 for such purposes and do not use that +glyph value for other purposes.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

scaled_font

the scaled-font being created

 

utf8

a string of text encoded in UTF-8

 

utf8_len

length of utf8 +in bytes

 

glyphs

pointer to array of glyphs to fill, in font space

 

num_glyphs

pointer to number of glyphs

 

clusters

pointer to array of cluster mapping information to fill, or NULL

 

num_clusters

pointer to number of clusters

 

cluster_flags

pointer to location to store cluster flags corresponding to the +output clusters +

 
+
+
+

Returns

+

CAIRO_STATUS_SUCCESS upon success, +CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED if fallback options should be tried, +or CAIRO_STATUS_USER_FONT_ERROR or any other error status on error.

+
+

Since: 1.8

+
+
+
+

cairo_user_scaled_font_unicode_to_glyph_func_t ()

+
cairo_status_t
+(*cairo_user_scaled_font_unicode_to_glyph_func_t)
+                               (cairo_scaled_font_t *scaled_font,
+                                unsigned long  unicode,
+                                unsigned long *glyph_index);
+

cairo_user_scaled_font_unicode_to_glyph_func_t is the type of function which +is called to convert an input Unicode character to a single glyph. +This is used by the cairo_show_text() operation.

+

This callback is used to provide the same functionality as the +text_to_glyphs callback does (see cairo_user_scaled_font_text_to_glyphs_func_t) +but has much less control on the output, +in exchange for increased ease of use. The inherent assumption to using +this callback is that each character maps to one glyph, and that the +mapping is context independent. It also assumes that glyphs are positioned +according to their advance width. These mean no ligatures, kerning, or +complex scripts can be implemented using this callback.

+

The callback is optional, and only used if text_to_glyphs callback is not +set or fails to return glyphs. If this callback is not set or if it returns +CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED, an identity mapping from Unicode +code-points to glyph indices is assumed.

+

Note: While cairo does not impose any limitation on glyph indices, +some applications may assume that a glyph index fits in a 16-bit +unsigned integer. As such, it is advised that user-fonts keep their +glyphs in the 0 to 65535 range. Furthermore, some applications may +assume that glyph 0 is a special glyph-not-found glyph. User-fonts +are advised to use glyph 0 for such purposes and do not use that +glyph value for other purposes.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

scaled_font

the scaled-font being created

 

unicode

input unicode character code-point

 

glyph_index

output glyph index

 
+
+
+

Returns

+

CAIRO_STATUS_SUCCESS upon success, +CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED if fallback options should be tried, +or CAIRO_STATUS_USER_FONT_ERROR or any other error status on error.

+
+

Since: 1.8

+
+
+
+

cairo_user_font_face_create ()

+
cairo_font_face_t *
+cairo_user_font_face_create (void);
+

Creates a new user font-face.

+

Use the setter functions to associate callbacks with the returned +user font. The only mandatory callback is render_glyph.

+

After the font-face is created, the user can attach arbitrary data +(the actual font data) to it using cairo_font_face_set_user_data() +and access it from the user-font callbacks by using +cairo_scaled_font_get_font_face() followed by +cairo_font_face_get_user_data().

+
+

Returns

+

a newly created cairo_font_face_t. Free with +cairo_font_face_destroy() when you are done using it.

+
+

Since: 1.8

+
+
+
+

cairo_user_font_face_set_init_func ()

+
void
+cairo_user_font_face_set_init_func (cairo_font_face_t *font_face,
+                                    cairo_user_scaled_font_init_func_t init_func);
+

Sets the scaled-font initialization function of a user-font. +See cairo_user_scaled_font_init_func_t for details of how the callback +works.

+

The font-face should not be immutable or a CAIRO_STATUS_USER_FONT_IMMUTABLE +error will occur. A user font-face is immutable as soon as a scaled-font +is created from it.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

font_face

A user font face

 

init_func

The init callback, or NULL

 
+
+

Since: 1.8

+
+
+
+

cairo_user_font_face_get_init_func ()

+
cairo_user_scaled_font_init_func_t
+cairo_user_font_face_get_init_func (cairo_font_face_t *font_face);
+

Gets the scaled-font initialization function of a user-font.

+
+

Parameters

+
+++++ + + + + + +

font_face

A user font face

 
+
+
+

Returns

+

The init callback of font_face +or NULL if none set or an error has occurred.

+
+

Since: 1.8

+
+
+
+

cairo_user_font_face_set_render_glyph_func ()

+
void
+cairo_user_font_face_set_render_glyph_func
+                               (cairo_font_face_t *font_face,
+                                cairo_user_scaled_font_render_glyph_func_t render_glyph_func);
+

Sets the glyph rendering function of a user-font. +See cairo_user_scaled_font_render_glyph_func_t for details of how the callback +works.

+

The font-face should not be immutable or a CAIRO_STATUS_USER_FONT_IMMUTABLE +error will occur. A user font-face is immutable as soon as a scaled-font +is created from it.

+

The render_glyph callback is the only mandatory callback of a user-font. +If the callback is NULL and a glyph is tried to be rendered using +font_face +, a CAIRO_STATUS_USER_FONT_ERROR will occur.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

font_face

A user font face

 

render_glyph_func

The render_glyph callback, or NULL

 
+
+

Since: 1.8

+
+
+
+

cairo_user_font_face_get_render_glyph_func ()

+
cairo_user_scaled_font_render_glyph_func_t
+cairo_user_font_face_get_render_glyph_func
+                               (cairo_font_face_t *font_face);
+

Gets the glyph rendering function of a user-font.

+
+

Parameters

+
+++++ + + + + + +

font_face

A user font face

 
+
+
+

Returns

+

The render_glyph callback of font_face +or NULL if none set or an error has occurred.

+
+

Since: 1.8

+
+
+
+

cairo_user_font_face_set_unicode_to_glyph_func ()

+
void
+cairo_user_font_face_set_unicode_to_glyph_func
+                               (cairo_font_face_t *font_face,
+                                cairo_user_scaled_font_unicode_to_glyph_func_t unicode_to_glyph_func);
+

Sets the unicode-to-glyph conversion function of a user-font. +See cairo_user_scaled_font_unicode_to_glyph_func_t for details of how the callback +works.

+

The font-face should not be immutable or a CAIRO_STATUS_USER_FONT_IMMUTABLE +error will occur. A user font-face is immutable as soon as a scaled-font +is created from it.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

font_face

A user font face

 

unicode_to_glyph_func

The unicode_to_glyph callback, or NULL

 
+
+

Since: 1.8

+
+
+
+

cairo_user_font_face_get_unicode_to_glyph_func ()

+
cairo_user_scaled_font_unicode_to_glyph_func_t
+cairo_user_font_face_get_unicode_to_glyph_func
+                               (cairo_font_face_t *font_face);
+

Gets the unicode-to-glyph conversion function of a user-font.

+
+

Parameters

+
+++++ + + + + + +

font_face

A user font face

 
+
+
+

Returns

+

The unicode_to_glyph callback of font_face +or NULL if none set or an error occurred.

+
+

Since: 1.8

+
+
+
+

cairo_user_font_face_set_text_to_glyphs_func ()

+
void
+cairo_user_font_face_set_text_to_glyphs_func
+                               (cairo_font_face_t *font_face,
+                                cairo_user_scaled_font_text_to_glyphs_func_t text_to_glyphs_func);
+

Sets th text-to-glyphs conversion function of a user-font. +See cairo_user_scaled_font_text_to_glyphs_func_t for details of how the callback +works.

+

The font-face should not be immutable or a CAIRO_STATUS_USER_FONT_IMMUTABLE +error will occur. A user font-face is immutable as soon as a scaled-font +is created from it.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

font_face

A user font face

 

text_to_glyphs_func

The text_to_glyphs callback, or NULL

 
+
+

Since: 1.8

+
+
+
+

cairo_user_font_face_get_text_to_glyphs_func ()

+
cairo_user_scaled_font_text_to_glyphs_func_t
+cairo_user_font_face_get_text_to_glyphs_func
+                               (cairo_font_face_t *font_face);
+

Gets the text-to-glyphs conversion function of a user-font.

+
+

Parameters

+
+++++ + + + + + +

font_face

A user font face

 
+
+
+

Returns

+

The text_to_glyphs callback of font_face +or NULL if none set or an error occurred.

+
+

Since: 1.8

+
+
+
+

Types and Values

+
+

CAIRO_HAS_USER_FONT

+
#define CAIRO_HAS_USER_FONT 1
+
+

Defined if the user font backend is available. +This macro can be used to conditionally compile backend-specific code. +The user font backend is always built in versions of cairo that support +this feature (1.8 and later).

+

Since: 1.8

+
+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/cairo-Version-Information.html b/libs/cairo-1.16.0/doc/public/html/cairo-Version-Information.html new file mode 100644 index 0000000..f2d831d --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/cairo-Version-Information.html @@ -0,0 +1,377 @@ + + + + +Version Information: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+
+
+ + +
+

Version Information

+

Version Information — Compile-time and run-time version checks.

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + +
#define +CAIRO_VERSION_ENCODE() +
#define +CAIRO_VERSION_STRINGIZE() +
+int + +cairo_version () +
const char * + +cairo_version_string () +
+
+
+

Types and Values

+
++++ + + + + + + + + + + + + + + + + + + + + + + +
#defineCAIRO_VERSION
#defineCAIRO_VERSION_MAJOR
#defineCAIRO_VERSION_MINOR
#defineCAIRO_VERSION_MICRO
#defineCAIRO_VERSION_STRING
+
+
+

Description

+

Cairo has a three-part version number scheme. In this scheme, we use +even vs. odd numbers to distinguish fixed points in the software +vs. in-progress development, (such as from git instead of a tar file, +or as a "snapshot" tar file as opposed to a "release" tar file).

+
+ _____ Major. Always 1, until we invent a new scheme.
+/  ___ Minor. Even/Odd = Release/Snapshot (tar files) or Branch/Head (git)
+| /  _ Micro. Even/Odd = Tar-file/git
+| | /
+1.0.0
+
+

Here are a few examples of versions that one might see.

+
+Releases
+--------
+1.0.0 - A major release
+1.0.2 - A subsequent maintenance release
+1.2.0 - Another major release
+ 
+Snapshots
+---------
+1.1.2 - A snapshot (working toward the 1.2.0 release)
+ 
+In-progress development (eg. from git)
+--------------------------------------
+1.0.1 - Development on a maintenance branch (toward 1.0.2 release)
+1.1.1 - Development on head (toward 1.1.2 snapshot and 1.2.0 release)
+
+
+

Compatibility

+ +The API/ABI compatibility guarantees for various versions are as +follows. First, let's assume some cairo-using application code that is +successfully using the API/ABI "from" one version of cairo. Then let's +ask the question whether this same code can be moved "to" the API/ABI +of another version of cairo. + +Moving from a release to any later version (release, snapshot, +development) is always guaranteed to provide compatibility. + +Moving from a snapshot to any later version is not guaranteed to +provide compatibility, since snapshots may introduce new API that ends +up being removed before the next release. + +Moving from an in-development version (odd micro component) to any +later version is not guaranteed to provide compatibility. In fact, +there's not even a guarantee that the code will even continue to work +with the same in-development version number. This is because these +numbers don't correspond to any fixed state of the software, but +rather the many states between snapshots and releases. + +
+
+
+

Examining the version

+ +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 the +macro CAIRO_VERSION_ENCODE() to perform the encoding. + +
+Compile-time
+------------
+CAIRO_VERSION_STRING   Human-readable
+CAIRO_VERSION          Encoded, suitable for comparison
+ 
+Run-time
+--------
+cairo_version_string()  Human-readable
+cairo_version()         Encoded, suitable for comparison
+
+ +For example, checking that the cairo version is greater than or equal +to 1.0.0 could be achieved at compile-time or run-time as follows: + +
+ + + + + + + +
1
+2
+3
+4
+5
+6
##if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 0, 0)
+printf ("Compiling with suitable cairo version: %s\n", %CAIRO_VERSION_STRING);
+##endif
+
+if (cairo_version() >= CAIRO_VERSION_ENCODE(1, 0, 0))
+    printf ("Running with suitable cairo version: %s\n", cairo_version_string ());
+
+ +
+
+
+

Functions

+
+

CAIRO_VERSION_ENCODE()

+
#define             CAIRO_VERSION_ENCODE(major, minor, micro)
+

This macro encodes the given cairo version into an integer. The numbers +returned by CAIRO_VERSION and cairo_version() are encoded using this macro. +Two encoded version numbers can be compared as integers. The encoding ensures +that later versions compare greater than earlier versions.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

major

the major component of the version number

 

minor

the minor component of the version number

 

micro

the micro component of the version number

 
+
+
+

Returns

+

the encoded version.

+
+

Since: 1.0

+
+
+
+

CAIRO_VERSION_STRINGIZE()

+
#define             CAIRO_VERSION_STRINGIZE(major, minor, micro)
+

This macro encodes the given cairo version into an string. The numbers +returned by CAIRO_VERSION_STRING and cairo_version_string() are encoded using this macro. +The parameters to this macro must expand to numerical literals.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

major

the major component of the version number

 

minor

the minor component of the version number

 

micro

the micro component of the version number

 
+
+
+

Returns

+

a string literal containing the version.

+
+

Since: 1.8

+
+
+
+

cairo_version ()

+
int
+cairo_version (void);
+

Returns the version of the cairo library encoded in a single +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 +or equal to version X.Y.Z could be performed as follows:

+
+ + + + + + + +
1
if (cairo_version() >= CAIRO_VERSION_ENCODE(X,Y,Z)) {...}
+
+ +

See also cairo_version_string() as well as the compile-time +equivalents CAIRO_VERSION and CAIRO_VERSION_STRING.

+
+

Returns

+

the encoded version.

+
+

Since: 1.0

+
+
+
+

cairo_version_string ()

+
const char *
+cairo_version_string (void);
+

Returns the version of the cairo library as a human-readable string +of the form "X.Y.Z".

+

See also cairo_version() as well as the compile-time equivalents +CAIRO_VERSION_STRING and CAIRO_VERSION.

+
+

Returns

+

a string containing the version.

+
+

Since: 1.0

+
+
+
+

Types and Values

+
+

CAIRO_VERSION

+
#define             CAIRO_VERSION
+

The version of cairo available at compile-time, encoded using +CAIRO_VERSION_ENCODE().

+

Since: 1.0

+
+
+
+

CAIRO_VERSION_MAJOR

+
#define CAIRO_VERSION_MAJOR USE_cairo_version_OR_cairo_version_string_INSTEAD
+
+

The major component of the version of cairo available at compile-time.

+

Since: 1.0

+
+
+
+

CAIRO_VERSION_MINOR

+
#define CAIRO_VERSION_MINOR USE_cairo_version_OR_cairo_version_string_INSTEAD
+
+

The minor component of the version of cairo available at compile-time.

+

Since: 1.0

+
+
+
+

CAIRO_VERSION_MICRO

+
#define CAIRO_VERSION_MICRO USE_cairo_version_OR_cairo_version_string_INSTEAD
+
+

The micro component of the version of cairo available at compile-time.

+

Since: 1.0

+
+
+
+

CAIRO_VERSION_STRING

+
#define             CAIRO_VERSION_STRING
+

A human-readable string literal containing the version of cairo available +at compile-time, in the form of "X.Y.Z".

+

Since: 1.8

+
+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/cairo-Win32-Fonts.html b/libs/cairo-1.16.0/doc/public/html/cairo-Win32-Fonts.html new file mode 100644 index 0000000..af91c12 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/cairo-Win32-Fonts.html @@ -0,0 +1,436 @@ + + + + +Win32 Fonts: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+
+
+ + +
+

Win32 Fonts

+

Win32 Fonts — Font support for Microsoft Windows

+
+ +
+

Types and Values

+
++++ + + + + +
#defineCAIRO_HAS_WIN32_FONT
+
+
+

Description

+

The Microsoft Windows font backend is primarily used to render text on +Microsoft Windows systems.

+
+
+

Functions

+
+

cairo_win32_font_face_create_for_logfontw ()

+
cairo_font_face_t *
+cairo_win32_font_face_create_for_logfontw
+                               (LOGFONTW *logfont);
+

Creates a new font for the Win32 font backend based on a +LOGFONT. This font can then be used with +cairo_set_font_face() or cairo_scaled_font_create(). +The cairo_scaled_font_t +returned from cairo_scaled_font_create() is also for the Win32 backend +and can be used with functions such as cairo_win32_scaled_font_select_font().

+
+

Parameters

+
+++++ + + + + + +

logfont

A LOGFONTW structure specifying the font to use. +The lfHeight, lfWidth, lfOrientation and lfEscapement +fields of this structure are ignored.

 
+
+
+

Returns

+

a newly created cairo_font_face_t. Free with +cairo_font_face_destroy() when you are done using it.

+
+

Since: 1.0

+
+
+
+

cairo_win32_font_face_create_for_hfont ()

+
cairo_font_face_t *
+cairo_win32_font_face_create_for_hfont
+                               (HFONT font);
+

Creates a new font for the Win32 font backend based on a +HFONT. This font can then be used with +cairo_set_font_face() or cairo_scaled_font_create(). +The cairo_scaled_font_t +returned from cairo_scaled_font_create() is also for the Win32 backend +and can be used with functions such as cairo_win32_scaled_font_select_font().

+
+

Parameters

+
+++++ + + + + + +

font

An HFONT structure specifying the font to use.

 
+
+
+

Returns

+

a newly created cairo_font_face_t. Free with +cairo_font_face_destroy() when you are done using it.

+
+

Since: 1.2

+
+
+
+

cairo_win32_font_face_create_for_logfontw_hfont ()

+
cairo_font_face_t *
+cairo_win32_font_face_create_for_logfontw_hfont
+                               (LOGFONTW *logfont,
+                                HFONT font);
+

Creates a new font for the Win32 font backend based on a +LOGFONT. This font can then be used with +cairo_set_font_face() or cairo_scaled_font_create(). +The cairo_scaled_font_t +returned from cairo_scaled_font_create() is also for the Win32 backend +and can be used with functions such as cairo_win32_scaled_font_select_font().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

logfont

A LOGFONTW structure specifying the font to use. +If font +is NULL then the lfHeight, lfWidth, lfOrientation and lfEscapement +fields of this structure are ignored. Otherwise lfWidth, lfOrientation and +lfEscapement must be zero.

 

font

An HFONT that can be used when the font matrix is a scale by +-lfHeight and the CTM is identity.

 
+
+
+

Returns

+

a newly created cairo_font_face_t. Free with +cairo_font_face_destroy() when you are done using it.

+
+

Since: 1.6

+
+
+
+

cairo_win32_scaled_font_select_font ()

+
cairo_status_t
+cairo_win32_scaled_font_select_font (cairo_scaled_font_t *scaled_font,
+                                     HDC hdc);
+

Selects the font into the given device context and changes the +map mode and world transformation of the device context to match +that of the font. This function is intended for use when using +layout APIs such as Uniscribe to do text layout with the +cairo font. After finishing using the device context, you must call +cairo_win32_scaled_font_done_font() to release any resources allocated +by this function.

+

See cairo_win32_scaled_font_get_metrics_factor() for converting logical +coordinates from the device context to font space.

+

Normally, calls to SaveDC() and RestoreDC() would be made around +the use of this function to preserve the original graphics state.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

scaled_font

A cairo_scaled_font_t from the Win32 font backend. Such an +object can be created with cairo_win32_font_face_create_for_logfontw().

 

hdc

a device context

 
+
+
+

Returns

+

CAIRO_STATUS_SUCCESS if the operation succeeded. +otherwise an error such as CAIRO_STATUS_NO_MEMORY and +the device context is unchanged.

+
+

Since: 1.0

+
+
+
+

cairo_win32_scaled_font_done_font ()

+
void
+cairo_win32_scaled_font_done_font (cairo_scaled_font_t *scaled_font);
+

Releases any resources allocated by cairo_win32_scaled_font_select_font()

+
+

Parameters

+
+++++ + + + + + +

scaled_font

A scaled font from the Win32 font backend.

 
+
+

Since: 1.0

+
+
+
+

cairo_win32_scaled_font_get_metrics_factor ()

+
double
+cairo_win32_scaled_font_get_metrics_factor
+                               (cairo_scaled_font_t *scaled_font);
+

Gets a scale factor between logical coordinates in the coordinate +space used by cairo_win32_scaled_font_select_font() (that is, the +coordinate system used by the Windows functions to return metrics) and +font space coordinates.

+
+

Parameters

+
+++++ + + + + + +

scaled_font

a scaled font from the Win32 font backend

 
+
+
+

Returns

+

factor to multiply logical units by to get font space +coordinates.

+
+

Since: 1.0

+
+
+
+

cairo_win32_scaled_font_get_logical_to_device ()

+
void
+cairo_win32_scaled_font_get_logical_to_device
+                               (cairo_scaled_font_t *scaled_font,
+                                cairo_matrix_t *logical_to_device);
+

Gets the transformation mapping the logical space used by scaled_font + +to device space.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

scaled_font

a scaled font from the Win32 font backend

 

logical_to_device

matrix to return

 
+
+

Since: 1.4

+
+
+
+

cairo_win32_scaled_font_get_device_to_logical ()

+
void
+cairo_win32_scaled_font_get_device_to_logical
+                               (cairo_scaled_font_t *scaled_font,
+                                cairo_matrix_t *device_to_logical);
+

Gets the transformation mapping device space to the logical space +used by scaled_font +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

scaled_font

a scaled font from the Win32 font backend

 

device_to_logical

matrix to return

 
+
+

Since: 1.4

+
+
+
+

Types and Values

+
+

CAIRO_HAS_WIN32_FONT

+
#define CAIRO_HAS_WIN32_FONT 1
+
+

Defined if the Microsoft Windows font backend is available. +This macro can be used to conditionally compile backend-specific code.

+

Since: 1.8

+
+
+
+

See Also

+

cairo_font_face_t

+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/cairo-Win32-Surfaces.html b/libs/cairo-1.16.0/doc/public/html/cairo-Win32-Surfaces.html new file mode 100644 index 0000000..21893dc --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/cairo-Win32-Surfaces.html @@ -0,0 +1,413 @@ + + + + +Win32 Surfaces: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+
+
+ + +
+

Win32 Surfaces

+

Win32 Surfaces — Microsoft Windows surface support

+
+ +
+

Types and Values

+
++++ + + + + +
#defineCAIRO_HAS_WIN32_SURFACE
+
+
+

Description

+

The Microsoft Windows surface is used to render cairo graphics to +Microsoft Windows windows, bitmaps, and printing device contexts.

+

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.

+

The surface returned by the other win32 constructors is of surface type +CAIRO_SURFACE_TYPE_WIN32 and is a raster surface type.

+
+
+

Functions

+
+

cairo_win32_surface_create ()

+
cairo_surface_t *
+cairo_win32_surface_create (HDC hdc);
+

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 +size of the cairo surface. The resulting surface will always be of +format CAIRO_FORMAT_RGB24; should you need another surface format, +you will need to create one through +cairo_win32_surface_create_with_format() or +cairo_win32_surface_create_with_dib().

+
+

Parameters

+
+++++ + + + + + +

hdc

the DC to create a surface for

 
+
+
+

Returns

+

the newly created surface, NULL on failure

+
+

Since: 1.0

+
+
+
+

cairo_win32_surface_create_with_dib ()

+
cairo_surface_t *
+cairo_win32_surface_create_with_dib (cairo_format_t format,
+                                     int width,
+                                     int height);
+

Creates a device-independent-bitmap surface not associated with +any particular existing surface or device context. The created +bitmap will be uninitialized.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

format

format of pixels in the surface to create

 

width

width of the surface, in pixels

 

height

height of the surface, in pixels

 
+
+
+

Returns

+

the newly created surface

+
+

Since: 1.2

+
+
+
+

cairo_win32_surface_create_with_ddb ()

+
cairo_surface_t *
+cairo_win32_surface_create_with_ddb (HDC hdc,
+                                     cairo_format_t format,
+                                     int width,
+                                     int height);
+

Creates a device-dependent-bitmap surface not associated with +any particular existing surface or device context. The created +bitmap will be uninitialized.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

hdc

a DC compatible with the surface to create

 

format

format of pixels in the surface to create

 

width

width of the surface, in pixels

 

height

height of the surface, in pixels

 
+
+
+

Returns

+

the newly created surface

+
+

Since: 1.4

+
+
+
+

cairo_win32_surface_create_with_format ()

+
cairo_surface_t *
+cairo_win32_surface_create_with_format
+                               (HDC hdc,
+                                cairo_format_t format);
+

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 +size of the cairo surface.

+

Supported formats are: +CAIRO_FORMAT_ARGB32 +CAIRO_FORMAT_RGB24

+

Note: format + only tells cairo how to draw on the surface, not what +the format of the surface is. Namely, cairo does not (and cannot) +check that hdc + actually supports alpha-transparency.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

hdc

the DC to create a surface for

 

format

format of pixels in the surface to create

 
+
+
+

Returns

+

the newly created surface, NULL on failure

+
+

Since: 1.14

+
+
+
+

cairo_win32_printing_surface_create ()

+
cairo_surface_t *
+cairo_win32_printing_surface_create (HDC hdc);
+

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 +size of the cairo surface. The DC should be a printing DC; +antialiasing will be ignored, and GDI will be used as much as +possible to draw to the surface.

+

The returned surface will be wrapped using the paginated surface to +provide correct complex rendering behaviour; cairo_surface_show_page() and +associated methods must be used for correct output.

+
+

Parameters

+
+++++ + + + + + +

hdc

the DC to create a surface for

 
+
+
+

Returns

+

the newly created surface

+
+

Since: 1.6

+
+
+
+

cairo_win32_surface_get_dc ()

+
HDC
+cairo_win32_surface_get_dc (cairo_surface_t *surface);
+

Returns the HDC associated with this surface, or NULL if none. +Also returns NULL if the surface is not a win32 surface.

+

A call to cairo_surface_flush() is required before using the HDC to +ensure that all pending drawing operations are finished and to +restore any temporary modification cairo has made to its state. A +call to cairo_surface_mark_dirty() is required after the state or +the content of the HDC has been modified.

+
+

Parameters

+
+++++ + + + + + +

surface

a cairo_surface_t

 
+
+
+

Returns

+

HDC or NULL if no HDC available.

+
+

Since: 1.2

+
+
+
+

cairo_win32_surface_get_image ()

+
cairo_surface_t *
+cairo_win32_surface_get_image (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.

+
+

Parameters

+
+++++ + + + + + +

surface

a cairo_surface_t

 
+
+
+

Returns

+

a cairo_surface_t (owned by the win32 cairo_surface_t), +or NULL if the win32 surface is not a DIB.

+
+

Since: 1.4

+
+
+
+

Types and Values

+
+

CAIRO_HAS_WIN32_SURFACE

+
#define CAIRO_HAS_WIN32_SURFACE 1
+
+

Defined if the Microsoft Windows surface backend is available. +This macro can be used to conditionally compile backend-specific code.

+

Since: 1.0

+
+
+
+

See Also

+

cairo_surface_t

+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/cairo-XCB-Surfaces.html b/libs/cairo-1.16.0/doc/public/html/cairo-XCB-Surfaces.html new file mode 100644 index 0000000..35ad7c7 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/cairo-XCB-Surfaces.html @@ -0,0 +1,658 @@ + + + + +XCB Surfaces: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+
+
+ + +
+

XCB Surfaces

+

XCB Surfaces — X Window System rendering using the XCB library

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+cairo_surface_t * + +cairo_xcb_surface_create () +
+cairo_surface_t * + +cairo_xcb_surface_create_for_bitmap () +
+cairo_surface_t * + +cairo_xcb_surface_create_with_xrender_format () +
+void + +cairo_xcb_surface_set_size () +
+void + +cairo_xcb_surface_set_drawable () +
+xcb_connection_t * + +cairo_xcb_device_get_connection () +
+void + +cairo_xcb_device_debug_cap_xrender_version () +
+void + +cairo_xcb_device_debug_cap_xshm_version () +
+int + +cairo_xcb_device_debug_get_precision () +
+void + +cairo_xcb_device_debug_set_precision () +
+
+
+

Types and Values

+
++++ + + + + + + + + + + +
#defineCAIRO_HAS_XCB_SURFACE
#defineCAIRO_HAS_XCB_SHM_FUNCTIONS
+
+
+

Description

+

The XCB surface is used to render cairo graphics to X Window System +windows and pixmaps using the XCB library.

+

Note that the XCB surface automatically takes advantage of the X render +extension if it is available.

+
+
+

Functions

+
+

cairo_xcb_surface_create ()

+
cairo_surface_t *
+cairo_xcb_surface_create (xcb_connection_t *connection,
+                          xcb_drawable_t drawable,
+                          xcb_visualtype_t *visual,
+                          int width,
+                          int height);
+

Creates an XCB surface that draws to the given drawable. +The way that colors are represented in the drawable is specified +by the provided visual.

+

Note: If drawable + is a Window, then the function +cairo_xcb_surface_set_size() must be called whenever the size of the +window changes.

+

When drawable + is a Window containing child windows then drawing to +the created surface will be clipped by those child windows. When +the created surface is used as a source, the contents of the +children will be included.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

an XCB connection

 

drawable

an XCB drawable

 

visual

the visual to use for drawing to drawable +. The depth +of the visual must match the depth of the drawable. +Currently, only TrueColor visuals are fully supported.

 

width

the current width of drawable +

 

height

the current height of drawable +

 
+
+
+

Returns

+

a pointer to the newly created surface. The caller +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.

+
+

Since: 1.12

+
+
+
+

cairo_xcb_surface_create_for_bitmap ()

+
cairo_surface_t *
+cairo_xcb_surface_create_for_bitmap (xcb_connection_t *connection,
+                                     xcb_screen_t *screen,
+                                     xcb_pixmap_t bitmap,
+                                     int width,
+                                     int height);
+

Creates an XCB surface that draws to the given bitmap. +This will be drawn to as a CAIRO_FORMAT_A1 object.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

an XCB connection

 

screen

the XCB screen associated with bitmap +

 

bitmap

an XCB drawable (a Pixmap with depth 1)

 

width

the current width of bitmap +

 

height

the current height of bitmap +

 
+
+
+

Returns

+

a pointer to the newly created surface. The caller +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.

+
+

Since: 1.12

+
+
+
+

cairo_xcb_surface_create_with_xrender_format ()

+
cairo_surface_t *
+cairo_xcb_surface_create_with_xrender_format
+                               (xcb_connection_t *connection,
+                                xcb_screen_t *screen,
+                                xcb_drawable_t drawable,
+                                xcb_render_pictforminfo_t *format,
+                                int width,
+                                int height);
+

Creates an XCB surface that draws to the given drawable. +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 +cairo_xcb_surface_set_size() must be called whenever the size of the +window changes.

+

When drawable + is a Window containing child windows then drawing to +the created surface will be clipped by those child windows. When +the created surface is used as a source, the contents of the +children will be included.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

connection

an XCB connection

 

drawable

an XCB drawable

 

screen

the XCB screen associated with drawable +

 

format

the picture format to use for drawing to drawable +. The +depth of format +mush match the depth of the drawable.

 

width

the current width of drawable +

 

height

the current height of drawable +

 
+
+
+

Returns

+

a pointer to the newly created surface. The caller +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.

+
+

Since: 1.12

+
+
+
+

cairo_xcb_surface_set_size ()

+
void
+cairo_xcb_surface_set_size (cairo_surface_t *surface,
+                            int width,
+                            int height);
+

Informs cairo of the new size of the XCB drawable underlying the +surface. For a surface created for a window (rather than a pixmap), +this function must be called each time the size of the window +changes. (For a subwindow, you are normally resizing the window +yourself, but for a toplevel window, it is necessary to listen for +ConfigureNotify events.)

+

A pixmap can never change size, so it is never necessary to call +this function on a surface created for a pixmap.

+

If cairo_surface_flush() wasn't called, some pending operations +might be discarded.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

surface

a cairo_surface_t for the XCB backend

 

width

the new width of the surface

 

height

the new height of the surface

 
+
+

Since: 1.12

+
+
+
+

cairo_xcb_surface_set_drawable ()

+
void
+cairo_xcb_surface_set_drawable (cairo_surface_t *surface,
+                                xcb_drawable_t drawable,
+                                int width,
+                                int height);
+

Informs cairo of the new drawable and size of the XCB drawable underlying the +surface.

+

If cairo_surface_flush() wasn't called, some pending operations +might be discarded.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

surface

a cairo_surface_t for the XCB backend

 

drawable

the new drawable of the surface

 

width

the new width of the surface

 

height

the new height of the surface

 
+
+

Since: 1.12

+
+
+
+

cairo_xcb_device_get_connection ()

+
xcb_connection_t *
+cairo_xcb_device_get_connection (cairo_device_t *device);
+

Get the connection for the XCB device.

+
+

Parameters

+
+++++ + + + + + +

device

a cairo_device_t for the XCB backend

 
+
+
+

Returns

+

the xcb_connection_t for the connection

+
+

Since: 1.12

+
+
+
+

cairo_xcb_device_debug_cap_xrender_version ()

+
void
+cairo_xcb_device_debug_cap_xrender_version
+                               (cairo_device_t *device,
+                                int major_version,
+                                int minor_version);
+

Restricts all future XCB surfaces for this devices to the specified version +of the RENDER extension. This function exists solely for debugging purpose. +It let's you find out how cairo would behave with an older version of +the RENDER extension.

+

Use the special values -1 and -1 for disabling the RENDER extension.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

device

a cairo_device_t for the XCB backend

 

major_version

major version to restrict to

 

minor_version

minor version to restrict to

 
+
+

Since: 1.12

+
+
+
+

cairo_xcb_device_debug_cap_xshm_version ()

+
void
+cairo_xcb_device_debug_cap_xshm_version
+                               (cairo_device_t *device,
+                                int major_version,
+                                int minor_version);
+

Restricts all future XCB surfaces for this devices to the specified version +of the SHM extension. This function exists solely for debugging purpose. +It let's you find out how cairo would behave with an older version of +the SHM extension.

+

Use the special values -1 and -1 for disabling the SHM extension.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

device

a cairo_device_t for the XCB backend

 

major_version

major version to restrict to

 

minor_version

minor version to restrict to

 
+
+

Since: 1.12

+
+
+
+

cairo_xcb_device_debug_get_precision ()

+
int
+cairo_xcb_device_debug_get_precision (cairo_device_t *device);
+

Get the Xrender precision mode.

+
+

Parameters

+
+++++ + + + + + +

device

a cairo_device_t for the XCB backend

 
+
+
+

Returns

+

the render precision mode

+
+

Since: 1.12

+
+
+
+

cairo_xcb_device_debug_set_precision ()

+
void
+cairo_xcb_device_debug_set_precision (cairo_device_t *device,
+                                      int precision);
+

Render supports two modes of precision when rendering trapezoids. Set +the precision to the desired mode.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

device

a cairo_device_t for the XCB backend

 

precision

the precision to use

 
+
+

Since: 1.12

+
+
+
+

Types and Values

+
+

CAIRO_HAS_XCB_SURFACE

+
#define CAIRO_HAS_XCB_SURFACE 1
+
+

Defined if the xcb surface backend is available. +This macro can be used to conditionally compile backend-specific code.

+

Since: 1.12

+
+
+
+

CAIRO_HAS_XCB_SHM_FUNCTIONS

+
#define CAIRO_HAS_XCB_SHM_FUNCTIONS 1
+
+
+
+
+

See Also

+

cairo_surface_t

+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/cairo-XLib-Surfaces.html b/libs/cairo-1.16.0/doc/public/html/cairo-XLib-Surfaces.html new file mode 100644 index 0000000..4d97cb1 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/cairo-XLib-Surfaces.html @@ -0,0 +1,713 @@ + + + + +XLib Surfaces: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+
+
+ + +
+

XLib Surfaces

+

XLib Surfaces — X Window System rendering using XLib

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+cairo_surface_t * + +cairo_xlib_surface_create () +
+cairo_surface_t * + +cairo_xlib_surface_create_for_bitmap () +
+void + +cairo_xlib_surface_set_size () +
+Display * + +cairo_xlib_surface_get_display () +
+Screen * + +cairo_xlib_surface_get_screen () +
+void + +cairo_xlib_surface_set_drawable () +
+Drawable + +cairo_xlib_surface_get_drawable () +
+Visual * + +cairo_xlib_surface_get_visual () +
+int + +cairo_xlib_surface_get_width () +
+int + +cairo_xlib_surface_get_height () +
+int + +cairo_xlib_surface_get_depth () +
+void + +cairo_xlib_device_debug_cap_xrender_version () +
+int + +cairo_xlib_device_debug_get_precision () +
+void + +cairo_xlib_device_debug_set_precision () +
+
+
+

Types and Values

+
++++ + + + + +
#defineCAIRO_HAS_XLIB_SURFACE
+
+
+

Description

+

The XLib surface is used to render cairo graphics to X Window System +windows and pixmaps using the XLib library.

+

Note that the XLib surface automatically takes advantage of X render extension +if it is available.

+
+
+

Functions

+
+

cairo_xlib_surface_create ()

+
cairo_surface_t *
+cairo_xlib_surface_create (Display *dpy,
+                           Drawable drawable,
+                           Visual *visual,
+                           int width,
+                           int height);
+

Creates an Xlib surface that draws to the given drawable. +The way that colors are represented in the drawable is specified +by the provided visual.

+

Note: If drawable + is a Window, then the function +cairo_xlib_surface_set_size() must be called whenever the size of the +window changes.

+

When drawable + is a Window containing child windows then drawing to +the created surface will be clipped by those child windows. When +the created surface is used as a source, the contents of the +children will be included.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

dpy

an X Display

 

drawable

an X Drawable, (a Pixmap or a Window)

 

visual

the visual to use for drawing to drawable +. The depth +of the visual must match the depth of the drawable. +Currently, only TrueColor visuals are fully supported.

 

width

the current width of drawable +.

 

height

the current height of drawable +.

 
+
+
+

Returns

+

the newly created surface

+
+

Since: 1.0

+
+
+
+

cairo_xlib_surface_create_for_bitmap ()

+
cairo_surface_t *
+cairo_xlib_surface_create_for_bitmap (Display *dpy,
+                                      Pixmap bitmap,
+                                      Screen *screen,
+                                      int width,
+                                      int height);
+

Creates an Xlib surface that draws to the given bitmap. +This will be drawn to as a CAIRO_FORMAT_A1 object.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

dpy

an X Display

 

bitmap

an X Drawable, (a depth-1 Pixmap)

 

screen

the X Screen associated with bitmap +

 

width

the current width of bitmap +.

 

height

the current height of bitmap +.

 
+
+
+

Returns

+

the newly created surface

+
+

Since: 1.0

+
+
+
+

cairo_xlib_surface_set_size ()

+
void
+cairo_xlib_surface_set_size (cairo_surface_t *surface,
+                             int width,
+                             int height);
+

Informs cairo of the new size of the X Drawable underlying the +surface. For a surface created for a Window (rather than a Pixmap), +this function must be called each time the size of the window +changes. (For a subwindow, you are normally resizing the window +yourself, but for a toplevel window, it is necessary to listen for +ConfigureNotify events.)

+

A Pixmap can never change size, so it is never necessary to call +this function on a surface created for a Pixmap.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

surface

a cairo_surface_t for the XLib backend

 

width

the new width of the surface

 

height

the new height of the surface

 
+
+

Since: 1.0

+
+
+
+

cairo_xlib_surface_get_display ()

+
Display *
+cairo_xlib_surface_get_display (cairo_surface_t *surface);
+

Get the X Display for the underlying X Drawable.

+
+

Parameters

+
+++++ + + + + + +

surface

a cairo_xlib_surface_t

 
+
+
+

Returns

+

the display.

+
+

Since: 1.2

+
+
+
+

cairo_xlib_surface_get_screen ()

+
Screen *
+cairo_xlib_surface_get_screen (cairo_surface_t *surface);
+

Get the X Screen for the underlying X Drawable.

+
+

Parameters

+
+++++ + + + + + +

surface

a cairo_xlib_surface_t

 
+
+
+

Returns

+

the screen.

+
+

Since: 1.2

+
+
+
+

cairo_xlib_surface_set_drawable ()

+
void
+cairo_xlib_surface_set_drawable (cairo_surface_t *surface,
+                                 Drawable drawable,
+                                 int width,
+                                 int height);
+

Informs cairo of a new X Drawable underlying the +surface. The drawable must match the display, screen +and format of the existing drawable or the application +will get X protocol errors and will probably terminate. +No checks are done by this function to ensure this +compatibility.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

surface

a cairo_surface_t for the XLib backend

 

drawable

the new drawable for the surface

 

width

the width of the new drawable

 

height

the height of the new drawable

 
+
+

Since: 1.0

+
+
+
+

cairo_xlib_surface_get_drawable ()

+
Drawable
+cairo_xlib_surface_get_drawable (cairo_surface_t *surface);
+

Get the underlying X Drawable used for the surface.

+
+

Parameters

+
+++++ + + + + + +

surface

a cairo_xlib_surface_t

 
+
+
+

Returns

+

the drawable.

+
+

Since: 1.2

+
+
+
+

cairo_xlib_surface_get_visual ()

+
Visual *
+cairo_xlib_surface_get_visual (cairo_surface_t *surface);
+

Gets the X Visual associated with surface +, suitable for use with the +underlying X Drawable. If surface + was created by +cairo_xlib_surface_create(), the return value is the Visual passed to that +constructor.

+
+

Parameters

+
+++++ + + + + + +

surface

a cairo_xlib_surface_t

 
+
+
+

Returns

+

the Visual or NULL if there is no appropriate Visual for +surface +.

+
+

Since: 1.2

+
+
+
+

cairo_xlib_surface_get_width ()

+
int
+cairo_xlib_surface_get_width (cairo_surface_t *surface);
+

Get the width of the X Drawable underlying the surface in pixels.

+
+

Parameters

+
+++++ + + + + + +

surface

a cairo_xlib_surface_t

 
+
+
+

Returns

+

the width of the surface in pixels.

+
+

Since: 1.2

+
+
+
+

cairo_xlib_surface_get_height ()

+
int
+cairo_xlib_surface_get_height (cairo_surface_t *surface);
+

Get the height of the X Drawable underlying the surface in pixels.

+
+

Parameters

+
+++++ + + + + + +

surface

a cairo_xlib_surface_t

 
+
+
+

Returns

+

the height of the surface in pixels.

+
+

Since: 1.2

+
+
+
+

cairo_xlib_surface_get_depth ()

+
int
+cairo_xlib_surface_get_depth (cairo_surface_t *surface);
+

Get the number of bits used to represent each pixel value.

+
+

Parameters

+
+++++ + + + + + +

surface

a cairo_xlib_surface_t

 
+
+
+

Returns

+

the depth of the surface in bits.

+
+

Since: 1.2

+
+
+
+

cairo_xlib_device_debug_cap_xrender_version ()

+
void
+cairo_xlib_device_debug_cap_xrender_version
+                               (cairo_device_t *device,
+                                int major_version,
+                                int minor_version);
+

Restricts all future Xlib surfaces for this devices to the specified version +of the RENDER extension. This function exists solely for debugging purpose. +It lets you find out how cairo would behave with an older version of +the RENDER extension.

+

Use the special values -1 and -1 for disabling the RENDER extension.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

device

a cairo_device_t for the Xlib backend

 

major_version

major version to restrict to

 

minor_version

minor version to restrict to

 
+
+

Since: 1.12

+
+
+
+

cairo_xlib_device_debug_get_precision ()

+
int
+cairo_xlib_device_debug_get_precision (cairo_device_t *device);
+

Get the Xrender precision mode.

+
+

Parameters

+
+++++ + + + + + +

device

a cairo_device_t for the Xlib backend

 
+
+
+

Returns

+

the render precision mode

+
+

Since: 1.12

+
+
+
+

cairo_xlib_device_debug_set_precision ()

+
void
+cairo_xlib_device_debug_set_precision (cairo_device_t *device,
+                                       int precision);
+

Render supports two modes of precision when rendering trapezoids. Set +the precision to the desired mode.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

device

a cairo_device_t for the Xlib backend

 

precision

the precision to use

 
+
+

Since: 1.12

+
+
+
+

Types and Values

+
+

CAIRO_HAS_XLIB_SURFACE

+
#define CAIRO_HAS_XLIB_SURFACE 1
+
+

Defined if the Xlib surface backend is available. +This macro can be used to conditionally compile backend-specific code.

+

Since: 1.0

+
+
+
+

See Also

+

cairo_surface_t

+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/cairo-XLib-XRender-Backend.html b/libs/cairo-1.16.0/doc/public/html/cairo-XLib-XRender-Backend.html new file mode 100644 index 0000000..f80b87b --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/cairo-XLib-XRender-Backend.html @@ -0,0 +1,208 @@ + + + + +XLib-XRender Backend: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+
+
+ + +
+

XLib-XRender Backend

+

XLib-XRender Backend — X Window System rendering using XLib and the X Render extension

+
+
+

Functions

+
++++ + + + + + + + + + + +
+cairo_surface_t * + +cairo_xlib_surface_create_with_xrender_format () +
+XRenderPictFormat * + +cairo_xlib_surface_get_xrender_format () +
+
+
+

Types and Values

+
++++ + + + + +
#defineCAIRO_HAS_XLIB_XRENDER_SURFACE
+
+
+

Description

+

The XLib surface is used to render cairo graphics to X Window System +windows and pixmaps using the XLib and Xrender libraries.

+

Note that the XLib surface automatically takes advantage of X Render extension +if it is available.

+
+
+

Functions

+
+

cairo_xlib_surface_create_with_xrender_format ()

+
cairo_surface_t *
+cairo_xlib_surface_create_with_xrender_format
+                               (Display *dpy,
+                                Drawable drawable,
+                                Screen *screen,
+                                XRenderPictFormat *format,
+                                int width,
+                                int height);
+

Creates an Xlib surface that draws to the given drawable. +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 +cairo_xlib_surface_set_size() must be called whenever the size of the +window changes.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

dpy

an X Display

 

drawable

an X Drawable, (a Pixmap or a Window)

 

screen

the X Screen associated with drawable +

 

format

the picture format to use for drawing to drawable +. The depth +of format +must match the depth of the drawable.

 

width

the current width of drawable +.

 

height

the current height of drawable +.

 
+
+
+

Returns

+

the newly created surface

+
+

Since: 1.0

+
+
+
+

cairo_xlib_surface_get_xrender_format ()

+
XRenderPictFormat *
+cairo_xlib_surface_get_xrender_format (cairo_surface_t *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.

+
+

Parameters

+
+++++ + + + + + +

surface

an xlib surface

 
+
+
+

Returns

+

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

+
+
+
+

Types and Values

+
+

CAIRO_HAS_XLIB_XRENDER_SURFACE

+
#define CAIRO_HAS_XLIB_XRENDER_SURFACE 1
+
+

Defined if the XLib/XRender surface functions are available. +This macro can be used to conditionally compile backend-specific code.

+

Since: 1.6

+
+
+
+

See Also

+

cairo_surface_t

+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/cairo-cairo-device-t.html b/libs/cairo-1.16.0/doc/public/html/cairo-cairo-device-t.html new file mode 100644 index 0000000..4435fb6 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/cairo-cairo-device-t.html @@ -0,0 +1,821 @@ + + + + +cairo_device_t: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+
+
+ + +
+

cairo_device_t

+

cairo_device_t — interface to underlying rendering system

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+cairo_device_t * + +cairo_device_reference () +
+void + +cairo_device_destroy () +
+cairo_status_t + +cairo_device_status () +
+void + +cairo_device_finish () +
+void + +cairo_device_flush () +
+cairo_device_type_t + +cairo_device_get_type () +
unsigned int + +cairo_device_get_reference_count () +
+cairo_status_t + +cairo_device_set_user_data () +
+void * + +cairo_device_get_user_data () +
+cairo_status_t + +cairo_device_acquire () +
+void + +cairo_device_release () +
+double + +cairo_device_observer_elapsed () +
+double + +cairo_device_observer_fill_elapsed () +
+double + +cairo_device_observer_glyphs_elapsed () +
+double + +cairo_device_observer_mask_elapsed () +
+double + +cairo_device_observer_paint_elapsed () +
+cairo_status_t + +cairo_device_observer_print () +
+double + +cairo_device_observer_stroke_elapsed () +
+
+
+

Types and Values

+
++++ + + + + + + + + + + +
typedefcairo_device_t
enumcairo_device_type_t
+
+
+

Description

+

Devices are the abstraction Cairo employs for the rendering system +used by a cairo_surface_t. You can get the device of a surface using +cairo_surface_get_device().

+

Devices are created using custom functions specific to the rendering +system you want to use. See the documentation for the surface types +for those functions.

+

An important function that devices fulfill is sharing access to the +rendering system between Cairo and your application. If you want to +access a device directly that you used to draw to with Cairo, you must +first call cairo_device_flush() to ensure that Cairo finishes all +operations on the device and resets it to a clean state.

+

Cairo also provides the functions cairo_device_acquire() and +cairo_device_release() to synchronize access to the rendering system +in a multithreaded environment. This is done internally, but can also +be used by applications.

+

Putting this all together, a function that works with devices should +look something like this:

+
+ + + + + + + +
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
void
+my_device_modifying_function (cairo_device_t *device)
+{
+  cairo_status_t status;
+
+  // Ensure the device is properly reset
+  cairo_device_flush (device);
+  // Try to acquire the device
+  status = cairo_device_acquire (device);
+  if (status != CAIRO_STATUS_SUCCESS) {
+    printf ("Failed to acquire the device: %s\n", cairo_status_to_string (status));
+    return;
+  }
+
+  // Do the custom operations on the device here.
+  // But do not call any Cairo functions that might acquire devices.
+  
+  // Release the device when done.
+  cairo_device_release (device);
+}
+
+ +

Please refer to the documentation of each backend for +additional usage requirements, guarantees provided, and +interactions with existing surface API of the device functions for +surfaces of that type. +

+
+
+

Functions

+
+

cairo_device_reference ()

+
cairo_device_t *
+cairo_device_reference (cairo_device_t *device);
+

Increases the reference count on device + by one. This prevents +device + from being destroyed until a matching call to +cairo_device_destroy() is made.

+

Use cairo_device_get_reference_count() to get the number of references +to a cairo_device_t.

+
+

Parameters

+
+++++ + + + + + +

device

a cairo_device_t

 
+
+
+

Returns

+

the referenced cairo_device_t.

+
+

Since: 1.10

+
+
+
+

cairo_device_destroy ()

+
void
+cairo_device_destroy (cairo_device_t *device);
+

Decreases the reference count on device + by one. If the result is +zero, then device + and all associated resources are freed. See +cairo_device_reference().

+

This function may acquire devices if the last reference was dropped.

+
+

Parameters

+
+++++ + + + + + +

device

a cairo_device_t

 
+
+

Since: 1.10

+
+
+
+

cairo_device_status ()

+
cairo_status_t
+cairo_device_status (cairo_device_t *device);
+

Checks whether an error has previously occurred for this +device.

+
+

Parameters

+
+++++ + + + + + +

device

a cairo_device_t

 
+
+
+

Returns

+

CAIRO_STATUS_SUCCESS on success or an error code if +the device is in an error state.

+
+

Since: 1.10

+
+
+
+

cairo_device_finish ()

+
void
+cairo_device_finish (cairo_device_t *device);
+

This function finishes the device and drops all references to +external resources. All surfaces, fonts and other objects created +for this device + will be finished, too. +Further operations on the device + will not affect the device + but +will instead trigger a CAIRO_STATUS_DEVICE_FINISHED error.

+

When the last call to cairo_device_destroy() decreases the +reference count to zero, cairo will call cairo_device_finish() if +it hasn't been called already, before freeing the resources +associated with the device.

+

This function may acquire devices.

+
+

Parameters

+
+++++ + + + + + +

device

the cairo_device_t to finish

 
+
+

Since: 1.10

+
+
+
+

cairo_device_flush ()

+
void
+cairo_device_flush (cairo_device_t *device);
+

Finish any pending operations for the device and also restore any +temporary modifications cairo has made to the device's state. +This function must be called before switching from using the +device with Cairo to operating on it directly with native APIs. +If the device doesn't support direct access, then this function +does nothing.

+

This function may acquire devices.

+
+

Parameters

+
+++++ + + + + + +

device

a cairo_device_t

 
+
+

Since: 1.10

+
+
+
+

cairo_device_get_type ()

+
cairo_device_type_t
+cairo_device_get_type (cairo_device_t *device);
+

This function returns the type of the device. See cairo_device_type_t +for available types.

+
+

Parameters

+
+++++ + + + + + +

device

a cairo_device_t

 
+
+
+

Returns

+

The type of device +.

+
+

Since: 1.10

+
+
+
+

cairo_device_get_reference_count ()

+
unsigned int
+cairo_device_get_reference_count (cairo_device_t *device);
+

Returns the current reference count of device +.

+
+

Parameters

+
+++++ + + + + + +

device

a cairo_device_t

 
+
+
+

Returns

+

the current reference count of device +. If the +object is a nil object, 0 will be returned.

+
+

Since: 1.10

+
+
+
+

cairo_device_set_user_data ()

+
cairo_status_t
+cairo_device_set_user_data (cairo_device_t *device,
+                            const cairo_user_data_key_t *key,
+                            void *user_data,
+                            cairo_destroy_func_t destroy);
+

Attach user data to device +. To remove user data from a surface, +call this function with the key that was used to set it and NULL +for data +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

device

a cairo_device_t

 

key

the address of a cairo_user_data_key_t to attach the user data to

 

user_data

the user data to attach to the cairo_device_t

 

destroy

a cairo_destroy_func_t which will be called when the +cairo_t is destroyed or when new user data is attached using the +same key.

 
+
+
+

Returns

+

CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY if a +slot could not be allocated for the user data.

+
+

Since: 1.10

+
+
+
+

cairo_device_get_user_data ()

+
void *
+cairo_device_get_user_data (cairo_device_t *device,
+                            const cairo_user_data_key_t *key);
+

Return user data previously attached to device + using the +specified key. If no user data has been attached with the given +key this function returns NULL.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

device

a cairo_device_t

 

key

the address of the cairo_user_data_key_t the user data was +attached to

 
+
+
+

Returns

+

the user data previously attached or NULL.

+
+

Since: 1.10

+
+
+
+

cairo_device_acquire ()

+
cairo_status_t
+cairo_device_acquire (cairo_device_t *device);
+

Acquires the device + for the current thread. This function will block +until no other thread has acquired the device.

+

If the return value is CAIRO_STATUS_SUCCESS, you successfully acquired the +device. From now on your thread owns the device and no other thread will be +able to acquire it until a matching call to cairo_device_release(). It is +allowed to recursively acquire the device multiple times from the same +thread.

+

You must never acquire two different devices at the same time +unless this is explicitly allowed. Otherwise the possibility of deadlocks +exist. + +As various Cairo functions can acquire devices when called, these functions +may also cause deadlocks when you call them with an acquired device. So you +must not have a device acquired when calling them. These functions are +marked in the documentation. +

+
+

Parameters

+
+++++ + + + + + +

device

a cairo_device_t

 
+
+
+

Returns

+

CAIRO_STATUS_SUCCESS on success or an error code if +the device is in an error state and could not be +acquired. After a successful call to cairo_device_acquire(), +a matching call to cairo_device_release() is required.

+
+

Since: 1.10

+
+
+
+

cairo_device_release ()

+
void
+cairo_device_release (cairo_device_t *device);
+

Releases a device + previously acquired using cairo_device_acquire(). See +that function for details.

+
+

Parameters

+
+++++ + + + + + +

device

a cairo_device_t

 
+
+

Since: 1.10

+
+
+
+

cairo_device_observer_elapsed ()

+
double
+cairo_device_observer_elapsed (cairo_device_t *device);
+
+
+
+

cairo_device_observer_fill_elapsed ()

+
double
+cairo_device_observer_fill_elapsed (cairo_device_t *device);
+
+
+
+

cairo_device_observer_glyphs_elapsed ()

+
double
+cairo_device_observer_glyphs_elapsed (cairo_device_t *device);
+
+
+
+

cairo_device_observer_mask_elapsed ()

+
double
+cairo_device_observer_mask_elapsed (cairo_device_t *device);
+
+
+
+

cairo_device_observer_paint_elapsed ()

+
double
+cairo_device_observer_paint_elapsed (cairo_device_t *device);
+
+
+
+

cairo_device_observer_print ()

+
cairo_status_t
+cairo_device_observer_print (cairo_device_t *device,
+                             cairo_write_func_t write_func,
+                             void *closure);
+
+
+
+

cairo_device_observer_stroke_elapsed ()

+
double
+cairo_device_observer_stroke_elapsed (cairo_device_t *device);
+
+
+
+

Types and Values

+
+

cairo_device_t

+
typedef struct _cairo_device cairo_device_t;
+
+

A cairo_device_t represents the driver interface for drawing +operations to a cairo_surface_t. There are different subtypes of +cairo_device_t for different drawing backends; for example, +cairo_egl_device_create() creates a device that wraps an EGL display and +context.

+

The type of a device can be queried with cairo_device_get_type().

+

Memory management of cairo_device_t is done with +cairo_device_reference() and cairo_device_destroy().

+

Since: 1.10

+
+
+
+

enum cairo_device_type_t

+

cairo_device_type_t is used to describe the type of a given +device. The devices types are also known as "backends" within cairo.

+

The device type can be queried with cairo_device_get_type()

+

The various cairo_device_t functions can be used with devices of +any type, but some backends also provide type-specific functions +that must only be called with a device of the appropriate +type. These functions have names that begin with +cairo_type_device such as +cairo_xcb_device_debug_cap_xrender_version().

+

The behavior of calling a type-specific function with a device of +the wrong type is undefined.

+

New entries may be added in future versions.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

CAIRO_DEVICE_TYPE_DRM

+

The device is of type Direct Render Manager, since 1.10

+
 

CAIRO_DEVICE_TYPE_GL

+

The device is of type OpenGL, since 1.10

+
 

CAIRO_DEVICE_TYPE_SCRIPT

+

The device is of type script, since 1.10

+
 

CAIRO_DEVICE_TYPE_XCB

+

The device is of type xcb, since 1.10

+
 

CAIRO_DEVICE_TYPE_XLIB

+

The device is of type xlib, since 1.10

+
 

CAIRO_DEVICE_TYPE_XML

+

The device is of type XML, since 1.10

+
 

CAIRO_DEVICE_TYPE_COGL

+

The device is of type cogl, since 1.12

+
 

CAIRO_DEVICE_TYPE_WIN32

+

The device is of type win32, since 1.12

+
 

CAIRO_DEVICE_TYPE_INVALID

+

The device is invalid, since 1.10

+
 
+
+

Since: 1.10

+
+
+
+

See Also

+

cairo_surface_t

+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/cairo-cairo-font-face-t.html b/libs/cairo-1.16.0/doc/public/html/cairo-cairo-font-face-t.html new file mode 100644 index 0000000..3cf4074 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/cairo-cairo-font-face-t.html @@ -0,0 +1,476 @@ + + + + +cairo_font_face_t: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+
+
+ + +
+

cairo_font_face_t

+

cairo_font_face_t — Base class for font faces

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+cairo_font_face_t * + +cairo_font_face_reference () +
+void + +cairo_font_face_destroy () +
+cairo_status_t + +cairo_font_face_status () +
+cairo_font_type_t + +cairo_font_face_get_type () +
unsigned int + +cairo_font_face_get_reference_count () +
+cairo_status_t + +cairo_font_face_set_user_data () +
+void * + +cairo_font_face_get_user_data () +
+
+
+

Types and Values

+
++++ + + + + + + + + + + +
typedefcairo_font_face_t
enumcairo_font_type_t
+
+
+

Description

+

cairo_font_face_t represents a particular font at a particular weight, +slant, and other characteristic but no size, transformation, or size.

+

Font faces are created using font-backend-specific +constructors, typically of the form +cairo_backend_font_face_create(), +or implicitly using the toy text API by way of +cairo_select_font_face(). The resulting face can be accessed using +cairo_get_font_face().

+
+
+

Functions

+
+

cairo_font_face_reference ()

+
cairo_font_face_t *
+cairo_font_face_reference (cairo_font_face_t *font_face);
+

Increases the reference count on font_face + by one. This prevents +font_face + from being destroyed until a matching call to +cairo_font_face_destroy() is made.

+

Use cairo_font_face_get_reference_count() to get the number of +references to a cairo_font_face_t.

+
+

Parameters

+
+++++ + + + + + +

font_face

a cairo_font_face_t, (may be NULL in which case this +function does nothing).

 
+
+
+

Returns

+

the referenced cairo_font_face_t.

+
+

Since: 1.0

+
+
+
+

cairo_font_face_destroy ()

+
void
+cairo_font_face_destroy (cairo_font_face_t *font_face);
+

Decreases the reference count on font_face + by one. If the result +is zero, then font_face + and all associated resources are freed. +See cairo_font_face_reference().

+
+

Parameters

+
+++++ + + + + + +

font_face

a cairo_font_face_t

 
+
+

Since: 1.0

+
+
+
+

cairo_font_face_status ()

+
cairo_status_t
+cairo_font_face_status (cairo_font_face_t *font_face);
+

Checks whether an error has previously occurred for this +font face

+
+

Parameters

+
+++++ + + + + + +

font_face

a cairo_font_face_t

 
+
+
+

Returns

+

CAIRO_STATUS_SUCCESS or another error such as +CAIRO_STATUS_NO_MEMORY.

+
+

Since: 1.0

+
+
+
+

cairo_font_face_get_type ()

+
cairo_font_type_t
+cairo_font_face_get_type (cairo_font_face_t *font_face);
+

This function returns the type of the backend used to create +a font face. See cairo_font_type_t for available types.

+
+

Parameters

+
+++++ + + + + + +

font_face

a font face

 
+
+
+

Returns

+

The type of font_face +.

+
+

Since: 1.2

+
+
+
+

cairo_font_face_get_reference_count ()

+
unsigned int
+cairo_font_face_get_reference_count (cairo_font_face_t *font_face);
+

Returns the current reference count of font_face +.

+
+

Parameters

+
+++++ + + + + + +

font_face

a cairo_font_face_t

 
+
+
+

Returns

+

the current reference count of font_face +. If the +object is a nil object, 0 will be returned.

+
+

Since: 1.4

+
+
+
+

cairo_font_face_set_user_data ()

+
cairo_status_t
+cairo_font_face_set_user_data (cairo_font_face_t *font_face,
+                               const cairo_user_data_key_t *key,
+                               void *user_data,
+                               cairo_destroy_func_t destroy);
+

Attach user data to font_face +. To remove user data from a font face, +call this function with the key that was used to set it and NULL +for data +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

font_face

a cairo_font_face_t

 

key

the address of a cairo_user_data_key_t to attach the user data to

 

user_data

the user data to attach to the font face

 

destroy

a cairo_destroy_func_t which will be called when the +font face is destroyed or when new user data is attached using the +same key.

 
+
+
+

Returns

+

CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY if a +slot could not be allocated for the user data.

+
+

Since: 1.0

+
+
+
+

cairo_font_face_get_user_data ()

+
void *
+cairo_font_face_get_user_data (cairo_font_face_t *font_face,
+                               const cairo_user_data_key_t *key);
+

Return user data previously attached to font_face + using the specified +key. If no user data has been attached with the given key this +function returns NULL.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

font_face

a cairo_font_face_t

 

key

the address of the cairo_user_data_key_t the user data was +attached to

 
+
+
+

Returns

+

the user data previously attached or NULL.

+
+

Since: 1.0

+
+
+
+

Types and Values

+
+

cairo_font_face_t

+
typedef struct _cairo_font_face cairo_font_face_t;
+
+

A cairo_font_face_t specifies all aspects of a font other +than the size or font matrix (a font matrix is used to distort +a font by shearing it or scaling it unequally in the two +directions) . A font face can be set on a cairo_t by using +cairo_set_font_face(); the size and font matrix are set with +cairo_set_font_size() and cairo_set_font_matrix().

+

There are various types of font faces, depending on the +font backend they use. The type of a +font face can be queried using cairo_font_face_get_type().

+

Memory management of cairo_font_face_t is done with +cairo_font_face_reference() and cairo_font_face_destroy().

+

Since: 1.0

+
+
+
+

enum cairo_font_type_t

+

cairo_font_type_t is used to describe the type of a given font +face or scaled font. The font types are also known as "font +backends" within cairo.

+

The type of a font face is determined by the function used to +create it, which will generally be of the form +cairo_type_font_face_create(). +The font face type can be queried with cairo_font_face_get_type()

+

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 +be queried with cairo_scaled_font_get_type()

+

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_type_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.

+

New entries may be added in future versions.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

CAIRO_FONT_TYPE_TOY

+

The font was created using cairo's toy font api (Since: 1.2)

+
 

CAIRO_FONT_TYPE_FT

+

The font is of type FreeType (Since: 1.2)

+
 

CAIRO_FONT_TYPE_WIN32

+

The font is of type Win32 (Since: 1.2)

+
 

CAIRO_FONT_TYPE_QUARTZ

+

The font is of type Quartz (Since: 1.6, in 1.2 and +1.4 it was named CAIRO_FONT_TYPE_ATSUI)

+
 

CAIRO_FONT_TYPE_USER

+

The font was create using cairo's user font api (Since: 1.8)

+
 
+
+

Since: 1.2

+
+
+
+

See Also

+

cairo_scaled_font_t

+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/cairo-cairo-font-options-t.html b/libs/cairo-1.16.0/doc/public/html/cairo-cairo-font-options-t.html new file mode 100644 index 0000000..061e790 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/cairo-cairo-font-options-t.html @@ -0,0 +1,941 @@ + + + + +cairo_font_options_t: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+
+
+ + +
+

cairo_font_options_t

+

cairo_font_options_t — How a font should be rendered

+
+ +
+

Types and Values

+
++++ + + + + + + + + + + + + + + + + + + +
typedefcairo_font_options_t
enumcairo_subpixel_order_t
enumcairo_hint_style_t
enumcairo_hint_metrics_t
+
+
+

Description

+

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.

+
+
+

Functions

+
+

cairo_font_options_create ()

+
cairo_font_options_t *
+cairo_font_options_create (void);
+

Allocates a new font options object with all options initialized + to default values.

+
+

Returns

+

a newly allocated cairo_font_options_t. Free with +cairo_font_options_destroy(). This function always returns a +valid pointer; if memory cannot be allocated, then a special +error object is returned where all operations on the object do nothing. +You can check for this with cairo_font_options_status().

+
+

Since: 1.0

+
+
+
+

cairo_font_options_copy ()

+
cairo_font_options_t *
+cairo_font_options_copy (const cairo_font_options_t *original);
+

Allocates a new font options object copying the option values from + original +.

+
+

Parameters

+
+++++ + + + + + +

original

a cairo_font_options_t

 
+
+
+

Returns

+

a newly allocated cairo_font_options_t. Free with +cairo_font_options_destroy(). This function always returns a +valid pointer; if memory cannot be allocated, then a special +error object is returned where all operations on the object do nothing. +You can check for this with cairo_font_options_status().

+
+

Since: 1.0

+
+
+
+

cairo_font_options_destroy ()

+
void
+cairo_font_options_destroy (cairo_font_options_t *options);
+

Destroys a cairo_font_options_t object created with +cairo_font_options_create() or cairo_font_options_copy().

+
+

Parameters

+
+++++ + + + + + +

options

a cairo_font_options_t

 
+
+

Since: 1.0

+
+
+
+

cairo_font_options_status ()

+
cairo_status_t
+cairo_font_options_status (cairo_font_options_t *options);
+

Checks whether an error has previously occurred for this +font options object

+
+

Parameters

+
+++++ + + + + + +

options

a cairo_font_options_t

 
+
+ +

Since: 1.0

+
+
+
+

cairo_font_options_merge ()

+
void
+cairo_font_options_merge (cairo_font_options_t *options,
+                          const cairo_font_options_t *other);
+

Merges non-default options from other + into options +, replacing +existing values. This operation can be thought of as somewhat +similar to compositing other + onto options + with the operation +of CAIRO_OPERATOR_OVER.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

options

a cairo_font_options_t

 

other

another cairo_font_options_t

 
+
+

Since: 1.0

+
+
+
+

cairo_font_options_hash ()

+
unsigned long
+cairo_font_options_hash (const cairo_font_options_t *options);
+

Compute a hash for the font options object; this value will +be useful when storing an object containing a cairo_font_options_t +in a hash table.

+
+

Parameters

+
+++++ + + + + + +

options

a cairo_font_options_t

 
+
+
+

Returns

+

the hash value for the font options object. +The return value can be cast to a 32-bit type if a +32-bit hash value is needed.

+
+

Since: 1.0

+
+
+
+

cairo_font_options_equal ()

+
cairo_bool_t
+cairo_font_options_equal (const cairo_font_options_t *options,
+                          const cairo_font_options_t *other);
+

Compares two font options objects for equality.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

options

a cairo_font_options_t

 

other

another cairo_font_options_t

 
+
+
+

Returns

+

TRUE if all fields of the two font options objects match. +Note that this function will return FALSE if either object is in +error.

+
+

Since: 1.0

+
+
+
+

cairo_font_options_set_antialias ()

+
void
+cairo_font_options_set_antialias (cairo_font_options_t *options,
+                                  cairo_antialias_t antialias);
+

Sets the antialiasing mode for the font options object. This +specifies the type of antialiasing to do when rendering text.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

options

a cairo_font_options_t

 

antialias

the new antialiasing mode

 
+
+

Since: 1.0

+
+
+
+

cairo_font_options_get_antialias ()

+
cairo_antialias_t
+cairo_font_options_get_antialias (const cairo_font_options_t *options);
+

Gets the antialiasing mode for the font options object.

+
+

Parameters

+
+++++ + + + + + +

options

a cairo_font_options_t

 
+
+
+

Returns

+

the antialiasing mode

+
+

Since: 1.0

+
+
+
+

cairo_font_options_set_subpixel_order ()

+
void
+cairo_font_options_set_subpixel_order (cairo_font_options_t *options,
+                                       cairo_subpixel_order_t subpixel_order);
+

Sets the subpixel order for the font options object. The subpixel +order specifies the order of color elements within each pixel on +the display device when rendering with an antialiasing mode of +CAIRO_ANTIALIAS_SUBPIXEL. See the documentation for +cairo_subpixel_order_t for full details.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

options

a cairo_font_options_t

 

subpixel_order

the new subpixel order

 
+
+

Since: 1.0

+
+
+
+

cairo_font_options_get_subpixel_order ()

+
cairo_subpixel_order_t
+cairo_font_options_get_subpixel_order (const cairo_font_options_t *options);
+

Gets the subpixel order for the font options object. +See the documentation for cairo_subpixel_order_t for full details.

+
+

Parameters

+
+++++ + + + + + +

options

a cairo_font_options_t

 
+
+
+

Returns

+

the subpixel order for the font options object

+
+

Since: 1.0

+
+
+
+

cairo_font_options_set_hint_style ()

+
void
+cairo_font_options_set_hint_style (cairo_font_options_t *options,
+                                   cairo_hint_style_t hint_style);
+

Sets the hint style for font outlines for the font options object. +This controls whether to fit font outlines to the pixel grid, +and if so, whether to optimize for fidelity or contrast. +See the documentation for cairo_hint_style_t for full details.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

options

a cairo_font_options_t

 

hint_style

the new hint style

 
+
+

Since: 1.0

+
+
+
+

cairo_font_options_get_hint_style ()

+
cairo_hint_style_t
+cairo_font_options_get_hint_style (const cairo_font_options_t *options);
+

Gets the hint style for font outlines for the font options object. +See the documentation for cairo_hint_style_t for full details.

+
+

Parameters

+
+++++ + + + + + +

options

a cairo_font_options_t

 
+
+
+

Returns

+

the hint style for the font options object

+
+

Since: 1.0

+
+
+
+

cairo_font_options_set_hint_metrics ()

+
void
+cairo_font_options_set_hint_metrics (cairo_font_options_t *options,
+                                     cairo_hint_metrics_t hint_metrics);
+

Sets the metrics hinting mode for the font options object. This +controls whether metrics are quantized to integer values in +device units. +See the documentation for cairo_hint_metrics_t for full details.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

options

a cairo_font_options_t

 

hint_metrics

the new metrics hinting mode

 
+
+

Since: 1.0

+
+
+
+

cairo_font_options_get_hint_metrics ()

+
cairo_hint_metrics_t
+cairo_font_options_get_hint_metrics (const cairo_font_options_t *options);
+

Gets the metrics hinting mode for the font options object. +See the documentation for cairo_hint_metrics_t for full details.

+
+

Parameters

+
+++++ + + + + + +

options

a cairo_font_options_t

 
+
+
+

Returns

+

the metrics hinting mode for the font options object

+
+

Since: 1.0

+
+
+
+

cairo_font_options_get_variations ()

+
const char *
+cairo_font_options_get_variations (cairo_font_options_t *options);
+

Gets the OpenType font variations for the font options object. +See cairo_font_options_set_variations() for details about the +string format.

+
+

Parameters

+
+++++ + + + + + +

options

a cairo_font_options_t

 
+
+
+

Returns

+

the font variations for the font options object. The +returned string belongs to the options +and must not be modified. +It is valid until either the font options object is destroyed or +the font variations in this object is modified with +cairo_font_options_set_variations().

+
+

Since: 1.16

+
+
+
+

cairo_font_options_set_variations ()

+
void
+cairo_font_options_set_variations (cairo_font_options_t *options,
+                                   const char *variations);
+

Sets the OpenType font variations for the font options object. +Font variations are specified as a string with a format that +is similar to the CSS font-variation-settings. The string contains +a comma-separated list of axis assignments, which each assignment +consists of a 4-character axis name and a value, separated by +whitespace and optional equals sign.

+

Examples:

+

wght=200,wdth=140.5

+

wght 200 , wdth 140.5

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

options

a cairo_font_options_t

 

variations

the new font variations, or NULL

 
+
+

Since: 1.16

+
+
+
+

Types and Values

+
+

cairo_font_options_t

+
typedef struct _cairo_font_options cairo_font_options_t;
+
+

An opaque structure holding all options that are used when +rendering fonts.

+

Individual features of a cairo_font_options_t can be set or +accessed using functions named +cairo_font_options_set_feature_name() and +cairo_font_options_get_feature_name(), like +cairo_font_options_set_antialias() and +cairo_font_options_get_antialias().

+

New features may be added to a cairo_font_options_t in the +future. For this reason, cairo_font_options_copy(), +cairo_font_options_equal(), cairo_font_options_merge(), and +cairo_font_options_hash() should be used to copy, check +for equality, merge, or compute a hash value of +cairo_font_options_t objects.

+

Since: 1.0

+
+
+
+

enum cairo_subpixel_order_t

+

The subpixel order specifies the order of color elements within +each pixel on the display device when rendering with an +antialiasing mode of CAIRO_ANTIALIAS_SUBPIXEL.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

CAIRO_SUBPIXEL_ORDER_DEFAULT

+

Use the default subpixel order for + for the target device, since 1.0

+
 

CAIRO_SUBPIXEL_ORDER_RGB

+

Subpixel elements are arranged horizontally + with red at the left, since 1.0

+
 

CAIRO_SUBPIXEL_ORDER_BGR

+

Subpixel elements are arranged horizontally + with blue at the left, since 1.0

+
 

CAIRO_SUBPIXEL_ORDER_VRGB

+

Subpixel elements are arranged vertically + with red at the top, since 1.0

+
 

CAIRO_SUBPIXEL_ORDER_VBGR

+

Subpixel elements are arranged vertically + with blue at the top, since 1.0

+
 
+
+

Since: 1.0

+
+
+
+

enum cairo_hint_style_t

+

Specifies the type of hinting to do on font outlines. Hinting +is the process of fitting outlines to the pixel grid in order +to improve the appearance of the result. Since hinting outlines +involves distorting them, it also reduces the faithfulness +to the original outline shapes. Not all of the outline hinting +styles are supported by all font backends.

+

New entries may be added in future versions.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

CAIRO_HINT_STYLE_DEFAULT

+

Use the default hint style for + font backend and target device, since 1.0

+
 

CAIRO_HINT_STYLE_NONE

+

Do not hint outlines, since 1.0

+
 

CAIRO_HINT_STYLE_SLIGHT

+

Hint outlines slightly to improve + contrast while retaining good fidelity to the original + shapes, since 1.0

+
 

CAIRO_HINT_STYLE_MEDIUM

+

Hint outlines with medium strength + giving a compromise between fidelity to the original shapes + and contrast, since 1.0

+
 

CAIRO_HINT_STYLE_FULL

+

Hint outlines to maximize contrast, since 1.0

+
 
+
+

Since: 1.0

+
+
+
+

enum cairo_hint_metrics_t

+

Specifies whether to hint font metrics; hinting font metrics +means quantizing them so that they are integer values in +device space. Doing this improves the consistency of +letter and line spacing, however it also means that text +will be laid out differently at different zoom factors.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + +

CAIRO_HINT_METRICS_DEFAULT

+

Hint metrics in the default + manner for the font backend and target device, since 1.0

+
 

CAIRO_HINT_METRICS_OFF

+

Do not hint font metrics, since 1.0

+
 

CAIRO_HINT_METRICS_ON

+

Hint font metrics, since 1.0

+
 
+
+

Since: 1.0

+
+
+
+

See Also

+

cairo_scaled_font_t

+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/cairo-cairo-matrix-t.html b/libs/cairo-1.16.0/doc/public/html/cairo-cairo-matrix-t.html new file mode 100644 index 0000000..5c2fec5 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/cairo-cairo-matrix-t.html @@ -0,0 +1,779 @@ + + + + +cairo_matrix_t: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+
+
+ + +
+

cairo_matrix_t

+

cairo_matrix_t — Generic matrix operations

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+void + +cairo_matrix_init () +
+void + +cairo_matrix_init_identity () +
+void + +cairo_matrix_init_translate () +
+void + +cairo_matrix_init_scale () +
+void + +cairo_matrix_init_rotate () +
+void + +cairo_matrix_translate () +
+void + +cairo_matrix_scale () +
+void + +cairo_matrix_rotate () +
+cairo_status_t + +cairo_matrix_invert () +
+void + +cairo_matrix_multiply () +
+void + +cairo_matrix_transform_distance () +
+void + +cairo_matrix_transform_point () +
+
+
+

Types and Values

+
++++ + + + + +
 cairo_matrix_t
+
+
+

Description

+

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. +The transformation of a point (x,y) +is given by:

+
+x_new = xx * x + xy * y + x0;
+y_new = yx * x + yy * y + y0;
+
+

The current transformation matrix of a cairo_t, represented as a +cairo_matrix_t, defines the transformation from user-space +coordinates to device-space coordinates. See cairo_get_matrix() and +cairo_set_matrix().

+
+
+

Functions

+
+

cairo_matrix_init ()

+
void
+cairo_matrix_init (cairo_matrix_t *matrix,
+                   double xx,
+                   double yx,
+                   double xy,
+                   double yy,
+                   double x0,
+                   double y0);
+

Sets matrix + to be the affine transformation given by +xx +, yx +, xy +, yy +, x0 +, y0 +. The transformation is given +by:

+
+ x_new = xx * x + xy * y + x0;
+ y_new = yx * x + yy * y + y0;
+
+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

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

 

yy

yy component of the affine transformation

 

x0

X translation component of the affine transformation

 

y0

Y translation component of the affine transformation

 
+
+

Since: 1.0

+
+
+
+

cairo_matrix_init_identity ()

+
void
+cairo_matrix_init_identity (cairo_matrix_t *matrix);
+

Modifies matrix + to be an identity transformation.

+
+

Parameters

+
+++++ + + + + + +

matrix

a cairo_matrix_t

 
+
+

Since: 1.0

+
+
+
+

cairo_matrix_init_translate ()

+
void
+cairo_matrix_init_translate (cairo_matrix_t *matrix,
+                             double tx,
+                             double ty);
+

Initializes matrix + to a transformation that translates by tx + and +ty + in the X and Y dimensions, respectively.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

matrix

a cairo_matrix_t

 

tx

amount to translate in the X direction

 

ty

amount to translate in the Y direction

 
+
+

Since: 1.0

+
+
+
+

cairo_matrix_init_scale ()

+
void
+cairo_matrix_init_scale (cairo_matrix_t *matrix,
+                         double sx,
+                         double sy);
+

Initializes matrix + to a transformation that scales by sx + and sy + +in the X and Y dimensions, respectively.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

matrix

a cairo_matrix_t

 

sx

scale factor in the X direction

 

sy

scale factor in the Y direction

 
+
+

Since: 1.0

+
+
+
+

cairo_matrix_init_rotate ()

+
void
+cairo_matrix_init_rotate (cairo_matrix_t *matrix,
+                          double radians);
+

Initialized matrix + to a transformation that rotates by radians +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

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 +axis orientation of cairo, positive angles rotate in a clockwise +direction.

 
+
+

Since: 1.0

+
+
+
+

cairo_matrix_translate ()

+
void
+cairo_matrix_translate (cairo_matrix_t *matrix,
+                        double tx,
+                        double ty);
+

Applies a translation by tx +, ty + to the transformation in +matrix +. The effect of the new transformation is to first translate +the coordinates by tx + and ty +, then apply the original transformation +to the coordinates.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

matrix

a cairo_matrix_t

 

tx

amount to translate in the X direction

 

ty

amount to translate in the Y direction

 
+
+

Since: 1.0

+
+
+
+

cairo_matrix_scale ()

+
void
+cairo_matrix_scale (cairo_matrix_t *matrix,
+                    double sx,
+                    double sy);
+

Applies scaling by sx +, sy + to the transformation in matrix +. The +effect of the new transformation is to first scale the coordinates +by sx + and sy +, then apply the original transformation to the coordinates.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

matrix

a cairo_matrix_t

 

sx

scale factor in the X direction

 

sy

scale factor in the Y direction

 
+
+

Since: 1.0

+
+
+
+

cairo_matrix_rotate ()

+
void
+cairo_matrix_rotate (cairo_matrix_t *matrix,
+                     double radians);
+

Applies rotation by radians + to the transformation in +matrix +. The effect of the new transformation is to first rotate the +coordinates by radians +, then apply the original transformation +to the coordinates.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

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 +axis orientation of cairo, positive angles rotate in a clockwise +direction.

 
+
+

Since: 1.0

+
+
+
+

cairo_matrix_invert ()

+
cairo_status_t
+cairo_matrix_invert (cairo_matrix_t *matrix);
+

Changes matrix + to be the inverse of its original value. Not +all transformation matrices have inverses; if the matrix +collapses points together (it is degenerate), +then it has no inverse and this function will fail.

+
+

Parameters

+
+++++ + + + + + +

matrix

a cairo_matrix_t

 
+
+
+

Returns

+

If matrix +has an inverse, modifies matrix +to +be the inverse matrix and returns CAIRO_STATUS_SUCCESS. Otherwise, +returns CAIRO_STATUS_INVALID_MATRIX.

+
+

Since: 1.0

+
+
+
+

cairo_matrix_multiply ()

+
void
+cairo_matrix_multiply (cairo_matrix_t *result,
+                       const cairo_matrix_t *a,
+                       const cairo_matrix_t *b);
+

Multiplies the affine transformations in a + and b + together +and stores the result in result +. The effect of the resulting +transformation is to first apply the transformation in a + to the +coordinates and then apply the transformation in b + to the +coordinates.

+

It is allowable for result + to be identical to either a + or b +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

result

a cairo_matrix_t in which to store the result

 

a

a cairo_matrix_t

 

b

a cairo_matrix_t

 
+
+

Since: 1.0

+
+
+
+

cairo_matrix_transform_distance ()

+
void
+cairo_matrix_transform_distance (const cairo_matrix_t *matrix,
+                                 double *dx,
+                                 double *dy);
+

Transforms the distance vector (dx +,dy +) by matrix +. This is +similar to cairo_matrix_transform_point() except that the translation +components of the transformation are ignored. The calculation of +the returned vector is as follows:

+
+dx2 = dx1 * a + dy1 * c;
+dy2 = dx1 * b + dy1 * d;
+
+

Affine transformations are position invariant, so the same vector +always transforms to the same vector. If (x1 +,y1 +) transforms +to (x2 +,y2 +) then (x1 ++dx1 +,y1 ++dy1 +) will transform to +(x1 ++dx2 +,y1 ++dy2 +) for all values of x1 + and x2 +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

matrix

a cairo_matrix_t

 

dx

X component of a distance vector. An in/out parameter

 

dy

Y component of a distance vector. An in/out parameter

 
+
+

Since: 1.0

+
+
+
+

cairo_matrix_transform_point ()

+
void
+cairo_matrix_transform_point (const cairo_matrix_t *matrix,
+                              double *x,
+                              double *y);
+

Transforms the point (x +, y +) by matrix +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

matrix

a cairo_matrix_t

 

x

X position. An in/out parameter

 

y

Y position. An in/out parameter

 
+
+

Since: 1.0

+
+
+
+

Types and Values

+
+

cairo_matrix_t

+
typedef struct {
+    double xx; double yx;
+    double xy; double yy;
+    double x0; double y0;
+} cairo_matrix_t;
+
+

A cairo_matrix_t holds an affine transformation, such as a scale, +rotation, shear, or a combination of those. The transformation of +a point (x, y) is given by:

+
+    x_new = xx * x + xy * y + x0;
+    y_new = yx * x + yy * y + y0;
+
+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

double xx;

xx component of the affine transformation

 

double yx;

yx component of the affine transformation

 

double xy;

xy component of the affine transformation

 

double yy;

yy component of the affine transformation

 

double x0;

X translation component of the affine transformation

 

double y0;

Y translation component of the affine transformation

 
+
+

Since: 1.0

+
+
+
+

See Also

+

cairo_t

+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/cairo-cairo-pattern-t.html b/libs/cairo-1.16.0/doc/public/html/cairo-cairo-pattern-t.html new file mode 100644 index 0000000..6d31e9a --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/cairo-cairo-pattern-t.html @@ -0,0 +1,2710 @@ + + + + +cairo_pattern_t: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+
+
+ + +
+

cairo_pattern_t

+

cairo_pattern_t — Sources for drawing

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+void + +cairo_pattern_add_color_stop_rgb () +
+void + +cairo_pattern_add_color_stop_rgba () +
+cairo_status_t + +cairo_pattern_get_color_stop_count () +
+cairo_status_t + +cairo_pattern_get_color_stop_rgba () +
+cairo_pattern_t * + +cairo_pattern_create_rgb () +
+cairo_pattern_t * + +cairo_pattern_create_rgba () +
+cairo_status_t + +cairo_pattern_get_rgba () +
+cairo_pattern_t * + +cairo_pattern_create_for_surface () +
+cairo_status_t + +cairo_pattern_get_surface () +
+cairo_pattern_t * + +cairo_pattern_create_linear () +
+cairo_status_t + +cairo_pattern_get_linear_points () +
+cairo_pattern_t * + +cairo_pattern_create_radial () +
+cairo_status_t + +cairo_pattern_get_radial_circles () +
+cairo_pattern_t * + +cairo_pattern_create_mesh () +
+void + +cairo_mesh_pattern_begin_patch () +
+void + +cairo_mesh_pattern_end_patch () +
+void + +cairo_mesh_pattern_move_to () +
+void + +cairo_mesh_pattern_line_to () +
+void + +cairo_mesh_pattern_curve_to () +
+void + +cairo_mesh_pattern_set_control_point () +
+void + +cairo_mesh_pattern_set_corner_color_rgb () +
+void + +cairo_mesh_pattern_set_corner_color_rgba () +
+cairo_status_t + +cairo_mesh_pattern_get_patch_count () +
+cairo_path_t * + +cairo_mesh_pattern_get_path () +
+cairo_status_t + +cairo_mesh_pattern_get_control_point () +
+cairo_status_t + +cairo_mesh_pattern_get_corner_color_rgba () +
+cairo_pattern_t * + +cairo_pattern_reference () +
+void + +cairo_pattern_destroy () +
+cairo_status_t + +cairo_pattern_status () +
+void + +cairo_pattern_set_extend () +
+cairo_extend_t + +cairo_pattern_get_extend () +
+void + +cairo_pattern_set_filter () +
+cairo_filter_t + +cairo_pattern_get_filter () +
+void + +cairo_pattern_set_matrix () +
+void + +cairo_pattern_get_matrix () +
+cairo_pattern_type_t + +cairo_pattern_get_type () +
unsigned int + +cairo_pattern_get_reference_count () +
+cairo_status_t + +cairo_pattern_set_user_data () +
+void * + +cairo_pattern_get_user_data () +
+
+
+

Types and Values

+
++++ + + + + + + + + + + + + + + + + + + +
typedefcairo_pattern_t
enumcairo_extend_t
enumcairo_filter_t
enumcairo_pattern_type_t
+
+
+

Description

+

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.

+

A cairo pattern is created by using one of the many constructors, +of the form +cairo_pattern_create_type() +or implicitly through +cairo_set_source_type() +functions.

+
+
+

Functions

+
+

cairo_pattern_add_color_stop_rgb ()

+
void
+cairo_pattern_add_color_stop_rgb (cairo_pattern_t *pattern,
+                                  double offset,
+                                  double red,
+                                  double green,
+                                  double blue);
+

Adds an opaque color stop to a gradient pattern. The offset +specifies the location along the gradient's control vector. For +example, a linear gradient's control vector is from (x0,y0) to +(x1,y1) while a radial gradient's control vector is from any point +on the start circle to the corresponding point on the end circle.

+

The color is specified in the same way as in cairo_set_source_rgb().

+

If two (or more) stops are specified with identical offset values, +they will be sorted according to the order in which the stops are +added, (stops added earlier will compare less than stops added +later). This can be useful for reliably making sharp color +transitions instead of the typical blend.

+

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 CAIRO_STATUS_PATTERN_TYPE_MISMATCH.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

pattern

a cairo_pattern_t

 

offset

an offset in the range [0.0 .. 1.0]

 

red

red component of color

 

green

green component of color

 

blue

blue component of color

 
+
+

Since: 1.0

+
+
+
+

cairo_pattern_add_color_stop_rgba ()

+
void
+cairo_pattern_add_color_stop_rgba (cairo_pattern_t *pattern,
+                                   double offset,
+                                   double red,
+                                   double green,
+                                   double blue,
+                                   double alpha);
+

Adds a translucent color stop to a gradient pattern. The offset +specifies the location along the gradient's control vector. For +example, a linear gradient's control vector is from (x0,y0) to +(x1,y1) while a radial gradient's control vector is from any point +on the start circle to the corresponding point on the end circle.

+

The color is specified in the same way as in cairo_set_source_rgba().

+

If two (or more) stops are specified with identical offset values, +they will be sorted according to the order in which the stops are +added, (stops added earlier will compare less than stops added +later). This can be useful for reliably making sharp color +transitions instead of the typical blend.

+

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 CAIRO_STATUS_PATTERN_TYPE_MISMATCH.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

pattern

a cairo_pattern_t

 

offset

an offset in the range [0.0 .. 1.0]

 

red

red component of color

 

green

green component of color

 

blue

blue component of color

 

alpha

alpha component of color

 
+
+

Since: 1.0

+
+
+
+

cairo_pattern_get_color_stop_count ()

+
cairo_status_t
+cairo_pattern_get_color_stop_count (cairo_pattern_t *pattern,
+                                    int *count);
+

Gets the number of color stops specified in the given gradient +pattern.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

pattern

a cairo_pattern_t

 

count

return value for the number of color stops, or NULL

 
+
+
+

Returns

+

CAIRO_STATUS_SUCCESS, or +CAIRO_STATUS_PATTERN_TYPE_MISMATCH if pattern +is not a gradient +pattern.

+
+

Since: 1.4

+
+
+
+

cairo_pattern_get_color_stop_rgba ()

+
cairo_status_t
+cairo_pattern_get_color_stop_rgba (cairo_pattern_t *pattern,
+                                   int index,
+                                   double *offset,
+                                   double *red,
+                                   double *green,
+                                   double *blue,
+                                   double *alpha);
+

Gets the color and offset information at the given index + for a +gradient pattern. Values of index + range from 0 to n-1 +where n is the number returned +by cairo_pattern_get_color_stop_count().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

pattern

a cairo_pattern_t

 

index

index of the stop to return data for

 

offset

return value for the offset of the stop, or NULL

 

red

return value for red component of color, or NULL

 

green

return value for green component of color, or NULL

 

blue

return value for blue component of color, or NULL

 

alpha

return value for alpha component of color, or NULL

 
+
+
+

Returns

+

CAIRO_STATUS_SUCCESS, or CAIRO_STATUS_INVALID_INDEX +if index +is not valid for the given pattern. If the pattern is +not a gradient pattern, CAIRO_STATUS_PATTERN_TYPE_MISMATCH is +returned.

+
+

Since: 1.4

+
+
+
+

cairo_pattern_create_rgb ()

+
cairo_pattern_t *
+cairo_pattern_create_rgb (double red,
+                          double green,
+                          double blue);
+

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.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

red

red component of the color

 

green

green component of the color

 

blue

blue component of the color

 
+
+
+

Returns

+

the newly created cairo_pattern_t if successful, or +an error pattern in case of no memory. The caller owns the +returned object and should call cairo_pattern_destroy() when +finished with it.

+

This function will always return a valid pointer, but if an error +occurred the pattern status will be set to an error. To inspect +the status of a pattern use cairo_pattern_status().

+
+

Since: 1.0

+
+
+
+

cairo_pattern_create_rgba ()

+
cairo_pattern_t *
+cairo_pattern_create_rgba (double red,
+                           double green,
+                           double blue,
+                           double alpha);
+

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.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

red

red component of the color

 

green

green component of the color

 

blue

blue component of the color

 

alpha

alpha component of the color

 
+
+
+

Returns

+

the newly created cairo_pattern_t if successful, or +an error pattern in case of no memory. The caller owns the +returned object and should call cairo_pattern_destroy() when +finished with it.

+

This function will always return a valid pointer, but if an error +occurred the pattern status will be set to an error. To inspect +the status of a pattern use cairo_pattern_status().

+
+

Since: 1.0

+
+
+
+

cairo_pattern_get_rgba ()

+
cairo_status_t
+cairo_pattern_get_rgba (cairo_pattern_t *pattern,
+                        double *red,
+                        double *green,
+                        double *blue,
+                        double *alpha);
+

Gets the solid color for a solid color pattern.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

pattern

a cairo_pattern_t

 

red

return value for red component of color, or NULL

 

green

return value for green component of color, or NULL

 

blue

return value for blue component of color, or NULL

 

alpha

return value for alpha component of color, or NULL

 
+
+
+

Returns

+

CAIRO_STATUS_SUCCESS, or +CAIRO_STATUS_PATTERN_TYPE_MISMATCH if the pattern is not a solid +color pattern.

+
+

Since: 1.4

+
+
+
+

cairo_pattern_create_for_surface ()

+
cairo_pattern_t *
+cairo_pattern_create_for_surface (cairo_surface_t *surface);
+

Create a new cairo_pattern_t for the given surface.

+
+

Parameters

+
+++++ + + + + + +

surface

the surface

 
+
+
+

Returns

+

the newly created cairo_pattern_t if successful, or +an error pattern in case of no memory. The caller owns the +returned object and should call cairo_pattern_destroy() when +finished with it.

+

This function will always return a valid pointer, but if an error +occurred the pattern status will be set to an error. To inspect +the status of a pattern use cairo_pattern_status().

+
+

Since: 1.0

+
+
+
+

cairo_pattern_get_surface ()

+
cairo_status_t
+cairo_pattern_get_surface (cairo_pattern_t *pattern,
+                           cairo_surface_t **surface);
+

Gets the surface of a surface pattern. The reference returned in +surface + is owned by the pattern; the caller should call +cairo_surface_reference() if the surface is to be retained.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

pattern

a cairo_pattern_t

 

surface

return value for surface of pattern, or NULL

 
+
+
+

Returns

+

CAIRO_STATUS_SUCCESS, or +CAIRO_STATUS_PATTERN_TYPE_MISMATCH if the pattern is not a surface +pattern.

+
+

Since: 1.4

+
+
+
+

cairo_pattern_create_linear ()

+
cairo_pattern_t *
+cairo_pattern_create_linear (double x0,
+                             double y0,
+                             double x1,
+                             double y1);
+

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 +cairo_pattern_add_color_stop_rgba().

+

Note: The coordinates here are in pattern space. For a new pattern, +pattern space is identical to user space, but the relationship +between the spaces can be changed with cairo_pattern_set_matrix().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

x0

x coordinate of the start point

 

y0

y coordinate of the start point

 

x1

x coordinate of the end point

 

y1

y coordinate of the end point

 
+
+
+

Returns

+

the newly created cairo_pattern_t if successful, or +an error pattern in case of no memory. The caller owns the +returned object and should call cairo_pattern_destroy() when +finished with it.

+

This function will always return a valid pointer, but if an error +occurred the pattern status will be set to an error. To inspect +the status of a pattern use cairo_pattern_status().

+
+

Since: 1.0

+
+
+
+

cairo_pattern_get_linear_points ()

+
cairo_status_t
+cairo_pattern_get_linear_points (cairo_pattern_t *pattern,
+                                 double *x0,
+                                 double *y0,
+                                 double *x1,
+                                 double *y1);
+

Gets the gradient endpoints for a linear gradient.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

pattern

a cairo_pattern_t

 

x0

return value for the x coordinate of the first point, or NULL

 

y0

return value for the y coordinate of the first point, or NULL

 

x1

return value for the x coordinate of the second point, or NULL

 

y1

return value for the y coordinate of the second point, or NULL

 
+
+
+

Returns

+

CAIRO_STATUS_SUCCESS, or +CAIRO_STATUS_PATTERN_TYPE_MISMATCH if pattern +is not a linear +gradient pattern.

+
+

Since: 1.4

+
+
+
+

cairo_pattern_create_radial ()

+
cairo_pattern_t *
+cairo_pattern_create_radial (double cx0,
+                             double cy0,
+                             double radius0,
+                             double cx1,
+                             double cy1,
+                             double radius1);
+

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 +cairo_pattern_add_color_stop_rgba().

+

Note: The coordinates here are in pattern space. For a new pattern, +pattern space is identical to user space, but the relationship +between the spaces can be changed with cairo_pattern_set_matrix().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

cx0

x coordinate for the center of the start circle

 

cy0

y coordinate for the center of the start circle

 

radius0

radius of the start circle

 

cx1

x coordinate for the center of the end circle

 

cy1

y coordinate for the center of the end circle

 

radius1

radius of the end circle

 
+
+
+

Returns

+

the newly created cairo_pattern_t if successful, or +an error pattern in case of no memory. The caller owns the +returned object and should call cairo_pattern_destroy() when +finished with it.

+

This function will always return a valid pointer, but if an error +occurred the pattern status will be set to an error. To inspect +the status of a pattern use cairo_pattern_status().

+
+

Since: 1.0

+
+
+
+

cairo_pattern_get_radial_circles ()

+
cairo_status_t
+cairo_pattern_get_radial_circles (cairo_pattern_t *pattern,
+                                  double *x0,
+                                  double *y0,
+                                  double *r0,
+                                  double *x1,
+                                  double *y1,
+                                  double *r1);
+

Gets the gradient endpoint circles for a radial gradient, each +specified as a center coordinate and a radius.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

pattern

a cairo_pattern_t

 

x0

return value for the x coordinate of the center of the first circle, or NULL

 

y0

return value for the y coordinate of the center of the first circle, or NULL

 

r0

return value for the radius of the first circle, or NULL

 

x1

return value for the x coordinate of the center of the second circle, or NULL

 

y1

return value for the y coordinate of the center of the second circle, or NULL

 

r1

return value for the radius of the second circle, or NULL

 
+
+
+

Returns

+

CAIRO_STATUS_SUCCESS, or +CAIRO_STATUS_PATTERN_TYPE_MISMATCH if pattern +is not a radial +gradient pattern.

+
+

Since: 1.4

+
+
+
+

cairo_pattern_create_mesh ()

+
cairo_pattern_t *
+cairo_pattern_create_mesh (void);
+

Create a new mesh pattern.

+

Mesh patterns are tensor-product patch meshes (type 7 shadings in +PDF). Mesh patterns may also be used to create other types of +shadings that are special cases of tensor-product patch meshes such +as Coons patch meshes (type 6 shading in PDF) and Gouraud-shaded +triangle meshes (type 4 and 5 shadings in PDF).

+

Mesh patterns consist of one or more tensor-product patches, which +should be defined before using the mesh pattern. Using a mesh +pattern with a partially defined patch as source or mask will put +the context in an error status with a status of +CAIRO_STATUS_INVALID_MESH_CONSTRUCTION.

+

A tensor-product patch is defined by 4 Bézier curves (side 0, 1, 2, +3) and by 4 additional control points (P0, P1, P2, P3) that provide +further control over the patch and complete the definition of the +tensor-product patch. The corner C0 is the first point of the +patch.

+

Degenerate sides are permitted so straight lines may be used. A +zero length line on one side may be used to create 3 sided patches.

+
+      C1     Side 1       C2
+       +---------------+
+       |               |
+       |  P1       P2  |
+       |               |
+Side 0 |               | Side 2
+       |               |
+       |               |
+       |  P0       P3  |
+       |               |
+       +---------------+
+     C0     Side 3        C3
+
+

Each patch is constructed by first calling +cairo_mesh_pattern_begin_patch(), then cairo_mesh_pattern_move_to() +to specify the first point in the patch (C0). Then the sides are +specified with calls to cairo_mesh_pattern_curve_to() and +cairo_mesh_pattern_line_to().

+

The four additional control points (P0, P1, P2, P3) in a patch can +be specified with cairo_mesh_pattern_set_control_point().

+

At each corner of the patch (C0, C1, C2, C3) a color may be +specified with cairo_mesh_pattern_set_corner_color_rgb() or +cairo_mesh_pattern_set_corner_color_rgba(). Any corner whose color +is not explicitly specified defaults to transparent black.

+

A Coons patch is a special case of the tensor-product patch where +the control points are implicitly defined by the sides of the +patch. The default value for any control point not specified is the +implicit value for a Coons patch, i.e. if no control points are +specified the patch is a Coons patch.

+

A triangle is a special case of the tensor-product patch where the +control points are implicitly defined by the sides of the patch, +all the sides are lines and one of them has length 0, i.e. if the +patch is specified using just 3 lines, it is a triangle. If the +corners connected by the 0-length side have the same color, the +patch is a Gouraud-shaded triangle.

+

Patches may be oriented differently to the above diagram. For +example the first point could be at the top left. The diagram only +shows the relationship between the sides, corners and control +points. Regardless of where the first point is located, when +specifying colors, corner 0 will always be the first point, corner +1 the point between side 0 and side 1 etc.

+

Calling cairo_mesh_pattern_end_patch() completes the current +patch. If less than 4 sides have been defined, the first missing +side is defined as a line from the current point to the first point +of the patch (C0) and the other sides are degenerate lines from C0 +to C0. The corners between the added sides will all be coincident +with C0 of the patch and their color will be set to be the same as +the color of C0.

+

Additional patches may be added with additional calls to +cairo_mesh_pattern_begin_patch()/cairo_mesh_pattern_end_patch().

+
+ + + + + + + +
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
cairo_pattern_t *pattern = cairo_pattern_create_mesh ();
+
+/* Add a Coons patch */
+cairo_mesh_pattern_begin_patch (pattern);
+cairo_mesh_pattern_move_to (pattern, 0, 0);
+cairo_mesh_pattern_curve_to (pattern, 30, -30,  60,  30, 100, 0);
+cairo_mesh_pattern_curve_to (pattern, 60,  30, 130,  60, 100, 100);
+cairo_mesh_pattern_curve_to (pattern, 60,  70,  30, 130,   0, 100);
+cairo_mesh_pattern_curve_to (pattern, 30,  70, -30,  30,   0, 0);
+cairo_mesh_pattern_set_corner_color_rgb (pattern, 0, 1, 0, 0);
+cairo_mesh_pattern_set_corner_color_rgb (pattern, 1, 0, 1, 0);
+cairo_mesh_pattern_set_corner_color_rgb (pattern, 2, 0, 0, 1);
+cairo_mesh_pattern_set_corner_color_rgb (pattern, 3, 1, 1, 0);
+cairo_mesh_pattern_end_patch (pattern);
+
+/* Add a Gouraud-shaded triangle */
+cairo_mesh_pattern_begin_patch (pattern)
+cairo_mesh_pattern_move_to (pattern, 100, 100);
+cairo_mesh_pattern_line_to (pattern, 130, 130);
+cairo_mesh_pattern_line_to (pattern, 130,  70);
+cairo_mesh_pattern_set_corner_color_rgb (pattern, 0, 1, 0, 0);
+cairo_mesh_pattern_set_corner_color_rgb (pattern, 1, 0, 1, 0);
+cairo_mesh_pattern_set_corner_color_rgb (pattern, 2, 0, 0, 1);
+cairo_mesh_pattern_end_patch (pattern)
+
+ +

When two patches overlap, the last one that has been added is drawn +over the first one.

+

When a patch folds over itself, points are sorted depending on +their parameter coordinates inside the patch. The v coordinate +ranges from 0 to 1 when moving from side 3 to side 1; the u +coordinate ranges from 0 to 1 when going from side 0 to side

+
  1. Points with higher v coordinate hide points with lower v +coordinate. When two points have the same v coordinate, the one +with higher u coordinate is above. This means that points nearer to +side 1 are above points nearer to side 3; when this is not +sufficient to decide which point is above (for example when both +points belong to side 1 or side 3) points nearer to side 2 are +above points nearer to side 0.

+

For a complete definition of tensor-product patches, see the PDF +specification (ISO32000), which describes the parametrization in +detail.

+

Note: The coordinates are always in pattern space. For a new +pattern, pattern space is identical to user space, but the +relationship between the spaces can be changed with +cairo_pattern_set_matrix().

+
+

Returns

+

the newly created cairo_pattern_t if successful, or +an error pattern in case of no memory. The caller owns the returned +object and should call cairo_pattern_destroy() when finished with +it.

+

This function will always return a valid pointer, but if an error +occurred the pattern status will be set to an error. To inspect the +status of a pattern use cairo_pattern_status().

+
+

Since: 1.12

+
+
+
+

cairo_mesh_pattern_begin_patch ()

+
void
+cairo_mesh_pattern_begin_patch (cairo_pattern_t *pattern);
+

Begin a patch in a mesh pattern.

+

After calling this function, the patch shape should be defined with +cairo_mesh_pattern_move_to(), cairo_mesh_pattern_line_to() and +cairo_mesh_pattern_curve_to().

+

After defining the patch, cairo_mesh_pattern_end_patch() must be +called before using pattern + as a source or mask.

+

Note: If pattern + is not a mesh pattern then pattern + will be put +into an error status with a status of +CAIRO_STATUS_PATTERN_TYPE_MISMATCH. If pattern + already has a +current patch, it will be put into an error status with a status of +CAIRO_STATUS_INVALID_MESH_CONSTRUCTION.

+
+

Parameters

+
+++++ + + + + + +

pattern

a cairo_pattern_t

 
+
+

Since: 1.12

+
+
+
+

cairo_mesh_pattern_end_patch ()

+
void
+cairo_mesh_pattern_end_patch (cairo_pattern_t *pattern);
+

Indicates the end of the current patch in a mesh pattern.

+

If the current patch has less than 4 sides, it is closed with a +straight line from the current point to the first point of the +patch as if cairo_mesh_pattern_line_to() was used.

+

Note: If pattern + is not a mesh pattern then pattern + will be put +into an error status with a status of +CAIRO_STATUS_PATTERN_TYPE_MISMATCH. If pattern + has no current +patch or the current patch has no current point, pattern + will be +put into an error status with a status of +CAIRO_STATUS_INVALID_MESH_CONSTRUCTION.

+
+

Parameters

+
+++++ + + + + + +

pattern

a cairo_pattern_t

 
+
+

Since: 1.12

+
+
+
+

cairo_mesh_pattern_move_to ()

+
void
+cairo_mesh_pattern_move_to (cairo_pattern_t *pattern,
+                            double x,
+                            double y);
+

Define the first point of the current patch in a mesh pattern.

+

After this call the current point will be (x +, y +).

+

Note: If pattern + is not a mesh pattern then pattern + will be put +into an error status with a status of +CAIRO_STATUS_PATTERN_TYPE_MISMATCH. If pattern + has no current +patch or the current patch already has at least one side, pattern + +will be put into an error status with a status of +CAIRO_STATUS_INVALID_MESH_CONSTRUCTION.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

pattern

a cairo_pattern_t

 

x

the X coordinate of the new position

 

y

the Y coordinate of the new position

 
+
+

Since: 1.12

+
+
+
+

cairo_mesh_pattern_line_to ()

+
void
+cairo_mesh_pattern_line_to (cairo_pattern_t *pattern,
+                            double x,
+                            double y);
+

Adds a line to the current patch from the current point to position +(x +, y +) in pattern-space coordinates.

+

If there is no current point before the call to +cairo_mesh_pattern_line_to() this function will behave as +cairo_mesh_pattern_move_to(pattern +, x +, y +).

+

After this call the current point will be (x +, y +).

+

Note: If pattern + is not a mesh pattern then pattern + will be put +into an error status with a status of +CAIRO_STATUS_PATTERN_TYPE_MISMATCH. If pattern + has no current +patch or the current patch already has 4 sides, pattern + will be +put into an error status with a status of +CAIRO_STATUS_INVALID_MESH_CONSTRUCTION.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

pattern

a cairo_pattern_t

 

x

the X coordinate of the end of the new line

 

y

the Y coordinate of the end of the new line

 
+
+

Since: 1.12

+
+
+
+

cairo_mesh_pattern_curve_to ()

+
void
+cairo_mesh_pattern_curve_to (cairo_pattern_t *pattern,
+                             double x1,
+                             double y1,
+                             double x2,
+                             double y2,
+                             double x3,
+                             double y3);
+

Adds a cubic Bézier spline to the current patch from the current +point to position (x3 +, y3 +) in pattern-space coordinates, using +(x1 +, y1 +) and (x2 +, y2 +) as the control points.

+

If the current patch has no current point before the call to +cairo_mesh_pattern_curve_to(), this function will behave as if +preceded by a call to cairo_mesh_pattern_move_to(pattern +, x1 +, +y1 +).

+

After this call the current point will be (x3 +, y3 +).

+

Note: If pattern + is not a mesh pattern then pattern + will be put +into an error status with a status of +CAIRO_STATUS_PATTERN_TYPE_MISMATCH. If pattern + has no current +patch or the current patch already has 4 sides, pattern + will be +put into an error status with a status of +CAIRO_STATUS_INVALID_MESH_CONSTRUCTION.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

pattern

a cairo_pattern_t

 

x1

the X coordinate of the first control point

 

y1

the Y coordinate of the first control point

 

x2

the X coordinate of the second control point

 

y2

the Y coordinate of the second control point

 

x3

the X coordinate of the end of the curve

 

y3

the Y coordinate of the end of the curve

 
+
+

Since: 1.12

+
+
+
+

cairo_mesh_pattern_set_control_point ()

+
void
+cairo_mesh_pattern_set_control_point (cairo_pattern_t *pattern,
+                                      unsigned int point_num,
+                                      double x,
+                                      double y);
+

Set an internal control point of the current patch.

+

Valid values for point_num + are from 0 to 3 and identify the +control points as explained in cairo_pattern_create_mesh().

+

Note: If pattern + is not a mesh pattern then pattern + will be put +into an error status with a status of +CAIRO_STATUS_PATTERN_TYPE_MISMATCH. If point_num + is not valid, +pattern + will be put into an error status with a status of +CAIRO_STATUS_INVALID_INDEX. If pattern + has no current patch, +pattern + will be put into an error status with a status of +CAIRO_STATUS_INVALID_MESH_CONSTRUCTION.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

pattern

a cairo_pattern_t

 

point_num

the control point to set the position for

 

x

the X coordinate of the control point

 

y

the Y coordinate of the control point

 
+
+

Since: 1.12

+
+
+
+

cairo_mesh_pattern_set_corner_color_rgb ()

+
void
+cairo_mesh_pattern_set_corner_color_rgb
+                               (cairo_pattern_t *pattern,
+                                unsigned int corner_num,
+                                double red,
+                                double green,
+                                double blue);
+

Sets the color of a corner of the current patch in a mesh pattern.

+

The color is specified in the same way as in cairo_set_source_rgb().

+

Valid values for corner_num + are from 0 to 3 and identify the +corners as explained in cairo_pattern_create_mesh().

+

Note: If pattern + is not a mesh pattern then pattern + will be put +into an error status with a status of +CAIRO_STATUS_PATTERN_TYPE_MISMATCH. If corner_num + is not valid, +pattern + will be put into an error status with a status of +CAIRO_STATUS_INVALID_INDEX. If pattern + has no current patch, +pattern + will be put into an error status with a status of +CAIRO_STATUS_INVALID_MESH_CONSTRUCTION.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

pattern

a cairo_pattern_t

 

corner_num

the corner to set the color for

 

red

red component of color

 

green

green component of color

 

blue

blue component of color

 
+
+

Since: 1.12

+
+
+
+

cairo_mesh_pattern_set_corner_color_rgba ()

+
void
+cairo_mesh_pattern_set_corner_color_rgba
+                               (cairo_pattern_t *pattern,
+                                unsigned int corner_num,
+                                double red,
+                                double green,
+                                double blue,
+                                double alpha);
+

Sets the color of a corner of the current patch in a mesh pattern.

+

The color is specified in the same way as in cairo_set_source_rgba().

+

Valid values for corner_num + are from 0 to 3 and identify the +corners as explained in cairo_pattern_create_mesh().

+

Note: If pattern + is not a mesh pattern then pattern + will be put +into an error status with a status of +CAIRO_STATUS_PATTERN_TYPE_MISMATCH. If corner_num + is not valid, +pattern + will be put into an error status with a status of +CAIRO_STATUS_INVALID_INDEX. If pattern + has no current patch, +pattern + will be put into an error status with a status of +CAIRO_STATUS_INVALID_MESH_CONSTRUCTION.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

pattern

a cairo_pattern_t

 

corner_num

the corner to set the color for

 

red

red component of color

 

green

green component of color

 

blue

blue component of color

 

alpha

alpha component of color

 
+
+

Since: 1.12

+
+
+
+

cairo_mesh_pattern_get_patch_count ()

+
cairo_status_t
+cairo_mesh_pattern_get_patch_count (cairo_pattern_t *pattern,
+                                    unsigned int *count);
+

Gets the number of patches specified in the given mesh pattern.

+

The number only includes patches which have been finished by +calling cairo_mesh_pattern_end_patch(). For example it will be 0 +during the definition of the first patch.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

pattern

a cairo_pattern_t

 

count

return value for the number patches, or NULL

 
+
+
+

Returns

+

CAIRO_STATUS_SUCCESS, or +CAIRO_STATUS_PATTERN_TYPE_MISMATCH if pattern +is not a mesh +pattern.

+
+

Since: 1.12

+
+
+
+

cairo_mesh_pattern_get_path ()

+
cairo_path_t *
+cairo_mesh_pattern_get_path (cairo_pattern_t *pattern,
+                             unsigned int patch_num);
+

Gets path defining the patch patch_num + for a mesh +pattern.

+

patch_num + can range from 0 to n-1 where n is the number returned by +cairo_mesh_pattern_get_patch_count().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

pattern

a cairo_pattern_t

 

patch_num

the patch number to return data for

 
+
+
+

Returns

+

the path defining the patch, or a path with status +CAIRO_STATUS_INVALID_INDEX if patch_num +or point_num +is not +valid for pattern +. If pattern +is not a mesh pattern, a path with +status CAIRO_STATUS_PATTERN_TYPE_MISMATCH is returned.

+
+

Since: 1.12

+
+
+
+

cairo_mesh_pattern_get_control_point ()

+
cairo_status_t
+cairo_mesh_pattern_get_control_point (cairo_pattern_t *pattern,
+                                      unsigned int patch_num,
+                                      unsigned int point_num,
+                                      double *x,
+                                      double *y);
+

Gets the control point point_num + of patch patch_num + for a mesh +pattern.

+

patch_num + can range from 0 to n-1 where n is the number returned by +cairo_mesh_pattern_get_patch_count().

+

Valid values for point_num + are from 0 to 3 and identify the +control points as explained in cairo_pattern_create_mesh().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

pattern

a cairo_pattern_t

 

patch_num

the patch number to return data for

 

point_num

the control point number to return data for

 

x

return value for the x coordinate of the control point, or NULL

 

y

return value for the y coordinate of the control point, or NULL

 
+
+
+

Returns

+

CAIRO_STATUS_SUCCESS, or CAIRO_STATUS_INVALID_INDEX +if patch_num +or point_num +is not valid for pattern +. If pattern +is not a mesh pattern, CAIRO_STATUS_PATTERN_TYPE_MISMATCH is +returned.

+
+

Since: 1.12

+
+
+
+

cairo_mesh_pattern_get_corner_color_rgba ()

+
cairo_status_t
+cairo_mesh_pattern_get_corner_color_rgba
+                               (cairo_pattern_t *pattern,
+                                unsigned int patch_num,
+                                unsigned int corner_num,
+                                double *red,
+                                double *green,
+                                double *blue,
+                                double *alpha);
+

Gets the color information in corner corner_num + of patch +patch_num + for a mesh pattern.

+

patch_num + can range from 0 to n-1 where n is the number returned by +cairo_mesh_pattern_get_patch_count().

+

Valid values for corner_num + are from 0 to 3 and identify the +corners as explained in cairo_pattern_create_mesh().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

pattern

a cairo_pattern_t

 

patch_num

the patch number to return data for

 

corner_num

the corner number to return data for

 

red

return value for red component of color, or NULL

 

green

return value for green component of color, or NULL

 

blue

return value for blue component of color, or NULL

 

alpha

return value for alpha component of color, or NULL

 
+
+
+

Returns

+

CAIRO_STATUS_SUCCESS, or CAIRO_STATUS_INVALID_INDEX +if patch_num +or corner_num +is not valid for pattern +. If +pattern +is not a mesh pattern, CAIRO_STATUS_PATTERN_TYPE_MISMATCH +is returned.

+
+

Since: 1.12

+
+
+
+

cairo_pattern_reference ()

+
cairo_pattern_t *
+cairo_pattern_reference (cairo_pattern_t *pattern);
+

Increases the reference count on pattern + by one. This prevents +pattern + from being destroyed until a matching call to +cairo_pattern_destroy() is made.

+

Use cairo_pattern_get_reference_count() to get the number of +references to a cairo_pattern_t.

+
+

Parameters

+
+++++ + + + + + +

pattern

a cairo_pattern_t

 
+
+
+

Returns

+

the referenced cairo_pattern_t.

+
+

Since: 1.0

+
+
+
+

cairo_pattern_destroy ()

+
void
+cairo_pattern_destroy (cairo_pattern_t *pattern);
+

Decreases the reference count on pattern + by one. If the result is +zero, then pattern + and all associated resources are freed. See +cairo_pattern_reference().

+
+

Parameters

+
+++++ + + + + + +

pattern

a cairo_pattern_t

 
+
+

Since: 1.0

+
+
+
+

cairo_pattern_status ()

+
cairo_status_t
+cairo_pattern_status (cairo_pattern_t *pattern);
+

Checks whether an error has previously occurred for this +pattern.

+
+

Parameters

+
+++++ + + + + + +

pattern

a cairo_pattern_t

 
+
+ +

Since: 1.0

+
+
+
+

cairo_pattern_set_extend ()

+
void
+cairo_pattern_set_extend (cairo_pattern_t *pattern,
+                          cairo_extend_t extend);
+

Sets the mode to be used for drawing outside the area of a pattern. +See cairo_extend_t for details on the semantics of each extend +strategy.

+

The default extend mode is CAIRO_EXTEND_NONE for surface patterns +and CAIRO_EXTEND_PAD for gradient patterns.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

pattern

a cairo_pattern_t

 

extend

a cairo_extend_t describing how the area outside of the +pattern will be drawn

 
+
+

Since: 1.0

+
+
+
+

cairo_pattern_get_extend ()

+
cairo_extend_t
+cairo_pattern_get_extend (cairo_pattern_t *pattern);
+

Gets the current extend mode for a pattern. See cairo_extend_t +for details on the semantics of each extend strategy.

+
+

Parameters

+
+++++ + + + + + +

pattern

a cairo_pattern_t

 
+
+
+

Returns

+

the current extend strategy used for drawing the +pattern.

+
+

Since: 1.0

+
+
+
+

cairo_pattern_set_filter ()

+
void
+cairo_pattern_set_filter (cairo_pattern_t *pattern,
+                          cairo_filter_t filter);
+

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:

+
+ + + + + + + +
1
+2
cairo_set_source_surface (cr, image, x, y);
+cairo_pattern_set_filter (cairo_get_source (cr), CAIRO_FILTER_NEAREST);
+
+ +
+

Parameters

+
+++++ + + + + + + + + + + + + +

pattern

a cairo_pattern_t

 

filter

a cairo_filter_t describing the filter to use for resizing +the pattern

 
+
+

Since: 1.0

+
+
+
+

cairo_pattern_get_filter ()

+
cairo_filter_t
+cairo_pattern_get_filter (cairo_pattern_t *pattern);
+

Gets the current filter for a pattern. See cairo_filter_t +for details on each filter.

+
+

Parameters

+
+++++ + + + + + +

pattern

a cairo_pattern_t

 
+
+
+

Returns

+

the current filter used for resizing the pattern.

+
+

Since: 1.0

+
+
+
+

cairo_pattern_set_matrix ()

+
void
+cairo_pattern_set_matrix (cairo_pattern_t *pattern,
+                          const cairo_matrix_t *matrix);
+

Sets the pattern's transformation matrix to matrix +. This matrix is +a transformation from user space to pattern space.

+

When a pattern is first created it always has the identity matrix +for its transformation matrix, which means that pattern space is +initially identical to user space.

+

Important: Please note that the direction of this transformation +matrix is from user space to pattern space. This means that if you +imagine the flow from a pattern to user space (and on to device +space), then coordinates in that flow will be transformed by the +inverse of the pattern matrix.

+

For example, if you want to make a pattern appear twice as large as +it does by default the correct code to use is:

+
+ + + + + + + +
1
+2
cairo_matrix_init_scale (&matrix, 0.5, 0.5);
+cairo_pattern_set_matrix (pattern, &matrix);
+
+ +

Meanwhile, using values of 2.0 rather than 0.5 in the code above +would cause the pattern to appear at half of its default size.

+

Also, please note the discussion of the user-space locking +semantics of cairo_set_source().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

pattern

a cairo_pattern_t

 

matrix

a cairo_matrix_t

 
+
+

Since: 1.0

+
+
+
+

cairo_pattern_get_matrix ()

+
void
+cairo_pattern_get_matrix (cairo_pattern_t *pattern,
+                          cairo_matrix_t *matrix);
+

Stores the pattern's transformation matrix into matrix +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

pattern

a cairo_pattern_t

 

matrix

return value for the matrix

 
+
+

Since: 1.0

+
+
+
+

cairo_pattern_get_type ()

+
cairo_pattern_type_t
+cairo_pattern_get_type (cairo_pattern_t *pattern);
+

Get the pattern's type. See cairo_pattern_type_t for available +types.

+
+

Parameters

+
+++++ + + + + + +

pattern

a cairo_pattern_t

 
+
+
+

Returns

+

The type of pattern +.

+
+

Since: 1.2

+
+
+
+

cairo_pattern_get_reference_count ()

+
unsigned int
+cairo_pattern_get_reference_count (cairo_pattern_t *pattern);
+

Returns the current reference count of pattern +.

+
+

Parameters

+
+++++ + + + + + +

pattern

a cairo_pattern_t

 
+
+
+

Returns

+

the current reference count of pattern +. If the +object is a nil object, 0 will be returned.

+
+

Since: 1.4

+
+
+
+

cairo_pattern_set_user_data ()

+
cairo_status_t
+cairo_pattern_set_user_data (cairo_pattern_t *pattern,
+                             const cairo_user_data_key_t *key,
+                             void *user_data,
+                             cairo_destroy_func_t destroy);
+

Attach user data to pattern +. To remove user data from a surface, +call this function with the key that was used to set it and NULL +for data +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

pattern

a cairo_pattern_t

 

key

the address of a cairo_user_data_key_t to attach the user data to

 

user_data

the user data to attach to the cairo_pattern_t

 

destroy

a cairo_destroy_func_t which will be called when the +cairo_t is destroyed or when new user data is attached using the +same key.

 
+
+
+

Returns

+

CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY if a +slot could not be allocated for the user data.

+
+

Since: 1.4

+
+
+
+

cairo_pattern_get_user_data ()

+
void *
+cairo_pattern_get_user_data (cairo_pattern_t *pattern,
+                             const cairo_user_data_key_t *key);
+

Return user data previously attached to pattern + using the +specified key. If no user data has been attached with the given +key this function returns NULL.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

pattern

a cairo_pattern_t

 

key

the address of the cairo_user_data_key_t the user data was +attached to

 
+
+
+

Returns

+

the user data previously attached or NULL.

+
+

Since: 1.4

+
+
+
+

Types and Values

+
+

cairo_pattern_t

+
typedef struct _cairo_pattern cairo_pattern_t;
+
+

A cairo_pattern_t represents a source when drawing onto a +surface. There are different subtypes of cairo_pattern_t, +for different types of sources; for example, +cairo_pattern_create_rgb() creates a pattern for a solid +opaque color.

+

Other than various +cairo_pattern_create_type() +functions, some of the pattern types can be implicitly created using various +cairo_set_source_type() functions; +for example cairo_set_source_rgb().

+

The type of a pattern can be queried with cairo_pattern_get_type().

+

Memory management of cairo_pattern_t is done with +cairo_pattern_reference() and cairo_pattern_destroy().

+

Since: 1.0

+
+
+
+

enum cairo_extend_t

+

cairo_extend_t is used to describe how pattern color/alpha will be +determined for areas "outside" the pattern's natural area, (for +example, outside the surface bounds or outside the gradient +geometry).

+

Mesh patterns are not affected by the extend mode.

+

The default extend mode is CAIRO_EXTEND_NONE for surface patterns +and CAIRO_EXTEND_PAD for gradient patterns.

+

New entries may be added in future versions.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

CAIRO_EXTEND_NONE

+

pixels outside of the source pattern + are fully transparent (Since 1.0)

+
 

CAIRO_EXTEND_REPEAT

+

the pattern is tiled by repeating (Since 1.0)

+
 

CAIRO_EXTEND_REFLECT

+

the pattern is tiled by reflecting + at the edges (Since 1.0; but only implemented for surface patterns since 1.6)

+
 

CAIRO_EXTEND_PAD

+

pixels outside of the pattern copy + the closest pixel from the source (Since 1.2; but only + implemented for surface patterns since 1.6)

+
 
+
+

Since: 1.0

+
+
+
+

enum cairo_filter_t

+

cairo_filter_t is used to indicate what filtering should be +applied when reading pixel values from patterns. See +cairo_pattern_set_filter() for indicating the desired filter to be +used with a particular pattern.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

CAIRO_FILTER_FAST

+

A high-performance filter, with quality similar + to CAIRO_FILTER_NEAREST (Since 1.0)

+
 

CAIRO_FILTER_GOOD

+

A reasonable-performance filter, with quality + similar to CAIRO_FILTER_BILINEAR (Since 1.0)

+
 

CAIRO_FILTER_BEST

+

The highest-quality available, performance may + not be suitable for interactive use. (Since 1.0)

+
 

CAIRO_FILTER_NEAREST

+

Nearest-neighbor filtering (Since 1.0)

+
 

CAIRO_FILTER_BILINEAR

+

Linear interpolation in two dimensions (Since 1.0)

+
 

CAIRO_FILTER_GAUSSIAN

+

This filter value is currently + unimplemented, and should not be used in current code. (Since 1.0)

+
 
+
+

Since: 1.0

+
+
+
+

enum cairo_pattern_type_t

+

cairo_pattern_type_t is used to describe the type of a given pattern.

+

The type of a pattern is determined by the function used to create +it. The cairo_pattern_create_rgb() and cairo_pattern_create_rgba() +functions create SOLID patterns. The remaining +cairo_pattern_create functions map to pattern types in obvious +ways.

+

The pattern type can be queried with cairo_pattern_get_type()

+

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 +cairo_pattern_add_color_stop_rgba() which must only be called with +gradient patterns (either LINEAR or RADIAL). Otherwise the pattern +will be shutdown and put into an error state.

+

New entries may be added in future versions.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

CAIRO_PATTERN_TYPE_SOLID

+

The pattern is a solid (uniform) +color. It may be opaque or translucent, since 1.2.

+
 

CAIRO_PATTERN_TYPE_SURFACE

+

The pattern is a based on a surface (an image), since 1.2.

+
 

CAIRO_PATTERN_TYPE_LINEAR

+

The pattern is a linear gradient, since 1.2.

+
 

CAIRO_PATTERN_TYPE_RADIAL

+

The pattern is a radial gradient, since 1.2.

+
 

CAIRO_PATTERN_TYPE_MESH

+

The pattern is a mesh, since 1.12.

+
 

CAIRO_PATTERN_TYPE_RASTER_SOURCE

+

The pattern is a user pattern providing raster data, since 1.12.

+
 
+
+

Since: 1.2

+
+
+
+

See Also

+

cairo_t, cairo_surface_t

+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/cairo-cairo-scaled-font-t.html b/libs/cairo-1.16.0/doc/public/html/cairo-cairo-scaled-font-t.html new file mode 100644 index 0000000..975d221 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/cairo-cairo-scaled-font-t.html @@ -0,0 +1,1301 @@ + + + + +cairo_scaled_font_t: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+
+
+ + +
+

cairo_scaled_font_t

+

cairo_scaled_font_t — Font face at particular size and options

+
+
+

Functions

+ +
+
+

Types and Values

+
++++ + + + + + + + + + + + + + + +
typedefcairo_scaled_font_t
 cairo_font_extents_t
 cairo_text_extents_t
+
+
+

Description

+

cairo_scaled_font_t represents a realization of a font face at a particular +size and transformation and a certain set of font options.

+
+
+

Functions

+
+

cairo_scaled_font_create ()

+
cairo_scaled_font_t *
+cairo_scaled_font_create (cairo_font_face_t *font_face,
+                          const cairo_matrix_t *font_matrix,
+                          const cairo_matrix_t *ctm,
+                          const cairo_font_options_t *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 +be used.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

font_face

a cairo_font_face_t

 

font_matrix

font space to user space transformation matrix for the +font. In the simplest case of a N point font, this matrix is +just a scale by N, but it can also be used to shear the font +or stretch it unequally along the two axes. See +cairo_set_font_matrix().

 

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.

 
+
+
+

Returns

+

a newly created cairo_scaled_font_t. Destroy with +cairo_scaled_font_destroy()

+
+

Since: 1.0

+
+
+
+

cairo_scaled_font_reference ()

+
cairo_scaled_font_t *
+cairo_scaled_font_reference (cairo_scaled_font_t *scaled_font);
+

Increases the reference count on scaled_font + by one. This prevents +scaled_font + from being destroyed until a matching call to +cairo_scaled_font_destroy() is made.

+

Use cairo_scaled_font_get_reference_count() to get the number of +references to a cairo_scaled_font_t.

+
+

Parameters

+
+++++ + + + + + +

scaled_font

a cairo_scaled_font_t, (may be NULL in which case +this function does nothing)

 
+
+
+

Returns

+

the referenced cairo_scaled_font_t

+
+

Since: 1.0

+
+
+
+

cairo_scaled_font_destroy ()

+
void
+cairo_scaled_font_destroy (cairo_scaled_font_t *scaled_font);
+

Decreases the reference count on font + by one. If the result +is zero, then font + and all associated resources are freed. +See cairo_scaled_font_reference().

+
+

Parameters

+
+++++ + + + + + +

scaled_font

a cairo_scaled_font_t

 
+
+

Since: 1.0

+
+
+
+

cairo_scaled_font_status ()

+
cairo_status_t
+cairo_scaled_font_status (cairo_scaled_font_t *scaled_font);
+

Checks whether an error has previously occurred for this +scaled_font.

+
+

Parameters

+
+++++ + + + + + +

scaled_font

a cairo_scaled_font_t

 
+
+
+

Returns

+

CAIRO_STATUS_SUCCESS or another error such as +CAIRO_STATUS_NO_MEMORY.

+
+

Since: 1.0

+
+
+
+

cairo_scaled_font_extents ()

+
void
+cairo_scaled_font_extents (cairo_scaled_font_t *scaled_font,
+                           cairo_font_extents_t *extents);
+

Gets the metrics for a cairo_scaled_font_t.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

scaled_font

a cairo_scaled_font_t

 

extents

a cairo_font_extents_t which to store the retrieved extents.

 
+
+

Since: 1.0

+
+
+
+

cairo_scaled_font_text_extents ()

+
void
+cairo_scaled_font_text_extents (cairo_scaled_font_t *scaled_font,
+                                const char *utf8,
+                                cairo_text_extents_t *extents);
+

Gets the extents for a string of text. The extents describe a +user-space rectangle that encloses the "inked" portion of the text +drawn at the origin (0,0) (as it would be drawn by cairo_show_text() +if the cairo graphics state were set to the same font_face, +font_matrix, ctm, and font_options as scaled_font +). Additionally, +the x_advance and y_advance values indicate the amount by which the +current point would be advanced by cairo_show_text().

+

Note that whitespace characters do not directly contribute to the +size of the rectangle (extents.width and extents.height). They do +contribute indirectly by changing the position of non-whitespace +characters. In particular, trailing whitespace characters are +likely to not affect the size of the rectangle, though they will +affect the x_advance and y_advance values.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

scaled_font

a cairo_scaled_font_t

 

utf8

a NUL-terminated string of text, encoded in UTF-8

 

extents

a cairo_text_extents_t which to store the retrieved extents.

 
+
+

Since: 1.2

+
+
+
+

cairo_scaled_font_glyph_extents ()

+
void
+cairo_scaled_font_glyph_extents (cairo_scaled_font_t *scaled_font,
+                                 const cairo_glyph_t *glyphs,
+                                 int num_glyphs,
+                                 cairo_text_extents_t *extents);
+

Gets the extents for an array of glyphs. The extents describe a +user-space rectangle that encloses the "inked" portion of the +glyphs, (as they would be drawn by cairo_show_glyphs() if the cairo +graphics state were set to the same font_face, font_matrix, ctm, +and font_options as scaled_font +). Additionally, the x_advance and +y_advance values indicate the amount by which the current point +would be advanced by cairo_show_glyphs().

+

Note that whitespace glyphs do not contribute to the size of the +rectangle (extents.width and extents.height).

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

scaled_font

a cairo_scaled_font_t

 

glyphs

an array of glyph IDs with X and Y offsets.

 

num_glyphs

the number of glyphs in the glyphs +array

 

extents

a cairo_text_extents_t which to store the retrieved extents.

 
+
+

Since: 1.0

+
+
+
+

cairo_scaled_font_text_to_glyphs ()

+
cairo_status_t
+cairo_scaled_font_text_to_glyphs (cairo_scaled_font_t *scaled_font,
+                                  double x,
+                                  double y,
+                                  const char *utf8,
+                                  int utf8_len,
+                                  cairo_glyph_t **glyphs,
+                                  int *num_glyphs,
+                                  cairo_text_cluster_t **clusters,
+                                  int *num_clusters,
+                                  cairo_text_cluster_flags_t *cluster_flags);
+

Converts UTF-8 text to an array of glyphs, optionally with cluster +mapping, that can be used to render later using scaled_font +.

+

If glyphs + initially points to a non-NULL value, that array is used +as a glyph buffer, and num_glyphs + should point to the number of glyph +entries available there. If the provided glyph array is too short for +the conversion, a new glyph array is allocated using cairo_glyph_allocate() +and placed in glyphs +. Upon return, num_glyphs + always contains the +number of generated glyphs. If the value glyphs + points to has changed +after the call, the user is responsible for freeing the allocated glyph +array using cairo_glyph_free(). This may happen even if the provided +array was large enough.

+

If clusters + is not NULL, num_clusters + and cluster_flags + should not be NULL, +and cluster mapping will be computed. +The semantics of how cluster array allocation works is similar to the glyph +array. That is, +if clusters + initially points to a non-NULL value, that array is used +as a cluster buffer, and num_clusters + should point to the number of cluster +entries available there. If the provided cluster array is too short for +the conversion, a new cluster array is allocated using cairo_text_cluster_allocate() +and placed in clusters +. Upon return, num_clusters + always contains the +number of generated clusters. If the value clusters + points at has changed +after the call, the user is responsible for freeing the allocated cluster +array using cairo_text_cluster_free(). This may happen even if the provided +array was large enough.

+

In the simplest case, glyphs + and clusters + can point to NULL initially +and a suitable array will be allocated. In code:

+
+ + + + + + + +
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
cairo_status_t status;
+
+cairo_glyph_t *glyphs = NULL;
+int num_glyphs;
+cairo_text_cluster_t *clusters = NULL;
+int num_clusters;
+cairo_text_cluster_flags_t cluster_flags;
+
+status = cairo_scaled_font_text_to_glyphs (scaled_font,
+                                           x, y,
+                                           utf8, utf8_len,
+                                           &glyphs, &num_glyphs,
+                                           &clusters, &num_clusters, &cluster_flags);
+
+if (status == CAIRO_STATUS_SUCCESS) {
+    cairo_show_text_glyphs (cr,
+                            utf8, utf8_len,
+                            glyphs, num_glyphs,
+                            clusters, num_clusters, cluster_flags);
+
+    cairo_glyph_free (glyphs);
+    cairo_text_cluster_free (clusters);
+}
+
+ +

If no cluster mapping is needed:

+
+ + + + + + + +
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
cairo_status_t status;
+
+cairo_glyph_t *glyphs = NULL;
+int num_glyphs;
+
+status = cairo_scaled_font_text_to_glyphs (scaled_font,
+                                           x, y,
+                                           utf8, utf8_len,
+                                           &glyphs, &num_glyphs,
+                                           NULL, NULL,
+                                           NULL);
+
+if (status == CAIRO_STATUS_SUCCESS) {
+    cairo_show_glyphs (cr, glyphs, num_glyphs);
+    cairo_glyph_free (glyphs);
+}
+
+ +

If stack-based glyph and cluster arrays are to be used for small +arrays:

+
+ + + + + + + +
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
cairo_status_t status;
+
+cairo_glyph_t stack_glyphs[40];
+cairo_glyph_t *glyphs = stack_glyphs;
+int num_glyphs = sizeof (stack_glyphs) / sizeof (stack_glyphs[0]);
+cairo_text_cluster_t stack_clusters[40];
+cairo_text_cluster_t *clusters = stack_clusters;
+int num_clusters = sizeof (stack_clusters) / sizeof (stack_clusters[0]);
+cairo_text_cluster_flags_t cluster_flags;
+
+status = cairo_scaled_font_text_to_glyphs (scaled_font,
+                                           x, y,
+                                           utf8, utf8_len,
+                                           &glyphs, &num_glyphs,
+                                           &clusters, &num_clusters, &cluster_flags);
+
+if (status == CAIRO_STATUS_SUCCESS) {
+    cairo_show_text_glyphs (cr,
+                            utf8, utf8_len,
+                            glyphs, num_glyphs,
+                            clusters, num_clusters, cluster_flags);
+
+    if (glyphs != stack_glyphs)
+        cairo_glyph_free (glyphs);
+    if (clusters != stack_clusters)
+        cairo_text_cluster_free (clusters);
+}
+
+ +

For details of how clusters +, num_clusters +, and cluster_flags + map input +UTF-8 text to the output glyphs see cairo_show_text_glyphs().

+

The output values can be readily passed to cairo_show_text_glyphs() +cairo_show_glyphs(), or related functions, assuming that the exact +same scaled_font + is used for the operation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

x

X position to place first glyph

 

y

Y position to place first glyph

 

scaled_font

a cairo_scaled_font_t

 

utf8

a string of text encoded in UTF-8

 

utf8_len

length of utf8 +in bytes, or -1 if it is NUL-terminated

 

glyphs

pointer to array of glyphs to fill

 

num_glyphs

pointer to number of glyphs

 

clusters

pointer to array of cluster mapping information to fill, or NULL

 

num_clusters

pointer to number of clusters, or NULL

 

cluster_flags

pointer to location to store cluster flags corresponding to the +output clusters +, or NULL

 
+
+
+

Returns

+

CAIRO_STATUS_SUCCESS upon success, or an error status +if the input values are wrong or if conversion failed. If the input +values are correct but the conversion failed, the error status is also +set on scaled_font +.

+
+

Since: 1.8

+
+
+
+

cairo_scaled_font_get_font_face ()

+
cairo_font_face_t *
+cairo_scaled_font_get_font_face (cairo_scaled_font_t *scaled_font);
+

Gets the font face that this scaled font uses. This might be the +font face passed to cairo_scaled_font_create(), but this does not +hold true for all possible cases.

+
+

Parameters

+
+++++ + + + + + +

scaled_font

a cairo_scaled_font_t

 
+
+
+

Returns

+

The cairo_font_face_t with which scaled_font +was +created. This object is owned by cairo. To keep a reference to it, +you must call cairo_scaled_font_reference().

+
+

Since: 1.2

+
+
+
+

cairo_scaled_font_get_font_options ()

+
void
+cairo_scaled_font_get_font_options (cairo_scaled_font_t *scaled_font,
+                                    cairo_font_options_t *options);
+

Stores the font options with which scaled_font + was created into +options +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

scaled_font

a cairo_scaled_font_t

 

options

return value for the font options

 
+
+

Since: 1.2

+
+
+
+

cairo_scaled_font_get_font_matrix ()

+
void
+cairo_scaled_font_get_font_matrix (cairo_scaled_font_t *scaled_font,
+                                   cairo_matrix_t *font_matrix);
+

Stores the font matrix with which scaled_font + was created into +matrix +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

scaled_font

a cairo_scaled_font_t

 

font_matrix

return value for the matrix

 
+
+

Since: 1.2

+
+
+
+

cairo_scaled_font_get_ctm ()

+
void
+cairo_scaled_font_get_ctm (cairo_scaled_font_t *scaled_font,
+                           cairo_matrix_t *ctm);
+

Stores the CTM with which scaled_font + was created into ctm +. +Note that the translation offsets (x0, y0) of the CTM are ignored +by cairo_scaled_font_create(). So, the matrix this +function returns always has 0,0 as x0,y0.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

scaled_font

a cairo_scaled_font_t

 

ctm

return value for the CTM

 
+
+

Since: 1.2

+
+
+
+

cairo_scaled_font_get_scale_matrix ()

+
void
+cairo_scaled_font_get_scale_matrix (cairo_scaled_font_t *scaled_font,
+                                    cairo_matrix_t *scale_matrix);
+

Stores the scale matrix of scaled_font + into matrix +. +The scale matrix is product of the font matrix and the ctm +associated with the scaled font, and hence is the matrix mapping from +font space to device space.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

scaled_font

a cairo_scaled_font_t

 

scale_matrix

return value for the matrix

 
+
+

Since: 1.8

+
+
+
+

cairo_scaled_font_get_type ()

+
cairo_font_type_t
+cairo_scaled_font_get_type (cairo_scaled_font_t *scaled_font);
+

This function returns the type of the backend used to create +a scaled font. See cairo_font_type_t for available types. +However, this function never returns CAIRO_FONT_TYPE_TOY.

+
+

Parameters

+
+++++ + + + + + +

scaled_font

a cairo_scaled_font_t

 
+
+
+

Returns

+

The type of scaled_font +.

+
+

Since: 1.2

+
+
+
+

cairo_scaled_font_get_reference_count ()

+
unsigned int
+cairo_scaled_font_get_reference_count (cairo_scaled_font_t *scaled_font);
+

Returns the current reference count of scaled_font +.

+
+

Parameters

+
+++++ + + + + + +

scaled_font

a cairo_scaled_font_t

 
+
+
+

Returns

+

the current reference count of scaled_font +. If the +object is a nil object, 0 will be returned.

+
+

Since: 1.4

+
+
+
+

cairo_scaled_font_set_user_data ()

+
cairo_status_t
+cairo_scaled_font_set_user_data (cairo_scaled_font_t *scaled_font,
+                                 const cairo_user_data_key_t *key,
+                                 void *user_data,
+                                 cairo_destroy_func_t destroy);
+

Attach user data to scaled_font +. To remove user data from a surface, +call this function with the key that was used to set it and NULL +for data +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

scaled_font

a cairo_scaled_font_t

 

key

the address of a cairo_user_data_key_t to attach the user data to

 

user_data

the user data to attach to the cairo_scaled_font_t

 

destroy

a cairo_destroy_func_t which will be called when the +cairo_t is destroyed or when new user data is attached using the +same key.

 
+
+
+

Returns

+

CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY if a +slot could not be allocated for the user data.

+
+

Since: 1.4

+
+
+
+

cairo_scaled_font_get_user_data ()

+
void *
+cairo_scaled_font_get_user_data (cairo_scaled_font_t *scaled_font,
+                                 const cairo_user_data_key_t *key);
+

Return user data previously attached to scaled_font + using the +specified key. If no user data has been attached with the given +key this function returns NULL.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

scaled_font

a cairo_scaled_font_t

 

key

the address of the cairo_user_data_key_t the user data was +attached to

 
+
+
+

Returns

+

the user data previously attached or NULL.

+
+

Since: 1.4

+
+
+
+

Types and Values

+
+

cairo_scaled_font_t

+
typedef struct _cairo_scaled_font 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 +usage where a library or application wants to cache a reference +to a scaled font to speed up the computation of metrics.

+

There are various types of scaled fonts, depending on the +font backend they use. The type of a +scaled font can be queried using cairo_scaled_font_get_type().

+

Memory management of cairo_scaled_font_t is done with +cairo_scaled_font_reference() and cairo_scaled_font_destroy().

+

Since: 1.0

+
+
+
+

cairo_font_extents_t

+
typedef struct {
+    double ascent;
+    double descent;
+    double height;
+    double max_x_advance;
+    double max_y_advance;
+} cairo_font_extents_t;
+
+

The cairo_font_extents_t structure stores metric information for +a font. Values are given in the current user-space coordinate +system.

+

Because font metrics are in user-space coordinates, they are +mostly, but not entirely, independent of the current transformation +matrix. If you call cairo_scale(cr, 2.0, 2.0), +text will be drawn twice as big, but the reported text extents will +not be doubled. They will change slightly due to hinting (so you +can't assume that metrics are independent of the transformation +matrix), but otherwise will remain unchanged.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

double ascent;

the distance that the font extends above the baseline. +Note that this is not always exactly equal to the maximum +of the extents of all the glyphs in the font, but rather +is picked to express the font designer's intent as to +how the font should align with elements above it.

 

double descent;

the distance that the font extends below the baseline. +This value is positive for typical fonts that include +portions below the baseline. Note that this is not always +exactly equal to the maximum of the extents of all the +glyphs in the font, but rather is picked to express the +font designer's intent as to how the font should +align with elements below it.

 

double height;

the recommended vertical distance between baselines when +setting consecutive lines of text with the font. This +is greater than ascent ++descent +by a +quantity known as the line spacing +or external leading. When space +is at a premium, most fonts can be set with only +a distance of ascent ++descent +between lines.

 

double max_x_advance;

the maximum distance in the X direction that +the origin is advanced for any glyph in the font.

 

double max_y_advance;

the maximum distance in the Y direction that +the origin is advanced for any glyph in the font. +This will be zero for normal fonts used for horizontal +writing. (The scripts of East Asia are sometimes written +vertically.)

 
+
+

Since: 1.0

+
+
+
+

cairo_text_extents_t

+
typedef struct {
+    double x_bearing;
+    double y_bearing;
+    double width;
+    double height;
+    double x_advance;
+    double y_advance;
+} cairo_text_extents_t;
+
+

The cairo_text_extents_t structure stores the extents of a single +glyph or a string of glyphs in user-space coordinates. Because text +extents are in user-space coordinates, they are mostly, but not +entirely, independent of the current transformation matrix. If you call +cairo_scale(cr, 2.0, 2.0), text will +be drawn twice as big, but the reported text extents will not be +doubled. They will change slightly due to hinting (so you can't +assume that metrics are independent of the transformation matrix), +but otherwise will remain unchanged.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

double x_bearing;

the horizontal distance from the origin to the +leftmost part of the glyphs as drawn. Positive if the +glyphs lie entirely to the right of the origin.

 

double y_bearing;

the vertical distance from the origin to the +topmost part of the glyphs as drawn. Positive only if the +glyphs lie completely below the origin; will usually be +negative.

 

double width;

width of the glyphs as drawn

 

double height;

height of the glyphs as drawn

 

double x_advance;

distance to advance in the X direction +after drawing these glyphs

 

double y_advance;

distance to advance in the Y direction +after drawing these glyphs. Will typically be zero except +for vertical text layout as found in East-Asian languages.

 
+
+

Since: 1.0

+
+
+ +
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/cairo-cairo-surface-t.html b/libs/cairo-1.16.0/doc/public/html/cairo-cairo-surface-t.html new file mode 100644 index 0000000..edfd7c3 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/cairo-cairo-surface-t.html @@ -0,0 +1,2130 @@ + + + + +cairo_surface_t: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+
+
+ + +
+

cairo_surface_t

+

cairo_surface_t — Base class for surfaces

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+cairo_surface_t * + +cairo_surface_create_similar () +
+cairo_surface_t * + +cairo_surface_create_similar_image () +
+cairo_surface_t * + +cairo_surface_create_for_rectangle () +
+cairo_surface_t * + +cairo_surface_reference () +
+void + +cairo_surface_destroy () +
+cairo_status_t + +cairo_surface_status () +
+void + +cairo_surface_finish () +
+void + +cairo_surface_flush () +
+cairo_device_t * + +cairo_surface_get_device () +
+void + +cairo_surface_get_font_options () +
+cairo_content_t + +cairo_surface_get_content () +
+void + +cairo_surface_mark_dirty () +
+void + +cairo_surface_mark_dirty_rectangle () +
+void + +cairo_surface_set_device_offset () +
+void + +cairo_surface_get_device_offset () +
+void + +cairo_surface_get_device_scale () +
+void + +cairo_surface_set_device_scale () +
+void + +cairo_surface_set_fallback_resolution () +
+void + +cairo_surface_get_fallback_resolution () +
+cairo_surface_type_t + +cairo_surface_get_type () +
unsigned int + +cairo_surface_get_reference_count () +
+cairo_status_t + +cairo_surface_set_user_data () +
+void * + +cairo_surface_get_user_data () +
+void + +cairo_surface_copy_page () +
+void + +cairo_surface_show_page () +
+cairo_bool_t + +cairo_surface_has_show_text_glyphs () +
+cairo_status_t + +cairo_surface_set_mime_data () +
+void + +cairo_surface_get_mime_data () +
+cairo_bool_t + +cairo_surface_supports_mime_type () +
+cairo_surface_t * + +cairo_surface_map_to_image () +
+void + +cairo_surface_unmap_image () +
+
+
+

Types and Values

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#defineCAIRO_HAS_MIME_SURFACE
#defineCAIRO_MIME_TYPE_CCITT_FAX
#defineCAIRO_MIME_TYPE_CCITT_FAX_PARAMS
#defineCAIRO_MIME_TYPE_EPS
#defineCAIRO_MIME_TYPE_EPS_PARAMS
#defineCAIRO_MIME_TYPE_JBIG2
#defineCAIRO_MIME_TYPE_JBIG2_GLOBAL
#defineCAIRO_MIME_TYPE_JBIG2_GLOBAL_ID
#defineCAIRO_MIME_TYPE_JP2
#defineCAIRO_MIME_TYPE_JPEG
#defineCAIRO_MIME_TYPE_PNG
#defineCAIRO_MIME_TYPE_URI
#defineCAIRO_MIME_TYPE_UNIQUE_ID
typedefcairo_surface_t
enumcairo_content_t
enumcairo_surface_type_t
+
+
+

Description

+

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 context.

+

A cairo surface is created by using backend-specific +constructors, typically of the form +cairo_backend_surface_create().

+

Most surface types allow accessing the surface without using Cairo +functions. If you do this, keep in mind that it is mandatory that you call +cairo_surface_flush() before reading from or writing to the surface and that +you must use cairo_surface_mark_dirty() after modifying it.

+
+

Example 1. Directly modifying an image surface

+
+ + + + + + + +
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
void
+modify_image_surface (cairo_surface_t *surface)
+{
+  unsigned char *data;
+  int width, height, stride;
+
+  // flush to ensure all writing to the image was done
+  cairo_surface_flush (surface);
+
+  // modify the image
+  data = cairo_image_surface_get_data (surface);
+  width = cairo_image_surface_get_width (surface);
+  height = cairo_image_surface_get_height (surface);
+  stride = cairo_image_surface_get_stride (surface);
+  modify_image_data (data, width, height, stride);
+
+  // mark the image dirty so Cairo clears its caches.
+  cairo_surface_mark_dirty (surface);
+}
+
+ +
+

Note that for other surface types it might be necessary to acquire the +surface's device first. See cairo_device_acquire() for a discussion of +devices.

+
+
+

Functions

+
+

cairo_surface_create_similar ()

+
cairo_surface_t *
+cairo_surface_create_similar (cairo_surface_t *other,
+                              cairo_content_t content,
+                              int width,
+                              int height);
+

Create a new surface that is as compatible as possible with an +existing surface. For example the new surface will have the same +device scale, fallback resolution and font options as +other +. Generally, the new surface will also use the same backend +as other +, unless that is not possible for some reason. The type of +the returned surface may be examined with +cairo_surface_get_type().

+

Initially the surface contents are all 0 (transparent if contents +have transparency, black otherwise.)

+

Use cairo_surface_create_similar_image() if you need an image surface +which can be painted quickly to the target surface.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

other

an existing surface used to select the backend of the new surface

 

content

the content for the new surface

 

width

width of the new surface, (in device-space units)

 

height

height of the new surface (in device-space units)

 
+
+
+

Returns

+

a pointer to the newly allocated surface. The caller +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 other +is already in an error state +or any other error occurs.

+
+

Since: 1.0

+
+
+
+

cairo_surface_create_similar_image ()

+
cairo_surface_t *
+cairo_surface_create_similar_image (cairo_surface_t *other,
+                                    cairo_format_t format,
+                                    int width,
+                                    int height);
+

Create a new image surface that is as compatible as possible for uploading +to and the use in conjunction with an existing surface. However, this surface +can still be used like any normal image surface. Unlike +cairo_surface_create_similar() the new image surface won't inherit +the device scale from other +.

+

Initially the surface contents are all 0 (transparent if contents +have transparency, black otherwise.)

+

Use cairo_surface_create_similar() if you don't need an image surface.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

other

an existing surface used to select the preference of the new surface

 

format

the format for the new surface

 

width

width of the new surface, (in pixels)

 

height

height of the new surface (in pixels)

 
+
+
+

Returns

+

a pointer to the newly allocated image surface. The caller +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 other +is already in an error state +or any other error occurs.

+
+

Since: 1.12

+
+
+
+

cairo_surface_create_for_rectangle ()

+
cairo_surface_t *
+cairo_surface_create_for_rectangle (cairo_surface_t *target,
+                                    double x,
+                                    double y,
+                                    double width,
+                                    double height);
+

Create a new surface that is a rectangle within the target surface. +All operations drawn to this surface are then clipped and translated +onto the target surface. Nothing drawn via this sub-surface outside of +its bounds is drawn onto the target surface, making this a useful method +for passing constrained child surfaces to library routines that draw +directly onto the parent surface, i.e. with no further backend allocations, +double buffering or copies.

+

The semantics of subsurfaces have not been finalized yet +unless the rectangle is in full device units, is contained within +the extents of the target surface, and the target or subsurface's +device transforms are not changed.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

target

an existing surface for which the sub-surface will point to

 

x

the x-origin of the sub-surface from the top-left of the target surface (in device-space units)

 

y

the y-origin of the sub-surface from the top-left of the target surface (in device-space units)

 

width

width of the sub-surface (in device-space units)

 

height

height of the sub-surface (in device-space units)

 
+
+
+

Returns

+

a pointer to the newly allocated surface. The caller +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 other +is already in an error state +or any other error occurs.

+
+

Since: 1.10

+
+
+
+

cairo_surface_reference ()

+
cairo_surface_t *
+cairo_surface_reference (cairo_surface_t *surface);
+

Increases the reference count on surface + by one. This prevents +surface + from being destroyed until a matching call to +cairo_surface_destroy() is made.

+

Use cairo_surface_get_reference_count() to get the number of +references to a cairo_surface_t.

+
+

Parameters

+
+++++ + + + + + +

surface

a cairo_surface_t

 
+
+
+

Returns

+

the referenced cairo_surface_t.

+
+

Since: 1.0

+
+
+
+

cairo_surface_destroy ()

+
void
+cairo_surface_destroy (cairo_surface_t *surface);
+

Decreases the reference count on surface + by one. If the result is +zero, then surface + and all associated resources are freed. See +cairo_surface_reference().

+
+

Parameters

+
+++++ + + + + + +

surface

a cairo_surface_t

 
+
+

Since: 1.0

+
+
+
+

cairo_surface_status ()

+
cairo_status_t
+cairo_surface_status (cairo_surface_t *surface);
+

Checks whether an error has previously occurred for this +surface.

+
+

Parameters

+
+++++ + + + + + +

surface

a cairo_surface_t

 
+
+ +

Since: 1.0

+
+
+
+

cairo_surface_finish ()

+
void
+cairo_surface_finish (cairo_surface_t *surface);
+

This function finishes the surface and drops all references to +external resources. For example, for the Xlib backend it means +that cairo will no longer access the drawable, which can be freed. +After calling cairo_surface_finish() the only valid operations on a +surface are getting and setting user, referencing and +destroying, and flushing and finishing it. +Further drawing to the surface will not affect the +surface but will instead trigger a CAIRO_STATUS_SURFACE_FINISHED +error.

+

When the last call to cairo_surface_destroy() decreases the +reference count to zero, cairo will call cairo_surface_finish() if +it hasn't been called already, before freeing the resources +associated with the surface.

+
+

Parameters

+
+++++ + + + + + +

surface

the cairo_surface_t to finish

 
+
+

Since: 1.0

+
+
+
+

cairo_surface_flush ()

+
void
+cairo_surface_flush (cairo_surface_t *surface);
+

Do any pending drawing for the surface and also restore any temporary +modifications cairo has made to the surface's state. This function +must be called before switching from drawing on the surface with +cairo to drawing on it directly with native APIs, or accessing its +memory outside of Cairo. If the surface doesn't support direct +access, then this function does nothing.

+
+

Parameters

+
+++++ + + + + + +

surface

a cairo_surface_t

 
+
+

Since: 1.0

+
+
+
+

cairo_surface_get_device ()

+
cairo_device_t *
+cairo_surface_get_device (cairo_surface_t *surface);
+

This function returns the device for a surface +. +See cairo_device_t.

+
+

Parameters

+
+++++ + + + + + +

surface

a cairo_surface_t

 
+
+
+

Returns

+

The device for surface +or NULL if the surface does +not have an associated device.

+
+

Since: 1.10

+
+
+
+

cairo_surface_get_font_options ()

+
void
+cairo_surface_get_font_options (cairo_surface_t *surface,
+                                cairo_font_options_t *options);
+

Retrieves the default font rendering options for the surface. +This allows display surfaces to report the correct subpixel order +for rendering on them, print surfaces to disable hinting of +metrics and so forth. The result can then be used with +cairo_scaled_font_create().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

surface

a cairo_surface_t

 

options

a cairo_font_options_t object into which to store +the retrieved options. All existing values are overwritten

 
+
+

Since: 1.0

+
+
+
+

cairo_surface_get_content ()

+
cairo_content_t
+cairo_surface_get_content (cairo_surface_t *surface);
+

This function returns the content type of surface + which indicates +whether the surface contains color and/or alpha information. See +cairo_content_t.

+
+

Parameters

+
+++++ + + + + + +

surface

a cairo_surface_t

 
+
+
+

Returns

+

The content type of surface +.

+
+

Since: 1.2

+
+
+
+

cairo_surface_mark_dirty ()

+
void
+cairo_surface_mark_dirty (cairo_surface_t *surface);
+

Tells cairo that drawing has been done to surface using means other +than cairo, and that cairo should reread any cached areas. Note +that you must call cairo_surface_flush() before doing such drawing.

+
+

Parameters

+
+++++ + + + + + +

surface

a cairo_surface_t

 
+
+

Since: 1.0

+
+
+
+

cairo_surface_mark_dirty_rectangle ()

+
void
+cairo_surface_mark_dirty_rectangle (cairo_surface_t *surface,
+                                    int x,
+                                    int y,
+                                    int width,
+                                    int height);
+

Like cairo_surface_mark_dirty(), but drawing has been done only to +the specified rectangle, so that cairo can retain cached contents +for other parts of the surface.

+

Any cached clip set on the surface will be reset by this function, +to make sure that future cairo calls have the clip set that they +expect.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

surface

a cairo_surface_t

 

x

X coordinate of dirty rectangle

 

y

Y coordinate of dirty rectangle

 

width

width of dirty rectangle

 

height

height of dirty rectangle

 
+
+

Since: 1.0

+
+
+
+

cairo_surface_set_device_offset ()

+
void
+cairo_surface_set_device_offset (cairo_surface_t *surface,
+                                 double x_offset,
+                                 double y_offset);
+

Sets an offset that is added to the device coordinates determined +by the CTM when drawing to surface +. One use case for this function +is when we want to create a cairo_surface_t that redirects drawing +for a portion of an onscreen surface to an offscreen surface in a +way that is completely invisible to the user of the cairo +API. Setting a transformation via cairo_translate() isn't +sufficient to do this, since functions like +cairo_device_to_user() will expose the hidden offset.

+

Note that the offset affects drawing to the surface as well as +using the surface in a source pattern.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

surface

a cairo_surface_t

 

x_offset

the offset in the X direction, in device units

 

y_offset

the offset in the Y direction, in device units

 
+
+

Since: 1.0

+
+
+
+

cairo_surface_get_device_offset ()

+
void
+cairo_surface_get_device_offset (cairo_surface_t *surface,
+                                 double *x_offset,
+                                 double *y_offset);
+

This function returns the previous device offset set by +cairo_surface_set_device_offset().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

surface

a cairo_surface_t

 

x_offset

the offset in the X direction, in device units

 

y_offset

the offset in the Y direction, in device units

 
+
+

Since: 1.2

+
+
+
+

cairo_surface_get_device_scale ()

+
void
+cairo_surface_get_device_scale (cairo_surface_t *surface,
+                                double *x_scale,
+                                double *y_scale);
+

This function returns the previous device offset set by +cairo_surface_set_device_scale().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

surface

a cairo_surface_t

 

x_scale

the scale in the X direction, in device units

 

y_scale

the scale in the Y direction, in device units

 
+
+

Since: 1.14

+
+
+
+

cairo_surface_set_device_scale ()

+
void
+cairo_surface_set_device_scale (cairo_surface_t *surface,
+                                double x_scale,
+                                double y_scale);
+

Sets a scale that is multiplied to the device coordinates determined +by the CTM when drawing to surface +. One common use for this is to +render to very high resolution display devices at a scale factor, so +that code that assumes 1 pixel will be a certain size will still work. +Setting a transformation via cairo_translate() isn't +sufficient to do this, since functions like +cairo_device_to_user() will expose the hidden scale.

+

Note that the scale affects drawing to the surface as well as +using the surface in a source pattern.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

surface

a cairo_surface_t

 

x_scale

a scale factor in the X direction

 

y_scale

a scale factor in the Y direction

 
+
+

Since: 1.14

+
+
+
+

cairo_surface_set_fallback_resolution ()

+
void
+cairo_surface_set_fallback_resolution (cairo_surface_t *surface,
+                                       double x_pixels_per_inch,
+                                       double y_pixels_per_inch);
+

Set the horizontal and vertical resolution for image fallbacks.

+

When certain operations aren't supported natively by a backend, +cairo will fallback by rendering operations to an image and then +overlaying that image onto the output. For backends that are +natively vector-oriented, this function can be used to set the +resolution used for these image fallbacks, (larger values will +result in more detailed images, but also larger file sizes).

+

Some examples of natively vector-oriented backends are the ps, pdf, +and svg backends.

+

For backends that are natively raster-oriented, image fallbacks are +still possible, but they are always performed at the native +device resolution. So this function has no effect on those +backends.

+

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.

+

The default fallback resoultion is 300 pixels per inch in both +dimensions.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

surface

a cairo_surface_t

 

x_pixels_per_inch

horizontal setting for pixels per inch

 

y_pixels_per_inch

vertical setting for pixels per inch

 
+
+

Since: 1.2

+
+
+
+

cairo_surface_get_fallback_resolution ()

+
void
+cairo_surface_get_fallback_resolution (cairo_surface_t *surface,
+                                       double *x_pixels_per_inch,
+                                       double *y_pixels_per_inch);
+

This function returns the previous fallback resolution set by +cairo_surface_set_fallback_resolution(), or default fallback +resolution if never set.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

surface

a cairo_surface_t

 

x_pixels_per_inch

horizontal pixels per inch

 

y_pixels_per_inch

vertical pixels per inch

 
+
+

Since: 1.8

+
+
+
+

cairo_surface_get_type ()

+
cairo_surface_type_t
+cairo_surface_get_type (cairo_surface_t *surface);
+

This function returns the type of the backend used to create +a surface. See cairo_surface_type_t for available types.

+
+

Parameters

+
+++++ + + + + + +

surface

a cairo_surface_t

 
+
+
+

Returns

+

The type of surface +.

+
+

Since: 1.2

+
+
+
+

cairo_surface_get_reference_count ()

+
unsigned int
+cairo_surface_get_reference_count (cairo_surface_t *surface);
+

Returns the current reference count of surface +.

+
+

Parameters

+
+++++ + + + + + +

surface

a cairo_surface_t

 
+
+
+

Returns

+

the current reference count of surface +. If the +object is a nil object, 0 will be returned.

+
+

Since: 1.4

+
+
+
+

cairo_surface_set_user_data ()

+
cairo_status_t
+cairo_surface_set_user_data (cairo_surface_t *surface,
+                             const cairo_user_data_key_t *key,
+                             void *user_data,
+                             cairo_destroy_func_t destroy);
+

Attach user data to surface +. To remove user data from a surface, +call this function with the key that was used to set it and NULL +for data +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

surface

a cairo_surface_t

 

key

the address of a cairo_user_data_key_t to attach the user data to

 

user_data

the user data to attach to the surface

 

destroy

a cairo_destroy_func_t which will be called when the +surface is destroyed or when new user data is attached using the +same key.

 
+
+
+

Returns

+

CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY if a +slot could not be allocated for the user data.

+
+

Since: 1.0

+
+
+
+

cairo_surface_get_user_data ()

+
void *
+cairo_surface_get_user_data (cairo_surface_t *surface,
+                             const cairo_user_data_key_t *key);
+

Return user data previously attached to surface + using the specified +key. If no user data has been attached with the given key this +function returns NULL.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

surface

a cairo_surface_t

 

key

the address of the cairo_user_data_key_t the user data was +attached to

 
+
+
+

Returns

+

the user data previously attached or NULL.

+
+

Since: 1.0

+
+
+
+

cairo_surface_copy_page ()

+
void
+cairo_surface_copy_page (cairo_surface_t *surface);
+

Emits the current page for backends that support multiple pages, +but doesn't clear it, so that the contents of the current page will +be retained for the next page. Use cairo_surface_show_page() if you +want to get an empty page after the emission.

+

There is a convenience function for this that takes a cairo_t, +namely cairo_copy_page().

+
+

Parameters

+
+++++ + + + + + +

surface

a cairo_surface_t

 
+
+

Since: 1.6

+
+
+
+

cairo_surface_show_page ()

+
void
+cairo_surface_show_page (cairo_surface_t *surface);
+

Emits and clears the current page for backends that support multiple +pages. Use cairo_surface_copy_page() if you don't want to clear the page.

+

There is a convenience function for this that takes a cairo_t, +namely cairo_show_page().

+
+

Parameters

+
+++++ + + + + + +

surface

a cairo_Surface_t

 
+
+

Since: 1.6

+
+
+
+

cairo_surface_has_show_text_glyphs ()

+
cairo_bool_t
+cairo_surface_has_show_text_glyphs (cairo_surface_t *surface);
+

Returns whether the surface supports +sophisticated cairo_show_text_glyphs() operations. That is, +whether it actually uses the provided text and cluster data +to a cairo_show_text_glyphs() call.

+

Note: Even if this function returns FALSE, a +cairo_show_text_glyphs() operation targeted at surface + will +still succeed. It just will +act like a cairo_show_glyphs() operation. Users can use this +function to avoid computing UTF-8 text and cluster mapping if the +target surface does not use it.

+
+

Parameters

+
+++++ + + + + + +

surface

a cairo_surface_t

 
+
+
+

Returns

+

TRUE if surface +supports +cairo_show_text_glyphs(), FALSE otherwise

+
+

Since: 1.8

+
+
+
+

cairo_surface_set_mime_data ()

+
cairo_status_t
+cairo_surface_set_mime_data (cairo_surface_t *surface,
+                             const char *mime_type,
+                             const unsigned char *data,
+                             unsigned long  length,
+                             cairo_destroy_func_t destroy,
+                             void *closure);
+

Attach an image in the format mime_type + to surface +. To remove +the data from a surface, call this function with same mime type +and NULL for data +.

+

The attached image (or filename) data can later be used by backends +which support it (currently: PDF, PS, SVG and Win32 Printing +surfaces) to emit this data instead of making a snapshot of the +surface +. This approach tends to be faster and requires less +memory and disk space.

+

The recognized MIME types are the following: CAIRO_MIME_TYPE_JPEG, +CAIRO_MIME_TYPE_PNG, CAIRO_MIME_TYPE_JP2, CAIRO_MIME_TYPE_URI, +CAIRO_MIME_TYPE_UNIQUE_ID, CAIRO_MIME_TYPE_JBIG2, +CAIRO_MIME_TYPE_JBIG2_GLOBAL, CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID, +CAIRO_MIME_TYPE_CCITT_FAX, CAIRO_MIME_TYPE_CCITT_FAX_PARAMS.

+

See corresponding backend surface docs for details about which MIME +types it can handle. Caution: the associated MIME data will be +discarded if you draw on the surface afterwards. Use this function +with care.

+

Even if a backend supports a MIME type, that does not mean cairo +will always be able to use the attached MIME data. For example, if +the backend does not natively support the compositing operation used +to apply the MIME data to the backend. In that case, the MIME data +will be ignored. Therefore, to apply an image in all cases, it is best +to create an image surface which contains the decoded image data and +then attach the MIME data to that. This ensures the image will always +be used while still allowing the MIME data to be used whenever +possible.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

surface

a cairo_surface_t

 

mime_type

the MIME type of the image data

 

data

the image data to attach to the surface

 

length

the length of the image data

 

destroy

a cairo_destroy_func_t which will be called when the +surface is destroyed or when new image data is attached using the +same mime type.

 

closure

the data to be passed to the destroy +notifier

 
+
+
+

Returns

+

CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY if a +slot could not be allocated for the user data.

+
+

Since: 1.10

+
+
+
+

cairo_surface_get_mime_data ()

+
void
+cairo_surface_get_mime_data (cairo_surface_t *surface,
+                             const char *mime_type,
+                             const unsigned char **data,
+                             unsigned long *length);
+

Return mime data previously attached to surface + using the +specified mime type. If no data has been attached with the given +mime type, data + is set NULL.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

surface

a cairo_surface_t

 

mime_type

the mime type of the image data

 

data

the image data to attached to the surface

 

length

the length of the image data

 
+
+

Since: 1.10

+
+
+
+

cairo_surface_supports_mime_type ()

+
cairo_bool_t
+cairo_surface_supports_mime_type (cairo_surface_t *surface,
+                                  const char *mime_type);
+

Return whether surface + supports mime_type +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

surface

a cairo_surface_t

 

mime_type

the mime type

 
+
+
+

Returns

+

TRUE if surface +supports +mime_type +, FALSE otherwise

+
+

Since: 1.12

+
+
+
+

cairo_surface_map_to_image ()

+
cairo_surface_t *
+cairo_surface_map_to_image (cairo_surface_t *surface,
+                            const cairo_rectangle_int_t *extents);
+

Returns an image surface that is the most efficient mechanism for +modifying the backing store of the target surface. The region retrieved +may be limited to the extents + or NULL for the whole surface

+

Note, the use of the original surface as a target or source whilst +it is mapped is undefined. The result of mapping the surface +multiple times is undefined. Calling cairo_surface_destroy() or +cairo_surface_finish() on the resulting image surface results in +undefined behavior. Changing the device transform of the image +surface or of surface + before the image surface is unmapped results +in undefined behavior.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

surface

an existing surface used to extract the image from

 

extents

limit the extraction to an rectangular region

 
+
+
+

Returns

+

a pointer to the newly allocated image surface. The caller +must use cairo_surface_unmap_image() to destroy this image surface.

+

This function always returns a valid pointer, but it will return a +pointer to a "nil" surface if other +is already in an error state +or any other error occurs. If the returned pointer does not have an +error status, it is guaranteed to be an image surface whose format +is not CAIRO_FORMAT_INVALID.

+
+

Since: 1.12

+
+
+
+

cairo_surface_unmap_image ()

+
void
+cairo_surface_unmap_image (cairo_surface_t *surface,
+                           cairo_surface_t *image);
+

Unmaps the image surface as returned from cairo_surface_map_to_image().

+

The content of the image will be uploaded to the target surface. +Afterwards, the image is destroyed.

+

Using an image surface which wasn't returned by cairo_surface_map_to_image() +results in undefined behavior.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

surface

the surface passed to cairo_surface_map_to_image().

 

image

the currently mapped image

 
+
+

Since: 1.12

+
+
+
+

Types and Values

+
+

CAIRO_HAS_MIME_SURFACE

+
#define CAIRO_HAS_MIME_SURFACE 1
+
+
+
+
+

CAIRO_MIME_TYPE_CCITT_FAX

+
#define CAIRO_MIME_TYPE_CCITT_FAX "image/g3fax"
+
+

Group 3 or Group 4 CCITT facsimile encoding (International +Telecommunication Union, Recommendations T.4 and T.6.)

+

Since: 1.16

+
+
+
+

CAIRO_MIME_TYPE_CCITT_FAX_PARAMS

+
#define CAIRO_MIME_TYPE_CCITT_FAX_PARAMS "application/x-cairo.ccitt.params"
+
+

Decode parameters for Group 3 or Group 4 CCITT facsimile encoding. +See CCITT Fax Images.

+

Since: 1.16

+
+
+
+

CAIRO_MIME_TYPE_EPS

+
#define CAIRO_MIME_TYPE_EPS "application/postscript"
+
+

Encapsulated PostScript file. +Encapsulated PostScript File Format Specification

+

Since: 1.16

+
+
+
+

CAIRO_MIME_TYPE_EPS_PARAMS

+
#define CAIRO_MIME_TYPE_EPS_PARAMS "application/x-cairo.eps.params"
+
+

Embedding parameters Encapsulated PostScript data. +See Embedding EPS files.

+

Since: 1.16

+
+
+
+

CAIRO_MIME_TYPE_JBIG2

+
#define CAIRO_MIME_TYPE_JBIG2 "application/x-cairo.jbig2"
+
+

Joint Bi-level Image Experts Group image coding standard (ISO/IEC 11544).

+

Since: 1.14

+
+
+
+

CAIRO_MIME_TYPE_JBIG2_GLOBAL

+
#define CAIRO_MIME_TYPE_JBIG2_GLOBAL "application/x-cairo.jbig2-global"
+
+

Joint Bi-level Image Experts Group image coding standard (ISO/IEC 11544) global segment.

+

Since: 1.14

+
+
+
+

CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID

+
#define CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID "application/x-cairo.jbig2-global-id"
+
+

An unique identifier shared by a JBIG2 global segment and all JBIG2 images +that depend on the global segment.

+

Since: 1.14

+
+
+
+

CAIRO_MIME_TYPE_JP2

+
#define CAIRO_MIME_TYPE_JP2 "image/jp2"
+
+

The Joint Photographic Experts Group (JPEG) 2000 image coding standard (ISO/IEC 15444-1).

+

Since: 1.10

+
+
+
+

CAIRO_MIME_TYPE_JPEG

+
#define CAIRO_MIME_TYPE_JPEG "image/jpeg"
+
+

The Joint Photographic Experts Group (JPEG) image coding standard (ISO/IEC 10918-1).

+

Since: 1.10

+
+
+
+

CAIRO_MIME_TYPE_PNG

+
#define CAIRO_MIME_TYPE_PNG "image/png"
+
+

The Portable Network Graphics image file format (ISO/IEC 15948).

+

Since: 1.10

+
+
+
+

CAIRO_MIME_TYPE_URI

+
#define CAIRO_MIME_TYPE_URI "text/x-uri"
+
+

URI for an image file (unofficial MIME type).

+

Since: 1.10

+
+
+
+

CAIRO_MIME_TYPE_UNIQUE_ID

+
#define CAIRO_MIME_TYPE_UNIQUE_ID "application/x-cairo.uuid"
+
+

Unique identifier for a surface (cairo specific MIME type). All surfaces with +the same unique identifier will only be embedded once.

+

Since: 1.12

+
+
+
+

cairo_surface_t

+
typedef struct _cairo_surface cairo_surface_t;
+
+

A cairo_surface_t represents an image, either as the destination +of a drawing operation or as source when drawing onto another +surface. To draw to a cairo_surface_t, create a cairo context +with the surface as the target, using cairo_create().

+

There are different subtypes of cairo_surface_t for +different drawing backends; for example, cairo_image_surface_create() +creates a bitmap image in memory. +The type of a surface can be queried with cairo_surface_get_type().

+

The initial contents of a surface after creation depend upon the manner +of its creation. If cairo creates the surface and backing storage for +the user, it will be initially cleared; for example, +cairo_image_surface_create() and cairo_surface_create_similar(). +Alternatively, if the user passes in a reference to some backing storage +and asks cairo to wrap that in a cairo_surface_t, then the contents are +not modified; for example, cairo_image_surface_create_for_data() and +cairo_xlib_surface_create().

+

Memory management of cairo_surface_t is done with +cairo_surface_reference() and cairo_surface_destroy().

+

Since: 1.0

+
+
+
+

enum cairo_content_t

+

cairo_content_t is used to describe the content that a surface will +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 +implementation can detect the error if users confuse the two types.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + +

CAIRO_CONTENT_COLOR

+

The surface will hold color content only. (Since 1.0)

+
 

CAIRO_CONTENT_ALPHA

+

The surface will hold alpha content only. (Since 1.0)

+
 

CAIRO_CONTENT_COLOR_ALPHA

+

The surface will hold color and alpha content. (Since 1.0)

+
 
+
+

Since: 1.0

+
+
+
+

enum cairo_surface_type_t

+

cairo_surface_type_t is used to describe the type of a given +surface. The surface types are also known as "backends" or "surface +backends" within cairo.

+

The type of a surface is determined by the function used to create +it, which will generally be of the form +cairo_type_surface_create(), +(though see cairo_surface_create_similar() as well).

+

The surface type can be queried with cairo_surface_get_type()

+

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 +cairo_type_surface such as cairo_image_surface_get_width().

+

The behavior of calling a type-specific function with a surface of +the wrong type is undefined.

+

New entries may be added in future versions.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

CAIRO_SURFACE_TYPE_IMAGE

+

The surface is of type image, since 1.2

+
 

CAIRO_SURFACE_TYPE_PDF

+

The surface is of type pdf, since 1.2

+
 

CAIRO_SURFACE_TYPE_PS

+

The surface is of type ps, since 1.2

+
 

CAIRO_SURFACE_TYPE_XLIB

+

The surface is of type xlib, since 1.2

+
 

CAIRO_SURFACE_TYPE_XCB

+

The surface is of type xcb, since 1.2

+
 

CAIRO_SURFACE_TYPE_GLITZ

+

The surface is of type glitz, since 1.2

+
 

CAIRO_SURFACE_TYPE_QUARTZ

+

The surface is of type quartz, since 1.2

+
 

CAIRO_SURFACE_TYPE_WIN32

+

The surface is of type win32, since 1.2

+
 

CAIRO_SURFACE_TYPE_BEOS

+

The surface is of type beos, since 1.2

+
 

CAIRO_SURFACE_TYPE_DIRECTFB

+

The surface is of type directfb, since 1.2

+
 

CAIRO_SURFACE_TYPE_SVG

+

The surface is of type svg, since 1.2

+
 

CAIRO_SURFACE_TYPE_OS2

+

The surface is of type os2, since 1.4

+
 

CAIRO_SURFACE_TYPE_WIN32_PRINTING

+

The surface is a win32 printing surface, since 1.6

+
 

CAIRO_SURFACE_TYPE_QUARTZ_IMAGE

+

The surface is of type quartz_image, since 1.6

+
 

CAIRO_SURFACE_TYPE_SCRIPT

+

The surface is of type script, since 1.10

+
 

CAIRO_SURFACE_TYPE_QT

+

The surface is of type Qt, since 1.10

+
 

CAIRO_SURFACE_TYPE_RECORDING

+

The surface is of type recording, since 1.10

+
 

CAIRO_SURFACE_TYPE_VG

+

The surface is a OpenVG surface, since 1.10

+
 

CAIRO_SURFACE_TYPE_GL

+

The surface is of type OpenGL, since 1.10

+
 

CAIRO_SURFACE_TYPE_DRM

+

The surface is of type Direct Render Manager, since 1.10

+
 

CAIRO_SURFACE_TYPE_TEE

+

The surface is of type 'tee' (a multiplexing surface), since 1.10

+
 

CAIRO_SURFACE_TYPE_XML

+

The surface is of type XML (for debugging), since 1.10

+
 

CAIRO_SURFACE_TYPE_SKIA

  

CAIRO_SURFACE_TYPE_SUBSURFACE

+

The surface is a subsurface created with + cairo_surface_create_for_rectangle(), since 1.10

+
 

CAIRO_SURFACE_TYPE_COGL

+

This surface is of type Cogl, since 1.12

+
 
+
+

Since: 1.2

+
+
+
+

See Also

+

cairo_t, cairo_pattern_t

+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/cairo-cairo-t.html b/libs/cairo-1.16.0/doc/public/html/cairo-cairo-t.html new file mode 100644 index 0000000..27d9753 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/cairo-cairo-t.html @@ -0,0 +1,3488 @@ + + + + +cairo_t: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+
+
+ + +
+

cairo_t

+

cairo_t — The cairo drawing context

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+cairo_t * + +cairo_create () +
+cairo_t * + +cairo_reference () +
+void + +cairo_destroy () +
+cairo_status_t + +cairo_status () +
+void + +cairo_save () +
+void + +cairo_restore () +
+cairo_surface_t * + +cairo_get_target () +
+void + +cairo_push_group () +
+void + +cairo_push_group_with_content () +
+cairo_pattern_t * + +cairo_pop_group () +
+void + +cairo_pop_group_to_source () +
+cairo_surface_t * + +cairo_get_group_target () +
+void + +cairo_set_source_rgb () +
+void + +cairo_set_source_rgba () +
+void + +cairo_set_source () +
+void + +cairo_set_source_surface () +
+cairo_pattern_t * + +cairo_get_source () +
+void + +cairo_set_antialias () +
+cairo_antialias_t + +cairo_get_antialias () +
+void + +cairo_set_dash () +
+int + +cairo_get_dash_count () +
+void + +cairo_get_dash () +
+void + +cairo_set_fill_rule () +
+cairo_fill_rule_t + +cairo_get_fill_rule () +
+void + +cairo_set_line_cap () +
+cairo_line_cap_t + +cairo_get_line_cap () +
+void + +cairo_set_line_join () +
+cairo_line_join_t + +cairo_get_line_join () +
+void + +cairo_set_line_width () +
+double + +cairo_get_line_width () +
+void + +cairo_set_miter_limit () +
+double + +cairo_get_miter_limit () +
+void + +cairo_set_operator () +
+cairo_operator_t + +cairo_get_operator () +
+void + +cairo_set_tolerance () +
+double + +cairo_get_tolerance () +
+void + +cairo_clip () +
+void + +cairo_clip_preserve () +
+void + +cairo_clip_extents () +
+cairo_bool_t + +cairo_in_clip () +
+void + +cairo_reset_clip () +
+void + +cairo_rectangle_list_destroy () +
+cairo_rectangle_list_t * + +cairo_copy_clip_rectangle_list () +
+void + +cairo_fill () +
+void + +cairo_fill_preserve () +
+void + +cairo_fill_extents () +
+cairo_bool_t + +cairo_in_fill () +
+void + +cairo_mask () +
+void + +cairo_mask_surface () +
+void + +cairo_paint () +
+void + +cairo_paint_with_alpha () +
+void + +cairo_stroke () +
+void + +cairo_stroke_preserve () +
+void + +cairo_stroke_extents () +
+cairo_bool_t + +cairo_in_stroke () +
+void + +cairo_copy_page () +
+void + +cairo_show_page () +
unsigned int + +cairo_get_reference_count () +
+cairo_status_t + +cairo_set_user_data () +
+void * + +cairo_get_user_data () +
+
+
+

Types and Values

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
typedefcairo_t
enumcairo_antialias_t
enumcairo_fill_rule_t
enumcairo_line_cap_t
enumcairo_line_join_t
enumcairo_operator_t
 cairo_rectangle_t
 cairo_rectangle_list_t
+
+
+

Description

+

cairo_t is the main object used when drawing with cairo. To +draw with cairo, you create a cairo_t, set the target surface, +and drawing options for the cairo_t, create shapes with +functions like cairo_move_to() and cairo_line_to(), and then +draw shapes with cairo_stroke() or cairo_fill().

+

cairo_t's can be pushed to a stack via cairo_save(). +They may then safely be changed, without losing the current state. +Use cairo_restore() to restore to the saved state.

+
+
+

Functions

+
+

cairo_create ()

+
cairo_t *
+cairo_create (cairo_surface_t *target);
+

Creates a new cairo_t with all graphics state parameters set to +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 +cairo_backend_surface_create() +variant).

+

This function references target +, so you can immediately +call cairo_surface_destroy() on it if you don't need to +maintain a separate reference to it.

+
+

Parameters

+
+++++ + + + + + +

target

target surface for the context

 
+
+
+

Returns

+

a newly allocated cairo_t with a reference +count of 1. The initial reference count should be released +with cairo_destroy() when you are done using the cairo_t. +This function never returns NULL. If memory cannot be +allocated, a special cairo_t object will be returned on +which cairo_status() returns CAIRO_STATUS_NO_MEMORY. If +you attempt to target a surface which does not support +writing (such as cairo_mime_surface_t) then a +CAIRO_STATUS_WRITE_ERROR will be raised. You can use this +object normally, but no drawing will be done.

+
+

Since: 1.0

+
+
+
+

cairo_reference ()

+
cairo_t *
+cairo_reference (cairo_t *cr);
+

Increases the reference count on cr + by one. This prevents +cr + from being destroyed until a matching call to cairo_destroy() +is made.

+

Use cairo_get_reference_count() to get the number of references to +a cairo_t.

+
+

Parameters

+
+++++ + + + + + +

cr

a cairo_t

 
+
+
+

Returns

+

the referenced cairo_t.

+
+

Since: 1.0

+
+
+
+

cairo_destroy ()

+
void
+cairo_destroy (cairo_t *cr);
+

Decreases the reference count on cr + by one. If the result +is zero, then cr + and all associated resources are freed. +See cairo_reference().

+
+

Parameters

+
+++++ + + + + + +

cr

a cairo_t

 
+
+

Since: 1.0

+
+
+
+

cairo_status ()

+
cairo_status_t
+cairo_status (cairo_t *cr);
+

Checks whether an error has previously occurred for this context.

+
+

Parameters

+
+++++ + + + + + +

cr

a cairo context

 
+
+
+

Returns

+

the current status of this context, see cairo_status_t

+
+

Since: 1.0

+
+
+
+

cairo_save ()

+
void
+cairo_save (cairo_t *cr);
+

Makes a copy of the current state of cr + and saves it +on an internal stack of saved states for cr +. When +cairo_restore() is called, cr + will be restored to +the saved state. Multiple calls to cairo_save() and +cairo_restore() can be nested; each call to cairo_restore() +restores the state from the matching paired cairo_save().

+

It isn't necessary to clear all saved states before +a cairo_t is freed. If the reference count of a cairo_t +drops to zero in response to a call to cairo_destroy(), +any saved states will be freed along with the cairo_t.

+
+

Parameters

+
+++++ + + + + + +

cr

a cairo_t

 
+
+

Since: 1.0

+
+
+
+

cairo_restore ()

+
void
+cairo_restore (cairo_t *cr);
+

Restores cr + to the state saved by a preceding call to +cairo_save() and removes that state from the stack of +saved states.

+
+

Parameters

+
+++++ + + + + + +

cr

a cairo_t

 
+
+

Since: 1.0

+
+
+
+

cairo_get_target ()

+
cairo_surface_t *
+cairo_get_target (cairo_t *cr);
+

Gets the target surface for the cairo context as passed to +cairo_create().

+

This function will always return a valid pointer, but the result +can be a "nil" surface if cr + is already in an error state, +(ie. cairo_status() != CAIRO_STATUS_SUCCESS). +A nil surface is indicated by cairo_surface_status() +!= CAIRO_STATUS_SUCCESS.

+
+

Parameters

+
+++++ + + + + + +

cr

a cairo context

 
+
+
+

Returns

+

the target surface. This object is owned by cairo. To +keep a reference to it, you must call cairo_surface_reference().

+
+

Since: 1.0

+
+
+
+

cairo_push_group ()

+
void
+cairo_push_group (cairo_t *cr);
+

Temporarily redirects drawing to an intermediate surface known as a +group. The redirection lasts until the group is completed by a call +to cairo_pop_group() or cairo_pop_group_to_source(). These calls +provide the result of any drawing to the group as a pattern, +(either as an explicit object, or set as the source pattern).

+

This group functionality can be convenient for performing +intermediate compositing. One common use of a group is to render +objects as opaque within the group, (so that they occlude each +other), and then blend the result with translucence onto the +destination.

+

Groups can be nested arbitrarily deep by making balanced calls to +cairo_push_group()/cairo_pop_group(). Each call pushes/pops the new +target group onto/from a stack.

+

The cairo_push_group() function calls cairo_save() so that any +changes to the graphics state will not be visible outside the +group, (the pop_group functions call cairo_restore()).

+

By default the intermediate group will have a content type of +CAIRO_CONTENT_COLOR_ALPHA. Other content types can be chosen for +the group by using cairo_push_group_with_content() instead.

+

As an example, here is how one might fill and stroke a path with +translucence, but without any portion of the fill being visible +under the stroke:

+
+ + + + + + + +
1
+2
+3
+4
+5
+6
+7
cairo_push_group (cr);
+cairo_set_source (cr, fill_pattern);
+cairo_fill_preserve (cr);
+cairo_set_source (cr, stroke_pattern);
+cairo_stroke (cr);
+cairo_pop_group_to_source (cr);
+cairo_paint_with_alpha (cr, alpha);
+
+ +
+

Parameters

+
+++++ + + + + + +

cr

a cairo context

 
+
+

Since: 1.2

+
+
+
+

cairo_push_group_with_content ()

+
void
+cairo_push_group_with_content (cairo_t *cr,
+                               cairo_content_t content);
+

Temporarily redirects drawing to an intermediate surface known as a +group. The redirection lasts until the group is completed by a call +to cairo_pop_group() or cairo_pop_group_to_source(). These calls +provide the result of any drawing to the group as a pattern, +(either as an explicit object, or set as the source pattern).

+

The group will have a content type of content +. The ability to +control this content type is the only distinction between this +function and cairo_push_group() which you should see for a more +detailed description of group rendering.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

cr

a cairo context

 

content

a cairo_content_t indicating the type of group that +will be created

 
+
+

Since: 1.2

+
+
+
+

cairo_pop_group ()

+
cairo_pattern_t *
+cairo_pop_group (cairo_t *cr);
+

Terminates the redirection begun by a call to cairo_push_group() or +cairo_push_group_with_content() and returns a new pattern +containing the results of all drawing operations performed to the +group.

+

The cairo_pop_group() function calls cairo_restore(), (balancing a +call to cairo_save() by the push_group function), so that any +changes to the graphics state will not be visible outside the +group.

+
+

Parameters

+
+++++ + + + + + +

cr

a cairo context

 
+
+
+

Returns

+

a newly created (surface) pattern containing the +results of all drawing operations performed to the group. The +caller owns the returned object and should call +cairo_pattern_destroy() when finished with it.

+
+

Since: 1.2

+
+
+
+

cairo_pop_group_to_source ()

+
void
+cairo_pop_group_to_source (cairo_t *cr);
+

Terminates the redirection begun by a call to cairo_push_group() or +cairo_push_group_with_content() and installs the resulting pattern +as the source pattern in the given cairo context.

+

The behavior of this function is equivalent to the sequence of +operations:

+
+ + + + + + + +
1
+2
+3
cairo_pattern_t *group = cairo_pop_group (cr);
+cairo_set_source (cr, group);
+cairo_pattern_destroy (group);
+
+ +

but is more convenient as their is no need for a variable to store +the short-lived pointer to the pattern.

+

The cairo_pop_group() function calls cairo_restore(), (balancing a +call to cairo_save() by the push_group function), so that any +changes to the graphics state will not be visible outside the +group.

+
+

Parameters

+
+++++ + + + + + +

cr

a cairo context

 
+
+

Since: 1.2

+
+
+
+

cairo_get_group_target ()

+
cairo_surface_t *
+cairo_get_group_target (cairo_t *cr);
+

Gets the current destination surface for the context. This is either +the original target surface as passed to cairo_create() or the target +surface for the current group as started by the most recent call to +cairo_push_group() or cairo_push_group_with_content().

+

This function will always return a valid pointer, but the result +can be a "nil" surface if cr + is already in an error state, +(ie. cairo_status() != CAIRO_STATUS_SUCCESS). +A nil surface is indicated by cairo_surface_status() +!= CAIRO_STATUS_SUCCESS.

+
+

Parameters

+
+++++ + + + + + +

cr

a cairo context

 
+
+
+

Returns

+

the target surface. This object is owned by cairo. To +keep a reference to it, you must call cairo_surface_reference().

+
+

Since: 1.2

+
+
+
+

cairo_set_source_rgb ()

+
void
+cairo_set_source_rgb (cairo_t *cr,
+                      double red,
+                      double green,
+                      double blue);
+

Sets the source pattern within cr + to an opaque color. This opaque +color will then be used for any subsequent drawing operation until +a new source pattern is set.

+

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.

+

The default source pattern is opaque black, (that is, it is +equivalent to cairo_set_source_rgb(cr, 0.0, 0.0, 0.0)).

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

cr

a cairo context

 

red

red component of color

 

green

green component of color

 

blue

blue component of color

 
+
+

Since: 1.0

+
+
+
+

cairo_set_source_rgba ()

+
void
+cairo_set_source_rgba (cairo_t *cr,
+                       double red,
+                       double green,
+                       double blue,
+                       double alpha);
+

Sets the source pattern within cr + to a translucent color. This +color will then be used for any subsequent drawing operation until +a new source pattern is set.

+

The color and alpha components are floating point numbers in the +range 0 to 1. If the values passed in are outside that range, they +will be clamped.

+

The default source pattern is opaque black, (that is, it is +equivalent to cairo_set_source_rgba(cr, 0.0, 0.0, 0.0, 1.0)).

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

cr

a cairo context

 

red

red component of color

 

green

green component of color

 

blue

blue component of color

 

alpha

alpha component of color

 
+
+

Since: 1.0

+
+
+
+

cairo_set_source ()

+
void
+cairo_set_source (cairo_t *cr,
+                  cairo_pattern_t *source);
+

Sets the source pattern within cr + to source +. This pattern +will then be used for any subsequent drawing operation until a new +source pattern is set.

+

Note: The pattern's transformation matrix will be locked to the +user space in effect at the time of cairo_set_source(). This means +that further modifications of the current transformation matrix +will not affect the source pattern. See cairo_pattern_set_matrix().

+

The default source pattern is a solid pattern that is opaque black, +(that is, it is equivalent to cairo_set_source_rgb(cr, 0.0, 0.0, +0.0)).

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

cr

a cairo context

 

source

a cairo_pattern_t to be used as the source for +subsequent drawing operations.

 
+
+

Since: 1.0

+
+
+
+

cairo_set_source_surface ()

+
void
+cairo_set_source_surface (cairo_t *cr,
+                          cairo_surface_t *surface,
+                          double x,
+                          double y);
+

This is a convenience function for creating a pattern from surface + +and setting it as the source in cr + with cairo_set_source().

+

The x + and y + parameters give the user-space coordinate at which +the surface origin should appear. (The surface origin is its +upper-left corner before any transformation has been applied.) The +x + and y + parameters are negated and then set as translation values +in the pattern matrix.

+

Other than the initial translation pattern matrix, as described +above, all other pattern attributes, (such as its extend mode), are +set to the default values as in cairo_pattern_create_for_surface(). +The resulting pattern can be queried with cairo_get_source() so +that these attributes can be modified if desired, (eg. to create a +repeating pattern with cairo_pattern_set_extend()).

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

cr

a cairo context

 

surface

a surface to be used to set the source pattern

 

x

User-space X coordinate for surface origin

 

y

User-space Y coordinate for surface origin

 
+
+

Since: 1.0

+
+
+
+

cairo_get_source ()

+
cairo_pattern_t *
+cairo_get_source (cairo_t *cr);
+

Gets the current source pattern for cr +.

+
+

Parameters

+
+++++ + + + + + +

cr

a cairo context

 
+
+
+

Returns

+

the current source pattern. This object is owned by +cairo. To keep a reference to it, you must call +cairo_pattern_reference().

+
+

Since: 1.0

+
+
+
+

cairo_set_antialias ()

+
void
+cairo_set_antialias (cairo_t *cr,
+                     cairo_antialias_t antialias);
+

Set the antialiasing mode of the rasterizer used for drawing shapes. +This value is a hint, and a particular backend may or may not support +a particular value. At the current time, no backend supports +CAIRO_ANTIALIAS_SUBPIXEL when drawing shapes.

+

Note that this option does not affect text rendering, instead see +cairo_font_options_set_antialias().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

cr

a cairo_t

 

antialias

the new antialiasing mode

 
+
+

Since: 1.0

+
+
+
+

cairo_get_antialias ()

+
cairo_antialias_t
+cairo_get_antialias (cairo_t *cr);
+

Gets the current shape antialiasing mode, as set by +cairo_set_antialias().

+
+

Parameters

+
+++++ + + + + + +

cr

a cairo context

 
+
+
+

Returns

+

the current shape antialiasing mode.

+
+

Since: 1.0

+
+
+
+

cairo_set_dash ()

+
void
+cairo_set_dash (cairo_t *cr,
+                const double *dashes,
+                int num_dashes,
+                double offset);
+

Sets the dash pattern to be used by cairo_stroke(). A dash pattern +is specified by dashes +, an array of positive values. Each value +provides the length of alternate "on" and "off" portions of the +stroke. The offset + specifies an offset into the pattern at which +the stroke begins.

+

Each "on" segment will have caps applied as if the segment were a +separate sub-path. In particular, it is valid to use an "on" length +of 0.0 with CAIRO_LINE_CAP_ROUND or CAIRO_LINE_CAP_SQUARE in order +to distributed dots or squares along a path.

+

Note: The length values are in user-space units as evaluated at the +time of stroking. This is not necessarily the same as the user +space at the time of cairo_set_dash().

+

If num_dashes + is 0 dashing is disabled.

+

If num_dashes + is 1 a symmetric pattern is assumed with alternating +on and off portions of the size specified by the single value in +dashes +.

+

If any value in dashes + is negative, or if all values are 0, then +cr + will be put into an error state with a status of +CAIRO_STATUS_INVALID_DASH.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

cr

a cairo context

 

dashes

an array specifying alternate lengths of on and off stroke portions

 

num_dashes

the length of the dashes array

 

offset

an offset into the dash pattern at which the stroke should start

 
+
+

Since: 1.0

+
+
+
+

cairo_get_dash_count ()

+
int
+cairo_get_dash_count (cairo_t *cr);
+

This function returns the length of the dash array in cr + (0 if dashing +is not currently in effect).

+

See also cairo_set_dash() and cairo_get_dash().

+
+

Parameters

+
+++++ + + + + + +

cr

a cairo_t

 
+
+
+

Returns

+

the length of the dash array, or 0 if no dash array set.

+
+

Since: 1.4

+
+
+
+

cairo_get_dash ()

+
void
+cairo_get_dash (cairo_t *cr,
+                double *dashes,
+                double *offset);
+

Gets the current dash array. If not NULL, dashes + should be big +enough to hold at least the number of values returned by +cairo_get_dash_count().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

cr

a cairo_t

 

dashes

return value for the dash array, or NULL

 

offset

return value for the current dash offset, or NULL

 
+
+

Since: 1.4

+
+
+
+

cairo_set_fill_rule ()

+
void
+cairo_set_fill_rule (cairo_t *cr,
+                     cairo_fill_rule_t fill_rule);
+

Set the current fill rule within the cairo context. The fill rule +is used to determine which regions are inside or outside a complex +(potentially self-intersecting) path. The current fill rule affects +both cairo_fill() and cairo_clip(). See cairo_fill_rule_t for details +on the semantics of each available fill rule.

+

The default fill rule is CAIRO_FILL_RULE_WINDING.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

cr

a cairo_t

 

fill_rule

a fill rule, specified as a cairo_fill_rule_t

 
+
+

Since: 1.0

+
+
+
+

cairo_get_fill_rule ()

+
cairo_fill_rule_t
+cairo_get_fill_rule (cairo_t *cr);
+

Gets the current fill rule, as set by cairo_set_fill_rule().

+
+

Parameters

+
+++++ + + + + + +

cr

a cairo context

 
+
+
+

Returns

+

the current fill rule.

+
+

Since: 1.0

+
+
+
+

cairo_set_line_cap ()

+
void
+cairo_set_line_cap (cairo_t *cr,
+                    cairo_line_cap_t line_cap);
+

Sets the current line cap style within the cairo context. See +cairo_line_cap_t for details about how the available line cap +styles are drawn.

+

As with the other stroke parameters, the current line cap style is +examined by cairo_stroke(), cairo_stroke_extents(), and +cairo_stroke_to_path(), but does not have any effect during path +construction.

+

The default line cap style is CAIRO_LINE_CAP_BUTT.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

cr

a cairo context

 

line_cap

a line cap style

 
+
+

Since: 1.0

+
+
+
+

cairo_get_line_cap ()

+
cairo_line_cap_t
+cairo_get_line_cap (cairo_t *cr);
+

Gets the current line cap style, as set by cairo_set_line_cap().

+
+

Parameters

+
+++++ + + + + + +

cr

a cairo context

 
+
+
+

Returns

+

the current line cap style.

+
+

Since: 1.0

+
+
+
+

cairo_set_line_join ()

+
void
+cairo_set_line_join (cairo_t *cr,
+                     cairo_line_join_t line_join);
+

Sets the current line join style within the cairo context. See +cairo_line_join_t for details about how the available line join +styles are drawn.

+

As with the other stroke parameters, the current line join style is +examined by cairo_stroke(), cairo_stroke_extents(), and +cairo_stroke_to_path(), but does not have any effect during path +construction.

+

The default line join style is CAIRO_LINE_JOIN_MITER.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

cr

a cairo context

 

line_join

a line join style

 
+
+

Since: 1.0

+
+
+
+

cairo_get_line_join ()

+
cairo_line_join_t
+cairo_get_line_join (cairo_t *cr);
+

Gets the current line join style, as set by cairo_set_line_join().

+
+

Parameters

+
+++++ + + + + + +

cr

a cairo context

 
+
+
+

Returns

+

the current line join style.

+
+

Since: 1.0

+
+
+
+

cairo_set_line_width ()

+
void
+cairo_set_line_width (cairo_t *cr,
+                      double width);
+

Sets the current line width within the cairo context. The line +width value specifies the diameter of a pen that is circular in +user space, (though device-space pen may be an ellipse in general +due to scaling/shear/rotation of the CTM).

+

Note: When the description above refers to user space and CTM it +refers to the user space and CTM in effect at the time of the +stroking operation, not the user space and CTM in effect at the +time of the call to cairo_set_line_width(). The simplest usage +makes both of these spaces identical. That is, if there is no +change to the CTM between a call to cairo_set_line_width() and the +stroking operation, then one can just pass user-space values to +cairo_set_line_width() and ignore this note.

+

As with the other stroke parameters, the current line width is +examined by cairo_stroke(), cairo_stroke_extents(), and +cairo_stroke_to_path(), but does not have any effect during path +construction.

+

The default line width value is 2.0.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

cr

a cairo_t

 

width

a line width

 
+
+

Since: 1.0

+
+
+
+

cairo_get_line_width ()

+
double
+cairo_get_line_width (cairo_t *cr);
+

This function returns the current line width value exactly as set by +cairo_set_line_width(). Note that the value is unchanged even if +the CTM has changed between the calls to cairo_set_line_width() and +cairo_get_line_width().

+
+

Parameters

+
+++++ + + + + + +

cr

a cairo context

 
+
+
+

Returns

+

the current line width.

+
+

Since: 1.0

+
+
+
+

cairo_set_miter_limit ()

+
void
+cairo_set_miter_limit (cairo_t *cr,
+                       double limit);
+

Sets the current miter limit within the cairo context.

+

If the current line join style is set to CAIRO_LINE_JOIN_MITER +(see cairo_set_line_join()), the miter limit is used to determine +whether the lines should be joined with a bevel instead of a miter. +Cairo divides the length of the miter by the line width. +If the result is greater than the miter limit, the style is +converted to a bevel.

+

As with the other stroke parameters, the current line miter limit is +examined by cairo_stroke(), cairo_stroke_extents(), and +cairo_stroke_to_path(), but does not have any effect during path +construction.

+

The default miter limit value is 10.0, which will convert joins +with interior angles less than 11 degrees to bevels instead of +miters. For reference, a miter limit of 2.0 makes the miter cutoff +at 60 degrees, and a miter limit of 1.414 makes the cutoff at 90 +degrees.

+

A miter limit for a desired angle can be computed as: miter limit = +1/sin(angle/2)

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

cr

a cairo context

 

limit

miter limit to set

 
+
+

Since: 1.0

+
+
+
+

cairo_get_miter_limit ()

+
double
+cairo_get_miter_limit (cairo_t *cr);
+

Gets the current miter limit, as set by cairo_set_miter_limit().

+
+

Parameters

+
+++++ + + + + + +

cr

a cairo context

 
+
+
+

Returns

+

the current miter limit.

+
+

Since: 1.0

+
+
+
+

cairo_set_operator ()

+
void
+cairo_set_operator (cairo_t *cr,
+                    cairo_operator_t op);
+

Sets the compositing operator to be used for all drawing +operations. See cairo_operator_t for details on the semantics of +each available compositing operator.

+

The default operator is CAIRO_OPERATOR_OVER.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

cr

a cairo_t

 

op

a compositing operator, specified as a cairo_operator_t

 
+
+

Since: 1.0

+
+
+
+

cairo_get_operator ()

+
cairo_operator_t
+cairo_get_operator (cairo_t *cr);
+

Gets the current compositing operator for a cairo context.

+
+

Parameters

+
+++++ + + + + + +

cr

a cairo context

 
+
+
+

Returns

+

the current compositing operator.

+
+

Since: 1.0

+
+
+
+

cairo_set_tolerance ()

+
void
+cairo_set_tolerance (cairo_t *cr,
+                     double tolerance);
+

Sets the tolerance used when converting paths into trapezoids. +Curved segments of the path will be subdivided until the maximum +deviation between the original path and the polygonal approximation +is less than tolerance +. The default value is 0.1. A larger +value will give better performance, a smaller value, better +appearance. (Reducing the value from the default value of 0.1 +is unlikely to improve appearance significantly.) The accuracy of paths +within Cairo is limited by the precision of its internal arithmetic, and +the prescribed tolerance + is restricted to the smallest +representable internal value.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

cr

a cairo_t

 

tolerance

the tolerance, in device units (typically pixels)

 
+
+

Since: 1.0

+
+
+
+

cairo_get_tolerance ()

+
double
+cairo_get_tolerance (cairo_t *cr);
+

Gets the current tolerance value, as set by cairo_set_tolerance().

+
+

Parameters

+
+++++ + + + + + +

cr

a cairo context

 
+
+
+

Returns

+

the current tolerance value.

+
+

Since: 1.0

+
+
+
+

cairo_clip ()

+
void
+cairo_clip (cairo_t *cr);
+

Establishes a new clip region by intersecting the current clip +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 +context.

+

The current clip region affects all drawing operations by +effectively masking out any changes to the surface that are outside +the current clip region.

+

Calling cairo_clip() can only make the clip region smaller, never +larger. But the current clip is part of the graphics state, so a +temporary restriction of the clip region can be achieved by +calling cairo_clip() within a cairo_save()/cairo_restore() +pair. The only other means of increasing the size of the clip +region is cairo_reset_clip().

+
+

Parameters

+
+++++ + + + + + +

cr

a cairo context

 
+
+

Since: 1.0

+
+
+
+

cairo_clip_preserve ()

+
void
+cairo_clip_preserve (cairo_t *cr);
+

Establishes a new clip region by intersecting the current clip +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 +the cairo context.

+

The current clip region affects all drawing operations by +effectively masking out any changes to the surface that are outside +the current clip region.

+

Calling cairo_clip_preserve() can only make the clip region smaller, never +larger. But the current clip is part of the graphics state, so a +temporary restriction of the clip region can be achieved by +calling cairo_clip_preserve() within a cairo_save()/cairo_restore() +pair. The only other means of increasing the size of the clip +region is cairo_reset_clip().

+
+

Parameters

+
+++++ + + + + + +

cr

a cairo context

 
+
+

Since: 1.0

+
+
+
+

cairo_clip_extents ()

+
void
+cairo_clip_extents (cairo_t *cr,
+                    double *x1,
+                    double *y1,
+                    double *x2,
+                    double *y2);
+

Computes a bounding box in user coordinates covering the area inside the +current clip.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

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

 
+
+

Since: 1.4

+
+
+
+

cairo_in_clip ()

+
cairo_bool_t
+cairo_in_clip (cairo_t *cr,
+               double x,
+               double y);
+

Tests whether the given point is inside the area that would be +visible through the current clip, i.e. the area that would be filled by +a cairo_paint() operation.

+

See cairo_clip(), and cairo_clip_preserve().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

cr

a cairo context

 

x

X coordinate of the point to test

 

y

Y coordinate of the point to test

 
+
+
+

Returns

+

A non-zero value if the point is inside, or zero if +outside.

+
+

Since: 1.10

+
+
+
+

cairo_reset_clip ()

+
void
+cairo_reset_clip (cairo_t *cr);
+

Reset the current clip region to its original, unrestricted +state. That is, set the clip region to an infinitely large shape +containing the target surface. Equivalently, if infinity is too +hard to grasp, one can imagine the clip region being reset to the +exact bounds of the target surface.

+

Note that code meant to be reusable should not call +cairo_reset_clip() as it will cause results unexpected by +higher-level code which calls cairo_clip(). Consider using +cairo_save() and cairo_restore() around cairo_clip() as a more +robust means of temporarily restricting the clip region.

+
+

Parameters

+
+++++ + + + + + +

cr

a cairo context

 
+
+

Since: 1.0

+
+
+
+

cairo_rectangle_list_destroy ()

+
void
+cairo_rectangle_list_destroy (cairo_rectangle_list_t *rectangle_list);
+

Unconditionally frees rectangle_list + and all associated +references. After this call, the rectangle_list + pointer must not +be dereferenced.

+
+

Parameters

+
+++++ + + + + + +

rectangle_list

a rectangle list, as obtained from cairo_copy_clip_rectangle_list()

 
+
+

Since: 1.4

+
+
+
+

cairo_copy_clip_rectangle_list ()

+
cairo_rectangle_list_t *
+cairo_copy_clip_rectangle_list (cairo_t *cr);
+

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 +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.

+
+

Parameters

+
+++++ + + + + + +

cr

a cairo context

 
+
+
+

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

+
+
+
+

cairo_fill ()

+
void
+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). After cairo_fill(), the current path will be cleared from +the cairo context. See cairo_set_fill_rule() and +cairo_fill_preserve().

+
+

Parameters

+
+++++ + + + + + +

cr

a cairo context

 
+
+

Since: 1.0

+
+
+
+

cairo_fill_preserve ()

+
void
+cairo_fill_preserve (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 +path within the cairo context.

+

See cairo_set_fill_rule() and cairo_fill().

+
+

Parameters

+
+++++ + + + + + +

cr

a cairo context

 
+
+

Since: 1.0

+
+
+
+

cairo_fill_extents ()

+
void
+cairo_fill_extents (cairo_t *cr,
+                    double *x1,
+                    double *y1,
+                    double *x2,
+                    double *y2);
+

Computes a bounding box in user coordinates covering the area that +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 with no inked area, (such as a +simple line segment).

+

Note that cairo_fill_extents() must necessarily do more work to +compute the precise inked areas in light of the fill rule, so +cairo_path_extents() may be more desirable for sake of performance +if the non-inked path extents are desired.

+

See cairo_fill(), cairo_set_fill_rule() and cairo_fill_preserve().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

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

 
+
+

Since: 1.0

+
+
+
+

cairo_in_fill ()

+
cairo_bool_t
+cairo_in_fill (cairo_t *cr,
+               double x,
+               double y);
+

Tests whether the given point is inside the area that would be +affected by a cairo_fill() operation given the current path and +filling parameters. Surface dimensions and clipping are not taken +into account.

+

See cairo_fill(), cairo_set_fill_rule() and cairo_fill_preserve().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

cr

a cairo context

 

x

X coordinate of the point to test

 

y

Y coordinate of the point to test

 
+
+
+

Returns

+

A non-zero value if the point is inside, or zero if +outside.

+
+

Since: 1.0

+
+
+
+

cairo_mask ()

+
void
+cairo_mask (cairo_t *cr,
+            cairo_pattern_t *pattern);
+

A drawing operator that paints the current source +using the alpha channel of pattern + as a mask. (Opaque +areas of pattern + are painted with the source, transparent +areas are not painted.)

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

cr

a cairo context

 

pattern

a cairo_pattern_t

 
+
+

Since: 1.0

+
+
+
+

cairo_mask_surface ()

+
void
+cairo_mask_surface (cairo_t *cr,
+                    cairo_surface_t *surface,
+                    double surface_x,
+                    double surface_y);
+

A drawing operator that paints the current source +using the alpha channel of surface + as a mask. (Opaque +areas of surface + are painted with the source, transparent +areas are not painted.)

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

cr

a cairo context

 

surface

a cairo_surface_t

 

surface_x

X coordinate at which to place the origin of surface +

 

surface_y

Y coordinate at which to place the origin of surface +

 
+
+

Since: 1.0

+
+
+
+

cairo_paint ()

+
void
+cairo_paint (cairo_t *cr);
+

A drawing operator that paints the current source everywhere within +the current clip region.

+
+

Parameters

+
+++++ + + + + + +

cr

a cairo context

 
+
+

Since: 1.0

+
+
+
+

cairo_paint_with_alpha ()

+
void
+cairo_paint_with_alpha (cairo_t *cr,
+                        double alpha);
+

A drawing operator that paints the current source everywhere within +the current clip region using a mask of constant alpha value +alpha +. The effect is similar to cairo_paint(), but the drawing +is faded out using the alpha value.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

cr

a cairo context

 

alpha

alpha value, between 0 (transparent) and 1 (opaque)

 
+
+

Since: 1.0

+
+
+
+

cairo_stroke ()

+
void
+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. After +cairo_stroke(), the current path will be cleared from the cairo +context. See cairo_set_line_width(), cairo_set_line_join(), +cairo_set_line_cap(), cairo_set_dash(), and +cairo_stroke_preserve().

+

Note: Degenerate segments and sub-paths are treated specially and +provide a useful result. These can result in two different +situations:

+
    +
  1. Zero-length "on" segments set in cairo_set_dash(). If the cap +style is CAIRO_LINE_CAP_ROUND or CAIRO_LINE_CAP_SQUARE then these +segments will be drawn as circular dots or squares respectively. In +the case of CAIRO_LINE_CAP_SQUARE, the orientation of the squares +is determined by the direction of the underlying path.

  2. +
  3. A sub-path created by cairo_move_to() followed by either a +cairo_close_path() or one or more calls to cairo_line_to() to the +same coordinate as the cairo_move_to(). If the cap style is +CAIRO_LINE_CAP_ROUND then these sub-paths will be drawn as circular +dots. Note that in the case of CAIRO_LINE_CAP_SQUARE a degenerate +sub-path will not be drawn at all, (since the correct orientation +is indeterminate).

  4. +
+

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.

+
+

Parameters

+
+++++ + + + + + +

cr

a cairo context

 
+
+

Since: 1.0

+
+
+
+

cairo_stroke_preserve ()

+
void
+cairo_stroke_preserve (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 context.

+

See cairo_set_line_width(), cairo_set_line_join(), +cairo_set_line_cap(), cairo_set_dash(), and +cairo_stroke_preserve().

+
+

Parameters

+
+++++ + + + + + +

cr

a cairo context

 
+
+

Since: 1.0

+
+
+
+

cairo_stroke_extents ()

+
void
+cairo_stroke_extents (cairo_t *cr,
+                      double *x1,
+                      double *y1,
+                      double *x2,
+                      double *y2);
+

Computes a bounding box in user coordinates covering the area that +would be affected, (the "inked" area), by a cairo_stroke() +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.

+

Note that cairo_stroke_extents() must necessarily do more work to +compute the precise inked areas in light of the stroke parameters, +so cairo_path_extents() may be more desirable for sake of +performance if non-inked path extents are desired.

+

See cairo_stroke(), cairo_set_line_width(), cairo_set_line_join(), +cairo_set_line_cap(), cairo_set_dash(), and +cairo_stroke_preserve().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

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

 
+
+

Since: 1.0

+
+
+
+

cairo_in_stroke ()

+
cairo_bool_t
+cairo_in_stroke (cairo_t *cr,
+                 double x,
+                 double y);
+

Tests whether the given point is inside the area that would be +affected by a cairo_stroke() operation given the current path and +stroking parameters. Surface dimensions and clipping are not taken +into account.

+

See cairo_stroke(), cairo_set_line_width(), cairo_set_line_join(), +cairo_set_line_cap(), cairo_set_dash(), and +cairo_stroke_preserve().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

cr

a cairo context

 

x

X coordinate of the point to test

 

y

Y coordinate of the point to test

 
+
+
+

Returns

+

A non-zero value if the point is inside, or zero if +outside.

+
+

Since: 1.0

+
+
+
+

cairo_copy_page ()

+
void
+cairo_copy_page (cairo_t *cr);
+

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 +for the next page too. Use cairo_show_page() if you want to get an +empty page after the emission.

+

This is a convenience function that simply calls +cairo_surface_copy_page() on cr +'s target.

+
+

Parameters

+
+++++ + + + + + +

cr

a cairo context

 
+
+

Since: 1.0

+
+
+
+

cairo_show_page ()

+
void
+cairo_show_page (cairo_t *cr);
+

Emits and clears the current page for backends that support multiple +pages. Use cairo_copy_page() if you don't want to clear the page.

+

This is a convenience function that simply calls +cairo_surface_show_page() on cr +'s target.

+
+

Parameters

+
+++++ + + + + + +

cr

a cairo context

 
+
+

Since: 1.0

+
+
+
+

cairo_get_reference_count ()

+
unsigned int
+cairo_get_reference_count (cairo_t *cr);
+

Returns the current reference count of cr +.

+
+

Parameters

+
+++++ + + + + + +

cr

a cairo_t

 
+
+
+

Returns

+

the current reference count of cr +. If the +object is a nil object, 0 will be returned.

+
+

Since: 1.4

+
+
+
+

cairo_set_user_data ()

+
cairo_status_t
+cairo_set_user_data (cairo_t *cr,
+                     const cairo_user_data_key_t *key,
+                     void *user_data,
+                     cairo_destroy_func_t destroy);
+

Attach user data to cr +. To remove user data from a surface, +call this function with the key that was used to set it and NULL +for data +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

cr

a cairo_t

 

key

the address of a cairo_user_data_key_t to attach the user data to

 

user_data

the user data to attach to the cairo_t

 

destroy

a cairo_destroy_func_t which will be called when the +cairo_t is destroyed or when new user data is attached using the +same key.

 
+
+
+

Returns

+

CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY if a +slot could not be allocated for the user data.

+
+

Since: 1.4

+
+
+
+

cairo_get_user_data ()

+
void *
+cairo_get_user_data (cairo_t *cr,
+                     const cairo_user_data_key_t *key);
+

Return user data previously attached to cr + using the specified +key. If no user data has been attached with the given key this +function returns NULL.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

cr

a cairo_t

 

key

the address of the cairo_user_data_key_t the user data was +attached to

 
+
+
+

Returns

+

the user data previously attached or NULL.

+
+

Since: 1.4

+
+
+
+

Types and Values

+
+

cairo_t

+
typedef struct _cairo cairo_t;
+
+

A cairo_t contains the current state of the rendering device, +including coordinates of yet to be drawn shapes.

+

Cairo contexts, as cairo_t objects are named, are central to +cairo and all drawing with cairo is always done to a cairo_t +object.

+

Memory management of cairo_t is done with +cairo_reference() and cairo_destroy().

+

Since: 1.0

+
+
+
+

enum cairo_antialias_t

+

Specifies the type of antialiasing to do when rendering text or shapes.

+

As it is not necessarily clear from the above what advantages a particular +antialias method provides, since 1.12, there is also a set of hints: +CAIRO_ANTIALIAS_FAST +: Allow the backend to degrade raster quality for speed +CAIRO_ANTIALIAS_GOOD +: A balance between speed and quality +CAIRO_ANTIALIAS_BEST +: A high-fidelity, but potentially slow, raster mode

+

These make no guarantee on how the backend will perform its rasterisation +(if it even rasterises!), nor that they have any differing effect other +than to enable some form of antialiasing. In the case of glyph rendering, +CAIRO_ANTIALIAS_FAST + and CAIRO_ANTIALIAS_GOOD + will be mapped to +CAIRO_ANTIALIAS_GRAY +, with CAIRO_ANTALIAS_BEST + being equivalent to +CAIRO_ANTIALIAS_SUBPIXEL +.

+

The interpretation of CAIRO_ANTIALIAS_DEFAULT + is left entirely up to +the backend, typically this will be similar to CAIRO_ANTIALIAS_GOOD +.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

CAIRO_ANTIALIAS_DEFAULT

+

Use the default antialiasing for + the subsystem and target device, since 1.0

+
 

CAIRO_ANTIALIAS_NONE

+

Use a bilevel alpha mask, since 1.0

+
 

CAIRO_ANTIALIAS_GRAY

+

Perform single-color antialiasing (using + shades of gray for black text on a white background, for example), since 1.0

+
 

CAIRO_ANTIALIAS_SUBPIXEL

+

Perform antialiasing by taking + advantage of the order of subpixel elements on devices + such as LCD panels, since 1.0

+
 

CAIRO_ANTIALIAS_FAST

+

Hint that the backend should perform some +antialiasing but prefer speed over quality, since 1.12

+
 

CAIRO_ANTIALIAS_GOOD

+

The backend should balance quality against +performance, since 1.12

+
 

CAIRO_ANTIALIAS_BEST

+

Hint that the backend should render at the highest +quality, sacrificing speed if necessary, since 1.12

+
 
+
+

Since: 1.0

+
+
+
+

enum cairo_fill_rule_t

+

cairo_fill_rule_t is used to select how paths are filled. For both +fill rules, whether or not a point is included in the fill is +determined by taking a ray from that point to infinity and looking +at intersections with the path. The ray can be in any direction, +as long as it doesn't pass through the end point of a segment +or have a tricky intersection such as intersecting tangent to the path. +(Note that filling is not actually implemented in this way. This +is just a description of the rule that is applied.)

+

The default fill rule is CAIRO_FILL_RULE_WINDING.

+

New entries may be added in future versions.

+
+

Members

+
+++++ + + + + + + + + + + + + +

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 +from the perspective of looking along the ray from the starting +point.) If the total count is non-zero, the point will be filled. (Since 1.0)

+
 

CAIRO_FILL_RULE_EVEN_ODD

+

Counts the total number of +intersections, without regard to the orientation of the contour. If +the total number of intersections is odd, the point will be +filled. (Since 1.0)

+
 
+
+

Since: 1.0

+
+
+
+

enum cairo_line_cap_t

+

Specifies how to render the endpoints of the path when stroking.

+

The default line cap style is CAIRO_LINE_CAP_BUTT.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + +

CAIRO_LINE_CAP_BUTT

+

start(stop) the line exactly at the start(end) point (Since 1.0)

+
 

CAIRO_LINE_CAP_ROUND

+

use a round ending, the center of the circle is the end point (Since 1.0)

+
 

CAIRO_LINE_CAP_SQUARE

+

use squared ending, the center of the square is the end point (Since 1.0)

+
 
+
+

Since: 1.0

+
+
+
+

enum cairo_line_join_t

+

Specifies how to render the junction of two lines when stroking.

+

The default line join style is CAIRO_LINE_JOIN_MITER.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + +

CAIRO_LINE_JOIN_MITER

+

use a sharp (angled) corner, see +cairo_set_miter_limit() (Since 1.0)

+
 

CAIRO_LINE_JOIN_ROUND

+

use a rounded join, the center of the circle is the +joint point (Since 1.0)

+
 

CAIRO_LINE_JOIN_BEVEL

+

use a cut-off join, the join is cut off at half +the line width from the joint point (Since 1.0)

+
 
+
+

Since: 1.0

+
+
+
+

enum cairo_operator_t

+

cairo_operator_t is used to set the compositing operator for all cairo +drawing operations.

+

The default operator is CAIRO_OPERATOR_OVER.

+

The operators marked as unbounded 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

+https://cairographics.org/operators/. +
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

CAIRO_OPERATOR_CLEAR

+

clear destination layer (bounded) (Since 1.0)

+
 

CAIRO_OPERATOR_SOURCE

+

replace destination layer (bounded) (Since 1.0)

+
 

CAIRO_OPERATOR_OVER

+

draw source layer on top of destination layer +(bounded) (Since 1.0)

+
 

CAIRO_OPERATOR_IN

+

draw source where there was destination content +(unbounded) (Since 1.0)

+
 

CAIRO_OPERATOR_OUT

+

draw source where there was no destination +content (unbounded) (Since 1.0)

+
 

CAIRO_OPERATOR_ATOP

+

draw source on top of destination content and +only there (Since 1.0)

+
 

CAIRO_OPERATOR_DEST

+

ignore the source (Since 1.0)

+
 

CAIRO_OPERATOR_DEST_OVER

+

draw destination on top of source (Since 1.0)

+
 

CAIRO_OPERATOR_DEST_IN

+

leave destination only where there was +source content (unbounded) (Since 1.0)

+
 

CAIRO_OPERATOR_DEST_OUT

+

leave destination only where there was no +source content (Since 1.0)

+
 

CAIRO_OPERATOR_DEST_ATOP

+

leave destination on top of source content +and only there (unbounded) (Since 1.0)

+
 

CAIRO_OPERATOR_XOR

+

source and destination are shown where there is only +one of them (Since 1.0)

+
 

CAIRO_OPERATOR_ADD

+

source and destination layers are accumulated (Since 1.0)

+
 

CAIRO_OPERATOR_SATURATE

+

like over, but assuming source and dest are +disjoint geometries (Since 1.0)

+
 

CAIRO_OPERATOR_MULTIPLY

+

source and destination layers are multiplied. +This causes the result to be at least as dark as the darker inputs. (Since 1.10)

+
 

CAIRO_OPERATOR_SCREEN

+

source and destination are complemented and +multiplied. This causes the result to be at least as light as the lighter +inputs. (Since 1.10)

+
 

CAIRO_OPERATOR_OVERLAY

+

multiplies or screens, depending on the +lightness of the destination color. (Since 1.10)

+
 

CAIRO_OPERATOR_DARKEN

+

replaces the destination with the source if it +is darker, otherwise keeps the source. (Since 1.10)

+
 

CAIRO_OPERATOR_LIGHTEN

+

replaces the destination with the source if it +is lighter, otherwise keeps the source. (Since 1.10)

+
 

CAIRO_OPERATOR_COLOR_DODGE

+

brightens the destination color to reflect +the source color. (Since 1.10)

+
 

CAIRO_OPERATOR_COLOR_BURN

+

darkens the destination color to reflect +the source color. (Since 1.10)

+
 

CAIRO_OPERATOR_HARD_LIGHT

+

Multiplies or screens, dependent on source +color. (Since 1.10)

+
 

CAIRO_OPERATOR_SOFT_LIGHT

+

Darkens or lightens, dependent on source +color. (Since 1.10)

+
 

CAIRO_OPERATOR_DIFFERENCE

+

Takes the difference of the source and +destination color. (Since 1.10)

+
 

CAIRO_OPERATOR_EXCLUSION

+

Produces an effect similar to difference, but +with lower contrast. (Since 1.10)

+
 

CAIRO_OPERATOR_HSL_HUE

+

Creates a color with the hue of the source +and the saturation and luminosity of the target. (Since 1.10)

+
 

CAIRO_OPERATOR_HSL_SATURATION

+

Creates a color with the saturation +of the source and the hue and luminosity of the target. Painting with +this mode onto a gray area produces no change. (Since 1.10)

+
 

CAIRO_OPERATOR_HSL_COLOR

+

Creates a color with the hue and saturation +of the source and the luminosity of the target. This preserves the gray +levels of the target and is useful for coloring monochrome images or +tinting color images. (Since 1.10)

+
 

CAIRO_OPERATOR_HSL_LUMINOSITY

+

Creates a color with the luminosity of +the source and the hue and saturation of the target. This produces an +inverse effect to CAIRO_OPERATOR_HSL_COLOR +. (Since 1.10)

+
 
+
+

Since: 1.0

+
+
+
+

cairo_rectangle_t

+
typedef struct {
+    double x, y, width, height;
+} cairo_rectangle_t;
+
+

A data structure for holding a rectangle.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

double x;

X coordinate of the left side of the rectangle

 

double y;

Y coordinate of the the top side of the rectangle

 

double width;

width of the rectangle

 

double height;

height of the rectangle

 
+
+

Since: 1.4

+
+
+
+

cairo_rectangle_list_t

+
typedef struct {
+    cairo_status_t     status;
+    cairo_rectangle_t *rectangles;
+    int                num_rectangles;
+} cairo_rectangle_list_t;
+
+

A data structure for holding a dynamically allocated +array of rectangles.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + +

cairo_status_t status;

Error status of the rectangle list

 

cairo_rectangle_t *rectangles;

Array containing the rectangles

 

int num_rectangles;

Number of rectangles in this list

 
+
+

Since: 1.4

+
+
+
+

See Also

+

cairo_surface_t

+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/cairo-drawing.html b/libs/cairo-1.16.0/doc/public/html/cairo-drawing.html new file mode 100644 index 0000000..53c91d0 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/cairo-drawing.html @@ -0,0 +1,55 @@ + + + + +Drawing: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+

+Drawing

+
+
+cairo_t — The cairo drawing context +
+
+Paths — Creating paths and manipulating path data +
+
+cairo_pattern_t — Sources for drawing +
+
+Regions — Representing a pixel-aligned area +
+
+Transformations — Manipulating the current transformation matrix +
+
+text — Rendering text and glyphs +
+
+Raster Sources — Supplying arbitrary image data +
+
+Tags and Links — Hyperlinks and document structure +
+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/cairo-fonts.html b/libs/cairo-1.16.0/doc/public/html/cairo-fonts.html new file mode 100644 index 0000000..7e4d0ed --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/cairo-fonts.html @@ -0,0 +1,52 @@ + + + + +Fonts: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+

+Fonts

+
+
+cairo_font_face_t — Base class for font faces +
+
+cairo_scaled_font_t — Font face at particular size and options +
+
+cairo_font_options_t — How a font should be rendered +
+
+FreeType Fonts — Font support for FreeType +
+
+Win32 Fonts — Font support for Microsoft Windows +
+
+Quartz (CGFont) Fonts — Font support via CGFont on OS X +
+
+User Fonts — Font support with font data provided by the user +
+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/cairo-support.html b/libs/cairo-1.16.0/doc/public/html/cairo-support.html new file mode 100644 index 0000000..b6eed63 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/cairo-support.html @@ -0,0 +1,43 @@ + + + + +Utilities: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+

+Utilities

+
+
+cairo_matrix_t — Generic matrix operations +
+
+Error handling — Decoding cairo's status +
+
+Version Information — Compile-time and run-time version checks. +
+
+Types — Generic data types +
+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/cairo-surfaces.html b/libs/cairo-1.16.0/doc/public/html/cairo-surfaces.html new file mode 100644 index 0000000..ae29c86 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/cairo-surfaces.html @@ -0,0 +1,73 @@ + + + + +Surfaces: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+

+Surfaces

+
+
+cairo_device_t — interface to underlying rendering system +
+
+cairo_surface_t — Base class for surfaces +
+
+Image Surfaces — Rendering to memory buffers +
+
+PDF Surfaces — Rendering PDF documents +
+
+PNG Support — Reading and writing PNG images +
+
+PostScript Surfaces — Rendering PostScript documents +
+
+Recording Surfaces — Records all drawing operations +
+
+Win32 Surfaces — Microsoft Windows surface support +
+
+SVG Surfaces — Rendering SVG documents +
+
+Quartz Surfaces — Rendering to Quartz surfaces +
+
+XCB Surfaces — X Window System rendering using the XCB library +
+
+XLib Surfaces — X Window System rendering using XLib +
+
+XLib-XRender Backend — X Window System rendering using XLib and the X Render extension +
+
+Script Surfaces — Rendering to replayable scripts +
+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/cairo-text.html b/libs/cairo-1.16.0/doc/public/html/cairo-text.html new file mode 100644 index 0000000..18cd15b --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/cairo-text.html @@ -0,0 +1,1480 @@ + + + + +text: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+
+
+ + +
+

text

+

text — Rendering text and glyphs

+
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+void + +cairo_select_font_face () +
+void + +cairo_set_font_size () +
+void + +cairo_set_font_matrix () +
+void + +cairo_get_font_matrix () +
+void + +cairo_set_font_options () +
+void + +cairo_get_font_options () +
+void + +cairo_set_font_face () +
+cairo_font_face_t * + +cairo_get_font_face () +
+void + +cairo_set_scaled_font () +
+cairo_scaled_font_t * + +cairo_get_scaled_font () +
+void + +cairo_show_text () +
+void + +cairo_show_glyphs () +
+void + +cairo_show_text_glyphs () +
+void + +cairo_font_extents () +
+void + +cairo_text_extents () +
+void + +cairo_glyph_extents () +
+cairo_font_face_t * + +cairo_toy_font_face_create () +
const char * + +cairo_toy_font_face_get_family () +
+cairo_font_slant_t + +cairo_toy_font_face_get_slant () +
+cairo_font_weight_t + +cairo_toy_font_face_get_weight () +
+cairo_glyph_t * + +cairo_glyph_allocate () +
+void + +cairo_glyph_free () +
+cairo_text_cluster_t * + +cairo_text_cluster_allocate () +
+void + +cairo_text_cluster_free () +
+
+
+

Types and Values

+
++++ + + + + + + + + + + + + + + + + + + + + + + +
 cairo_glyph_t
enumcairo_font_slant_t
enumcairo_font_weight_t
 cairo_text_cluster_t
enumcairo_text_cluster_flags_t
+
+
+

Description

+

The functions with text in their name form cairo's +toy 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.

+

The functions with glyphs in their name form cairo's +low-level 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 http://www.pango.org/.

+
+
+

Functions

+
+

cairo_select_font_face ()

+
void
+cairo_select_font_face (cairo_t *cr,
+                        const char *family,
+                        cairo_font_slant_t slant,
+                        cairo_font_weight_t weight);
+

Note: The cairo_select_font_face() 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.

+

Selects a family and style of font from a simplified description as +a family name, slant and weight. Cairo provides no operation to +list available family names on the system (this is a "toy", +remember), but the standard CSS2 generic family names, ("serif", +"sans-serif", "cursive", "fantasy", "monospace"), are likely to +work as expected.

+

If family + starts with the string "cairo +:", or if no native font +backends are compiled in, cairo will use an internal font family. +The internal font family recognizes many modifiers in the family + +string, most notably, it recognizes the string "monospace". That is, +the family name "cairo +:monospace" will use the monospace version of +the internal font family.

+

For "real" font selection, see the font-backend-specific +font_face_create functions for the font backend you are using. (For +example, if you are using the freetype-based cairo-ft font backend, +see cairo_ft_font_face_create_for_ft_face() or +cairo_ft_font_face_create_for_pattern().) The resulting font face +could then be used with cairo_scaled_font_create() and +cairo_set_scaled_font().

+

Similarly, when using the "real" font support, you can call +directly into the underlying font system, (such as fontconfig or +freetype), for operations such as listing available fonts, etc.

+

It is expected that most applications will need to use a more +comprehensive font handling and text layout library, (for example, +pango), in conjunction with cairo.

+

If text is drawn without a call to cairo_select_font_face(), (nor +cairo_set_font_face() nor cairo_set_scaled_font()), the default +family is platform-specific, but is essentially "sans-serif". +Default slant is CAIRO_FONT_SLANT_NORMAL, and default weight is +CAIRO_FONT_WEIGHT_NORMAL.

+

This function is equivalent to a call to cairo_toy_font_face_create() +followed by cairo_set_font_face().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

cr

a cairo_t

 

family

a font family name, encoded in UTF-8

 

slant

the slant for the font

 

weight

the weight for the font

 
+
+

Since: 1.0

+
+
+
+

cairo_set_font_size ()

+
void
+cairo_set_font_size (cairo_t *cr,
+                     double size);
+

Sets the current font matrix to a scale by a factor of size +, replacing +any font matrix previously set with cairo_set_font_size() or +cairo_set_font_matrix(). This results in a font size of size + user space +units. (More precisely, this matrix will result in the font's +em-square being a size + by size + square in user space.)

+

If text is drawn without a call to cairo_set_font_size(), (nor +cairo_set_font_matrix() nor cairo_set_scaled_font()), the default +font size is 10.0.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

cr

a cairo_t

 

size

the new font size, in user space units

 
+
+

Since: 1.0

+
+
+
+

cairo_set_font_matrix ()

+
void
+cairo_set_font_matrix (cairo_t *cr,
+                       const cairo_matrix_t *matrix);
+

Sets the current font matrix to matrix +. The font matrix gives a +transformation from the design space of the font (in this space, +the em-square is 1 unit by 1 unit) to user space. Normally, a +simple scale is used (see cairo_set_font_size()), but a more +complex font matrix can be used to shear the font +or stretch it unequally along the two axes

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

cr

a cairo_t

 

matrix

a cairo_matrix_t describing a transform to be applied to +the current font.

 
+
+

Since: 1.0

+
+
+
+

cairo_get_font_matrix ()

+
void
+cairo_get_font_matrix (cairo_t *cr,
+                       cairo_matrix_t *matrix);
+

Stores the current font matrix into matrix +. See +cairo_set_font_matrix().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

cr

a cairo_t

 

matrix

return value for the matrix

 
+
+

Since: 1.0

+
+
+
+

cairo_set_font_options ()

+
void
+cairo_set_font_options (cairo_t *cr,
+                        const cairo_font_options_t *options);
+

Sets a set of custom font rendering options for the cairo_t. +Rendering options are derived by merging these options with the +options derived from underlying surface; if the value in options + +has a default value (like CAIRO_ANTIALIAS_DEFAULT), then the value +from the surface is used.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

cr

a cairo_t

 

options

font options to use

 
+
+

Since: 1.0

+
+
+
+

cairo_get_font_options ()

+
void
+cairo_get_font_options (cairo_t *cr,
+                        cairo_font_options_t *options);
+

Retrieves font rendering options set via cairo_set_font_options. +Note that the returned options do not include any options derived +from the underlying surface; they are literally the options +passed to cairo_set_font_options().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

cr

a cairo_t

 

options

a cairo_font_options_t object into which to store +the retrieved options. All existing values are overwritten

 
+
+

Since: 1.0

+
+
+
+

cairo_set_font_face ()

+
void
+cairo_set_font_face (cairo_t *cr,
+                     cairo_font_face_t *font_face);
+

Replaces the current cairo_font_face_t object in the cairo_t with +font_face +. The replaced font face in the cairo_t will be +destroyed if there are no other references to it.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

cr

a cairo_t

 

font_face

a cairo_font_face_t, or NULL to restore to the default font

 
+
+

Since: 1.0

+
+
+
+

cairo_get_font_face ()

+
cairo_font_face_t *
+cairo_get_font_face (cairo_t *cr);
+

Gets the current font face for a cairo_t.

+
+

Parameters

+
+++++ + + + + + +

cr

a cairo_t

 
+
+
+

Returns

+

the current font face. This object is owned by +cairo. To keep a reference to it, you must call +cairo_font_face_reference().

+

This function never returns NULL. If memory cannot be allocated, a +special "nil" cairo_font_face_t object will be returned on which +cairo_font_face_status() returns CAIRO_STATUS_NO_MEMORY. Using +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).

+
+

Since: 1.0

+
+
+
+

cairo_set_scaled_font ()

+
void
+cairo_set_scaled_font (cairo_t *cr,
+                       const cairo_scaled_font_t *scaled_font);
+

Replaces the current font face, font matrix, and font options in +the cairo_t with those of the cairo_scaled_font_t. Except for +some translation, the current CTM of the cairo_t should be the +same as that of the cairo_scaled_font_t, which can be accessed +using cairo_scaled_font_get_ctm().

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

cr

a cairo_t

 

scaled_font

a cairo_scaled_font_t

 
+
+

Since: 1.2

+
+
+
+

cairo_get_scaled_font ()

+
cairo_scaled_font_t *
+cairo_get_scaled_font (cairo_t *cr);
+

Gets the current scaled font for a cairo_t.

+
+

Parameters

+
+++++ + + + + + +

cr

a cairo_t

 
+
+
+

Returns

+

the current scaled font. This object is owned by +cairo. To keep a reference to it, you must call +cairo_scaled_font_reference().

+

This function never returns NULL. If memory cannot be allocated, a +special "nil" cairo_scaled_font_t object will be returned on which +cairo_scaled_font_status() returns CAIRO_STATUS_NO_MEMORY. Using +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).

+
+

Since: 1.4

+
+
+
+

cairo_show_text ()

+
void
+cairo_show_text (cairo_t *cr,
+                 const char *utf8);
+

A drawing operator that generates the shape from a string of UTF-8 +characters, rendered according to the current font_face, font_size +(font_matrix), and font_options.

+

This function first computes a set of glyphs for the string of +text. The first glyph is placed so that its origin is at the +current point. The origin of each subsequent glyph is offset from +that of the previous glyph by the advance values of the previous +glyph.

+

After this call the current point is moved to the origin of where +the next glyph would be placed in this same progression. That is, +the current point will be at the origin of the final glyph offset +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 +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 +"real" text display API in cairo.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

cr

a cairo context

 

utf8

a NUL-terminated string of text encoded in UTF-8, or NULL

 
+
+

Since: 1.0

+
+
+
+

cairo_show_glyphs ()

+
void
+cairo_show_glyphs (cairo_t *cr,
+                   const cairo_glyph_t *glyphs,
+                   int num_glyphs);
+

A drawing operator that generates the shape from an array of glyphs, +rendered according to the current font face, font size +(font matrix), and font options.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

cr

a cairo context

 

glyphs

array of glyphs to show

 

num_glyphs

number of glyphs to show

 
+
+

Since: 1.0

+
+
+
+

cairo_show_text_glyphs ()

+
void
+cairo_show_text_glyphs (cairo_t *cr,
+                        const char *utf8,
+                        int utf8_len,
+                        const cairo_glyph_t *glyphs,
+                        int num_glyphs,
+                        const cairo_text_cluster_t *clusters,
+                        int num_clusters,
+                        cairo_text_cluster_flags_t cluster_flags);
+

This operation has rendering effects similar to cairo_show_glyphs() +but, if the target surface supports it, uses the provided text and +cluster mapping to embed the text for the glyphs shown in the output. +If the target does not support the extended attributes, this function +acts like the basic cairo_show_glyphs() as if it had been passed +glyphs + and num_glyphs +.

+

The mapping between utf8 + and glyphs + is provided by an array of +clusters. Each cluster covers a number of +text bytes and glyphs, and neighboring clusters cover neighboring +areas of utf8 + and glyphs +. The clusters should collectively cover utf8 + +and glyphs + in entirety.

+

The first cluster always covers bytes from the beginning of utf8 +. +If cluster_flags + do not have the CAIRO_TEXT_CLUSTER_FLAG_BACKWARD +set, the first cluster also covers the beginning +of glyphs +, otherwise it covers the end of the glyphs + array and +following clusters move backward.

+

See cairo_text_cluster_t for constraints on valid clusters.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

cr

a cairo context

 

utf8

a string of text encoded in UTF-8

 

utf8_len

length of utf8 +in bytes, or -1 if it is NUL-terminated

 

glyphs

array of glyphs to show

 

num_glyphs

number of glyphs to show

 

clusters

array of cluster mapping information

 

num_clusters

number of clusters in the mapping

 

cluster_flags

cluster mapping flags

 
+
+

Since: 1.8

+
+
+
+

cairo_font_extents ()

+
void
+cairo_font_extents (cairo_t *cr,
+                    cairo_font_extents_t *extents);
+

Gets the font extents for the currently selected font.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

cr

a cairo_t

 

extents

a cairo_font_extents_t object into which the results +will be stored.

 
+
+

Since: 1.0

+
+
+
+

cairo_text_extents ()

+
void
+cairo_text_extents (cairo_t *cr,
+                    const char *utf8,
+                    cairo_text_extents_t *extents);
+

Gets the extents for a string of text. The extents describe a +user-space rectangle that encloses the "inked" portion of the text, +(as it would be drawn by cairo_show_text()). Additionally, the +x_advance and y_advance values indicate the amount by which the +current point would be advanced by cairo_show_text().

+

Note that whitespace characters do not directly contribute to the +size of the rectangle (extents.width and extents.height). They do +contribute indirectly by changing the position of non-whitespace +characters. In particular, trailing whitespace characters are +likely to not affect the size of the rectangle, though they will +affect the x_advance and y_advance values.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

cr

a cairo_t

 

utf8

a NUL-terminated string of text encoded in UTF-8, or NULL

 

extents

a cairo_text_extents_t object into which the results +will be stored

 
+
+

Since: 1.0

+
+
+
+

cairo_glyph_extents ()

+
void
+cairo_glyph_extents (cairo_t *cr,
+                     const cairo_glyph_t *glyphs,
+                     int num_glyphs,
+                     cairo_text_extents_t *extents);
+

Gets the extents for an array of glyphs. The extents describe a +user-space rectangle that encloses the "inked" portion of the +glyphs, (as they would be drawn by cairo_show_glyphs()). +Additionally, the x_advance and y_advance values indicate the +amount by which the current point would be advanced by +cairo_show_glyphs().

+

Note that whitespace glyphs do not contribute to the size of the +rectangle (extents.width and extents.height).

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

cr

a cairo_t

 

glyphs

an array of cairo_glyph_t objects

 

num_glyphs

the number of elements in glyphs +

 

extents

a cairo_text_extents_t object into which the results +will be stored

 
+
+

Since: 1.0

+
+
+
+

cairo_toy_font_face_create ()

+
cairo_font_face_t *
+cairo_toy_font_face_create (const char *family,
+                            cairo_font_slant_t slant,
+                            cairo_font_weight_t weight);
+

Creates a font face from a triplet of family, slant, and weight. +These font faces are used in implementation of the the cairo_t "toy" +font API.

+

If family + is the zero-length string "", the platform-specific default +family is assumed. The default family then can be queried using +cairo_toy_font_face_get_family().

+

The cairo_select_font_face() function uses this to create font faces. +See that function for limitations and other details of toy font faces.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

family

a font family name, encoded in UTF-8

 

slant

the slant for the font

 

weight

the weight for the font

 
+
+
+

Returns

+

a newly created cairo_font_face_t. Free with +cairo_font_face_destroy() when you are done using it.

+
+

Since: 1.8

+
+
+
+

cairo_toy_font_face_get_family ()

+
const char *
+cairo_toy_font_face_get_family (cairo_font_face_t *font_face);
+

Gets the familly name of a toy font.

+
+

Parameters

+
+++++ + + + + + +

font_face

A toy font face

 
+
+
+

Returns

+

The family name. This string is owned by the font face +and remains valid as long as the font face is alive (referenced).

+
+

Since: 1.8

+
+
+
+

cairo_toy_font_face_get_slant ()

+
cairo_font_slant_t
+cairo_toy_font_face_get_slant (cairo_font_face_t *font_face);
+

Gets the slant a toy font.

+
+

Parameters

+
+++++ + + + + + +

font_face

A toy font face

 
+
+
+

Returns

+

The slant value

+
+

Since: 1.8

+
+
+
+

cairo_toy_font_face_get_weight ()

+
cairo_font_weight_t
+cairo_toy_font_face_get_weight (cairo_font_face_t *font_face);
+

Gets the weight a toy font.

+
+

Parameters

+
+++++ + + + + + +

font_face

A toy font face

 
+
+
+

Returns

+

The weight value

+
+

Since: 1.8

+
+
+
+

cairo_glyph_allocate ()

+
cairo_glyph_t *
+cairo_glyph_allocate (int num_glyphs);
+

Allocates an array of cairo_glyph_t's. +This function is only useful in implementations of +cairo_user_scaled_font_text_to_glyphs_func_t where the user +needs to allocate an array of glyphs that cairo will free. +For all other uses, user can use their own allocation method +for glyphs.

+

This function returns NULL if num_glyphs + is not positive, +or if out of memory. That means, the NULL return value +signals out-of-memory only if num_glyphs + was positive.

+
+

Parameters

+
+++++ + + + + + +

num_glyphs

number of glyphs to allocate

 
+
+
+

Returns

+

the newly allocated array of glyphs that should be +freed using cairo_glyph_free()

+
+

Since: 1.8

+
+
+
+

cairo_glyph_free ()

+
void
+cairo_glyph_free (cairo_glyph_t *glyphs);
+

Frees an array of cairo_glyph_t's allocated using cairo_glyph_allocate(). +This function is only useful to free glyph array returned +by cairo_scaled_font_text_to_glyphs() where cairo returns +an array of glyphs that the user will free. +For all other uses, user can use their own allocation method +for glyphs.

+
+

Parameters

+
+++++ + + + + + +

glyphs

array of glyphs to free, or NULL

 
+
+

Since: 1.8

+
+
+
+

cairo_text_cluster_allocate ()

+
cairo_text_cluster_t *
+cairo_text_cluster_allocate (int num_clusters);
+

Allocates an array of cairo_text_cluster_t's. +This function is only useful in implementations of +cairo_user_scaled_font_text_to_glyphs_func_t where the user +needs to allocate an array of text clusters that cairo will free. +For all other uses, user can use their own allocation method +for text clusters.

+

This function returns NULL if num_clusters + is not positive, +or if out of memory. That means, the NULL return value +signals out-of-memory only if num_clusters + was positive.

+
+

Parameters

+
+++++ + + + + + +

num_clusters

number of text_clusters to allocate

 
+
+
+

Returns

+

the newly allocated array of text clusters that should be +freed using cairo_text_cluster_free()

+
+

Since: 1.8

+
+
+
+

cairo_text_cluster_free ()

+
void
+cairo_text_cluster_free (cairo_text_cluster_t *clusters);
+

Frees an array of cairo_text_cluster's allocated using cairo_text_cluster_allocate(). +This function is only useful to free text cluster array returned +by cairo_scaled_font_text_to_glyphs() where cairo returns +an array of text clusters that the user will free. +For all other uses, user can use their own allocation method +for text clusters.

+
+

Parameters

+
+++++ + + + + + +

clusters

array of text clusters to free, or NULL

 
+
+

Since: 1.8

+
+
+
+

Types and Values

+
+

cairo_glyph_t

+
typedef struct {
+    unsigned long        index;
+    double               x;
+    double               y;
+} cairo_glyph_t;
+
+

The cairo_glyph_t structure holds information about a single glyph +when drawing or measuring text. A font is (in simple terms) a +collection of shapes used to draw text. A glyph is one of these +shapes. There can be multiple glyphs for a single character +(alternates to be used in different contexts, for example), or a +glyph can be a ligature of multiple +characters. Cairo doesn't expose any way of converting input text +into glyphs, so in order to use the Cairo interfaces that take +arrays of glyphs, you must directly access the appropriate +underlying font system.

+

Note that the offsets given by x + and y + are not cumulative. When +drawing or measuring text, each glyph is individually positioned +with respect to the overall origin

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + +

unsigned long index;

glyph index in the font. The exact interpretation of the +glyph index depends on the font technology being used.

 

double x;

the offset in the X direction between the origin used for +drawing or measuring the string and the origin of this glyph.

 

double y;

the offset in the Y direction between the origin used for +drawing or measuring the string and the origin of this glyph.

 
+
+

Since: 1.0

+
+
+
+

enum cairo_font_slant_t

+

Specifies variants of a font face based on their slant.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + +

CAIRO_FONT_SLANT_NORMAL

+

Upright font style, since 1.0

+
 

CAIRO_FONT_SLANT_ITALIC

+

Italic font style, since 1.0

+
 

CAIRO_FONT_SLANT_OBLIQUE

+

Oblique font style, since 1.0

+
 
+
+

Since: 1.0

+
+
+
+

enum cairo_font_weight_t

+

Specifies variants of a font face based on their weight.

+
+

Members

+
+++++ + + + + + + + + + + + + +

CAIRO_FONT_WEIGHT_NORMAL

+

Normal font weight, since 1.0

+
 

CAIRO_FONT_WEIGHT_BOLD

+

Bold font weight, since 1.0

+
 
+
+

Since: 1.0

+
+
+
+

cairo_text_cluster_t

+
typedef struct {
+    int        num_bytes;
+    int        num_glyphs;
+} cairo_text_cluster_t;
+
+

The cairo_text_cluster_t structure holds information about a single +text cluster. A text cluster is a minimal +mapping of some glyphs corresponding to some UTF-8 text.

+

For a cluster to be valid, both num_bytes + and num_glyphs + should +be non-negative, and at least one should be non-zero. +Note that clusters with zero glyphs are not as well supported as +normal clusters. For example, PDF rendering applications typically +ignore those clusters when PDF text is being selected.

+

See cairo_show_text_glyphs() for how clusters are used in advanced +text operations.

+
+

Members

+
+++++ + + + + + + + + + + + + +

int num_bytes;

the number of bytes of UTF-8 text covered by cluster

 

int num_glyphs;

the number of glyphs covered by cluster

 
+
+

Since: 1.8

+
+
+
+

enum cairo_text_cluster_flags_t

+

Specifies properties of a text cluster mapping.

+
+

Members

+
+++++ + + + + + +

CAIRO_TEXT_CLUSTER_FLAG_BACKWARD

+

The clusters in the cluster array +map to glyphs in the glyph array from end to start. (Since 1.8)

+
 
+
+

Since: 1.8

+
+
+ +
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/cairo.devhelp2 b/libs/cairo-1.16.0/doc/public/html/cairo.devhelp2 new file mode 100644 index 0000000..bae10dd --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/cairo.devhelp2 @@ -0,0 +1,829 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libs/cairo-1.16.0/doc/public/html/home.png b/libs/cairo-1.16.0/doc/public/html/home.png new file mode 100644 index 0000000..b293af5 Binary files /dev/null and b/libs/cairo-1.16.0/doc/public/html/home.png differ diff --git a/libs/cairo-1.16.0/doc/public/html/index-1.10.html b/libs/cairo-1.16.0/doc/public/html/index-1.10.html new file mode 100644 index 0000000..871bcad --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/index-1.10.html @@ -0,0 +1,176 @@ + + + + +Index of new symbols in 1.10: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+

+Index of new symbols in 1.10

+
+
+

D

+
+
cairo_device_acquire, cairo_device_acquire () +
+
cairo_device_destroy, cairo_device_destroy () +
+
cairo_device_finish, cairo_device_finish () +
+
cairo_device_flush, cairo_device_flush () +
+
cairo_device_get_reference_count, cairo_device_get_reference_count () +
+
cairo_device_get_type, cairo_device_get_type () +
+
cairo_device_get_user_data, cairo_device_get_user_data () +
+
cairo_device_reference, cairo_device_reference () +
+
cairo_device_release, cairo_device_release () +
+
cairo_device_set_user_data, cairo_device_set_user_data () +
+
cairo_device_status, cairo_device_status () +
+
cairo_device_t, cairo_device_t +
+
cairo_device_type_t, enum cairo_device_type_t +
+
+
+
+

H

+
+
CAIRO_HAS_FC_FONT, CAIRO_HAS_FC_FONT +
+
CAIRO_HAS_RECORDING_SURFACE, CAIRO_HAS_RECORDING_SURFACE +
+
+
+
+

I

+
cairo_in_clip, cairo_in_clip () +
+
+
+

M

+
+
CAIRO_MIME_TYPE_JP2, CAIRO_MIME_TYPE_JP2 +
+
CAIRO_MIME_TYPE_JPEG, CAIRO_MIME_TYPE_JPEG +
+
CAIRO_MIME_TYPE_PNG, CAIRO_MIME_TYPE_PNG +
+
CAIRO_MIME_TYPE_URI, CAIRO_MIME_TYPE_URI +
+
+
+
+

P

+
+
cairo_pdf_get_versions, cairo_pdf_get_versions () +
+
cairo_pdf_surface_restrict_to_version, cairo_pdf_surface_restrict_to_version () +
+
cairo_pdf_version_t, enum cairo_pdf_version_t +
+
cairo_pdf_version_to_string, cairo_pdf_version_to_string () +
+
+
+
+

R

+
+
cairo_recording_surface_create, cairo_recording_surface_create () +
+
cairo_recording_surface_ink_extents, cairo_recording_surface_ink_extents () +
+
cairo_rectangle_int_t, cairo_rectangle_int_t +
+
cairo_region_contains_point, cairo_region_contains_point () +
+
cairo_region_contains_rectangle, cairo_region_contains_rectangle () +
+
cairo_region_copy, cairo_region_copy () +
+
cairo_region_create, cairo_region_create () +
+
cairo_region_create_rectangle, cairo_region_create_rectangle () +
+
cairo_region_create_rectangles, cairo_region_create_rectangles () +
+
cairo_region_destroy, cairo_region_destroy () +
+
cairo_region_equal, cairo_region_equal () +
+
cairo_region_get_extents, cairo_region_get_extents () +
+
cairo_region_get_rectangle, cairo_region_get_rectangle () +
+
cairo_region_intersect, cairo_region_intersect () +
+
cairo_region_intersect_rectangle, cairo_region_intersect_rectangle () +
+
cairo_region_is_empty, cairo_region_is_empty () +
+
cairo_region_num_rectangles, cairo_region_num_rectangles () +
+
cairo_region_overlap_t, enum cairo_region_overlap_t +
+
cairo_region_reference, cairo_region_reference () +
+
cairo_region_status, cairo_region_status () +
+
cairo_region_subtract, cairo_region_subtract () +
+
cairo_region_subtract_rectangle, cairo_region_subtract_rectangle () +
+
cairo_region_t, cairo_region_t +
+
cairo_region_translate, cairo_region_translate () +
+
cairo_region_union, cairo_region_union () +
+
cairo_region_union_rectangle, cairo_region_union_rectangle () +
+
cairo_region_xor, cairo_region_xor () +
+
cairo_region_xor_rectangle, cairo_region_xor_rectangle () +
+
+
+
+

S

+
+
cairo_surface_create_for_rectangle, cairo_surface_create_for_rectangle () +
+
cairo_surface_get_device, cairo_surface_get_device () +
+
cairo_surface_get_mime_data, cairo_surface_get_mime_data () +
+
cairo_surface_set_mime_data, cairo_surface_set_mime_data () +
+
+
+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/index-1.12.html b/libs/cairo-1.16.0/doc/public/html/index-1.12.html new file mode 100644 index 0000000..2778727 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/index-1.12.html @@ -0,0 +1,192 @@ + + + + +Index of new symbols in 1.12: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+

+Index of new symbols in 1.12

+
+
+

F

+
+
cairo_ft_font_face_get_synthesize, cairo_ft_font_face_get_synthesize () +
+
cairo_ft_font_face_set_synthesize, cairo_ft_font_face_set_synthesize () +
+
cairo_ft_font_face_unset_synthesize, cairo_ft_font_face_unset_synthesize () +
+
cairo_ft_synthesize_t, enum cairo_ft_synthesize_t +
+
+
+
+

H

+
+
CAIRO_HAS_SCRIPT_SURFACE, CAIRO_HAS_SCRIPT_SURFACE +
+
CAIRO_HAS_XCB_SURFACE, CAIRO_HAS_XCB_SURFACE +
+
+
+
+

M

+
+
cairo_mesh_pattern_begin_patch, cairo_mesh_pattern_begin_patch () +
+
cairo_mesh_pattern_curve_to, cairo_mesh_pattern_curve_to () +
+
cairo_mesh_pattern_end_patch, cairo_mesh_pattern_end_patch () +
+
cairo_mesh_pattern_get_control_point, cairo_mesh_pattern_get_control_point () +
+
cairo_mesh_pattern_get_corner_color_rgba, cairo_mesh_pattern_get_corner_color_rgba () +
+
cairo_mesh_pattern_get_patch_count, cairo_mesh_pattern_get_patch_count () +
+
cairo_mesh_pattern_get_path, cairo_mesh_pattern_get_path () +
+
cairo_mesh_pattern_line_to, cairo_mesh_pattern_line_to () +
+
cairo_mesh_pattern_move_to, cairo_mesh_pattern_move_to () +
+
cairo_mesh_pattern_set_control_point, cairo_mesh_pattern_set_control_point () +
+
cairo_mesh_pattern_set_corner_color_rgb, cairo_mesh_pattern_set_corner_color_rgb () +
+
cairo_mesh_pattern_set_corner_color_rgba, cairo_mesh_pattern_set_corner_color_rgba () +
+
CAIRO_MIME_TYPE_UNIQUE_ID, CAIRO_MIME_TYPE_UNIQUE_ID +
+
+
+
+

P

+
+
cairo_pattern_create_mesh, cairo_pattern_create_mesh () +
+
cairo_pattern_create_raster_source, cairo_pattern_create_raster_source () +
+
+
+
+

R

+
+
cairo_raster_source_acquire_func_t, cairo_raster_source_acquire_func_t () +
+
cairo_raster_source_copy_func_t, cairo_raster_source_copy_func_t () +
+
cairo_raster_source_finish_func_t, cairo_raster_source_finish_func_t () +
+
cairo_raster_source_pattern_get_acquire, cairo_raster_source_pattern_get_acquire () +
+
cairo_raster_source_pattern_get_callback_data, cairo_raster_source_pattern_get_callback_data () +
+
cairo_raster_source_pattern_get_copy, cairo_raster_source_pattern_get_copy () +
+
cairo_raster_source_pattern_get_finish, cairo_raster_source_pattern_get_finish () +
+
cairo_raster_source_pattern_get_snapshot, cairo_raster_source_pattern_get_snapshot () +
+
cairo_raster_source_pattern_set_acquire, cairo_raster_source_pattern_set_acquire () +
+
cairo_raster_source_pattern_set_callback_data, cairo_raster_source_pattern_set_callback_data () +
+
cairo_raster_source_pattern_set_copy, cairo_raster_source_pattern_set_copy () +
+
cairo_raster_source_pattern_set_finish, cairo_raster_source_pattern_set_finish () +
+
cairo_raster_source_pattern_set_snapshot, cairo_raster_source_pattern_set_snapshot () +
+
cairo_raster_source_release_func_t, cairo_raster_source_release_func_t () +
+
cairo_raster_source_snapshot_func_t, cairo_raster_source_snapshot_func_t () +
+
cairo_recording_surface_get_extents, cairo_recording_surface_get_extents () +
+
+
+
+

S

+
+
cairo_script_create, cairo_script_create () +
+
cairo_script_create_for_stream, cairo_script_create_for_stream () +
+
cairo_script_from_recording_surface, cairo_script_from_recording_surface () +
+
cairo_script_get_mode, cairo_script_get_mode () +
+
cairo_script_mode_t, enum cairo_script_mode_t +
+
cairo_script_set_mode, cairo_script_set_mode () +
+
cairo_script_surface_create, cairo_script_surface_create () +
+
cairo_script_surface_create_for_target, cairo_script_surface_create_for_target () +
+
cairo_script_write_comment, cairo_script_write_comment () +
+
cairo_surface_create_similar_image, cairo_surface_create_similar_image () +
+
cairo_surface_map_to_image, cairo_surface_map_to_image () +
+
cairo_surface_supports_mime_type, cairo_surface_supports_mime_type () +
+
cairo_surface_unmap_image, cairo_surface_unmap_image () +
+
+
+
+

X

+
+
cairo_xcb_device_debug_cap_xrender_version, cairo_xcb_device_debug_cap_xrender_version () +
+
cairo_xcb_device_debug_cap_xshm_version, cairo_xcb_device_debug_cap_xshm_version () +
+
cairo_xcb_device_debug_get_precision, cairo_xcb_device_debug_get_precision () +
+
cairo_xcb_device_debug_set_precision, cairo_xcb_device_debug_set_precision () +
+
cairo_xcb_device_get_connection, cairo_xcb_device_get_connection () +
+
cairo_xcb_surface_create, cairo_xcb_surface_create () +
+
cairo_xcb_surface_create_for_bitmap, cairo_xcb_surface_create_for_bitmap () +
+
cairo_xcb_surface_create_with_xrender_format, cairo_xcb_surface_create_with_xrender_format () +
+
cairo_xcb_surface_set_drawable, cairo_xcb_surface_set_drawable () +
+
cairo_xcb_surface_set_size, cairo_xcb_surface_set_size () +
+
cairo_xlib_device_debug_cap_xrender_version, cairo_xlib_device_debug_cap_xrender_version () +
+
cairo_xlib_device_debug_get_precision, cairo_xlib_device_debug_get_precision () +
+
cairo_xlib_device_debug_set_precision, cairo_xlib_device_debug_set_precision () +
+
+
+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/index-1.14.html b/libs/cairo-1.16.0/doc/public/html/index-1.14.html new file mode 100644 index 0000000..2a20b8a --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/index-1.14.html @@ -0,0 +1,56 @@ + + + + +Index of new symbols in 1.14: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+

+Index of new symbols in 1.14

+
+
+

M

+
+
CAIRO_MIME_TYPE_JBIG2, CAIRO_MIME_TYPE_JBIG2 +
+
CAIRO_MIME_TYPE_JBIG2_GLOBAL, CAIRO_MIME_TYPE_JBIG2_GLOBAL +
+
CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID, CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID +
+
+
+
+

S

+
+
cairo_surface_get_device_scale, cairo_surface_get_device_scale () +
+
cairo_surface_set_device_scale, cairo_surface_set_device_scale () +
+
+
+
+

W

+
cairo_win32_surface_create_with_format, cairo_win32_surface_create_with_format () +
+
+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/index-1.16.html b/libs/cairo-1.16.0/doc/public/html/index-1.16.html new file mode 100644 index 0000000..00c44bf --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/index-1.16.html @@ -0,0 +1,96 @@ + + + + +Index of new symbols in 1.16: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+

+Index of new symbols in 1.16

+
+
+

F

+
+
cairo_font_options_get_variations, cairo_font_options_get_variations () +
+
cairo_font_options_set_variations, cairo_font_options_set_variations () +
+
+
+
+

M

+
+
CAIRO_MIME_TYPE_CCITT_FAX, CAIRO_MIME_TYPE_CCITT_FAX +
+
CAIRO_MIME_TYPE_CCITT_FAX_PARAMS, CAIRO_MIME_TYPE_CCITT_FAX_PARAMS +
+
CAIRO_MIME_TYPE_EPS, CAIRO_MIME_TYPE_EPS +
+
CAIRO_MIME_TYPE_EPS_PARAMS, CAIRO_MIME_TYPE_EPS_PARAMS +
+
+
+
+

P

+
+
cairo_pdf_metadata_t, enum cairo_pdf_metadata_t +
+
cairo_pdf_outline_flags_t, enum cairo_pdf_outline_flags_t +
+
CAIRO_PDF_OUTLINE_ROOT, CAIRO_PDF_OUTLINE_ROOT +
+
cairo_pdf_surface_add_outline, cairo_pdf_surface_add_outline () +
+
cairo_pdf_surface_set_metadata, cairo_pdf_surface_set_metadata () +
+
cairo_pdf_surface_set_page_label, cairo_pdf_surface_set_page_label () +
+
cairo_pdf_surface_set_thumbnail_size, cairo_pdf_surface_set_thumbnail_size () +
+
+
+
+

S

+
+
cairo_svg_surface_get_document_unit, cairo_svg_surface_get_document_unit () +
+
cairo_svg_surface_set_document_unit, cairo_svg_surface_set_document_unit () +
+
cairo_svg_unit_t, enum cairo_svg_unit_t +
+
+
+
+

T

+
+
cairo_tag_begin, cairo_tag_begin () +
+
CAIRO_TAG_DEST, CAIRO_TAG_DEST +
+
cairo_tag_end, cairo_tag_end () +
+
CAIRO_TAG_LINK, CAIRO_TAG_LINK +
+
+
+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/index-1.2.html b/libs/cairo-1.16.0/doc/public/html/index-1.2.html new file mode 100644 index 0000000..e9195d9 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/index-1.2.html @@ -0,0 +1,178 @@ + + + + +Index of new symbols in 1.2: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+

+Index of new symbols in 1.2

+
+
+

F

+
+
cairo_font_face_get_type, cairo_font_face_get_type () +
+
cairo_font_type_t, enum cairo_font_type_t +
+
+
+
+

G

+
cairo_get_group_target, cairo_get_group_target () +
+
+
+

H

+
+
CAIRO_HAS_PDF_SURFACE, CAIRO_HAS_PDF_SURFACE +
+
CAIRO_HAS_PS_SURFACE, CAIRO_HAS_PS_SURFACE +
+
CAIRO_HAS_SVG_SURFACE, CAIRO_HAS_SVG_SURFACE +
+
+
+
+

I

+
+
cairo_image_surface_get_data, cairo_image_surface_get_data () +
+
cairo_image_surface_get_format, cairo_image_surface_get_format () +
+
cairo_image_surface_get_stride, cairo_image_surface_get_stride () +
+
+
+
+

N

+
cairo_new_sub_path, cairo_new_sub_path () +
+
+
+

P

+
+
cairo_pattern_get_type, cairo_pattern_get_type () +
+
cairo_pattern_type_t, enum cairo_pattern_type_t +
+
cairo_pdf_surface_create, cairo_pdf_surface_create () +
+
cairo_pdf_surface_create_for_stream, cairo_pdf_surface_create_for_stream () +
+
cairo_pdf_surface_set_size, cairo_pdf_surface_set_size () +
+
cairo_pop_group, cairo_pop_group () +
+
cairo_pop_group_to_source, cairo_pop_group_to_source () +
+
cairo_ps_surface_create, cairo_ps_surface_create () +
+
cairo_ps_surface_create_for_stream, cairo_ps_surface_create_for_stream () +
+
cairo_ps_surface_dsc_begin_page_setup, cairo_ps_surface_dsc_begin_page_setup () +
+
cairo_ps_surface_dsc_begin_setup, cairo_ps_surface_dsc_begin_setup () +
+
cairo_ps_surface_dsc_comment, cairo_ps_surface_dsc_comment () +
+
cairo_ps_surface_set_size, cairo_ps_surface_set_size () +
+
cairo_push_group, cairo_push_group () +
+
cairo_push_group_with_content, cairo_push_group_with_content () +
+
+
+
+

S

+
+
cairo_scaled_font_get_ctm, cairo_scaled_font_get_ctm () +
+
cairo_scaled_font_get_font_face, cairo_scaled_font_get_font_face () +
+
cairo_scaled_font_get_font_matrix, cairo_scaled_font_get_font_matrix () +
+
cairo_scaled_font_get_font_options, cairo_scaled_font_get_font_options () +
+
cairo_scaled_font_get_type, cairo_scaled_font_get_type () +
+
cairo_scaled_font_text_extents, cairo_scaled_font_text_extents () +
+
cairo_set_scaled_font, cairo_set_scaled_font () +
+
cairo_surface_get_content, cairo_surface_get_content () +
+
cairo_surface_get_device_offset, cairo_surface_get_device_offset () +
+
cairo_surface_get_type, cairo_surface_get_type () +
+
cairo_surface_set_fallback_resolution, cairo_surface_set_fallback_resolution () +
+
cairo_surface_type_t, enum cairo_surface_type_t +
+
cairo_svg_get_versions, cairo_svg_get_versions () +
+
cairo_svg_surface_create, cairo_svg_surface_create () +
+
cairo_svg_surface_create_for_stream, cairo_svg_surface_create_for_stream () +
+
cairo_svg_surface_restrict_to_version, cairo_svg_surface_restrict_to_version () +
+
cairo_svg_version_t, enum cairo_svg_version_t +
+
cairo_svg_version_to_string, cairo_svg_version_to_string () +
+
+
+
+

W

+
+
cairo_win32_font_face_create_for_hfont, cairo_win32_font_face_create_for_hfont () +
+
cairo_win32_surface_create_with_dib, cairo_win32_surface_create_with_dib () +
+
cairo_win32_surface_get_dc, cairo_win32_surface_get_dc () +
+
+
+
+

X

+
+
cairo_xlib_surface_get_depth, cairo_xlib_surface_get_depth () +
+
cairo_xlib_surface_get_display, cairo_xlib_surface_get_display () +
+
cairo_xlib_surface_get_drawable, cairo_xlib_surface_get_drawable () +
+
cairo_xlib_surface_get_height, cairo_xlib_surface_get_height () +
+
cairo_xlib_surface_get_screen, cairo_xlib_surface_get_screen () +
+
cairo_xlib_surface_get_visual, cairo_xlib_surface_get_visual () +
+
cairo_xlib_surface_get_width, cairo_xlib_surface_get_width () +
+
+
+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/index-1.4.html b/libs/cairo-1.16.0/doc/public/html/index-1.4.html new file mode 100644 index 0000000..c9014a1 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/index-1.4.html @@ -0,0 +1,122 @@ + + + + +Index of new symbols in 1.4: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+

+Index of new symbols in 1.4

+
+
+

C

+
+
cairo_clip_extents, cairo_clip_extents () +
+
cairo_copy_clip_rectangle_list, cairo_copy_clip_rectangle_list () +
+
+
+
+

F

+
cairo_font_face_get_reference_count, cairo_font_face_get_reference_count () +
+
+
+

G

+
+
cairo_get_dash, cairo_get_dash () +
+
cairo_get_dash_count, cairo_get_dash_count () +
+
cairo_get_reference_count, cairo_get_reference_count () +
+
cairo_get_scaled_font, cairo_get_scaled_font () +
+
cairo_get_user_data, cairo_get_user_data () +
+
+
+
+

P

+
+
cairo_pattern_get_color_stop_count, cairo_pattern_get_color_stop_count () +
+
cairo_pattern_get_color_stop_rgba, cairo_pattern_get_color_stop_rgba () +
+
cairo_pattern_get_linear_points, cairo_pattern_get_linear_points () +
+
cairo_pattern_get_radial_circles, cairo_pattern_get_radial_circles () +
+
cairo_pattern_get_reference_count, cairo_pattern_get_reference_count () +
+
cairo_pattern_get_rgba, cairo_pattern_get_rgba () +
+
cairo_pattern_get_surface, cairo_pattern_get_surface () +
+
cairo_pattern_get_user_data, cairo_pattern_get_user_data () +
+
cairo_pattern_set_user_data, cairo_pattern_set_user_data () +
+
+
+
+

R

+
+
cairo_rectangle_list_destroy, cairo_rectangle_list_destroy () +
+
cairo_rectangle_list_t, cairo_rectangle_list_t +
+
cairo_rectangle_t, cairo_rectangle_t +
+
+
+
+

S

+
+
cairo_scaled_font_get_reference_count, cairo_scaled_font_get_reference_count () +
+
cairo_scaled_font_get_user_data, cairo_scaled_font_get_user_data () +
+
cairo_scaled_font_set_user_data, cairo_scaled_font_set_user_data () +
+
cairo_set_user_data, cairo_set_user_data () +
+
cairo_surface_get_reference_count, cairo_surface_get_reference_count () +
+
+
+
+

W

+
+
cairo_win32_scaled_font_get_device_to_logical, cairo_win32_scaled_font_get_device_to_logical () +
+
cairo_win32_scaled_font_get_logical_to_device, cairo_win32_scaled_font_get_logical_to_device () +
+
cairo_win32_surface_create_with_ddb, cairo_win32_surface_create_with_ddb () +
+
cairo_win32_surface_get_image, cairo_win32_surface_get_image () +
+
+
+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/index-1.6.html b/libs/cairo-1.16.0/doc/public/html/index-1.6.html new file mode 100644 index 0000000..bc28f26 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/index-1.6.html @@ -0,0 +1,106 @@ + + + + +Index of new symbols in 1.6: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+

+Index of new symbols in 1.6

+
+
+

F

+
cairo_format_stride_for_width, cairo_format_stride_for_width () +
+
+
+

H

+
+
cairo_has_current_point, cairo_has_current_point () +
+
CAIRO_HAS_QUARTZ_FONT, CAIRO_HAS_QUARTZ_FONT +
+
CAIRO_HAS_QUARTZ_SURFACE, CAIRO_HAS_QUARTZ_SURFACE +
+
CAIRO_HAS_XLIB_XRENDER_SURFACE, CAIRO_HAS_XLIB_XRENDER_SURFACE +
+
+
+
+

P

+
+
cairo_path_extents, cairo_path_extents () +
+
cairo_ps_get_levels, cairo_ps_get_levels () +
+
cairo_ps_level_t, enum cairo_ps_level_t +
+
cairo_ps_level_to_string, cairo_ps_level_to_string () +
+
cairo_ps_surface_get_eps, cairo_ps_surface_get_eps () +
+
cairo_ps_surface_restrict_to_level, cairo_ps_surface_restrict_to_level () +
+
cairo_ps_surface_set_eps, cairo_ps_surface_set_eps () +
+
+
+
+

Q

+
+
cairo_quartz_font_face_create_for_atsu_font_id, cairo_quartz_font_face_create_for_atsu_font_id () +
+
cairo_quartz_font_face_create_for_cgfont, cairo_quartz_font_face_create_for_cgfont () +
+
cairo_quartz_surface_create, cairo_quartz_surface_create () +
+
cairo_quartz_surface_create_for_cg_context, cairo_quartz_surface_create_for_cg_context () +
+
cairo_quartz_surface_get_cg_context, cairo_quartz_surface_get_cg_context () +
+
+
+
+

S

+
+
cairo_surface_copy_page, cairo_surface_copy_page () +
+
cairo_surface_show_page, cairo_surface_show_page () +
+
+
+
+

W

+
+
cairo_win32_font_face_create_for_logfontw_hfont, cairo_win32_font_face_create_for_logfontw_hfont () +
+
cairo_win32_printing_surface_create, cairo_win32_printing_surface_create () +
+
+
+
+

X

+
cairo_xlib_surface_get_xrender_format, cairo_xlib_surface_get_xrender_format () +
+
+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/index-1.8.html b/libs/cairo-1.16.0/doc/public/html/index-1.8.html new file mode 100644 index 0000000..fc8aa42 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/index-1.8.html @@ -0,0 +1,127 @@ + + + + +Index of new symbols in 1.8: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+

+Index of new symbols in 1.8

+
+
+

G

+
+
cairo_glyph_allocate, cairo_glyph_allocate () +
+
cairo_glyph_free, cairo_glyph_free () +
+
+
+
+

H

+
+
CAIRO_HAS_IMAGE_SURFACE, CAIRO_HAS_IMAGE_SURFACE +
+
CAIRO_HAS_USER_FONT, CAIRO_HAS_USER_FONT +
+
CAIRO_HAS_WIN32_FONT, CAIRO_HAS_WIN32_FONT +
+
+
+
+

S

+
+
cairo_scaled_font_get_scale_matrix, cairo_scaled_font_get_scale_matrix () +
+
cairo_scaled_font_text_to_glyphs, cairo_scaled_font_text_to_glyphs () +
+
cairo_show_text_glyphs, cairo_show_text_glyphs () +
+
cairo_surface_get_fallback_resolution, cairo_surface_get_fallback_resolution () +
+
cairo_surface_has_show_text_glyphs, cairo_surface_has_show_text_glyphs () +
+
+
+
+

T

+
+
cairo_text_cluster_allocate, cairo_text_cluster_allocate () +
+
cairo_text_cluster_flags_t, enum cairo_text_cluster_flags_t +
+
cairo_text_cluster_free, cairo_text_cluster_free () +
+
cairo_text_cluster_t, cairo_text_cluster_t +
+
cairo_toy_font_face_create, cairo_toy_font_face_create () +
+
cairo_toy_font_face_get_family, cairo_toy_font_face_get_family () +
+
cairo_toy_font_face_get_slant, cairo_toy_font_face_get_slant () +
+
cairo_toy_font_face_get_weight, cairo_toy_font_face_get_weight () +
+
+
+
+

U

+
+
cairo_user_font_face_create, cairo_user_font_face_create () +
+
cairo_user_font_face_get_init_func, cairo_user_font_face_get_init_func () +
+
cairo_user_font_face_get_render_glyph_func, cairo_user_font_face_get_render_glyph_func () +
+
cairo_user_font_face_get_text_to_glyphs_func, cairo_user_font_face_get_text_to_glyphs_func () +
+
cairo_user_font_face_get_unicode_to_glyph_func, cairo_user_font_face_get_unicode_to_glyph_func () +
+
cairo_user_font_face_set_init_func, cairo_user_font_face_set_init_func () +
+
cairo_user_font_face_set_render_glyph_func, cairo_user_font_face_set_render_glyph_func () +
+
cairo_user_font_face_set_text_to_glyphs_func, cairo_user_font_face_set_text_to_glyphs_func () +
+
cairo_user_font_face_set_unicode_to_glyph_func, cairo_user_font_face_set_unicode_to_glyph_func () +
+
cairo_user_scaled_font_init_func_t, cairo_user_scaled_font_init_func_t () +
+
cairo_user_scaled_font_render_glyph_func_t, cairo_user_scaled_font_render_glyph_func_t () +
+
cairo_user_scaled_font_text_to_glyphs_func_t, cairo_user_scaled_font_text_to_glyphs_func_t () +
+
cairo_user_scaled_font_unicode_to_glyph_func_t, cairo_user_scaled_font_unicode_to_glyph_func_t () +
+
+
+
+

V

+
+
CAIRO_VERSION_STRING, CAIRO_VERSION_STRING +
+
CAIRO_VERSION_STRINGIZE, CAIRO_VERSION_STRINGIZE() +
+
+
+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/index-all.html b/libs/cairo-1.16.0/doc/public/html/index-all.html new file mode 100644 index 0000000..54b84f7 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/index-all.html @@ -0,0 +1,1163 @@ + + + + +Index: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+

+Index

+
+
+

A

+
+
cairo_antialias_t, enum cairo_antialias_t +
+
cairo_append_path, cairo_append_path () +
+
cairo_arc, cairo_arc () +
+
cairo_arc_negative, cairo_arc_negative () +
+
+
+
+

B

+
cairo_bool_t, cairo_bool_t +
+
+
+

C

+
+
cairo_clip, cairo_clip () +
+
cairo_clip_extents, cairo_clip_extents () +
+
cairo_clip_preserve, cairo_clip_preserve () +
+
cairo_close_path, cairo_close_path () +
+
cairo_content_t, enum cairo_content_t +
+
cairo_copy_clip_rectangle_list, cairo_copy_clip_rectangle_list () +
+
cairo_copy_page, cairo_copy_page () +
+
cairo_copy_path, cairo_copy_path () +
+
cairo_copy_path_flat, cairo_copy_path_flat () +
+
cairo_create, cairo_create () +
+
cairo_curve_to, cairo_curve_to () +
+
+
+
+

D

+
+
cairo_debug_reset_static_data, cairo_debug_reset_static_data () +
+
cairo_destroy, cairo_destroy () +
+
cairo_destroy_func_t, cairo_destroy_func_t () +
+
cairo_device_acquire, cairo_device_acquire () +
+
cairo_device_destroy, cairo_device_destroy () +
+
cairo_device_finish, cairo_device_finish () +
+
cairo_device_flush, cairo_device_flush () +
+
cairo_device_get_reference_count, cairo_device_get_reference_count () +
+
cairo_device_get_type, cairo_device_get_type () +
+
cairo_device_get_user_data, cairo_device_get_user_data () +
+
cairo_device_observer_elapsed, cairo_device_observer_elapsed () +
+
cairo_device_observer_fill_elapsed, cairo_device_observer_fill_elapsed () +
+
cairo_device_observer_glyphs_elapsed, cairo_device_observer_glyphs_elapsed () +
+
cairo_device_observer_mask_elapsed, cairo_device_observer_mask_elapsed () +
+
cairo_device_observer_paint_elapsed, cairo_device_observer_paint_elapsed () +
+
cairo_device_observer_print, cairo_device_observer_print () +
+
cairo_device_observer_stroke_elapsed, cairo_device_observer_stroke_elapsed () +
+
cairo_device_reference, cairo_device_reference () +
+
cairo_device_release, cairo_device_release () +
+
cairo_device_set_user_data, cairo_device_set_user_data () +
+
cairo_device_status, cairo_device_status () +
+
cairo_device_t, cairo_device_t +
+
cairo_device_to_user, cairo_device_to_user () +
+
cairo_device_to_user_distance, cairo_device_to_user_distance () +
+
cairo_device_type_t, enum cairo_device_type_t +
+
+
+
+

E

+
cairo_extend_t, enum cairo_extend_t +
+
+
+

F

+
+
cairo_fill, cairo_fill () +
+
cairo_fill_extents, cairo_fill_extents () +
+
cairo_fill_preserve, cairo_fill_preserve () +
+
cairo_fill_rule_t, enum cairo_fill_rule_t +
+
cairo_filter_t, enum cairo_filter_t +
+
cairo_font_extents, cairo_font_extents () +
+
cairo_font_extents_t, cairo_font_extents_t +
+
cairo_font_face_destroy, cairo_font_face_destroy () +
+
cairo_font_face_get_reference_count, cairo_font_face_get_reference_count () +
+
cairo_font_face_get_type, cairo_font_face_get_type () +
+
cairo_font_face_get_user_data, cairo_font_face_get_user_data () +
+
cairo_font_face_reference, cairo_font_face_reference () +
+
cairo_font_face_set_user_data, cairo_font_face_set_user_data () +
+
cairo_font_face_status, cairo_font_face_status () +
+
cairo_font_face_t, cairo_font_face_t +
+
cairo_font_options_copy, cairo_font_options_copy () +
+
cairo_font_options_create, cairo_font_options_create () +
+
cairo_font_options_destroy, cairo_font_options_destroy () +
+
cairo_font_options_equal, cairo_font_options_equal () +
+
cairo_font_options_get_antialias, cairo_font_options_get_antialias () +
+
cairo_font_options_get_hint_metrics, cairo_font_options_get_hint_metrics () +
+
cairo_font_options_get_hint_style, cairo_font_options_get_hint_style () +
+
cairo_font_options_get_subpixel_order, cairo_font_options_get_subpixel_order () +
+
cairo_font_options_get_variations, cairo_font_options_get_variations () +
+
cairo_font_options_hash, cairo_font_options_hash () +
+
cairo_font_options_merge, cairo_font_options_merge () +
+
cairo_font_options_set_antialias, cairo_font_options_set_antialias () +
+
cairo_font_options_set_hint_metrics, cairo_font_options_set_hint_metrics () +
+
cairo_font_options_set_hint_style, cairo_font_options_set_hint_style () +
+
cairo_font_options_set_subpixel_order, cairo_font_options_set_subpixel_order () +
+
cairo_font_options_set_variations, cairo_font_options_set_variations () +
+
cairo_font_options_status, cairo_font_options_status () +
+
cairo_font_options_t, cairo_font_options_t +
+
cairo_font_slant_t, enum cairo_font_slant_t +
+
cairo_font_type_t, enum cairo_font_type_t +
+
cairo_font_weight_t, enum cairo_font_weight_t +
+
cairo_format_stride_for_width, cairo_format_stride_for_width () +
+
cairo_format_t, enum cairo_format_t +
+
cairo_ft_font_face_create_for_ft_face, cairo_ft_font_face_create_for_ft_face () +
+
cairo_ft_font_face_create_for_pattern, cairo_ft_font_face_create_for_pattern () +
+
cairo_ft_font_face_get_synthesize, cairo_ft_font_face_get_synthesize () +
+
cairo_ft_font_face_set_synthesize, cairo_ft_font_face_set_synthesize () +
+
cairo_ft_font_face_unset_synthesize, cairo_ft_font_face_unset_synthesize () +
+
cairo_ft_font_options_substitute, cairo_ft_font_options_substitute () +
+
cairo_ft_scaled_font_lock_face, cairo_ft_scaled_font_lock_face () +
+
cairo_ft_scaled_font_unlock_face, cairo_ft_scaled_font_unlock_face () +
+
cairo_ft_synthesize_t, enum cairo_ft_synthesize_t +
+
+
+
+

G

+
+
cairo_get_antialias, cairo_get_antialias () +
+
cairo_get_current_point, cairo_get_current_point () +
+
cairo_get_dash, cairo_get_dash () +
+
cairo_get_dash_count, cairo_get_dash_count () +
+
cairo_get_fill_rule, cairo_get_fill_rule () +
+
cairo_get_font_face, cairo_get_font_face () +
+
cairo_get_font_matrix, cairo_get_font_matrix () +
+
cairo_get_font_options, cairo_get_font_options () +
+
cairo_get_group_target, cairo_get_group_target () +
+
cairo_get_line_cap, cairo_get_line_cap () +
+
cairo_get_line_join, cairo_get_line_join () +
+
cairo_get_line_width, cairo_get_line_width () +
+
cairo_get_matrix, cairo_get_matrix () +
+
cairo_get_miter_limit, cairo_get_miter_limit () +
+
cairo_get_operator, cairo_get_operator () +
+
cairo_get_reference_count, cairo_get_reference_count () +
+
cairo_get_scaled_font, cairo_get_scaled_font () +
+
cairo_get_source, cairo_get_source () +
+
cairo_get_target, cairo_get_target () +
+
cairo_get_tolerance, cairo_get_tolerance () +
+
cairo_get_user_data, cairo_get_user_data () +
+
cairo_glyph_allocate, cairo_glyph_allocate () +
+
cairo_glyph_extents, cairo_glyph_extents () +
+
cairo_glyph_free, cairo_glyph_free () +
+
cairo_glyph_path, cairo_glyph_path () +
+
cairo_glyph_t, cairo_glyph_t +
+
+
+
+

H

+
+
cairo_has_current_point, cairo_has_current_point () +
+
CAIRO_HAS_FC_FONT, CAIRO_HAS_FC_FONT +
+
CAIRO_HAS_FT_FONT, CAIRO_HAS_FT_FONT +
+
CAIRO_HAS_IMAGE_SURFACE, CAIRO_HAS_IMAGE_SURFACE +
+
CAIRO_HAS_MIME_SURFACE, CAIRO_HAS_MIME_SURFACE +
+
CAIRO_HAS_PDF_SURFACE, CAIRO_HAS_PDF_SURFACE +
+
CAIRO_HAS_PNG_FUNCTIONS, CAIRO_HAS_PNG_FUNCTIONS +
+
CAIRO_HAS_PS_SURFACE, CAIRO_HAS_PS_SURFACE +
+
CAIRO_HAS_QUARTZ_FONT, CAIRO_HAS_QUARTZ_FONT +
+
CAIRO_HAS_QUARTZ_SURFACE, CAIRO_HAS_QUARTZ_SURFACE +
+
CAIRO_HAS_RECORDING_SURFACE, CAIRO_HAS_RECORDING_SURFACE +
+
CAIRO_HAS_SCRIPT_SURFACE, CAIRO_HAS_SCRIPT_SURFACE +
+
CAIRO_HAS_SVG_SURFACE, CAIRO_HAS_SVG_SURFACE +
+
CAIRO_HAS_USER_FONT, CAIRO_HAS_USER_FONT +
+
CAIRO_HAS_WIN32_FONT, CAIRO_HAS_WIN32_FONT +
+
CAIRO_HAS_WIN32_SURFACE, CAIRO_HAS_WIN32_SURFACE +
+
CAIRO_HAS_XCB_SHM_FUNCTIONS, CAIRO_HAS_XCB_SHM_FUNCTIONS +
+
CAIRO_HAS_XCB_SURFACE, CAIRO_HAS_XCB_SURFACE +
+
CAIRO_HAS_XLIB_SURFACE, CAIRO_HAS_XLIB_SURFACE +
+
CAIRO_HAS_XLIB_XRENDER_SURFACE, CAIRO_HAS_XLIB_XRENDER_SURFACE +
+
cairo_hint_metrics_t, enum cairo_hint_metrics_t +
+
cairo_hint_style_t, enum cairo_hint_style_t +
+
+
+
+

I

+
+
cairo_identity_matrix, cairo_identity_matrix () +
+
cairo_image_surface_create, cairo_image_surface_create () +
+
cairo_image_surface_create_for_data, cairo_image_surface_create_for_data () +
+
cairo_image_surface_create_from_png, cairo_image_surface_create_from_png () +
+
cairo_image_surface_create_from_png_stream, cairo_image_surface_create_from_png_stream () +
+
cairo_image_surface_get_data, cairo_image_surface_get_data () +
+
cairo_image_surface_get_format, cairo_image_surface_get_format () +
+
cairo_image_surface_get_height, cairo_image_surface_get_height () +
+
cairo_image_surface_get_stride, cairo_image_surface_get_stride () +
+
cairo_image_surface_get_width, cairo_image_surface_get_width () +
+
cairo_in_clip, cairo_in_clip () +
+
cairo_in_fill, cairo_in_fill () +
+
cairo_in_stroke, cairo_in_stroke () +
+
+
+
+

L

+
+
cairo_line_cap_t, enum cairo_line_cap_t +
+
cairo_line_join_t, enum cairo_line_join_t +
+
cairo_line_to, cairo_line_to () +
+
+
+
+

M

+
+
cairo_mask, cairo_mask () +
+
cairo_mask_surface, cairo_mask_surface () +
+
cairo_matrix_init, cairo_matrix_init () +
+
cairo_matrix_init_identity, cairo_matrix_init_identity () +
+
cairo_matrix_init_rotate, cairo_matrix_init_rotate () +
+
cairo_matrix_init_scale, cairo_matrix_init_scale () +
+
cairo_matrix_init_translate, cairo_matrix_init_translate () +
+
cairo_matrix_invert, cairo_matrix_invert () +
+
cairo_matrix_multiply, cairo_matrix_multiply () +
+
cairo_matrix_rotate, cairo_matrix_rotate () +
+
cairo_matrix_scale, cairo_matrix_scale () +
+
cairo_matrix_t, cairo_matrix_t +
+
cairo_matrix_transform_distance, cairo_matrix_transform_distance () +
+
cairo_matrix_transform_point, cairo_matrix_transform_point () +
+
cairo_matrix_translate, cairo_matrix_translate () +
+
cairo_mesh_pattern_begin_patch, cairo_mesh_pattern_begin_patch () +
+
cairo_mesh_pattern_curve_to, cairo_mesh_pattern_curve_to () +
+
cairo_mesh_pattern_end_patch, cairo_mesh_pattern_end_patch () +
+
cairo_mesh_pattern_get_control_point, cairo_mesh_pattern_get_control_point () +
+
cairo_mesh_pattern_get_corner_color_rgba, cairo_mesh_pattern_get_corner_color_rgba () +
+
cairo_mesh_pattern_get_patch_count, cairo_mesh_pattern_get_patch_count () +
+
cairo_mesh_pattern_get_path, cairo_mesh_pattern_get_path () +
+
cairo_mesh_pattern_line_to, cairo_mesh_pattern_line_to () +
+
cairo_mesh_pattern_move_to, cairo_mesh_pattern_move_to () +
+
cairo_mesh_pattern_set_control_point, cairo_mesh_pattern_set_control_point () +
+
cairo_mesh_pattern_set_corner_color_rgb, cairo_mesh_pattern_set_corner_color_rgb () +
+
cairo_mesh_pattern_set_corner_color_rgba, cairo_mesh_pattern_set_corner_color_rgba () +
+
CAIRO_MIME_TYPE_CCITT_FAX, CAIRO_MIME_TYPE_CCITT_FAX +
+
CAIRO_MIME_TYPE_CCITT_FAX_PARAMS, CAIRO_MIME_TYPE_CCITT_FAX_PARAMS +
+
CAIRO_MIME_TYPE_EPS, CAIRO_MIME_TYPE_EPS +
+
CAIRO_MIME_TYPE_EPS_PARAMS, CAIRO_MIME_TYPE_EPS_PARAMS +
+
CAIRO_MIME_TYPE_JBIG2, CAIRO_MIME_TYPE_JBIG2 +
+
CAIRO_MIME_TYPE_JBIG2_GLOBAL, CAIRO_MIME_TYPE_JBIG2_GLOBAL +
+
CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID, CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID +
+
CAIRO_MIME_TYPE_JP2, CAIRO_MIME_TYPE_JP2 +
+
CAIRO_MIME_TYPE_JPEG, CAIRO_MIME_TYPE_JPEG +
+
CAIRO_MIME_TYPE_PNG, CAIRO_MIME_TYPE_PNG +
+
CAIRO_MIME_TYPE_UNIQUE_ID, CAIRO_MIME_TYPE_UNIQUE_ID +
+
CAIRO_MIME_TYPE_URI, CAIRO_MIME_TYPE_URI +
+
cairo_move_to, cairo_move_to () +
+
+
+
+

N

+
+
cairo_new_path, cairo_new_path () +
+
cairo_new_sub_path, cairo_new_sub_path () +
+
+
+
+

O

+
cairo_operator_t, enum cairo_operator_t +
+
+
+

P

+
+
cairo_paint, cairo_paint () +
+
cairo_paint_with_alpha, cairo_paint_with_alpha () +
+
cairo_path_data_t, union cairo_path_data_t +
+
cairo_path_data_type_t, enum cairo_path_data_type_t +
+
cairo_path_destroy, cairo_path_destroy () +
+
cairo_path_extents, cairo_path_extents () +
+
cairo_path_t, cairo_path_t +
+
cairo_pattern_add_color_stop_rgb, cairo_pattern_add_color_stop_rgb () +
+
cairo_pattern_add_color_stop_rgba, cairo_pattern_add_color_stop_rgba () +
+
cairo_pattern_create_for_surface, cairo_pattern_create_for_surface () +
+
cairo_pattern_create_linear, cairo_pattern_create_linear () +
+
cairo_pattern_create_mesh, cairo_pattern_create_mesh () +
+
cairo_pattern_create_radial, cairo_pattern_create_radial () +
+
cairo_pattern_create_raster_source, cairo_pattern_create_raster_source () +
+
cairo_pattern_create_rgb, cairo_pattern_create_rgb () +
+
cairo_pattern_create_rgba, cairo_pattern_create_rgba () +
+
cairo_pattern_destroy, cairo_pattern_destroy () +
+
cairo_pattern_get_color_stop_count, cairo_pattern_get_color_stop_count () +
+
cairo_pattern_get_color_stop_rgba, cairo_pattern_get_color_stop_rgba () +
+
cairo_pattern_get_extend, cairo_pattern_get_extend () +
+
cairo_pattern_get_filter, cairo_pattern_get_filter () +
+
cairo_pattern_get_linear_points, cairo_pattern_get_linear_points () +
+
cairo_pattern_get_matrix, cairo_pattern_get_matrix () +
+
cairo_pattern_get_radial_circles, cairo_pattern_get_radial_circles () +
+
cairo_pattern_get_reference_count, cairo_pattern_get_reference_count () +
+
cairo_pattern_get_rgba, cairo_pattern_get_rgba () +
+
cairo_pattern_get_surface, cairo_pattern_get_surface () +
+
cairo_pattern_get_type, cairo_pattern_get_type () +
+
cairo_pattern_get_user_data, cairo_pattern_get_user_data () +
+
cairo_pattern_reference, cairo_pattern_reference () +
+
cairo_pattern_set_extend, cairo_pattern_set_extend () +
+
cairo_pattern_set_filter, cairo_pattern_set_filter () +
+
cairo_pattern_set_matrix, cairo_pattern_set_matrix () +
+
cairo_pattern_set_user_data, cairo_pattern_set_user_data () +
+
cairo_pattern_status, cairo_pattern_status () +
+
cairo_pattern_t, cairo_pattern_t +
+
cairo_pattern_type_t, enum cairo_pattern_type_t +
+
cairo_pdf_get_versions, cairo_pdf_get_versions () +
+
cairo_pdf_metadata_t, enum cairo_pdf_metadata_t +
+
cairo_pdf_outline_flags_t, enum cairo_pdf_outline_flags_t +
+
CAIRO_PDF_OUTLINE_ROOT, CAIRO_PDF_OUTLINE_ROOT +
+
cairo_pdf_surface_add_outline, cairo_pdf_surface_add_outline () +
+
cairo_pdf_surface_create, cairo_pdf_surface_create () +
+
cairo_pdf_surface_create_for_stream, cairo_pdf_surface_create_for_stream () +
+
cairo_pdf_surface_restrict_to_version, cairo_pdf_surface_restrict_to_version () +
+
cairo_pdf_surface_set_metadata, cairo_pdf_surface_set_metadata () +
+
cairo_pdf_surface_set_page_label, cairo_pdf_surface_set_page_label () +
+
cairo_pdf_surface_set_size, cairo_pdf_surface_set_size () +
+
cairo_pdf_surface_set_thumbnail_size, cairo_pdf_surface_set_thumbnail_size () +
+
cairo_pdf_version_t, enum cairo_pdf_version_t +
+
cairo_pdf_version_to_string, cairo_pdf_version_to_string () +
+
cairo_pop_group, cairo_pop_group () +
+
cairo_pop_group_to_source, cairo_pop_group_to_source () +
+
cairo_ps_get_levels, cairo_ps_get_levels () +
+
cairo_ps_level_t, enum cairo_ps_level_t +
+
cairo_ps_level_to_string, cairo_ps_level_to_string () +
+
cairo_ps_surface_create, cairo_ps_surface_create () +
+
cairo_ps_surface_create_for_stream, cairo_ps_surface_create_for_stream () +
+
cairo_ps_surface_dsc_begin_page_setup, cairo_ps_surface_dsc_begin_page_setup () +
+
cairo_ps_surface_dsc_begin_setup, cairo_ps_surface_dsc_begin_setup () +
+
cairo_ps_surface_dsc_comment, cairo_ps_surface_dsc_comment () +
+
cairo_ps_surface_get_eps, cairo_ps_surface_get_eps () +
+
cairo_ps_surface_restrict_to_level, cairo_ps_surface_restrict_to_level () +
+
cairo_ps_surface_set_eps, cairo_ps_surface_set_eps () +
+
cairo_ps_surface_set_size, cairo_ps_surface_set_size () +
+
cairo_push_group, cairo_push_group () +
+
cairo_push_group_with_content, cairo_push_group_with_content () +
+
+
+
+

Q

+
+
cairo_quartz_font_face_create_for_atsu_font_id, cairo_quartz_font_face_create_for_atsu_font_id () +
+
cairo_quartz_font_face_create_for_cgfont, cairo_quartz_font_face_create_for_cgfont () +
+
cairo_quartz_surface_create, cairo_quartz_surface_create () +
+
cairo_quartz_surface_create_for_cg_context, cairo_quartz_surface_create_for_cg_context () +
+
cairo_quartz_surface_get_cg_context, cairo_quartz_surface_get_cg_context () +
+
+
+
+

R

+
+
cairo_raster_source_acquire_func_t, cairo_raster_source_acquire_func_t () +
+
cairo_raster_source_copy_func_t, cairo_raster_source_copy_func_t () +
+
cairo_raster_source_finish_func_t, cairo_raster_source_finish_func_t () +
+
cairo_raster_source_pattern_get_acquire, cairo_raster_source_pattern_get_acquire () +
+
cairo_raster_source_pattern_get_callback_data, cairo_raster_source_pattern_get_callback_data () +
+
cairo_raster_source_pattern_get_copy, cairo_raster_source_pattern_get_copy () +
+
cairo_raster_source_pattern_get_finish, cairo_raster_source_pattern_get_finish () +
+
cairo_raster_source_pattern_get_snapshot, cairo_raster_source_pattern_get_snapshot () +
+
cairo_raster_source_pattern_set_acquire, cairo_raster_source_pattern_set_acquire () +
+
cairo_raster_source_pattern_set_callback_data, cairo_raster_source_pattern_set_callback_data () +
+
cairo_raster_source_pattern_set_copy, cairo_raster_source_pattern_set_copy () +
+
cairo_raster_source_pattern_set_finish, cairo_raster_source_pattern_set_finish () +
+
cairo_raster_source_pattern_set_snapshot, cairo_raster_source_pattern_set_snapshot () +
+
cairo_raster_source_release_func_t, cairo_raster_source_release_func_t () +
+
cairo_raster_source_snapshot_func_t, cairo_raster_source_snapshot_func_t () +
+
cairo_read_func_t, cairo_read_func_t () +
+
cairo_recording_surface_create, cairo_recording_surface_create () +
+
cairo_recording_surface_get_extents, cairo_recording_surface_get_extents () +
+
cairo_recording_surface_ink_extents, cairo_recording_surface_ink_extents () +
+
cairo_rectangle, cairo_rectangle () +
+
cairo_rectangle_int_t, cairo_rectangle_int_t +
+
cairo_rectangle_list_destroy, cairo_rectangle_list_destroy () +
+
cairo_rectangle_list_t, cairo_rectangle_list_t +
+
cairo_rectangle_t, cairo_rectangle_t +
+
cairo_reference, cairo_reference () +
+
cairo_region_contains_point, cairo_region_contains_point () +
+
cairo_region_contains_rectangle, cairo_region_contains_rectangle () +
+
cairo_region_copy, cairo_region_copy () +
+
cairo_region_create, cairo_region_create () +
+
cairo_region_create_rectangle, cairo_region_create_rectangle () +
+
cairo_region_create_rectangles, cairo_region_create_rectangles () +
+
cairo_region_destroy, cairo_region_destroy () +
+
cairo_region_equal, cairo_region_equal () +
+
cairo_region_get_extents, cairo_region_get_extents () +
+
cairo_region_get_rectangle, cairo_region_get_rectangle () +
+
cairo_region_intersect, cairo_region_intersect () +
+
cairo_region_intersect_rectangle, cairo_region_intersect_rectangle () +
+
cairo_region_is_empty, cairo_region_is_empty () +
+
cairo_region_num_rectangles, cairo_region_num_rectangles () +
+
cairo_region_overlap_t, enum cairo_region_overlap_t +
+
cairo_region_reference, cairo_region_reference () +
+
cairo_region_status, cairo_region_status () +
+
cairo_region_subtract, cairo_region_subtract () +
+
cairo_region_subtract_rectangle, cairo_region_subtract_rectangle () +
+
cairo_region_t, cairo_region_t +
+
cairo_region_translate, cairo_region_translate () +
+
cairo_region_union, cairo_region_union () +
+
cairo_region_union_rectangle, cairo_region_union_rectangle () +
+
cairo_region_xor, cairo_region_xor () +
+
cairo_region_xor_rectangle, cairo_region_xor_rectangle () +
+
cairo_rel_curve_to, cairo_rel_curve_to () +
+
cairo_rel_line_to, cairo_rel_line_to () +
+
cairo_rel_move_to, cairo_rel_move_to () +
+
cairo_reset_clip, cairo_reset_clip () +
+
cairo_restore, cairo_restore () +
+
cairo_rotate, cairo_rotate () +
+
+
+
+

S

+
+
cairo_save, cairo_save () +
+
cairo_scale, cairo_scale () +
+
cairo_scaled_font_create, cairo_scaled_font_create () +
+
cairo_scaled_font_destroy, cairo_scaled_font_destroy () +
+
cairo_scaled_font_extents, cairo_scaled_font_extents () +
+
cairo_scaled_font_get_ctm, cairo_scaled_font_get_ctm () +
+
cairo_scaled_font_get_font_face, cairo_scaled_font_get_font_face () +
+
cairo_scaled_font_get_font_matrix, cairo_scaled_font_get_font_matrix () +
+
cairo_scaled_font_get_font_options, cairo_scaled_font_get_font_options () +
+
cairo_scaled_font_get_reference_count, cairo_scaled_font_get_reference_count () +
+
cairo_scaled_font_get_scale_matrix, cairo_scaled_font_get_scale_matrix () +
+
cairo_scaled_font_get_type, cairo_scaled_font_get_type () +
+
cairo_scaled_font_get_user_data, cairo_scaled_font_get_user_data () +
+
cairo_scaled_font_glyph_extents, cairo_scaled_font_glyph_extents () +
+
cairo_scaled_font_reference, cairo_scaled_font_reference () +
+
cairo_scaled_font_set_user_data, cairo_scaled_font_set_user_data () +
+
cairo_scaled_font_status, cairo_scaled_font_status () +
+
cairo_scaled_font_t, cairo_scaled_font_t +
+
cairo_scaled_font_text_extents, cairo_scaled_font_text_extents () +
+
cairo_scaled_font_text_to_glyphs, cairo_scaled_font_text_to_glyphs () +
+
cairo_script_create, cairo_script_create () +
+
cairo_script_create_for_stream, cairo_script_create_for_stream () +
+
cairo_script_from_recording_surface, cairo_script_from_recording_surface () +
+
cairo_script_get_mode, cairo_script_get_mode () +
+
cairo_script_mode_t, enum cairo_script_mode_t +
+
cairo_script_set_mode, cairo_script_set_mode () +
+
cairo_script_surface_create, cairo_script_surface_create () +
+
cairo_script_surface_create_for_target, cairo_script_surface_create_for_target () +
+
cairo_script_write_comment, cairo_script_write_comment () +
+
cairo_select_font_face, cairo_select_font_face () +
+
cairo_set_antialias, cairo_set_antialias () +
+
cairo_set_dash, cairo_set_dash () +
+
cairo_set_fill_rule, cairo_set_fill_rule () +
+
cairo_set_font_face, cairo_set_font_face () +
+
cairo_set_font_matrix, cairo_set_font_matrix () +
+
cairo_set_font_options, cairo_set_font_options () +
+
cairo_set_font_size, cairo_set_font_size () +
+
cairo_set_line_cap, cairo_set_line_cap () +
+
cairo_set_line_join, cairo_set_line_join () +
+
cairo_set_line_width, cairo_set_line_width () +
+
cairo_set_matrix, cairo_set_matrix () +
+
cairo_set_miter_limit, cairo_set_miter_limit () +
+
cairo_set_operator, cairo_set_operator () +
+
cairo_set_scaled_font, cairo_set_scaled_font () +
+
cairo_set_source, cairo_set_source () +
+
cairo_set_source_rgb, cairo_set_source_rgb () +
+
cairo_set_source_rgba, cairo_set_source_rgba () +
+
cairo_set_source_surface, cairo_set_source_surface () +
+
cairo_set_tolerance, cairo_set_tolerance () +
+
cairo_set_user_data, cairo_set_user_data () +
+
cairo_show_glyphs, cairo_show_glyphs () +
+
cairo_show_page, cairo_show_page () +
+
cairo_show_text, cairo_show_text () +
+
cairo_show_text_glyphs, cairo_show_text_glyphs () +
+
cairo_status, cairo_status () +
+
cairo_status_t, enum cairo_status_t +
+
cairo_status_to_string, cairo_status_to_string () +
+
cairo_stroke, cairo_stroke () +
+
cairo_stroke_extents, cairo_stroke_extents () +
+
cairo_stroke_preserve, cairo_stroke_preserve () +
+
cairo_subpixel_order_t, enum cairo_subpixel_order_t +
+
cairo_surface_copy_page, cairo_surface_copy_page () +
+
cairo_surface_create_for_rectangle, cairo_surface_create_for_rectangle () +
+
cairo_surface_create_similar, cairo_surface_create_similar () +
+
cairo_surface_create_similar_image, cairo_surface_create_similar_image () +
+
cairo_surface_destroy, cairo_surface_destroy () +
+
cairo_surface_finish, cairo_surface_finish () +
+
cairo_surface_flush, cairo_surface_flush () +
+
cairo_surface_get_content, cairo_surface_get_content () +
+
cairo_surface_get_device, cairo_surface_get_device () +
+
cairo_surface_get_device_offset, cairo_surface_get_device_offset () +
+
cairo_surface_get_device_scale, cairo_surface_get_device_scale () +
+
cairo_surface_get_fallback_resolution, cairo_surface_get_fallback_resolution () +
+
cairo_surface_get_font_options, cairo_surface_get_font_options () +
+
cairo_surface_get_mime_data, cairo_surface_get_mime_data () +
+
cairo_surface_get_reference_count, cairo_surface_get_reference_count () +
+
cairo_surface_get_type, cairo_surface_get_type () +
+
cairo_surface_get_user_data, cairo_surface_get_user_data () +
+
cairo_surface_has_show_text_glyphs, cairo_surface_has_show_text_glyphs () +
+
cairo_surface_map_to_image, cairo_surface_map_to_image () +
+
cairo_surface_mark_dirty, cairo_surface_mark_dirty () +
+
cairo_surface_mark_dirty_rectangle, cairo_surface_mark_dirty_rectangle () +
+
cairo_surface_reference, cairo_surface_reference () +
+
cairo_surface_set_device_offset, cairo_surface_set_device_offset () +
+
cairo_surface_set_device_scale, cairo_surface_set_device_scale () +
+
cairo_surface_set_fallback_resolution, cairo_surface_set_fallback_resolution () +
+
cairo_surface_set_mime_data, cairo_surface_set_mime_data () +
+
cairo_surface_set_user_data, cairo_surface_set_user_data () +
+
cairo_surface_show_page, cairo_surface_show_page () +
+
cairo_surface_status, cairo_surface_status () +
+
cairo_surface_supports_mime_type, cairo_surface_supports_mime_type () +
+
cairo_surface_t, cairo_surface_t +
+
cairo_surface_type_t, enum cairo_surface_type_t +
+
cairo_surface_unmap_image, cairo_surface_unmap_image () +
+
cairo_surface_write_to_png, cairo_surface_write_to_png () +
+
cairo_surface_write_to_png_stream, cairo_surface_write_to_png_stream () +
+
cairo_svg_get_versions, cairo_svg_get_versions () +
+
cairo_svg_surface_create, cairo_svg_surface_create () +
+
cairo_svg_surface_create_for_stream, cairo_svg_surface_create_for_stream () +
+
cairo_svg_surface_get_document_unit, cairo_svg_surface_get_document_unit () +
+
cairo_svg_surface_restrict_to_version, cairo_svg_surface_restrict_to_version () +
+
cairo_svg_surface_set_document_unit, cairo_svg_surface_set_document_unit () +
+
cairo_svg_unit_t, enum cairo_svg_unit_t +
+
cairo_svg_version_t, enum cairo_svg_version_t +
+
cairo_svg_version_to_string, cairo_svg_version_to_string () +
+
+
+
+

T

+
+
cairo_t, cairo_t +
+
cairo_tag_begin, cairo_tag_begin () +
+
CAIRO_TAG_DEST, CAIRO_TAG_DEST +
+
cairo_tag_end, cairo_tag_end () +
+
CAIRO_TAG_LINK, CAIRO_TAG_LINK +
+
cairo_text_cluster_allocate, cairo_text_cluster_allocate () +
+
cairo_text_cluster_flags_t, enum cairo_text_cluster_flags_t +
+
cairo_text_cluster_free, cairo_text_cluster_free () +
+
cairo_text_cluster_t, cairo_text_cluster_t +
+
cairo_text_extents, cairo_text_extents () +
+
cairo_text_extents_t, cairo_text_extents_t +
+
cairo_text_path, cairo_text_path () +
+
cairo_toy_font_face_create, cairo_toy_font_face_create () +
+
cairo_toy_font_face_get_family, cairo_toy_font_face_get_family () +
+
cairo_toy_font_face_get_slant, cairo_toy_font_face_get_slant () +
+
cairo_toy_font_face_get_weight, cairo_toy_font_face_get_weight () +
+
cairo_transform, cairo_transform () +
+
cairo_translate, cairo_translate () +
+
+
+
+

U

+
+
cairo_user_data_key_t, cairo_user_data_key_t +
+
cairo_user_font_face_create, cairo_user_font_face_create () +
+
cairo_user_font_face_get_init_func, cairo_user_font_face_get_init_func () +
+
cairo_user_font_face_get_render_glyph_func, cairo_user_font_face_get_render_glyph_func () +
+
cairo_user_font_face_get_text_to_glyphs_func, cairo_user_font_face_get_text_to_glyphs_func () +
+
cairo_user_font_face_get_unicode_to_glyph_func, cairo_user_font_face_get_unicode_to_glyph_func () +
+
cairo_user_font_face_set_init_func, cairo_user_font_face_set_init_func () +
+
cairo_user_font_face_set_render_glyph_func, cairo_user_font_face_set_render_glyph_func () +
+
cairo_user_font_face_set_text_to_glyphs_func, cairo_user_font_face_set_text_to_glyphs_func () +
+
cairo_user_font_face_set_unicode_to_glyph_func, cairo_user_font_face_set_unicode_to_glyph_func () +
+
cairo_user_scaled_font_init_func_t, cairo_user_scaled_font_init_func_t () +
+
cairo_user_scaled_font_render_glyph_func_t, cairo_user_scaled_font_render_glyph_func_t () +
+
cairo_user_scaled_font_text_to_glyphs_func_t, cairo_user_scaled_font_text_to_glyphs_func_t () +
+
cairo_user_scaled_font_unicode_to_glyph_func_t, cairo_user_scaled_font_unicode_to_glyph_func_t () +
+
cairo_user_to_device, cairo_user_to_device () +
+
cairo_user_to_device_distance, cairo_user_to_device_distance () +
+
+
+
+

V

+
+
cairo_version, cairo_version () +
+
CAIRO_VERSION, CAIRO_VERSION +
+
CAIRO_VERSION_ENCODE, CAIRO_VERSION_ENCODE() +
+
CAIRO_VERSION_MAJOR, CAIRO_VERSION_MAJOR +
+
CAIRO_VERSION_MICRO, CAIRO_VERSION_MICRO +
+
CAIRO_VERSION_MINOR, CAIRO_VERSION_MINOR +
+
cairo_version_string, cairo_version_string () +
+
CAIRO_VERSION_STRING, CAIRO_VERSION_STRING +
+
CAIRO_VERSION_STRINGIZE, CAIRO_VERSION_STRINGIZE() +
+
+
+
+

W

+
+
cairo_win32_font_face_create_for_hfont, cairo_win32_font_face_create_for_hfont () +
+
cairo_win32_font_face_create_for_logfontw, cairo_win32_font_face_create_for_logfontw () +
+
cairo_win32_font_face_create_for_logfontw_hfont, cairo_win32_font_face_create_for_logfontw_hfont () +
+
cairo_win32_printing_surface_create, cairo_win32_printing_surface_create () +
+
cairo_win32_scaled_font_done_font, cairo_win32_scaled_font_done_font () +
+
cairo_win32_scaled_font_get_device_to_logical, cairo_win32_scaled_font_get_device_to_logical () +
+
cairo_win32_scaled_font_get_logical_to_device, cairo_win32_scaled_font_get_logical_to_device () +
+
cairo_win32_scaled_font_get_metrics_factor, cairo_win32_scaled_font_get_metrics_factor () +
+
cairo_win32_scaled_font_select_font, cairo_win32_scaled_font_select_font () +
+
cairo_win32_surface_create, cairo_win32_surface_create () +
+
cairo_win32_surface_create_with_ddb, cairo_win32_surface_create_with_ddb () +
+
cairo_win32_surface_create_with_dib, cairo_win32_surface_create_with_dib () +
+
cairo_win32_surface_create_with_format, cairo_win32_surface_create_with_format () +
+
cairo_win32_surface_get_dc, cairo_win32_surface_get_dc () +
+
cairo_win32_surface_get_image, cairo_win32_surface_get_image () +
+
cairo_write_func_t, cairo_write_func_t () +
+
+
+
+

X

+
+
cairo_xcb_device_debug_cap_xrender_version, cairo_xcb_device_debug_cap_xrender_version () +
+
cairo_xcb_device_debug_cap_xshm_version, cairo_xcb_device_debug_cap_xshm_version () +
+
cairo_xcb_device_debug_get_precision, cairo_xcb_device_debug_get_precision () +
+
cairo_xcb_device_debug_set_precision, cairo_xcb_device_debug_set_precision () +
+
cairo_xcb_device_get_connection, cairo_xcb_device_get_connection () +
+
cairo_xcb_surface_create, cairo_xcb_surface_create () +
+
cairo_xcb_surface_create_for_bitmap, cairo_xcb_surface_create_for_bitmap () +
+
cairo_xcb_surface_create_with_xrender_format, cairo_xcb_surface_create_with_xrender_format () +
+
cairo_xcb_surface_set_drawable, cairo_xcb_surface_set_drawable () +
+
cairo_xcb_surface_set_size, cairo_xcb_surface_set_size () +
+
cairo_xlib_device_debug_cap_xrender_version, cairo_xlib_device_debug_cap_xrender_version () +
+
cairo_xlib_device_debug_get_precision, cairo_xlib_device_debug_get_precision () +
+
cairo_xlib_device_debug_set_precision, cairo_xlib_device_debug_set_precision () +
+
cairo_xlib_surface_create, cairo_xlib_surface_create () +
+
cairo_xlib_surface_create_for_bitmap, cairo_xlib_surface_create_for_bitmap () +
+
cairo_xlib_surface_create_with_xrender_format, cairo_xlib_surface_create_with_xrender_format () +
+
cairo_xlib_surface_get_depth, cairo_xlib_surface_get_depth () +
+
cairo_xlib_surface_get_display, cairo_xlib_surface_get_display () +
+
cairo_xlib_surface_get_drawable, cairo_xlib_surface_get_drawable () +
+
cairo_xlib_surface_get_height, cairo_xlib_surface_get_height () +
+
cairo_xlib_surface_get_screen, cairo_xlib_surface_get_screen () +
+
cairo_xlib_surface_get_visual, cairo_xlib_surface_get_visual () +
+
cairo_xlib_surface_get_width, cairo_xlib_surface_get_width () +
+
cairo_xlib_surface_get_xrender_format, cairo_xlib_surface_get_xrender_format () +
+
cairo_xlib_surface_set_drawable, cairo_xlib_surface_set_drawable () +
+
cairo_xlib_surface_set_size, cairo_xlib_surface_set_size () +
+
+
+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/index.html b/libs/cairo-1.16.0/doc/public/html/index.html new file mode 100644 index 0000000..e822e21 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/index.html @@ -0,0 +1,161 @@ + + + + +Cairo: A Vector Graphics Library: Cairo: A Vector Graphics Library + + + + + + + +
+
+
+
+

for Cairo 1.16.0 +

+
+
+
+
+
Drawing
+
+
+cairo_t — The cairo drawing context +
+
+Paths — Creating paths and manipulating path data +
+
+cairo_pattern_t — Sources for drawing +
+
+Regions — Representing a pixel-aligned area +
+
+Transformations — Manipulating the current transformation matrix +
+
+text — Rendering text and glyphs +
+
+Raster Sources — Supplying arbitrary image data +
+
+Tags and Links — Hyperlinks and document structure +
+
+
Fonts
+
+
+cairo_font_face_t — Base class for font faces +
+
+cairo_scaled_font_t — Font face at particular size and options +
+
+cairo_font_options_t — How a font should be rendered +
+
+FreeType Fonts — Font support for FreeType +
+
+Win32 Fonts — Font support for Microsoft Windows +
+
+Quartz (CGFont) Fonts — Font support via CGFont on OS X +
+
+User Fonts — Font support with font data provided by the user +
+
+
Surfaces
+
+
+cairo_device_t — interface to underlying rendering system +
+
+cairo_surface_t — Base class for surfaces +
+
+Image Surfaces — Rendering to memory buffers +
+
+PDF Surfaces — Rendering PDF documents +
+
+PNG Support — Reading and writing PNG images +
+
+PostScript Surfaces — Rendering PostScript documents +
+
+Recording Surfaces — Records all drawing operations +
+
+Win32 Surfaces — Microsoft Windows surface support +
+
+SVG Surfaces — Rendering SVG documents +
+
+Quartz Surfaces — Rendering to Quartz surfaces +
+
+XCB Surfaces — X Window System rendering using the XCB library +
+
+XLib Surfaces — X Window System rendering using XLib +
+
+XLib-XRender Backend — X Window System rendering using XLib and the X Render extension +
+
+Script Surfaces — Rendering to replayable scripts +
+
+
Utilities
+
+
+cairo_matrix_t — Generic matrix operations +
+
+Error handling — Decoding cairo's status +
+
+Version Information — Compile-time and run-time version checks. +
+
+Types — Generic data types +
+
+
Index
+
Index of new symbols in 1.2
+
Index of new symbols in 1.4
+
Index of new symbols in 1.6
+
Index of new symbols in 1.8
+
Index of new symbols in 1.10
+
Index of new symbols in 1.12
+
Index of new symbols in 1.14
+
Index of new symbols in 1.16
+
A. Creating a language binding for cairo
+
+
General considerations
+
Memory management
+
Multiple return values
+
Overloading and optional arguments
+
Streams and File I/O
+
Error handling
+
Patterns
+
Surfaces
+
Fonts
+
cairo_path_t
+
+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/language-bindings.html b/libs/cairo-1.16.0/doc/public/html/language-bindings.html new file mode 100644 index 0000000..82643db --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/language-bindings.html @@ -0,0 +1,72 @@ + + + + +Appendix A. Creating a language binding for cairo: Cairo: A Vector Graphics Library + + + + + + + + + + + + + + + + +
+

+Appendix A. Creating a language binding for cairo

+

+ While cairo is implemented and C, and has a C API, it is expected + that many users of cairo will be using it from languages other + than C. The glue that connects the core cairo library to another + language is known as a language + binding. This appendix attempts to collect together + issues that come up when creating a language bindings for cairo + and present standardized solutions to promote consistency among + the different language bindings. +

+
+

+General considerations

+

+ The naming of the central cairo_t type is a + special exception. The object is “a cairo context” not “a + cairo”, and names such as cairo_t rather than + cairo_context_t and + cairo_set_source() rather than + cairo_context_set_source() are simply + abbreviations to make the C API more palatable. In languages + which have object-oriented syntax, this abbreviation is much + less useful. In fact, if ‘Cairo’ is used as a namespace, then + in many languages, you'd end up with a ridiculous type name + like ‘Cairo.Cairo’. For this reason, and for inter-language + consistency all object-oriented languages should name this + type as if it were cairo_context_t. +

+

+ The punctuation and casing of the type names and + method names of cairo should be changed to match the general + convention of the language. In Java, where type names are written + in StudlyCaps and method names in javaCaps, cairo_font_extents_t + will become FontExtents and + cairo_set_source(cr,source), + cr.setSource(source). + As compared to changing the punctuation, and casing, much + more reluctance should be used in changing the method names + themselves. Even if get is usually omitted from getters in + your language, you shouldn't bind cairo_get_source() as + cr.source(). +

+
+
+ + + \ No newline at end of file diff --git a/libs/cairo-1.16.0/doc/public/html/left-insensitive.png b/libs/cairo-1.16.0/doc/public/html/left-insensitive.png new file mode 100644 index 0000000..903790a Binary files /dev/null and b/libs/cairo-1.16.0/doc/public/html/left-insensitive.png differ diff --git a/libs/cairo-1.16.0/doc/public/html/left.png b/libs/cairo-1.16.0/doc/public/html/left.png new file mode 100644 index 0000000..21b31e3 Binary files /dev/null and b/libs/cairo-1.16.0/doc/public/html/left.png differ diff --git a/libs/cairo-1.16.0/doc/public/html/right-insensitive.png b/libs/cairo-1.16.0/doc/public/html/right-insensitive.png new file mode 100644 index 0000000..a3696bf Binary files /dev/null and b/libs/cairo-1.16.0/doc/public/html/right-insensitive.png differ diff --git a/libs/cairo-1.16.0/doc/public/html/right.png b/libs/cairo-1.16.0/doc/public/html/right.png new file mode 100644 index 0000000..73d25da Binary files /dev/null and b/libs/cairo-1.16.0/doc/public/html/right.png differ diff --git a/libs/cairo-1.16.0/doc/public/html/style.css b/libs/cairo-1.16.0/doc/public/html/style.css new file mode 100644 index 0000000..3675420 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/html/style.css @@ -0,0 +1,479 @@ +body +{ + font-family: cantarell, sans-serif; +} +.synopsis, .classsynopsis +{ + /* tango:aluminium 1/2 */ + background: #eeeeec; + background: rgba(238, 238, 236, 0.5); + border: solid 1px rgb(238, 238, 236); + padding: 0.5em; +} +.programlisting +{ + /* tango:sky blue 0/1 */ + /* fallback for no rgba support */ + background: #e6f3ff; + border: solid 1px #729fcf; + background: rgba(114, 159, 207, 0.1); + border: solid 1px rgba(114, 159, 207, 0.2); + padding: 0.5em; +} +.variablelist +{ + padding: 4px; + margin-left: 3em; +} +.variablelist td:first-child +{ + vertical-align: top; +} + +div.gallery-float +{ + float: left; + padding: 10px; +} +div.gallery-float img +{ + border-style: none; +} +div.gallery-spacer +{ + clear: both; +} + +a, a:visited +{ + text-decoration: none; + /* tango:sky blue 2 */ + color: #3465a4; +} +a:hover +{ + text-decoration: underline; + /* tango:sky blue 1 */ + color: #729fcf; +} + +div.informaltable table +{ + border-collapse: separate; + border-spacing: 1em 0.3em; + border: none; +} + +div.informaltable table td, div.informaltable table th +{ + vertical-align: top; +} + +.function_type, +.variable_type, +.property_type, +.signal_type, +.parameter_name, +.struct_member_name, +.union_member_name, +.define_keyword, +.datatype_keyword, +.typedef_keyword +{ + text-align: right; +} + +/* dim non-primary columns */ +.c_punctuation, +.function_type, +.variable_type, +.property_type, +.signal_type, +.define_keyword, +.datatype_keyword, +.typedef_keyword, +.property_flags, +.signal_flags, +.parameter_annotations, +.enum_member_annotations, +.struct_member_annotations, +.union_member_annotations +{ + color: #888a85; +} + +.function_type a, +.function_type a:visited, +.function_type a:hover, +.property_type a, +.property_type a:visited, +.property_type a:hover, +.signal_type a, +.signal_type a:visited, +.signal_type a:hover, +.signal_flags a, +.signal_flags a:visited, +.signal_flags a:hover +{ + color: #729fcf; +} + +td p +{ + margin: 0.25em; +} + +div.table table +{ + border-collapse: collapse; + border-spacing: 0px; + /* tango:aluminium 3 */ + border: solid 1px #babdb6; +} + +div.table table td, div.table table th +{ + /* tango:aluminium 3 */ + border: solid 1px #babdb6; + padding: 3px; + vertical-align: top; +} + +div.table table th +{ + /* tango:aluminium 2 */ + background-color: #d3d7cf; +} + +h4 +{ + color: #555753; + margin-top: 1em; + margin-bottom: 1em; +} + +hr +{ + /* tango:aluminium 1 */ + color: #d3d7cf; + background: #d3d7cf; + border: none 0px; + height: 1px; + clear: both; + margin: 2.0em 0em 2.0em 0em; +} + +dl.toc dt +{ + padding-bottom: 0.25em; +} + +dl.toc > dt +{ + padding-top: 0.25em; + padding-bottom: 0.25em; + font-weight: bold; +} + +dl.toc > dl +{ + padding-bottom: 0.5em; +} + +.parameter +{ + font-style: normal; +} + +.footer +{ + padding-top: 3.5em; + /* tango:aluminium 3 */ + color: #babdb6; + text-align: center; + font-size: 80%; +} + +.informalfigure, +.figure +{ + margin: 1em; +} + +.informalexample, +.example +{ + margin-top: 1em; + margin-bottom: 1em; +} + +.warning +{ + /* tango:orange 0/1 */ + background: #ffeed9; + background: rgba(252, 175, 62, 0.1); + border-color: #ffb04f; + border-color: rgba(252, 175, 62, 0.2); +} +.note +{ + /* tango:chameleon 0/0.5 */ + background: #d8ffb2; + background: rgba(138, 226, 52, 0.1); + border-color: #abf562; + border-color: rgba(138, 226, 52, 0.2); +} +div.blockquote +{ + border-color: #eeeeec; +} +.note, .warning, div.blockquote +{ + padding: 0.5em; + border-width: 1px; + border-style: solid; + margin: 2em; +} +.note p, .warning p +{ + margin: 0; +} + +div.warning h3.title, +div.note h3.title +{ + display: none; +} + +p + div.section +{ + margin-top: 1em; +} + +div.refnamediv, +div.refsynopsisdiv, +div.refsect1, +div.refsect2, +div.toc, +div.section +{ + margin-bottom: 1em; +} + +/* blob links */ +h2 .extralinks, h3 .extralinks +{ + float: right; + /* tango:aluminium 3 */ + color: #babdb6; + font-size: 80%; + font-weight: normal; +} + +.lineart +{ + color: #d3d7cf; + font-weight: normal; +} + +.annotation +{ + /* tango:aluminium 5 */ + color: #555753; + font-weight: normal; +} + +.structfield +{ + font-style: normal; + font-weight: normal; +} + +acronym,abbr +{ + border-bottom: 1px dotted gray; +} + +/* code listings */ + +.listing_code .programlisting .normal, +.listing_code .programlisting .normal a, +.listing_code .programlisting .number, +.listing_code .programlisting .cbracket, +.listing_code .programlisting .symbol { color: #555753; } +.listing_code .programlisting .comment, +.listing_code .programlisting .linenum { color: #babdb6; } /* tango: aluminium 3 */ +.listing_code .programlisting .function, +.listing_code .programlisting .function a, +.listing_code .programlisting .preproc { color: #204a87; } /* tango: sky blue 3 */ +.listing_code .programlisting .string { color: #ad7fa8; } /* tango: plum */ +.listing_code .programlisting .keyword, +.listing_code .programlisting .usertype, +.listing_code .programlisting .type, +.listing_code .programlisting .type a { color: #4e9a06; } /* tango: chameleon 3 */ + +.listing_frame { + /* tango:sky blue 1 */ + border: solid 1px #729fcf; + border: solid 1px rgba(114, 159, 207, 0.2); + padding: 0px; +} + +.listing_lines, .listing_code { + margin-top: 0px; + margin-bottom: 0px; + padding: 0.5em; +} +.listing_lines { + /* tango:sky blue 0.5 */ + background: #a6c5e3; + background: rgba(114, 159, 207, 0.2); + /* tango:aluminium 6 */ + color: #2e3436; +} +.listing_code { + /* tango:sky blue 0 */ + background: #e6f3ff; + background: rgba(114, 159, 207, 0.1); +} +.listing_code .programlisting { + /* override from previous */ + border: none 0px; + padding: 0px; + background: none; +} +.listing_lines pre, .listing_code pre { + margin: 0px; +} + +@media screen { + /* these have a as a first child, but since there are no parent selectors + * we can't use that. */ + a.footnote + { + position: relative; + top: 0em ! important; + } + /* this is needed so that the local anchors are displayed below the naviagtion */ + div.footnote a[name], div.refnamediv a[name], div.refsect1 a[name], div.refsect2 a[name], div.index a[name], div.glossary a[name], div.sect1 a[name] + { + display: inline-block; + position: relative; + top:-5em; + } + /* this seems to be a bug in the xsl style sheets when generating indexes */ + div.index div.index + { + top: 0em; + } + /* make space for the fixed navigation bar and add space at the bottom so that + * link targets appear somewhat close to top + */ + body + { + padding-top: 2.5em; + padding-bottom: 500px; + max-width: 60em; + } + p + { + max-width: 60em; + } + /* style and size the navigation bar */ + table.navigation#top + { + position: fixed; + background: #e2e2e2; + border-bottom: solid 1px #babdb6; + border-spacing: 5px; + margin-top: 0; + margin-bottom: 0; + top: 0; + left: 0; + z-index: 10; + } + table.navigation#top td + { + padding-left: 6px; + padding-right: 6px; + } + .navigation a, .navigation a:visited + { + /* tango:sky blue 3 */ + color: #204a87; + } + .navigation a:hover + { + /* tango:sky blue 2 */ + color: #3465a4; + } + td.shortcuts + { + /* tango:sky blue 2 */ + color: #3465a4; + font-size: 80%; + white-space: nowrap; + } + td.shortcuts .dim + { + color: #babdb6; + } + .navigation .title + { + font-size: 80%; + max-width: none; + margin: 0px; + font-weight: normal; + } +} +@media screen and (min-width: 60em) { + /* screen larger than 60em */ + body { margin: auto; } +} +@media screen and (max-width: 60em) { + /* screen less than 60em */ + #nav_hierarchy { display: none; } + #nav_interfaces { display: none; } + #nav_prerequisites { display: none; } + #nav_derived_interfaces { display: none; } + #nav_implementations { display: none; } + #nav_child_properties { display: none; } + #nav_style_properties { display: none; } + #nav_index { display: none; } + #nav_glossary { display: none; } + .gallery_image { display: none; } + .property_flags { display: none; } + .signal_flags { display: none; } + .parameter_annotations { display: none; } + .enum_member_annotations { display: none; } + .struct_member_annotations { display: none; } + .union_member_annotations { display: none; } + /* now that a column is hidden, optimize space */ + col.parameters_name { width: auto; } + col.parameters_description { width: auto; } + col.struct_members_name { width: auto; } + col.struct_members_description { width: auto; } + col.enum_members_name { width: auto; } + col.enum_members_description { width: auto; } + col.union_members_name { width: auto; } + col.union_members_description { width: auto; } + .listing_lines { display: none; } +} +@media print { + table.navigation { + visibility: collapse; + display: none; + } + div.titlepage table.navigation { + visibility: visible; + display: table; + background: #e2e2e2; + border: solid 1px #babdb6; + margin-top: 0; + margin-bottom: 0; + top: 0; + left: 0; + height: 3em; + } +} + diff --git a/libs/cairo-1.16.0/doc/public/html/up-insensitive.png b/libs/cairo-1.16.0/doc/public/html/up-insensitive.png new file mode 100644 index 0000000..674be9c Binary files /dev/null and b/libs/cairo-1.16.0/doc/public/html/up-insensitive.png differ diff --git a/libs/cairo-1.16.0/doc/public/html/up.png b/libs/cairo-1.16.0/doc/public/html/up.png new file mode 100644 index 0000000..ae83f66 Binary files /dev/null and b/libs/cairo-1.16.0/doc/public/html/up.png differ diff --git a/libs/cairo-1.16.0/doc/public/language-bindings.xml b/libs/cairo-1.16.0/doc/public/language-bindings.xml new file mode 100644 index 0000000..ce437ef --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/language-bindings.xml @@ -0,0 +1,745 @@ + + Creating a language binding for cairo + + While cairo is implemented and C, and has a C API, it is expected + that many users of cairo will be using it from languages other + than C. The glue that connects the core cairo library to another + language is known as a language + binding. This appendix attempts to collect together + issues that come up when creating a language bindings for cairo + and present standardized solutions to promote consistency among + the different language bindings. + + + General considerations + + The naming of the central cairo_t type is a + special exception. The object is “a cairo context” not “a + cairo”, and names such as cairo_t rather than + cairo_context_t and + cairo_set_source() rather than + cairo_context_set_source() are simply + abbreviations to make the C API more palatable. In languages + which have object-oriented syntax, this abbreviation is much + less useful. In fact, if ‘Cairo’ is used as a namespace, then + in many languages, you'd end up with a ridiculous type name + like ‘Cairo.Cairo’. For this reason, and for inter-language + consistency all object-oriented languages should name this + type as if it were cairo_context_t. + + + The punctuation and casing of the type names and + method names of cairo should be changed to match the general + convention of the language. In Java, where type names are written + in StudlyCaps and method names in javaCaps, cairo_font_extents_t + will become FontExtents and + cairo_set_source(cr,source), + cr.setSource(source). + As compared to changing the punctuation, and casing, much + more reluctance should be used in changing the method names + themselves. Even if get is usually omitted from getters in + your language, you shouldn't bind cairo_get_source() as + cr.source(). + + + + Memory management + + The objects in cairo can roughly be divided into two types: + reference-counted, opaque types like + cairo_surface_t + and plain structures like + cairo_glyph_t. + cairo_path_t + and + cairo_path_data_t + are special cases and are treated separately in this appendix. + + + Refcounted opaque types all have a + ..._reference() + function to increase the refcount by one and a + ..._destroy() to decrease the refcount + by one. These should not be exposed to the user of the language + binding, but rather used to implement memory management within + the language binding. The simplest way to do memory management + for a language binding is to treat the language binding object + as a simple handle to the cairo object. The language binding + object references the cairo object, and unreferences it when + finalized. This is the recommended method, though there are + a couple of caveats to be noted: + + + + + Equality won't work as expected. You can have two language + objects for the same cairo and they won't necessarily + compare equal. If the language allows customizing the + equality operation, then this is fixable by comparing + the underlying pointers. It also can be fixed by creating + at most one language object per cairo object, and + uniquifying via a pin table (a hash + table that goes from cairo object to language object). + For cairo_surface_t you can use also + cairo_surface_set_user_data() + instead of a separate pin table. + + + + + Derivation from the language object doesn't work because + you can lose the language object while keeping the Cairo + object. Code like: + + +public class MySurface (ImageSurface) { + public MySurface (width, height) { + super (Format.ARGB32, width, height); + } + public int get42 () { + return 42; + } +} + + cr = Cairo(MySurface(width, height)); + surface = cr.getTarget(); + + + Can result in surface containing an + ImageSurface not a MySurface. + This is not easily fixable without creating memory leaks, + and it's probably best to simply forbid deriving from the + language objects. + + + + + When a plain structure is used as a return value from cairo, + this is done by passing it as a “out parameter”. + + +cairo_font_extents_t extents; + +cairo_font_extents (cr, &extents); + + In a language binding, this should typically be treated + as a return value: + + +FontExtents extents = cr.fontExtents (); + + A language binding has a choice in how it implements the + language objects for plain structures. It can use a pure + language object with fields corresponding to those of the C + structure, and convert from and to the C structure when calling + cairo functions or converting cairo return values. Or it + can keep a pointer to the C structure internally and wrap + it inside a language object much like occurs for refcounted + objects. The choice should be invisible to the user: they should + be able to imagine that it is implemented as a pure language + object. + + + + Multiple return values + + There are a number of functions in the cairo API that have + multiple out parameters or + in-out parameters. In some languages + these can be translated into multiple return values. In Python, + what is: + + +cairo_user_to_device (cr, &x, &y); + + can by mapped to: + + +(x, y) = cr.user_to_device (cr, x, y); + + but many languages don't have provisions for multiple return + values, so it is necessary to introduce auxiliary types. + Most of the functions that require the auxiliary types + require a type that would, in C, look like + + +typedef struct _cairo_point cairo_point_t; +struct _cairo_point { + double x; + double y; +} + + The same type should be used both for functions that use a pair + of coordinates as an absolute position, and functions that use + a pair of coordinates as a displacement. While an argument could + be made that having a separate “distance” type is more correct, + it is more likely just to confuse users. + + +void +cairo_user_to_device (cairo_t *cr, double *x, double *y); + +void +cairo_user_to_device_distance (cairo_t *cr, double *dx, double *dy); + +void +cairo_device_to_user (cairo_t *cr, double *x, double *y); + +void +cairo_device_to_user_distance (cairo_t *cr, double *dx, double *dy); + +void +cairo_matrix_transform_distance (cairo_matrix_t *matrix, double *dx, double *dy); + +void +cairo_matrix_transform_point (cairo_matrix_t *matrix, double *x, double *y); + +void +cairo_get_current_point (cairo_t *cr, double *x, double *y); + + + There are also a couple of functions that return four values + representing a rectangle. These should be mapped to a + “rectangle” type that looks like: + + +typedef struct _cairo_rectangle cairo_rectangle_t; +struct _cairo_rectangle { + double x; + double y; + double width; + double height; +} + + The C function returns the rectangle as a set of two points to + facilitate rounding to integral extents, but this isn't worth + adding a “box” type to go along with the more obvious + “rectangle” representation. + + + Q: Would it make sense here to define a standard + cairo_rectangle_round() method + that language bindings should map? + + +void +cairo_stroke_extents (cairo_t *cr, + double *x1, double *y1, + double *x2, double *y2); + +void +cairo_fill_extents (cairo_t *cr, + double *x1, double *y1, + double *x2, double *y2); + + + + Overloading and optional arguments + + Function overloading (having a several variants of a function + with the same name and different arguments) is a language + feature available in many languages but not in C. + + + In general, language binding authors should use restraint in + combining functions in the cairo API via function + overloading. What may seem like an obvious overload now may + turn out to be strange with future additions to cairo. + It might seem logical to make + cairo_set_source_rgb() + an overload of cairo_set_source(), but future plans to add + cairo_set_source_rgb_premultiplied(), + which will also take three doubles make this a bad idea. For + this reason, only the following pairs of functions should + be combined via overloading + + +void +cairo_set_source (cairo_t *cr, cairo_pattern_t *source); + +void +cairo_set_source_surface (cairo_t *cr, + cairo_surface_t *source, + double surface_x, + double surface_y); + +void +cairo_mask (cairo_t *cr, + cairo_pattern_t *pattern); + +void +cairo_mask_surface (cairo_t *cr, + cairo_surface_t *surface, + double surface_x, + double surface_y); + +cairo_surface_t * +cairo_image_surface_create (cairo_format_t format, + int width, + int height); +cairo_surface_t * +cairo_image_surface_create_for_data (unsigned char *data, + cairo_format_t format, + int width, + int height, + int stride); + +cairo_status_t +cairo_surface_write_to_png (cairo_surface_t *surface, + const char *filename); + +cairo_status_t +cairo_surface_write_to_png_stream (cairo_surface_t *surface, + cairo_write_func_t write_func, + void *closure); + +cairo_surface_t * +cairo_image_surface_create_from_png (const char *filename); + +cairo_surface_t * +cairo_image_surface_create_from_png_stream (cairo_read_func_t read_func, + void *closure); + + + Note that there are cases where all constructors for a type + aren't overloaded together. For example + cairo_image_surface_create_from_png() + should not be overloaded together with + cairo_image_surface_create(). + In such cases, the remaining constructors will typically need to + be bound as static methods. In Java, for example, we might have: + + +Surface surface1 = ImageSurface(Format.RGB24, 100, 100); +Surface surface2 = ImageSurface.createFromPNG("camera.png"); + + Some other overloads that add combinations not found in C may be + convenient for users for language bindings that provide + cairo_point_t and cairo_rectangle_t + types, for example: + + +void +cairo_move_to (cairo_t *cr, + cairo_point_t *point); +void +cairo_rectangle (cairo_t *cr, + cairo_rectangle_t *rectangle); + + + + Streams and File I/O + + Various places in the cairo API deal with reading and writing + data, whether from and to files, or to other sources and + destinations. In these cases, what is typically provided in the + C API is a simple version that just takes a filename, and a + complex version that takes a callback function. + An example is the PNG handling functions: + + +cairo_surface_t * +cairo_image_surface_create_from_png (const char *filename); + +cairo_surface_t * +cairo_image_surface_create_from_png_stream (cairo_read_func_t read_func, + void *closure); + +cairo_status_t +cairo_surface_write_to_png (cairo_surface_t *surface, + const char *filename); + +cairo_status_t +cairo_surface_write_to_png_stream (cairo_surface_t *surface, + cairo_write_func_t write_func, + void *closure); + + The expectation is that the filename version will be mapped + literally in the language binding, but the callback version + will be mapped to a version that takes a language stream + object. For example, in Java, the four functions above + might be mapped to: + + +static public ImageSurface createFromPNG (String filename) throws IOException; +static public ImageSurface createFromPNG (InputStream stream) throws IOException; +public void writeToPNG (String filename) throws IOException; +public void writeToPNG (OutputStream stream) throws IOException; + + + In many cases, it will be better to + implement the filename version internally + using the stream version, rather than building it on top of the + filename version in C. The reason for this is that will + naturally give a more standard handling of file errors for + the language, as seen in the above Java example, where + createFromPNG() is marked as raising + an exception. Propagating exceptions from inside the callback + function to the caller will pose a challenge to the language + binding implementor, since an exception must not propagate + through the Cairo code. A technique that will be useful in + some cases is to catch the exception in the callback, + store the exception object inside a structure pointed to by + closure, and then rethrow it once + the function returns. + + + I'm not sure how to handle this for + cairo_pdf_surface_create_for_stream(). + Other than keep a “exception to rethrow” thread-specific + variable + that is checked after every call to a Cairo + function. + + + + Error handling + + The error handling approach in C for Cairo has multiple + elements: + + + + When a method on an object fails, the object is put into + an error state. Subsequent operations on the object do + nothing. The status of the object can be queried with + a function like status(). + + + Constructors, rather than + returning NULL on out-of-memory failure, + return a special singleton object on which all + operations do nothing. Retrieving the status of the + singleton object returns CAIRO_STATUS_NO_MEMORY + + + Is this going to apply to + cairo_surface_t as well? + + + What about cairo_copy_path_data()? It's probably going to + have to return NULL. + + + + Errors propagate from object to object. Setting a pattern + in an out-of-memory state as the source of a + cairo_t puts the type into an error state. + + + Much of the above is not yet implemented at the time of + this writing + + A language binding could copy the C approach, and for a + language without exceptions, this is likely the right thing + to do. However, for a language with exceptions, exposing + a completely different style of error handling for cairo + would be strange. So, instead, status should be checked + after every call to cairo, and exceptions thrown as necessary. + + + One problem that can arise with this, in languages + where handling exceptions is mandatory (like Java), is that almost + every cairo function can result in a status being set, + usually because of an out-of-memory condition. This could make + cairo hard to use. To resolve this problem, let's classify then + cairo status codes: + + +/* Memory */ +CAIRO_STATUS_NO_MEMORY, + +/* Programmer error */ +CAIRO_STATUS_INVALID_RESTORE +CAIRO_STATUS_INVALID_POP_GROUP +CAIRO_STATUS_NO_CURRENT_POINT +CAIRO_STATUS_INVALID_MATRIX +CAIRO_STATUS_NO_TARGET_SURFACE +CAIRO_STATUS_INVALID_STRING +CAIRO_STATUS_SURFACE_FINISHED +CAIRO_STATUS_BAD_NESTING + +/* Language binding implementation */ +CAIRO_STATUS_NULL_POINTER +CAIRO_STATUS_INVALID_PATH_DATA +CAIRO_STATUS_SURFACE_TYPE_MISMATCH + +/* Other */ +CAIRO_STATUS_READ_ERROR +CAIRO_STATUS_WRITE_ERROR + + + If we look at these, the + CAIRO_STATUS_NO_MEMORY + should map to the native out-of-memory exception, which could + happen at any point in any case. Most of the others indicate + programmer error, and handling them in user code would be + silly. These should be mapped into whatever the language uses + for assertion failures, rather than errors that are normally + handled. (In Java, a subclass of Error rather than Exception, + perhaps.) And CAIRO_STATUS_READ_ERROR, + and CAIRO_STATUS_WRITE_ERROR can occur + only in very specific places. (In fact, as described + in , these errors may be + mapped into the language's native I/O error types.) + So, there really aren't exceptions that the programmer must + handle at most points in the Cairo API. + + + + Patterns + + The cairo C API allows for creating a number of different types + of patterns. All of these different types of patterns map to + cairo_pattern_t + in C, but in an object oriented language, there should instead + be a hierarchy of types. (The functions that should map to + constructors or static methods for the various types are listed + after the type, methods on that type are listed below. Note that + cairo_pattern_create_rgb() and cairo_pattern_create_rgba() + should not be overloaded with each other as a SolidPattern() + constructor, but should appear as static methods instead. This + is to maintain code clarity by making it clear how the arguments + relate to color components.) + + +cairo_pattern_t + cairo_pattern_set_matrix() + cairo_pattern_get_matrix() + cairo_solid_pattern_t (cairo_pattern_create_rgb() and cairo_pattern_create_rgba()) + cairo_surface_pattern_t (cairo_pattern_create_for_surface()) + cairo_pattern_set_extend() + cairo_pattern_get_extend() + cairo_pattern_set_filter() + cairo_pattern_get_filter() + cairo_gradient_t + cairo_pattern_add_color_stop_rgb() + cairo_pattern_add_color_stop_rgba() + cairo_linear_gradient_t (cairo_pattern_create_linear()) + cairo_radial_gradient_t (cairo_pattern_create_radial()) + cairo_mesh_t (cairo_pattern_create_mesh()) + cairo_mesh_pattern_begin_patch() + cairo_mesh_pattern_end_patch() + cairo_mesh_pattern_move_to() + cairo_mesh_pattern_line_to() + cairo_mesh_pattern_curve_to() + cairo_mesh_pattern_set_control_point() + cairo_mesh_pattern_set_corner_color_rgb() + cairo_mesh_pattern_set_corner_color_rgba() + cairo_mesh_pattern_get_patch_count() + cairo_mesh_pattern_get_path() + cairo_mesh_pattern_get_control_point() + cairo_mesh_pattern_get_corner_color_rgba() + + + + + + Surfaces + + Like patterns, surfaces, which use only the + cairo_surface_t + type in the C API should be broken up into a hierarchy of types + in a language binding. + + +cairo_surface_t + cairo_image_surface_t + cairo_atsui_surface_t + cairo_win32_surface_t + cairo_xlib_surface_t + cairo_beos_surface_t + + + Unlike patterns, the constructors and methods on these types are + clearly named, and can be trivially associated with the + appropriate subtype. Many language bindings will want to avoid + binding the platform-specific subtypes at all, since the + methods on these types are not useful without passing in native + C types. Unless there is a language binding for Xlib available, + there is no way to represent a XLib Display * in + that language. + + + This doesn't mean that platform-specific surface types can't + be used in a language binding that doesn't bind the constructor. + A very common situation is to use a cairo language binding in + combination with a binding for a higher level system like + the GTK+ widget + toolkit. In such a situation, the higher level toolkit provides + ways to get references to platform specific surfaces. + + + The cairo_surface_set_user_data(), + and cairo_surface_get_user_data() + methods are provided for use in language bindings, and should + not be directly exposed to applications. One example of the use + of these functions in a language binding is creating a binding for: + + +cairo_surface_t * +cairo_image_surface_create_for_data (unsigned char *data, + cairo_format_t format, + int width, + int height, + int stride); + + + The memory block passed in for data must be + kept around until the surface is destroyed, so the language + binding must have some way of determining when that happens. The + way to do this is to use the destroy + argument to cairo_surface_set_user_data(). + + + Some languages may not have a suitable “pointer to a block of + data” type to pass in for data. And even + where a language does have such a type, the user will be + frequently able to cause the backing store to be reallocated + to a different location or truncated. Should we recommend a + standard type name and binding for a buffer object here? + + + + Fonts + + Fonts are once more an area where there is a hierarchy of types: + + +cairo_font_face_t + cairo_ft_font_face_t + cairo_win32_font_face_t +cairo_scaled_font_t + cairo_ft_scaled_font_t + cairo_win32_scaled_font_t + + + The methods on the subtypes are, however, not useful without + bindings for fontconfig and FreeType or for the Win32 GDI, + so most language bindings will choose not to bind these + types. + + + The cairo_font_face_set_user_data(), + and cairo_font_face_get_user_data() + methods are provided for use in language bindings, and should + not be directly exposed to applications. + + + + cairo_path_t + + The cairo_path_t type is one + area in which most language bindings will differ significantly + from the C API. The C API for cairo_path_t is + designed for efficiency and to avoid auxiliary objects that + would be have to be manually memory managed by the + application. However, + a language binding should not present cairo_path_t as an + array, but rather as an opaque that can be iterated + over. Different languages have quite different conventions for + how iterators work, so it is impossible to give an exact + specification for how this API should work, but the type names + and methods should be similar to the language's mapping of the following: + + +typedef struct cairo_path_iterator cairo_path_iterator_t; +typedef struct cairo_path_element cairo_path_element_t; + +cairo_path_iterator_t * +cairo_path_get_iterator (cairo_path_t *path); + +cairo_bool_t +cairo_path_iterator_has_next (cairo_path_iterator_t *iterator); + +cairo_path_element_t * +cairo_path_iterator_next (cairo_path_iterator_t *iterator); + +cairo_path_element_type_t +cairo_path_element_get_type (cairo_path_element_t *element); + +void +cairo_path_element_get_point (cairo_path_element_t *element, + int index, + double *x, + double *y); + + + The above is written using the Java conventions for + iterators. To illustrate how the API for PathIterator might + depend on the native iteration conventions of the API, examine + three versions of the loop, first written in a hypothetical Java + binding: + + +PathIterator iter = cr.copyPath().iterator(); +while (cr.hasNext()) { + PathElement element = iter.next(); + if (element.getType() == PathElementType.MOVE_TO) { + Point p = element.getPoint(0); + doMoveTo (p.x, p.y); + } +} + + And then in a hypothetical C++ binding: + + +Path path = cr.copyPath(); +for (PathIterator iter = path.begin(); iter != path.end(); iter++) { + PathElement element = *iter; + if (element.getType() == PathElementType.MOVE_TO) { + Point p = element.getPoint(0); + doMoveTo (p.x, p.y); + } +} + + And then finally in a Python binding: + + +for element in cr.copy_path(): + if element.getType == cairo.PATH_ELEMENT_MOVE_TO: + (x, y) = element.getPoint(0) + doMoveTo (x, y); + + While many of the API elements stay the same in the three + examples, the exact iteration mechanism is quite different, to + match how users of the language would expect to iterate over + a container. + + + You should not present an API for mutating or for creating new + cairo_path_t objects. In the future, these + guidelines may be extended to present an API for creating a + cairo_path_t from scratch for use with + cairo_append_path() + but the current expectation is that cairo_append_path() will + mostly be used with paths from + cairo_copy_path(). + + + + diff --git a/libs/cairo-1.16.0/doc/public/version.xml b/libs/cairo-1.16.0/doc/public/version.xml new file mode 100644 index 0000000..15b989e --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/version.xml @@ -0,0 +1 @@ +1.16.0 diff --git a/libs/cairo-1.16.0/doc/public/xml/api-index-1.0.xml b/libs/cairo-1.16.0/doc/public/xml/api-index-1.0.xml new file mode 100644 index 0000000..a94e58d --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/api-index-1.0.xml @@ -0,0 +1,272 @@ + + +]> + +A +cairo_antialias_t, enum in cairo_t +cairo_append_path, function in Paths +cairo_arc, function in Paths +cairo_arc_negative, function in Paths + +B +cairo_bool_t, typedef in Types + +C +cairo_clip, function in cairo_t +cairo_clip_preserve, function in cairo_t +cairo_close_path, function in Paths +cairo_content_t, enum in cairo_surface_t +cairo_copy_page, function in cairo_t +cairo_copy_path, function in Paths +cairo_copy_path_flat, function in Paths +cairo_create, function in cairo_t +cairo_curve_to, function in Paths + +D +cairo_debug_reset_static_data, function in Error handling +cairo_destroy, function in cairo_t +cairo_destroy_func_t, user_function in Types +cairo_device_to_user, function in Transformations +cairo_device_to_user_distance, function in Transformations + +E +cairo_extend_t, enum in cairo_pattern_t + +F +cairo_fill, function in cairo_t +cairo_fill_extents, function in cairo_t +cairo_fill_preserve, function in cairo_t +cairo_fill_rule_t, enum in cairo_t +cairo_filter_t, enum in cairo_pattern_t +cairo_font_extents, function in text +cairo_font_extents_t, struct in cairo_scaled_font_t +cairo_font_face_destroy, function in cairo_font_face_t +cairo_font_face_get_user_data, function in cairo_font_face_t +cairo_font_face_reference, function in cairo_font_face_t +cairo_font_face_set_user_data, function in cairo_font_face_t +cairo_font_face_status, function in cairo_font_face_t +cairo_font_face_t, typedef in cairo_font_face_t +cairo_font_options_copy, function in cairo_font_options_t +cairo_font_options_create, function in cairo_font_options_t +cairo_font_options_destroy, function in cairo_font_options_t +cairo_font_options_equal, function in cairo_font_options_t +cairo_font_options_get_antialias, function in cairo_font_options_t +cairo_font_options_get_hint_metrics, function in cairo_font_options_t +cairo_font_options_get_hint_style, function in cairo_font_options_t +cairo_font_options_get_subpixel_order, function in cairo_font_options_t +cairo_font_options_hash, function in cairo_font_options_t +cairo_font_options_merge, function in cairo_font_options_t +cairo_font_options_set_antialias, function in cairo_font_options_t +cairo_font_options_set_hint_metrics, function in cairo_font_options_t +cairo_font_options_set_hint_style, function in cairo_font_options_t +cairo_font_options_set_subpixel_order, function in cairo_font_options_t +cairo_font_options_status, function in cairo_font_options_t +cairo_font_options_t, typedef in cairo_font_options_t +cairo_font_slant_t, enum in text +cairo_font_weight_t, enum in text +cairo_format_t, enum in Image Surfaces +cairo_ft_font_face_create_for_ft_face, function in FreeType Fonts +cairo_ft_font_face_create_for_pattern, function in FreeType Fonts +cairo_ft_font_options_substitute, function in FreeType Fonts +cairo_ft_scaled_font_lock_face, function in FreeType Fonts +cairo_ft_scaled_font_unlock_face, function in FreeType Fonts + +G +cairo_get_antialias, function in cairo_t +cairo_get_current_point, function in Paths +cairo_get_fill_rule, function in cairo_t +cairo_get_font_face, function in text +cairo_get_font_matrix, function in text +cairo_get_font_options, function in text +cairo_get_line_cap, function in cairo_t +cairo_get_line_join, function in cairo_t +cairo_get_line_width, function in cairo_t +cairo_get_matrix, function in Transformations +cairo_get_miter_limit, function in cairo_t +cairo_get_operator, function in cairo_t +cairo_get_source, function in cairo_t +cairo_get_target, function in cairo_t +cairo_get_tolerance, function in cairo_t +cairo_glyph_extents, function in text +cairo_glyph_path, function in Paths +cairo_glyph_t, struct in text + +H +CAIRO_HAS_FT_FONT, macro in FreeType Fonts +CAIRO_HAS_PNG_FUNCTIONS, macro in PNG Support +CAIRO_HAS_WIN32_SURFACE, macro in Win32 Surfaces +CAIRO_HAS_XLIB_SURFACE, macro in XLib Surfaces +cairo_hint_metrics_t, enum in cairo_font_options_t +cairo_hint_style_t, enum in cairo_font_options_t + +I +cairo_identity_matrix, function in Transformations +cairo_image_surface_create, function in Image Surfaces +cairo_image_surface_create_for_data, function in Image Surfaces +cairo_image_surface_create_from_png, function in PNG Support +cairo_image_surface_create_from_png_stream, function in PNG Support +cairo_image_surface_get_height, function in Image Surfaces +cairo_image_surface_get_width, function in Image Surfaces +cairo_in_fill, function in cairo_t +cairo_in_stroke, function in cairo_t + +L +cairo_line_cap_t, enum in cairo_t +cairo_line_join_t, enum in cairo_t +cairo_line_to, function in Paths + +M +cairo_mask, function in cairo_t +cairo_mask_surface, function in cairo_t +cairo_matrix_init, function in cairo_matrix_t +cairo_matrix_init_identity, function in cairo_matrix_t +cairo_matrix_init_rotate, function in cairo_matrix_t +cairo_matrix_init_scale, function in cairo_matrix_t +cairo_matrix_init_translate, function in cairo_matrix_t +cairo_matrix_invert, function in cairo_matrix_t +cairo_matrix_multiply, function in cairo_matrix_t +cairo_matrix_rotate, function in cairo_matrix_t +cairo_matrix_scale, function in cairo_matrix_t +cairo_matrix_t, struct in cairo_matrix_t +cairo_matrix_transform_distance, function in cairo_matrix_t +cairo_matrix_transform_point, function in cairo_matrix_t +cairo_matrix_translate, function in cairo_matrix_t +cairo_move_to, function in Paths + +N +cairo_new_path, function in Paths + +O +cairo_operator_t, enum in cairo_t + +P +cairo_paint, function in cairo_t +cairo_paint_with_alpha, function in cairo_t +cairo_path_data_t, union in Paths +cairo_path_data_type_t, enum in Paths +cairo_path_destroy, function in Paths +cairo_path_t, struct in Paths +cairo_pattern_add_color_stop_rgb, function in cairo_pattern_t +cairo_pattern_add_color_stop_rgba, function in cairo_pattern_t +cairo_pattern_create_for_surface, function in cairo_pattern_t +cairo_pattern_create_linear, function in cairo_pattern_t +cairo_pattern_create_radial, function in cairo_pattern_t +cairo_pattern_create_rgb, function in cairo_pattern_t +cairo_pattern_create_rgba, function in cairo_pattern_t +cairo_pattern_destroy, function in cairo_pattern_t +cairo_pattern_get_extend, function in cairo_pattern_t +cairo_pattern_get_filter, function in cairo_pattern_t +cairo_pattern_get_matrix, function in cairo_pattern_t +cairo_pattern_reference, function in cairo_pattern_t +cairo_pattern_set_extend, function in cairo_pattern_t +cairo_pattern_set_filter, function in cairo_pattern_t +cairo_pattern_set_matrix, function in cairo_pattern_t +cairo_pattern_status, function in cairo_pattern_t +cairo_pattern_t, typedef in cairo_pattern_t + +R +cairo_read_func_t, user_function in PNG Support +cairo_rectangle, function in Paths +cairo_reference, function in cairo_t +cairo_rel_curve_to, function in Paths +cairo_rel_line_to, function in Paths +cairo_rel_move_to, function in Paths +cairo_reset_clip, function in cairo_t +cairo_restore, function in cairo_t +cairo_rotate, function in Transformations + +S +cairo_save, function in cairo_t +cairo_scale, function in Transformations +cairo_scaled_font_create, function in cairo_scaled_font_t +cairo_scaled_font_destroy, function in cairo_scaled_font_t +cairo_scaled_font_extents, function in cairo_scaled_font_t +cairo_scaled_font_glyph_extents, function in cairo_scaled_font_t +cairo_scaled_font_reference, function in cairo_scaled_font_t +cairo_scaled_font_status, function in cairo_scaled_font_t +cairo_scaled_font_t, typedef in cairo_scaled_font_t +cairo_select_font_face, function in text +cairo_set_antialias, function in cairo_t +cairo_set_dash, function in cairo_t +cairo_set_fill_rule, function in cairo_t +cairo_set_font_face, function in text +cairo_set_font_matrix, function in text +cairo_set_font_options, function in text +cairo_set_font_size, function in text +cairo_set_line_cap, function in cairo_t +cairo_set_line_join, function in cairo_t +cairo_set_line_width, function in cairo_t +cairo_set_matrix, function in Transformations +cairo_set_miter_limit, function in cairo_t +cairo_set_operator, function in cairo_t +cairo_set_source, function in cairo_t +cairo_set_source_rgb, function in cairo_t +cairo_set_source_rgba, function in cairo_t +cairo_set_source_surface, function in cairo_t +cairo_set_tolerance, function in cairo_t +cairo_show_glyphs, function in text +cairo_show_page, function in cairo_t +cairo_show_text, function in text +cairo_status, function in cairo_t +cairo_status_t, enum in Error handling +cairo_status_to_string, function in Error handling +cairo_stroke, function in cairo_t +cairo_stroke_extents, function in cairo_t +cairo_stroke_preserve, function in cairo_t +cairo_subpixel_order_t, enum in cairo_font_options_t +cairo_surface_create_similar, function in cairo_surface_t +cairo_surface_destroy, function in cairo_surface_t +cairo_surface_finish, function in cairo_surface_t +cairo_surface_flush, function in cairo_surface_t +cairo_surface_get_font_options, function in cairo_surface_t +cairo_surface_get_user_data, function in cairo_surface_t +cairo_surface_mark_dirty, function in cairo_surface_t +cairo_surface_mark_dirty_rectangle, function in cairo_surface_t +cairo_surface_reference, function in cairo_surface_t +cairo_surface_set_device_offset, function in cairo_surface_t +cairo_surface_set_user_data, function in cairo_surface_t +cairo_surface_status, function in cairo_surface_t +cairo_surface_t, typedef in cairo_surface_t +cairo_surface_write_to_png, function in PNG Support +cairo_surface_write_to_png_stream, function in PNG Support + +T +cairo_t, typedef in cairo_t +cairo_text_extents, function in text +cairo_text_extents_t, struct in cairo_scaled_font_t +cairo_text_path, function in Paths +cairo_transform, function in Transformations +cairo_translate, function in Transformations + +U +cairo_user_data_key_t, struct in Types +cairo_user_to_device, function in Transformations +cairo_user_to_device_distance, function in Transformations + +V +CAIRO_VERSION, macro in Version Information +cairo_version, function in Version Information +CAIRO_VERSION_ENCODE, macro in Version Information +CAIRO_VERSION_MAJOR, macro in Version Information +CAIRO_VERSION_MICRO, macro in Version Information +CAIRO_VERSION_MINOR, macro in Version Information +cairo_version_string, function in Version Information + +W +cairo_win32_font_face_create_for_logfontw, function in Win32 Fonts +cairo_win32_scaled_font_done_font, function in Win32 Fonts +cairo_win32_scaled_font_get_metrics_factor, function in Win32 Fonts +cairo_win32_scaled_font_select_font, function in Win32 Fonts +cairo_win32_surface_create, function in Win32 Surfaces +cairo_write_func_t, user_function in PNG Support + +X +cairo_xlib_surface_create, function in XLib Surfaces +cairo_xlib_surface_create_for_bitmap, function in XLib Surfaces +cairo_xlib_surface_create_with_xrender_format, function in XLib-XRender Backend +cairo_xlib_surface_set_drawable, function in XLib Surfaces +cairo_xlib_surface_set_size, function in XLib Surfaces + + diff --git a/libs/cairo-1.16.0/doc/public/xml/api-index-1.10.xml b/libs/cairo-1.16.0/doc/public/xml/api-index-1.10.xml new file mode 100644 index 0000000..039c9d9 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/api-index-1.10.xml @@ -0,0 +1,77 @@ + + +]> + +D +cairo_device_acquire, function in cairo_device_t +cairo_device_destroy, function in cairo_device_t +cairo_device_finish, function in cairo_device_t +cairo_device_flush, function in cairo_device_t +cairo_device_get_reference_count, function in cairo_device_t +cairo_device_get_type, function in cairo_device_t +cairo_device_get_user_data, function in cairo_device_t +cairo_device_reference, function in cairo_device_t +cairo_device_release, function in cairo_device_t +cairo_device_set_user_data, function in cairo_device_t +cairo_device_status, function in cairo_device_t +cairo_device_t, typedef in cairo_device_t +cairo_device_type_t, enum in cairo_device_t + +H +CAIRO_HAS_FC_FONT, macro in FreeType Fonts +CAIRO_HAS_RECORDING_SURFACE, macro in Recording Surfaces + +I +cairo_in_clip, function in cairo_t + +M +CAIRO_MIME_TYPE_JP2, macro in cairo_surface_t +CAIRO_MIME_TYPE_JPEG, macro in cairo_surface_t +CAIRO_MIME_TYPE_PNG, macro in cairo_surface_t +CAIRO_MIME_TYPE_URI, macro in cairo_surface_t + +P +cairo_pdf_get_versions, function in PDF Surfaces +cairo_pdf_surface_restrict_to_version, function in PDF Surfaces +cairo_pdf_version_t, enum in PDF Surfaces +cairo_pdf_version_to_string, function in PDF Surfaces + +R +cairo_recording_surface_create, function in Recording Surfaces +cairo_recording_surface_ink_extents, function in Recording Surfaces +cairo_rectangle_int_t, struct in Types +cairo_region_contains_point, function in Regions +cairo_region_contains_rectangle, function in Regions +cairo_region_copy, function in Regions +cairo_region_create, function in Regions +cairo_region_create_rectangle, function in Regions +cairo_region_create_rectangles, function in Regions +cairo_region_destroy, function in Regions +cairo_region_equal, function in Regions +cairo_region_get_extents, function in Regions +cairo_region_get_rectangle, function in Regions +cairo_region_intersect, function in Regions +cairo_region_intersect_rectangle, function in Regions +cairo_region_is_empty, function in Regions +cairo_region_num_rectangles, function in Regions +cairo_region_overlap_t, enum in Regions +cairo_region_reference, function in Regions +cairo_region_status, function in Regions +cairo_region_subtract, function in Regions +cairo_region_subtract_rectangle, function in Regions +cairo_region_t, typedef in Regions +cairo_region_translate, function in Regions +cairo_region_union, function in Regions +cairo_region_union_rectangle, function in Regions +cairo_region_xor, function in Regions +cairo_region_xor_rectangle, function in Regions + +S +cairo_surface_create_for_rectangle, function in cairo_surface_t +cairo_surface_get_device, function in cairo_surface_t +cairo_surface_get_mime_data, function in cairo_surface_t +cairo_surface_set_mime_data, function in cairo_surface_t + + diff --git a/libs/cairo-1.16.0/doc/public/xml/api-index-1.12.xml b/libs/cairo-1.16.0/doc/public/xml/api-index-1.12.xml new file mode 100644 index 0000000..3ce4db6 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/api-index-1.12.xml @@ -0,0 +1,86 @@ + + +]> + +F +cairo_ft_font_face_get_synthesize, function in FreeType Fonts +cairo_ft_font_face_set_synthesize, function in FreeType Fonts +cairo_ft_font_face_unset_synthesize, function in FreeType Fonts +cairo_ft_synthesize_t, enum in FreeType Fonts + +H +CAIRO_HAS_SCRIPT_SURFACE, macro in Script Surfaces +CAIRO_HAS_XCB_SURFACE, macro in XCB Surfaces + +M +cairo_mesh_pattern_begin_patch, function in cairo_pattern_t +cairo_mesh_pattern_curve_to, function in cairo_pattern_t +cairo_mesh_pattern_end_patch, function in cairo_pattern_t +cairo_mesh_pattern_get_control_point, function in cairo_pattern_t +cairo_mesh_pattern_get_corner_color_rgba, function in cairo_pattern_t +cairo_mesh_pattern_get_patch_count, function in cairo_pattern_t +cairo_mesh_pattern_get_path, function in cairo_pattern_t +cairo_mesh_pattern_line_to, function in cairo_pattern_t +cairo_mesh_pattern_move_to, function in cairo_pattern_t +cairo_mesh_pattern_set_control_point, function in cairo_pattern_t +cairo_mesh_pattern_set_corner_color_rgb, function in cairo_pattern_t +cairo_mesh_pattern_set_corner_color_rgba, function in cairo_pattern_t +CAIRO_MIME_TYPE_UNIQUE_ID, macro in cairo_surface_t + +P +cairo_pattern_create_mesh, function in cairo_pattern_t +cairo_pattern_create_raster_source, function in Raster Sources + +R +cairo_raster_source_acquire_func_t, user_function in Raster Sources +cairo_raster_source_copy_func_t, user_function in Raster Sources +cairo_raster_source_finish_func_t, user_function in Raster Sources +cairo_raster_source_pattern_get_acquire, function in Raster Sources +cairo_raster_source_pattern_get_callback_data, function in Raster Sources +cairo_raster_source_pattern_get_copy, function in Raster Sources +cairo_raster_source_pattern_get_finish, function in Raster Sources +cairo_raster_source_pattern_get_snapshot, function in Raster Sources +cairo_raster_source_pattern_set_acquire, function in Raster Sources +cairo_raster_source_pattern_set_callback_data, function in Raster Sources +cairo_raster_source_pattern_set_copy, function in Raster Sources +cairo_raster_source_pattern_set_finish, function in Raster Sources +cairo_raster_source_pattern_set_snapshot, function in Raster Sources +cairo_raster_source_release_func_t, user_function in Raster Sources +cairo_raster_source_snapshot_func_t, user_function in Raster Sources +cairo_recording_surface_get_extents, function in Recording Surfaces + +S +cairo_script_create, function in Script Surfaces +cairo_script_create_for_stream, function in Script Surfaces +cairo_script_from_recording_surface, function in Script Surfaces +cairo_script_get_mode, function in Script Surfaces +cairo_script_mode_t, enum in Script Surfaces +cairo_script_set_mode, function in Script Surfaces +cairo_script_surface_create, function in Script Surfaces +cairo_script_surface_create_for_target, function in Script Surfaces +cairo_script_write_comment, function in Script Surfaces +cairo_surface_create_observer, function in cairo-surface-observer +cairo_surface_create_similar_image, function in cairo_surface_t +cairo_surface_map_to_image, function in cairo_surface_t +cairo_surface_observer_mode_t, enum in cairo-surface-observer +cairo_surface_supports_mime_type, function in cairo_surface_t +cairo_surface_unmap_image, function in cairo_surface_t + +X +cairo_xcb_device_debug_cap_xrender_version, function in XCB Surfaces +cairo_xcb_device_debug_cap_xshm_version, function in XCB Surfaces +cairo_xcb_device_debug_get_precision, function in XCB Surfaces +cairo_xcb_device_debug_set_precision, function in XCB Surfaces +cairo_xcb_device_get_connection, function in XCB Surfaces +cairo_xcb_surface_create, function in XCB Surfaces +cairo_xcb_surface_create_for_bitmap, function in XCB Surfaces +cairo_xcb_surface_create_with_xrender_format, function in XCB Surfaces +cairo_xcb_surface_set_drawable, function in XCB Surfaces +cairo_xcb_surface_set_size, function in XCB Surfaces +cairo_xlib_device_debug_cap_xrender_version, function in XLib Surfaces +cairo_xlib_device_debug_get_precision, function in XLib Surfaces +cairo_xlib_device_debug_set_precision, function in XLib Surfaces + + diff --git a/libs/cairo-1.16.0/doc/public/xml/api-index-1.14.xml b/libs/cairo-1.16.0/doc/public/xml/api-index-1.14.xml new file mode 100644 index 0000000..9b61670 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/api-index-1.14.xml @@ -0,0 +1,19 @@ + + +]> + +M +CAIRO_MIME_TYPE_JBIG2, macro in cairo_surface_t +CAIRO_MIME_TYPE_JBIG2_GLOBAL, macro in cairo_surface_t +CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID, macro in cairo_surface_t + +S +cairo_surface_get_device_scale, function in cairo_surface_t +cairo_surface_set_device_scale, function in cairo_surface_t + +W +cairo_win32_surface_create_with_format, function in Win32 Surfaces + + diff --git a/libs/cairo-1.16.0/doc/public/xml/api-index-1.16.xml b/libs/cairo-1.16.0/doc/public/xml/api-index-1.16.xml new file mode 100644 index 0000000..724a0da --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/api-index-1.16.xml @@ -0,0 +1,37 @@ + + +]> + +F +cairo_font_options_get_variations, function in cairo_font_options_t +cairo_font_options_set_variations, function in cairo_font_options_t + +M +CAIRO_MIME_TYPE_CCITT_FAX, macro in cairo_surface_t +CAIRO_MIME_TYPE_CCITT_FAX_PARAMS, macro in cairo_surface_t +CAIRO_MIME_TYPE_EPS, macro in cairo_surface_t +CAIRO_MIME_TYPE_EPS_PARAMS, macro in cairo_surface_t + +P +cairo_pdf_metadata_t, enum in PDF Surfaces +cairo_pdf_outline_flags_t, enum in PDF Surfaces +CAIRO_PDF_OUTLINE_ROOT, macro in PDF Surfaces +cairo_pdf_surface_add_outline, function in PDF Surfaces +cairo_pdf_surface_set_metadata, function in PDF Surfaces +cairo_pdf_surface_set_page_label, function in PDF Surfaces +cairo_pdf_surface_set_thumbnail_size, function in PDF Surfaces + +S +cairo_svg_surface_get_document_unit, function in SVG Surfaces +cairo_svg_surface_set_document_unit, function in SVG Surfaces +cairo_svg_unit_t, enum in SVG Surfaces + +T +cairo_tag_begin, function in Tags and Links +CAIRO_TAG_DEST, macro in Tags and Links +cairo_tag_end, function in Tags and Links +CAIRO_TAG_LINK, macro in Tags and Links + + diff --git a/libs/cairo-1.16.0/doc/public/xml/api-index-1.2.xml b/libs/cairo-1.16.0/doc/public/xml/api-index-1.2.xml new file mode 100644 index 0000000..144d870 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/api-index-1.2.xml @@ -0,0 +1,78 @@ + + +]> + +F +cairo_font_face_get_type, function in cairo_font_face_t +cairo_font_type_t, enum in cairo_font_face_t + +G +cairo_get_group_target, function in cairo_t + +H +CAIRO_HAS_PDF_SURFACE, macro in PDF Surfaces +CAIRO_HAS_PS_SURFACE, macro in PostScript Surfaces +CAIRO_HAS_SVG_SURFACE, macro in SVG Surfaces + +I +cairo_image_surface_get_data, function in Image Surfaces +cairo_image_surface_get_format, function in Image Surfaces +cairo_image_surface_get_stride, function in Image Surfaces + +N +cairo_new_sub_path, function in Paths + +P +cairo_pattern_get_type, function in cairo_pattern_t +cairo_pattern_type_t, enum in cairo_pattern_t +cairo_pdf_surface_create, function in PDF Surfaces +cairo_pdf_surface_create_for_stream, function in PDF Surfaces +cairo_pdf_surface_set_size, function in PDF Surfaces +cairo_pop_group, function in cairo_t +cairo_pop_group_to_source, function in cairo_t +cairo_ps_surface_create, function in PostScript Surfaces +cairo_ps_surface_create_for_stream, function in PostScript Surfaces +cairo_ps_surface_dsc_begin_page_setup, function in PostScript Surfaces +cairo_ps_surface_dsc_begin_setup, function in PostScript Surfaces +cairo_ps_surface_dsc_comment, function in PostScript Surfaces +cairo_ps_surface_set_size, function in PostScript Surfaces +cairo_push_group, function in cairo_t +cairo_push_group_with_content, function in cairo_t + +S +cairo_scaled_font_get_ctm, function in cairo_scaled_font_t +cairo_scaled_font_get_font_face, function in cairo_scaled_font_t +cairo_scaled_font_get_font_matrix, function in cairo_scaled_font_t +cairo_scaled_font_get_font_options, function in cairo_scaled_font_t +cairo_scaled_font_get_type, function in cairo_scaled_font_t +cairo_scaled_font_text_extents, function in cairo_scaled_font_t +cairo_set_scaled_font, function in text +cairo_surface_get_content, function in cairo_surface_t +cairo_surface_get_device_offset, function in cairo_surface_t +cairo_surface_get_type, function in cairo_surface_t +cairo_surface_set_fallback_resolution, function in cairo_surface_t +cairo_surface_type_t, enum in cairo_surface_t +cairo_svg_get_versions, function in SVG Surfaces +cairo_svg_surface_create, function in SVG Surfaces +cairo_svg_surface_create_for_stream, function in SVG Surfaces +cairo_svg_surface_restrict_to_version, function in SVG Surfaces +cairo_svg_version_t, enum in SVG Surfaces +cairo_svg_version_to_string, function in SVG Surfaces + +W +cairo_win32_font_face_create_for_hfont, function in Win32 Fonts +cairo_win32_surface_create_with_dib, function in Win32 Surfaces +cairo_win32_surface_get_dc, function in Win32 Surfaces + +X +cairo_xlib_surface_get_depth, function in XLib Surfaces +cairo_xlib_surface_get_display, function in XLib Surfaces +cairo_xlib_surface_get_drawable, function in XLib Surfaces +cairo_xlib_surface_get_height, function in XLib Surfaces +cairo_xlib_surface_get_screen, function in XLib Surfaces +cairo_xlib_surface_get_visual, function in XLib Surfaces +cairo_xlib_surface_get_width, function in XLib Surfaces + + diff --git a/libs/cairo-1.16.0/doc/public/xml/api-index-1.4.xml b/libs/cairo-1.16.0/doc/public/xml/api-index-1.4.xml new file mode 100644 index 0000000..32c51f2 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/api-index-1.4.xml @@ -0,0 +1,50 @@ + + +]> + +C +cairo_clip_extents, function in cairo_t +cairo_copy_clip_rectangle_list, function in cairo_t + +F +cairo_font_face_get_reference_count, function in cairo_font_face_t + +G +cairo_get_dash, function in cairo_t +cairo_get_dash_count, function in cairo_t +cairo_get_reference_count, function in cairo_t +cairo_get_scaled_font, function in text +cairo_get_user_data, function in cairo_t + +P +cairo_pattern_get_color_stop_count, function in cairo_pattern_t +cairo_pattern_get_color_stop_rgba, function in cairo_pattern_t +cairo_pattern_get_linear_points, function in cairo_pattern_t +cairo_pattern_get_radial_circles, function in cairo_pattern_t +cairo_pattern_get_reference_count, function in cairo_pattern_t +cairo_pattern_get_rgba, function in cairo_pattern_t +cairo_pattern_get_surface, function in cairo_pattern_t +cairo_pattern_get_user_data, function in cairo_pattern_t +cairo_pattern_set_user_data, function in cairo_pattern_t + +R +cairo_rectangle_list_destroy, function in cairo_t +cairo_rectangle_list_t, struct in cairo_t +cairo_rectangle_t, struct in cairo_t + +S +cairo_scaled_font_get_reference_count, function in cairo_scaled_font_t +cairo_scaled_font_get_user_data, function in cairo_scaled_font_t +cairo_scaled_font_set_user_data, function in cairo_scaled_font_t +cairo_set_user_data, function in cairo_t +cairo_surface_get_reference_count, function in cairo_surface_t + +W +cairo_win32_scaled_font_get_device_to_logical, function in Win32 Fonts +cairo_win32_scaled_font_get_logical_to_device, function in Win32 Fonts +cairo_win32_surface_create_with_ddb, function in Win32 Surfaces +cairo_win32_surface_get_image, function in Win32 Surfaces + + diff --git a/libs/cairo-1.16.0/doc/public/xml/api-index-1.6.xml b/libs/cairo-1.16.0/doc/public/xml/api-index-1.6.xml new file mode 100644 index 0000000..cd7aa99 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/api-index-1.6.xml @@ -0,0 +1,43 @@ + + +]> + +F +cairo_format_stride_for_width, function in Image Surfaces + +H +cairo_has_current_point, function in Paths +CAIRO_HAS_QUARTZ_FONT, macro in Quartz (CGFont) Fonts +CAIRO_HAS_QUARTZ_SURFACE, macro in Quartz Surfaces +CAIRO_HAS_XLIB_XRENDER_SURFACE, macro in XLib-XRender Backend + +P +cairo_path_extents, function in Paths +cairo_ps_get_levels, function in PostScript Surfaces +cairo_ps_level_t, enum in PostScript Surfaces +cairo_ps_level_to_string, function in PostScript Surfaces +cairo_ps_surface_get_eps, function in PostScript Surfaces +cairo_ps_surface_restrict_to_level, function in PostScript Surfaces +cairo_ps_surface_set_eps, function in PostScript Surfaces + +Q +cairo_quartz_font_face_create_for_atsu_font_id, function in Quartz (CGFont) Fonts +cairo_quartz_font_face_create_for_cgfont, function in Quartz (CGFont) Fonts +cairo_quartz_surface_create, function in Quartz Surfaces +cairo_quartz_surface_create_for_cg_context, function in Quartz Surfaces +cairo_quartz_surface_get_cg_context, function in Quartz Surfaces + +S +cairo_surface_copy_page, function in cairo_surface_t +cairo_surface_show_page, function in cairo_surface_t + +W +cairo_win32_font_face_create_for_logfontw_hfont, function in Win32 Fonts +cairo_win32_printing_surface_create, function in Win32 Surfaces + +X +cairo_xlib_surface_get_xrender_format, function in XLib-XRender Backend + + diff --git a/libs/cairo-1.16.0/doc/public/xml/api-index-1.8.xml b/libs/cairo-1.16.0/doc/public/xml/api-index-1.8.xml new file mode 100644 index 0000000..fc9b05e --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/api-index-1.8.xml @@ -0,0 +1,52 @@ + + +]> + +G +cairo_glyph_allocate, function in text +cairo_glyph_free, function in text + +H +CAIRO_HAS_IMAGE_SURFACE, macro in Image Surfaces +CAIRO_HAS_USER_FONT, macro in User Fonts +CAIRO_HAS_WIN32_FONT, macro in Win32 Fonts + +S +cairo_scaled_font_get_scale_matrix, function in cairo_scaled_font_t +cairo_scaled_font_text_to_glyphs, function in cairo_scaled_font_t +cairo_show_text_glyphs, function in text +cairo_surface_get_fallback_resolution, function in cairo_surface_t +cairo_surface_has_show_text_glyphs, function in cairo_surface_t + +T +cairo_text_cluster_allocate, function in text +cairo_text_cluster_flags_t, enum in text +cairo_text_cluster_free, function in text +cairo_text_cluster_t, struct in text +cairo_toy_font_face_create, function in text +cairo_toy_font_face_get_family, function in text +cairo_toy_font_face_get_slant, function in text +cairo_toy_font_face_get_weight, function in text + +U +cairo_user_font_face_create, function in User Fonts +cairo_user_font_face_get_init_func, function in User Fonts +cairo_user_font_face_get_render_glyph_func, function in User Fonts +cairo_user_font_face_get_text_to_glyphs_func, function in User Fonts +cairo_user_font_face_get_unicode_to_glyph_func, function in User Fonts +cairo_user_font_face_set_init_func, function in User Fonts +cairo_user_font_face_set_render_glyph_func, function in User Fonts +cairo_user_font_face_set_text_to_glyphs_func, function in User Fonts +cairo_user_font_face_set_unicode_to_glyph_func, function in User Fonts +cairo_user_scaled_font_init_func_t, user_function in User Fonts +cairo_user_scaled_font_render_glyph_func_t, user_function in User Fonts +cairo_user_scaled_font_text_to_glyphs_func_t, user_function in User Fonts +cairo_user_scaled_font_unicode_to_glyph_func_t, user_function in User Fonts + +V +CAIRO_VERSION_STRING, macro in Version Information +CAIRO_VERSION_STRINGIZE, macro in Version Information + + diff --git a/libs/cairo-1.16.0/doc/public/xml/api-index-TBD.xml b/libs/cairo-1.16.0/doc/public/xml/api-index-TBD.xml new file mode 100644 index 0000000..41821f8 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/api-index-TBD.xml @@ -0,0 +1,7 @@ + + +]> + + diff --git a/libs/cairo-1.16.0/doc/public/xml/api-index-deprecated.xml b/libs/cairo-1.16.0/doc/public/xml/api-index-deprecated.xml new file mode 100644 index 0000000..4371747 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/api-index-deprecated.xml @@ -0,0 +1,7 @@ + + +]> + + diff --git a/libs/cairo-1.16.0/doc/public/xml/api-index-full.xml b/libs/cairo-1.16.0/doc/public/xml/api-index-full.xml new file mode 100644 index 0000000..392867c --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/api-index-full.xml @@ -0,0 +1,578 @@ + + +]> + +A +cairo_antialias_t, enum in cairo_t +cairo_append_path, function in Paths +cairo_arc, function in Paths +cairo_arc_negative, function in Paths + +B +cairo_bool_t, typedef in Types + +C +cairo_clip, function in cairo_t +cairo_clip_extents, function in cairo_t +cairo_clip_preserve, function in cairo_t +cairo_close_path, function in Paths +cairo_content_t, enum in cairo_surface_t +cairo_copy_clip_rectangle_list, function in cairo_t +cairo_copy_page, function in cairo_t +cairo_copy_path, function in Paths +cairo_copy_path_flat, function in Paths +cairo_create, function in cairo_t +cairo_curve_to, function in Paths + +D +cairo_debug_reset_static_data, function in Error handling +cairo_destroy, function in cairo_t +cairo_destroy_func_t, user_function in Types +cairo_device_acquire, function in cairo_device_t +cairo_device_destroy, function in cairo_device_t +cairo_device_finish, function in cairo_device_t +cairo_device_flush, function in cairo_device_t +cairo_device_get_reference_count, function in cairo_device_t +cairo_device_get_type, function in cairo_device_t +cairo_device_get_user_data, function in cairo_device_t +cairo_device_observer_elapsed, function in cairo_device_t +cairo_device_observer_fill_elapsed, function in cairo_device_t +cairo_device_observer_glyphs_elapsed, function in cairo_device_t +cairo_device_observer_mask_elapsed, function in cairo_device_t +cairo_device_observer_paint_elapsed, function in cairo_device_t +cairo_device_observer_print, function in cairo_device_t +cairo_device_observer_stroke_elapsed, function in cairo_device_t +cairo_device_reference, function in cairo_device_t +cairo_device_release, function in cairo_device_t +cairo_device_set_user_data, function in cairo_device_t +cairo_device_status, function in cairo_device_t +cairo_device_t, typedef in cairo_device_t +cairo_device_to_user, function in Transformations +cairo_device_to_user_distance, function in Transformations +cairo_device_type_t, enum in cairo_device_t + +E +cairo_extend_t, enum in cairo_pattern_t + +F +cairo_fill, function in cairo_t +cairo_fill_extents, function in cairo_t +cairo_fill_preserve, function in cairo_t +cairo_fill_rule_t, enum in cairo_t +cairo_filter_t, enum in cairo_pattern_t +cairo_font_extents, function in text +cairo_font_extents_t, struct in cairo_scaled_font_t +cairo_font_face_destroy, function in cairo_font_face_t +cairo_font_face_get_reference_count, function in cairo_font_face_t +cairo_font_face_get_type, function in cairo_font_face_t +cairo_font_face_get_user_data, function in cairo_font_face_t +cairo_font_face_reference, function in cairo_font_face_t +cairo_font_face_set_user_data, function in cairo_font_face_t +cairo_font_face_status, function in cairo_font_face_t +cairo_font_face_t, typedef in cairo_font_face_t +cairo_font_options_copy, function in cairo_font_options_t +cairo_font_options_create, function in cairo_font_options_t +cairo_font_options_destroy, function in cairo_font_options_t +cairo_font_options_equal, function in cairo_font_options_t +cairo_font_options_get_antialias, function in cairo_font_options_t +cairo_font_options_get_hint_metrics, function in cairo_font_options_t +cairo_font_options_get_hint_style, function in cairo_font_options_t +cairo_font_options_get_subpixel_order, function in cairo_font_options_t +cairo_font_options_get_variations, function in cairo_font_options_t +cairo_font_options_hash, function in cairo_font_options_t +cairo_font_options_merge, function in cairo_font_options_t +cairo_font_options_set_antialias, function in cairo_font_options_t +cairo_font_options_set_hint_metrics, function in cairo_font_options_t +cairo_font_options_set_hint_style, function in cairo_font_options_t +cairo_font_options_set_subpixel_order, function in cairo_font_options_t +cairo_font_options_set_variations, function in cairo_font_options_t +cairo_font_options_status, function in cairo_font_options_t +cairo_font_options_t, typedef in cairo_font_options_t +cairo_font_slant_t, enum in text +cairo_font_type_t, enum in cairo_font_face_t +cairo_font_weight_t, enum in text +cairo_format_stride_for_width, function in Image Surfaces +cairo_format_t, enum in Image Surfaces +cairo_ft_font_face_create_for_ft_face, function in FreeType Fonts +cairo_ft_font_face_create_for_pattern, function in FreeType Fonts +cairo_ft_font_face_get_synthesize, function in FreeType Fonts +cairo_ft_font_face_set_synthesize, function in FreeType Fonts +cairo_ft_font_face_unset_synthesize, function in FreeType Fonts +cairo_ft_font_options_substitute, function in FreeType Fonts +cairo_ft_scaled_font_lock_face, function in FreeType Fonts +cairo_ft_scaled_font_unlock_face, function in FreeType Fonts +cairo_ft_synthesize_t, enum in FreeType Fonts + +G +cairo_get_antialias, function in cairo_t +cairo_get_current_point, function in Paths +cairo_get_dash, function in cairo_t +cairo_get_dash_count, function in cairo_t +cairo_get_fill_rule, function in cairo_t +cairo_get_font_face, function in text +cairo_get_font_matrix, function in text +cairo_get_font_options, function in text +cairo_get_group_target, function in cairo_t +cairo_get_line_cap, function in cairo_t +cairo_get_line_join, function in cairo_t +cairo_get_line_width, function in cairo_t +cairo_get_matrix, function in Transformations +cairo_get_miter_limit, function in cairo_t +cairo_get_operator, function in cairo_t +cairo_get_reference_count, function in cairo_t +cairo_get_scaled_font, function in text +cairo_get_source, function in cairo_t +cairo_get_target, function in cairo_t +cairo_get_tolerance, function in cairo_t +cairo_get_user_data, function in cairo_t +cairo_glyph_allocate, function in text +cairo_glyph_extents, function in text +cairo_glyph_free, function in text +cairo_glyph_path, function in Paths +cairo_glyph_t, struct in text + +H +cairo_has_current_point, function in Paths +CAIRO_HAS_FC_FONT, macro in FreeType Fonts +CAIRO_HAS_FT_FONT, macro in FreeType Fonts +CAIRO_HAS_IMAGE_SURFACE, macro in Image Surfaces +CAIRO_HAS_MIME_SURFACE, macro in cairo_surface_t +CAIRO_HAS_OBSERVER_SURFACE, macro in cairo-surface-observer +CAIRO_HAS_PDF_SURFACE, macro in PDF Surfaces +CAIRO_HAS_PNG_FUNCTIONS, macro in PNG Support +CAIRO_HAS_PS_SURFACE, macro in PostScript Surfaces +CAIRO_HAS_QUARTZ_FONT, macro in Quartz (CGFont) Fonts +CAIRO_HAS_QUARTZ_SURFACE, macro in Quartz Surfaces +CAIRO_HAS_RECORDING_SURFACE, macro in Recording Surfaces +CAIRO_HAS_SCRIPT_SURFACE, macro in Script Surfaces +CAIRO_HAS_SVG_SURFACE, macro in SVG Surfaces +CAIRO_HAS_USER_FONT, macro in User Fonts +CAIRO_HAS_WIN32_FONT, macro in Win32 Fonts +CAIRO_HAS_WIN32_SURFACE, macro in Win32 Surfaces +CAIRO_HAS_XCB_SHM_FUNCTIONS, macro in XCB Surfaces +CAIRO_HAS_XCB_SURFACE, macro in XCB Surfaces +CAIRO_HAS_XLIB_SURFACE, macro in XLib Surfaces +CAIRO_HAS_XLIB_XRENDER_SURFACE, macro in XLib-XRender Backend +cairo_hint_metrics_t, enum in cairo_font_options_t +cairo_hint_style_t, enum in cairo_font_options_t + +I +cairo_identity_matrix, function in Transformations +cairo_image_surface_create, function in Image Surfaces +cairo_image_surface_create_for_data, function in Image Surfaces +cairo_image_surface_create_from_png, function in PNG Support +cairo_image_surface_create_from_png_stream, function in PNG Support +cairo_image_surface_get_data, function in Image Surfaces +cairo_image_surface_get_format, function in Image Surfaces +cairo_image_surface_get_height, function in Image Surfaces +cairo_image_surface_get_stride, function in Image Surfaces +cairo_image_surface_get_width, function in Image Surfaces +cairo_in_clip, function in cairo_t +cairo_in_fill, function in cairo_t +cairo_in_stroke, function in cairo_t + +L +cairo_line_cap_t, enum in cairo_t +cairo_line_join_t, enum in cairo_t +cairo_line_to, function in Paths + +M +cairo_mask, function in cairo_t +cairo_mask_surface, function in cairo_t +cairo_matrix_init, function in cairo_matrix_t +cairo_matrix_init_identity, function in cairo_matrix_t +cairo_matrix_init_rotate, function in cairo_matrix_t +cairo_matrix_init_scale, function in cairo_matrix_t +cairo_matrix_init_translate, function in cairo_matrix_t +cairo_matrix_invert, function in cairo_matrix_t +cairo_matrix_multiply, function in cairo_matrix_t +cairo_matrix_rotate, function in cairo_matrix_t +cairo_matrix_scale, function in cairo_matrix_t +cairo_matrix_t, struct in cairo_matrix_t +cairo_matrix_transform_distance, function in cairo_matrix_t +cairo_matrix_transform_point, function in cairo_matrix_t +cairo_matrix_translate, function in cairo_matrix_t +cairo_mesh_pattern_begin_patch, function in cairo_pattern_t +cairo_mesh_pattern_curve_to, function in cairo_pattern_t +cairo_mesh_pattern_end_patch, function in cairo_pattern_t +cairo_mesh_pattern_get_control_point, function in cairo_pattern_t +cairo_mesh_pattern_get_corner_color_rgba, function in cairo_pattern_t +cairo_mesh_pattern_get_patch_count, function in cairo_pattern_t +cairo_mesh_pattern_get_path, function in cairo_pattern_t +cairo_mesh_pattern_line_to, function in cairo_pattern_t +cairo_mesh_pattern_move_to, function in cairo_pattern_t +cairo_mesh_pattern_set_control_point, function in cairo_pattern_t +cairo_mesh_pattern_set_corner_color_rgb, function in cairo_pattern_t +cairo_mesh_pattern_set_corner_color_rgba, function in cairo_pattern_t +CAIRO_MIME_TYPE_CCITT_FAX, macro in cairo_surface_t +CAIRO_MIME_TYPE_CCITT_FAX_PARAMS, macro in cairo_surface_t +CAIRO_MIME_TYPE_EPS, macro in cairo_surface_t +CAIRO_MIME_TYPE_EPS_PARAMS, macro in cairo_surface_t +CAIRO_MIME_TYPE_JBIG2, macro in cairo_surface_t +CAIRO_MIME_TYPE_JBIG2_GLOBAL, macro in cairo_surface_t +CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID, macro in cairo_surface_t +CAIRO_MIME_TYPE_JP2, macro in cairo_surface_t +CAIRO_MIME_TYPE_JPEG, macro in cairo_surface_t +CAIRO_MIME_TYPE_PNG, macro in cairo_surface_t +CAIRO_MIME_TYPE_UNIQUE_ID, macro in cairo_surface_t +CAIRO_MIME_TYPE_URI, macro in cairo_surface_t +cairo_move_to, function in Paths + +N +cairo_new_path, function in Paths +cairo_new_sub_path, function in Paths + +O +cairo_operator_t, enum in cairo_t + +P +cairo_paint, function in cairo_t +cairo_paint_with_alpha, function in cairo_t +cairo_path_data_t, union in Paths +cairo_path_data_type_t, enum in Paths +cairo_path_destroy, function in Paths +cairo_path_extents, function in Paths +cairo_path_t, struct in Paths +cairo_pattern_add_color_stop_rgb, function in cairo_pattern_t +cairo_pattern_add_color_stop_rgba, function in cairo_pattern_t +cairo_pattern_create_for_surface, function in cairo_pattern_t +cairo_pattern_create_linear, function in cairo_pattern_t +cairo_pattern_create_mesh, function in cairo_pattern_t +cairo_pattern_create_radial, function in cairo_pattern_t +cairo_pattern_create_raster_source, function in Raster Sources +cairo_pattern_create_rgb, function in cairo_pattern_t +cairo_pattern_create_rgba, function in cairo_pattern_t +cairo_pattern_destroy, function in cairo_pattern_t +cairo_pattern_get_color_stop_count, function in cairo_pattern_t +cairo_pattern_get_color_stop_rgba, function in cairo_pattern_t +cairo_pattern_get_extend, function in cairo_pattern_t +cairo_pattern_get_filter, function in cairo_pattern_t +cairo_pattern_get_linear_points, function in cairo_pattern_t +cairo_pattern_get_matrix, function in cairo_pattern_t +cairo_pattern_get_radial_circles, function in cairo_pattern_t +cairo_pattern_get_reference_count, function in cairo_pattern_t +cairo_pattern_get_rgba, function in cairo_pattern_t +cairo_pattern_get_surface, function in cairo_pattern_t +cairo_pattern_get_type, function in cairo_pattern_t +cairo_pattern_get_user_data, function in cairo_pattern_t +cairo_pattern_reference, function in cairo_pattern_t +cairo_pattern_set_extend, function in cairo_pattern_t +cairo_pattern_set_filter, function in cairo_pattern_t +cairo_pattern_set_matrix, function in cairo_pattern_t +cairo_pattern_set_user_data, function in cairo_pattern_t +cairo_pattern_status, function in cairo_pattern_t +cairo_pattern_t, typedef in cairo_pattern_t +cairo_pattern_type_t, enum in cairo_pattern_t +cairo_pdf_get_versions, function in PDF Surfaces +cairo_pdf_metadata_t, enum in PDF Surfaces +cairo_pdf_outline_flags_t, enum in PDF Surfaces +CAIRO_PDF_OUTLINE_ROOT, macro in PDF Surfaces +cairo_pdf_surface_add_outline, function in PDF Surfaces +cairo_pdf_surface_create, function in PDF Surfaces +cairo_pdf_surface_create_for_stream, function in PDF Surfaces +cairo_pdf_surface_restrict_to_version, function in PDF Surfaces +cairo_pdf_surface_set_metadata, function in PDF Surfaces +cairo_pdf_surface_set_page_label, function in PDF Surfaces +cairo_pdf_surface_set_size, function in PDF Surfaces +cairo_pdf_surface_set_thumbnail_size, function in PDF Surfaces +cairo_pdf_version_t, enum in PDF Surfaces +cairo_pdf_version_to_string, function in PDF Surfaces +cairo_pop_group, function in cairo_t +cairo_pop_group_to_source, function in cairo_t +cairo_ps_get_levels, function in PostScript Surfaces +cairo_ps_level_t, enum in PostScript Surfaces +cairo_ps_level_to_string, function in PostScript Surfaces +cairo_ps_surface_create, function in PostScript Surfaces +cairo_ps_surface_create_for_stream, function in PostScript Surfaces +cairo_ps_surface_dsc_begin_page_setup, function in PostScript Surfaces +cairo_ps_surface_dsc_begin_setup, function in PostScript Surfaces +cairo_ps_surface_dsc_comment, function in PostScript Surfaces +cairo_ps_surface_get_eps, function in PostScript Surfaces +cairo_ps_surface_restrict_to_level, function in PostScript Surfaces +cairo_ps_surface_set_eps, function in PostScript Surfaces +cairo_ps_surface_set_size, function in PostScript Surfaces +cairo_push_group, function in cairo_t +cairo_push_group_with_content, function in cairo_t + +Q +cairo_quartz_font_face_create_for_atsu_font_id, function in Quartz (CGFont) Fonts +cairo_quartz_font_face_create_for_cgfont, function in Quartz (CGFont) Fonts +cairo_quartz_surface_create, function in Quartz Surfaces +cairo_quartz_surface_create_for_cg_context, function in Quartz Surfaces +cairo_quartz_surface_get_cg_context, function in Quartz Surfaces + +R +cairo_raster_source_acquire_func_t, user_function in Raster Sources +cairo_raster_source_copy_func_t, user_function in Raster Sources +cairo_raster_source_finish_func_t, user_function in Raster Sources +cairo_raster_source_pattern_get_acquire, function in Raster Sources +cairo_raster_source_pattern_get_callback_data, function in Raster Sources +cairo_raster_source_pattern_get_copy, function in Raster Sources +cairo_raster_source_pattern_get_finish, function in Raster Sources +cairo_raster_source_pattern_get_snapshot, function in Raster Sources +cairo_raster_source_pattern_set_acquire, function in Raster Sources +cairo_raster_source_pattern_set_callback_data, function in Raster Sources +cairo_raster_source_pattern_set_copy, function in Raster Sources +cairo_raster_source_pattern_set_finish, function in Raster Sources +cairo_raster_source_pattern_set_snapshot, function in Raster Sources +cairo_raster_source_release_func_t, user_function in Raster Sources +cairo_raster_source_snapshot_func_t, user_function in Raster Sources +cairo_read_func_t, user_function in PNG Support +cairo_recording_surface_create, function in Recording Surfaces +cairo_recording_surface_get_extents, function in Recording Surfaces +cairo_recording_surface_ink_extents, function in Recording Surfaces +cairo_rectangle, function in Paths +cairo_rectangle_int_t, struct in Types +cairo_rectangle_list_destroy, function in cairo_t +cairo_rectangle_list_t, struct in cairo_t +cairo_rectangle_t, struct in cairo_t +cairo_reference, function in cairo_t +cairo_region_contains_point, function in Regions +cairo_region_contains_rectangle, function in Regions +cairo_region_copy, function in Regions +cairo_region_create, function in Regions +cairo_region_create_rectangle, function in Regions +cairo_region_create_rectangles, function in Regions +cairo_region_destroy, function in Regions +cairo_region_equal, function in Regions +cairo_region_get_extents, function in Regions +cairo_region_get_rectangle, function in Regions +cairo_region_intersect, function in Regions +cairo_region_intersect_rectangle, function in Regions +cairo_region_is_empty, function in Regions +cairo_region_num_rectangles, function in Regions +cairo_region_overlap_t, enum in Regions +cairo_region_reference, function in Regions +cairo_region_status, function in Regions +cairo_region_subtract, function in Regions +cairo_region_subtract_rectangle, function in Regions +cairo_region_t, typedef in Regions +cairo_region_translate, function in Regions +cairo_region_union, function in Regions +cairo_region_union_rectangle, function in Regions +cairo_region_xor, function in Regions +cairo_region_xor_rectangle, function in Regions +cairo_rel_curve_to, function in Paths +cairo_rel_line_to, function in Paths +cairo_rel_move_to, function in Paths +cairo_reset_clip, function in cairo_t +cairo_restore, function in cairo_t +cairo_rotate, function in Transformations + +S +cairo_save, function in cairo_t +cairo_scale, function in Transformations +cairo_scaled_font_create, function in cairo_scaled_font_t +cairo_scaled_font_destroy, function in cairo_scaled_font_t +cairo_scaled_font_extents, function in cairo_scaled_font_t +cairo_scaled_font_get_ctm, function in cairo_scaled_font_t +cairo_scaled_font_get_font_face, function in cairo_scaled_font_t +cairo_scaled_font_get_font_matrix, function in cairo_scaled_font_t +cairo_scaled_font_get_font_options, function in cairo_scaled_font_t +cairo_scaled_font_get_reference_count, function in cairo_scaled_font_t +cairo_scaled_font_get_scale_matrix, function in cairo_scaled_font_t +cairo_scaled_font_get_type, function in cairo_scaled_font_t +cairo_scaled_font_get_user_data, function in cairo_scaled_font_t +cairo_scaled_font_glyph_extents, function in cairo_scaled_font_t +cairo_scaled_font_reference, function in cairo_scaled_font_t +cairo_scaled_font_set_user_data, function in cairo_scaled_font_t +cairo_scaled_font_status, function in cairo_scaled_font_t +cairo_scaled_font_t, typedef in cairo_scaled_font_t +cairo_scaled_font_text_extents, function in cairo_scaled_font_t +cairo_scaled_font_text_to_glyphs, function in cairo_scaled_font_t +cairo_script_create, function in Script Surfaces +cairo_script_create_for_stream, function in Script Surfaces +cairo_script_from_recording_surface, function in Script Surfaces +cairo_script_get_mode, function in Script Surfaces +cairo_script_mode_t, enum in Script Surfaces +cairo_script_set_mode, function in Script Surfaces +cairo_script_surface_create, function in Script Surfaces +cairo_script_surface_create_for_target, function in Script Surfaces +cairo_script_write_comment, function in Script Surfaces +cairo_select_font_face, function in text +cairo_set_antialias, function in cairo_t +cairo_set_dash, function in cairo_t +cairo_set_fill_rule, function in cairo_t +cairo_set_font_face, function in text +cairo_set_font_matrix, function in text +cairo_set_font_options, function in text +cairo_set_font_size, function in text +cairo_set_line_cap, function in cairo_t +cairo_set_line_join, function in cairo_t +cairo_set_line_width, function in cairo_t +cairo_set_matrix, function in Transformations +cairo_set_miter_limit, function in cairo_t +cairo_set_operator, function in cairo_t +cairo_set_scaled_font, function in text +cairo_set_source, function in cairo_t +cairo_set_source_rgb, function in cairo_t +cairo_set_source_rgba, function in cairo_t +cairo_set_source_surface, function in cairo_t +cairo_set_tolerance, function in cairo_t +cairo_set_user_data, function in cairo_t +cairo_show_glyphs, function in text +cairo_show_page, function in cairo_t +cairo_show_text, function in text +cairo_show_text_glyphs, function in text +cairo_status, function in cairo_t +cairo_status_t, enum in Error handling +cairo_status_to_string, function in Error handling +cairo_stroke, function in cairo_t +cairo_stroke_extents, function in cairo_t +cairo_stroke_preserve, function in cairo_t +cairo_subpixel_order_t, enum in cairo_font_options_t +cairo_surface_copy_page, function in cairo_surface_t +cairo_surface_create_for_rectangle, function in cairo_surface_t +cairo_surface_create_observer, function in cairo-surface-observer +cairo_surface_create_similar, function in cairo_surface_t +cairo_surface_create_similar_image, function in cairo_surface_t +cairo_surface_destroy, function in cairo_surface_t +cairo_surface_finish, function in cairo_surface_t +cairo_surface_flush, function in cairo_surface_t +cairo_surface_get_content, function in cairo_surface_t +cairo_surface_get_device, function in cairo_surface_t +cairo_surface_get_device_offset, function in cairo_surface_t +cairo_surface_get_device_scale, function in cairo_surface_t +cairo_surface_get_fallback_resolution, function in cairo_surface_t +cairo_surface_get_font_options, function in cairo_surface_t +cairo_surface_get_mime_data, function in cairo_surface_t +cairo_surface_get_reference_count, function in cairo_surface_t +cairo_surface_get_type, function in cairo_surface_t +cairo_surface_get_user_data, function in cairo_surface_t +cairo_surface_has_show_text_glyphs, function in cairo_surface_t +cairo_surface_map_to_image, function in cairo_surface_t +cairo_surface_mark_dirty, function in cairo_surface_t +cairo_surface_mark_dirty_rectangle, function in cairo_surface_t +cairo_surface_observer_add_fill_callback, function in cairo-surface-observer +cairo_surface_observer_add_finish_callback, function in cairo-surface-observer +cairo_surface_observer_add_flush_callback, function in cairo-surface-observer +cairo_surface_observer_add_glyphs_callback, function in cairo-surface-observer +cairo_surface_observer_add_mask_callback, function in cairo-surface-observer +cairo_surface_observer_add_paint_callback, function in cairo-surface-observer +cairo_surface_observer_add_stroke_callback, function in cairo-surface-observer +cairo_surface_observer_callback_t, user_function in cairo-surface-observer +cairo_surface_observer_elapsed, function in cairo-surface-observer +cairo_surface_observer_mode_t, enum in cairo-surface-observer +cairo_surface_observer_print, function in cairo-surface-observer +cairo_surface_reference, function in cairo_surface_t +cairo_surface_set_device_offset, function in cairo_surface_t +cairo_surface_set_device_scale, function in cairo_surface_t +cairo_surface_set_fallback_resolution, function in cairo_surface_t +cairo_surface_set_mime_data, function in cairo_surface_t +cairo_surface_set_user_data, function in cairo_surface_t +cairo_surface_show_page, function in cairo_surface_t +cairo_surface_status, function in cairo_surface_t +cairo_surface_supports_mime_type, function in cairo_surface_t +cairo_surface_t, typedef in cairo_surface_t +cairo_surface_type_t, enum in cairo_surface_t +cairo_surface_unmap_image, function in cairo_surface_t +cairo_surface_write_to_png, function in PNG Support +cairo_surface_write_to_png_stream, function in PNG Support +cairo_svg_get_versions, function in SVG Surfaces +cairo_svg_surface_create, function in SVG Surfaces +cairo_svg_surface_create_for_stream, function in SVG Surfaces +cairo_svg_surface_get_document_unit, function in SVG Surfaces +cairo_svg_surface_restrict_to_version, function in SVG Surfaces +cairo_svg_surface_set_document_unit, function in SVG Surfaces +cairo_svg_unit_t, enum in SVG Surfaces +cairo_svg_version_t, enum in SVG Surfaces +cairo_svg_version_to_string, function in SVG Surfaces + +T +cairo_t, typedef in cairo_t +cairo_tag_begin, function in Tags and Links +CAIRO_TAG_DEST, macro in Tags and Links +cairo_tag_end, function in Tags and Links +CAIRO_TAG_LINK, macro in Tags and Links +cairo_text_cluster_allocate, function in text +cairo_text_cluster_flags_t, enum in text +cairo_text_cluster_free, function in text +cairo_text_cluster_t, struct in text +cairo_text_extents, function in text +cairo_text_extents_t, struct in cairo_scaled_font_t +cairo_text_path, function in Paths +cairo_toy_font_face_create, function in text +cairo_toy_font_face_get_family, function in text +cairo_toy_font_face_get_slant, function in text +cairo_toy_font_face_get_weight, function in text +cairo_transform, function in Transformations +cairo_translate, function in Transformations + +U +cairo_user_data_key_t, struct in Types +cairo_user_font_face_create, function in User Fonts +cairo_user_font_face_get_init_func, function in User Fonts +cairo_user_font_face_get_render_glyph_func, function in User Fonts +cairo_user_font_face_get_text_to_glyphs_func, function in User Fonts +cairo_user_font_face_get_unicode_to_glyph_func, function in User Fonts +cairo_user_font_face_set_init_func, function in User Fonts +cairo_user_font_face_set_render_glyph_func, function in User Fonts +cairo_user_font_face_set_text_to_glyphs_func, function in User Fonts +cairo_user_font_face_set_unicode_to_glyph_func, function in User Fonts +cairo_user_scaled_font_init_func_t, user_function in User Fonts +cairo_user_scaled_font_render_glyph_func_t, user_function in User Fonts +cairo_user_scaled_font_text_to_glyphs_func_t, user_function in User Fonts +cairo_user_scaled_font_unicode_to_glyph_func_t, user_function in User Fonts +cairo_user_to_device, function in Transformations +cairo_user_to_device_distance, function in Transformations + +V +CAIRO_VERSION, macro in Version Information +cairo_version, function in Version Information +CAIRO_VERSION_ENCODE, macro in Version Information +CAIRO_VERSION_MAJOR, macro in Version Information +CAIRO_VERSION_MICRO, macro in Version Information +CAIRO_VERSION_MINOR, macro in Version Information +CAIRO_VERSION_STRING, macro in Version Information +cairo_version_string, function in Version Information +CAIRO_VERSION_STRINGIZE, macro in Version Information + +W +cairo_win32_font_face_create_for_hfont, function in Win32 Fonts +cairo_win32_font_face_create_for_logfontw, function in Win32 Fonts +cairo_win32_font_face_create_for_logfontw_hfont, function in Win32 Fonts +cairo_win32_printing_surface_create, function in Win32 Surfaces +cairo_win32_scaled_font_done_font, function in Win32 Fonts +cairo_win32_scaled_font_get_device_to_logical, function in Win32 Fonts +cairo_win32_scaled_font_get_logical_to_device, function in Win32 Fonts +cairo_win32_scaled_font_get_metrics_factor, function in Win32 Fonts +cairo_win32_scaled_font_select_font, function in Win32 Fonts +cairo_win32_surface_create, function in Win32 Surfaces +cairo_win32_surface_create_with_ddb, function in Win32 Surfaces +cairo_win32_surface_create_with_dib, function in Win32 Surfaces +cairo_win32_surface_create_with_format, function in Win32 Surfaces +cairo_win32_surface_get_dc, function in Win32 Surfaces +cairo_win32_surface_get_image, function in Win32 Surfaces +cairo_write_func_t, user_function in PNG Support + +X +cairo_xcb_device_debug_cap_xrender_version, function in XCB Surfaces +cairo_xcb_device_debug_cap_xshm_version, function in XCB Surfaces +cairo_xcb_device_debug_get_precision, function in XCB Surfaces +cairo_xcb_device_debug_set_precision, function in XCB Surfaces +cairo_xcb_device_get_connection, function in XCB Surfaces +cairo_xcb_surface_create, function in XCB Surfaces +cairo_xcb_surface_create_for_bitmap, function in XCB Surfaces +cairo_xcb_surface_create_with_xrender_format, function in XCB Surfaces +cairo_xcb_surface_set_drawable, function in XCB Surfaces +cairo_xcb_surface_set_size, function in XCB Surfaces +cairo_xlib_device_debug_cap_xrender_version, function in XLib Surfaces +cairo_xlib_device_debug_get_precision, function in XLib Surfaces +cairo_xlib_device_debug_set_precision, function in XLib Surfaces +cairo_xlib_surface_create, function in XLib Surfaces +cairo_xlib_surface_create_for_bitmap, function in XLib Surfaces +cairo_xlib_surface_create_with_xrender_format, function in XLib-XRender Backend +cairo_xlib_surface_get_depth, function in XLib Surfaces +cairo_xlib_surface_get_display, function in XLib Surfaces +cairo_xlib_surface_get_drawable, function in XLib Surfaces +cairo_xlib_surface_get_height, function in XLib Surfaces +cairo_xlib_surface_get_screen, function in XLib Surfaces +cairo_xlib_surface_get_visual, function in XLib Surfaces +cairo_xlib_surface_get_width, function in XLib Surfaces +cairo_xlib_surface_get_xrender_format, function in XLib-XRender Backend +cairo_xlib_surface_set_drawable, function in XLib Surfaces +cairo_xlib_surface_set_size, function in XLib Surfaces + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-device.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-device.xml new file mode 100644 index 0000000..b3f77eb --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-device.xml @@ -0,0 +1,585 @@ + + +]> + + +cairo_device_t +3 +CAIRO Library + + +cairo_device_t +interface to underlying rendering system + + + +Functions + + + + + +cairo_device_t * +cairo_device_reference () +void +cairo_device_destroy () +cairo_status_t +cairo_device_status () +void +cairo_device_finish () +void +cairo_device_flush () +cairo_device_type_t +cairo_device_get_type () +unsigned int +cairo_device_get_reference_count () +cairo_status_t +cairo_device_set_user_data () +void * +cairo_device_get_user_data () +cairo_status_t +cairo_device_acquire () +void +cairo_device_release () +double +cairo_device_observer_elapsed () +double +cairo_device_observer_fill_elapsed () +double +cairo_device_observer_glyphs_elapsed () +double +cairo_device_observer_mask_elapsed () +double +cairo_device_observer_paint_elapsed () +cairo_status_t +cairo_device_observer_print () +double +cairo_device_observer_stroke_elapsed () + + + + + + +Types and Values + + + + + +typedefcairo_device_t +enumcairo_device_type_t + + + + + + + + +Description +Devices are the abstraction Cairo employs for the rendering system +used by a cairo_surface_t. You can get the device of a surface using +cairo_surface_get_device(). +Devices are created using custom functions specific to the rendering +system you want to use. See the documentation for the surface types +for those functions. +An important function that devices fulfill is sharing access to the +rendering system between Cairo and your application. If you want to +access a device directly that you used to draw to with Cairo, you must +first call cairo_device_flush() to ensure that Cairo finishes all +operations on the device and resets it to a clean state. +Cairo also provides the functions cairo_device_acquire() and +cairo_device_release() to synchronize access to the rendering system +in a multithreaded environment. This is done internally, but can also +be used by applications. +Putting this all together, a function that works with devices should +look something like this: + +void +my_device_modifying_function (cairo_device_t *device) +{ + cairo_status_t status; + + // Ensure the device is properly reset + cairo_device_flush (device); + // Try to acquire the device + status = cairo_device_acquire (device); + if (status != CAIRO_STATUS_SUCCESS) { + printf ("Failed to acquire the device: %s\n", cairo_status_to_string (status)); + return; + } + + // Do the custom operations on the device here. + // But do not call any Cairo functions that might acquire devices. + + // Release the device when done. + cairo_device_release (device); +} + +Please refer to the documentation of each backend for +additional usage requirements, guarantees provided, and +interactions with existing surface API of the device functions for +surfaces of that type. + + + + +Functions + +cairo_device_reference () +cairo_device_reference +cairo_device_t * +cairo_device_reference (cairo_device_t *device); +Increases the reference count on device + by one. This prevents +device + from being destroyed until a matching call to +cairo_device_destroy() is made. +Use cairo_device_get_reference_count() to get the number of references +to a cairo_device_t. + +Parameters + + + + + + +device +a cairo_device_t + + + +Returns + the referenced cairo_device_t. +Since: 1.10 + +cairo_device_destroy () +cairo_device_destroy +void +cairo_device_destroy (cairo_device_t *device); +Decreases the reference count on device + by one. If the result is +zero, then device + and all associated resources are freed. See +cairo_device_reference(). +This function may acquire devices if the last reference was dropped. + +Parameters + + + + + + +device +a cairo_device_t + + +Since: 1.10 + +cairo_device_status () +cairo_device_status +cairo_status_t +cairo_device_status (cairo_device_t *device); +Checks whether an error has previously occurred for this +device. + +Parameters + + + + + + +device +a cairo_device_t + + + +Returns + CAIRO_STATUS_SUCCESS on success or an error code if +the device is in an error state. +Since: 1.10 + +cairo_device_finish () +cairo_device_finish +void +cairo_device_finish (cairo_device_t *device); +This function finishes the device and drops all references to +external resources. All surfaces, fonts and other objects created +for this device + will be finished, too. +Further operations on the device + will not affect the device + but +will instead trigger a CAIRO_STATUS_DEVICE_FINISHED error. +When the last call to cairo_device_destroy() decreases the +reference count to zero, cairo will call cairo_device_finish() if +it hasn't been called already, before freeing the resources +associated with the device. +This function may acquire devices. + +Parameters + + + + + + +device +the cairo_device_t to finish + + +Since: 1.10 + +cairo_device_flush () +cairo_device_flush +void +cairo_device_flush (cairo_device_t *device); +Finish any pending operations for the device and also restore any +temporary modifications cairo has made to the device's state. +This function must be called before switching from using the +device with Cairo to operating on it directly with native APIs. +If the device doesn't support direct access, then this function +does nothing. +This function may acquire devices. + +Parameters + + + + + + +device +a cairo_device_t + + +Since: 1.10 + +cairo_device_get_type () +cairo_device_get_type +cairo_device_type_t +cairo_device_get_type (cairo_device_t *device); +This function returns the type of the device. See cairo_device_type_t +for available types. + +Parameters + + + + + + +device +a cairo_device_t + + + +Returns + The type of device +. +Since: 1.10 + +cairo_device_get_reference_count () +cairo_device_get_reference_count +unsigned int +cairo_device_get_reference_count (cairo_device_t *device); +Returns the current reference count of device +. + +Parameters + + + + + + +device +a cairo_device_t + + + +Returns + the current reference count of device +. If the +object is a nil object, 0 will be returned. +Since: 1.10 + +cairo_device_set_user_data () +cairo_device_set_user_data +cairo_status_t +cairo_device_set_user_data (cairo_device_t *device, + const cairo_user_data_key_t *key, + void *user_data, + cairo_destroy_func_t destroy); +Attach user data to device +. To remove user data from a surface, +call this function with the key that was used to set it and NULL +for data +. + +Parameters + + + + + + +device +a cairo_device_t + +key +the address of a cairo_user_data_key_t to attach the user data to + +user_data +the user data to attach to the cairo_device_t + +destroy +a cairo_destroy_func_t which will be called when the +cairo_t is destroyed or when new user data is attached using the +same key. + + + +Returns + CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY if a +slot could not be allocated for the user data. +Since: 1.10 + +cairo_device_get_user_data () +cairo_device_get_user_data +void * +cairo_device_get_user_data (cairo_device_t *device, + const cairo_user_data_key_t *key); +Return user data previously attached to device + using the +specified key. If no user data has been attached with the given +key this function returns NULL. + +Parameters + + + + + + +device +a cairo_device_t + +key +the address of the cairo_user_data_key_t the user data was +attached to + + + +Returns + the user data previously attached or NULL. +Since: 1.10 + +cairo_device_acquire () +cairo_device_acquire +cairo_status_t +cairo_device_acquire (cairo_device_t *device); +Acquires the device + for the current thread. This function will block +until no other thread has acquired the device. +If the return value is CAIRO_STATUS_SUCCESS, you successfully acquired the +device. From now on your thread owns the device and no other thread will be +able to acquire it until a matching call to cairo_device_release(). It is +allowed to recursively acquire the device multiple times from the same +thread. +You must never acquire two different devices at the same time +unless this is explicitly allowed. Otherwise the possibility of deadlocks +exist. + +As various Cairo functions can acquire devices when called, these functions +may also cause deadlocks when you call them with an acquired device. So you +must not have a device acquired when calling them. These functions are +marked in the documentation. + + +Parameters + + + + + + +device +a cairo_device_t + + + +Returns + CAIRO_STATUS_SUCCESS on success or an error code if +the device is in an error state and could not be +acquired. After a successful call to cairo_device_acquire(), +a matching call to cairo_device_release() is required. +Since: 1.10 + +cairo_device_release () +cairo_device_release +void +cairo_device_release (cairo_device_t *device); +Releases a device + previously acquired using cairo_device_acquire(). See +that function for details. + +Parameters + + + + + + +device +a cairo_device_t + + +Since: 1.10 + +cairo_device_observer_elapsed () +cairo_device_observer_elapsed +double +cairo_device_observer_elapsed (cairo_device_t *device); + + +cairo_device_observer_fill_elapsed () +cairo_device_observer_fill_elapsed +double +cairo_device_observer_fill_elapsed (cairo_device_t *device); + + +cairo_device_observer_glyphs_elapsed () +cairo_device_observer_glyphs_elapsed +double +cairo_device_observer_glyphs_elapsed (cairo_device_t *device); + + +cairo_device_observer_mask_elapsed () +cairo_device_observer_mask_elapsed +double +cairo_device_observer_mask_elapsed (cairo_device_t *device); + + +cairo_device_observer_paint_elapsed () +cairo_device_observer_paint_elapsed +double +cairo_device_observer_paint_elapsed (cairo_device_t *device); + + +cairo_device_observer_print () +cairo_device_observer_print +cairo_status_t +cairo_device_observer_print (cairo_device_t *device, + cairo_write_func_t write_func, + void *closure); + + +cairo_device_observer_stroke_elapsed () +cairo_device_observer_stroke_elapsed +double +cairo_device_observer_stroke_elapsed (cairo_device_t *device); + + + + +Types and Values + +cairo_device_t +cairo_device_t +typedef struct _cairo_device cairo_device_t; + +A cairo_device_t represents the driver interface for drawing +operations to a cairo_surface_t. There are different subtypes of +cairo_device_t for different drawing backends; for example, +cairo_egl_device_create() creates a device that wraps an EGL display and +context. +The type of a device can be queried with cairo_device_get_type(). +Memory management of cairo_device_t is done with +cairo_device_reference() and cairo_device_destroy(). +Since: 1.10 + +enum cairo_device_type_t +cairo_device_type_t +cairo_device_type_t is used to describe the type of a given +device. The devices types are also known as "backends" within cairo. +The device type can be queried with cairo_device_get_type() +The various cairo_device_t functions can be used with devices of +any type, but some backends also provide type-specific functions +that must only be called with a device of the appropriate +type. These functions have names that begin with +cairo_type_device such as +cairo_xcb_device_debug_cap_xrender_version(). +The behavior of calling a type-specific function with a device of +the wrong type is undefined. +New entries may be added in future versions. + +Members + + + + + + +CAIRO_DEVICE_TYPE_DRM +The device is of type Direct Render Manager, since 1.10 + + + +CAIRO_DEVICE_TYPE_GL +The device is of type OpenGL, since 1.10 + + + +CAIRO_DEVICE_TYPE_SCRIPT +The device is of type script, since 1.10 + + + +CAIRO_DEVICE_TYPE_XCB +The device is of type xcb, since 1.10 + + + +CAIRO_DEVICE_TYPE_XLIB +The device is of type xlib, since 1.10 + + + +CAIRO_DEVICE_TYPE_XML +The device is of type XML, since 1.10 + + + +CAIRO_DEVICE_TYPE_COGL +The device is of type cogl, since 1.12 + + + +CAIRO_DEVICE_TYPE_WIN32 +The device is of type win32, since 1.12 + + + +CAIRO_DEVICE_TYPE_INVALID +The device is invalid, since 1.10 + + + + +Since: 1.10 + + + +See Also +cairo_surface_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-font-face.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-font-face.xml new file mode 100644 index 0000000..c62bfb5 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-font-face.xml @@ -0,0 +1,358 @@ + + +]> + + +cairo_font_face_t +3 +CAIRO Library + + +cairo_font_face_t +Base class for font faces + + + +Functions + + + + + +cairo_font_face_t * +cairo_font_face_reference () +void +cairo_font_face_destroy () +cairo_status_t +cairo_font_face_status () +cairo_font_type_t +cairo_font_face_get_type () +unsigned int +cairo_font_face_get_reference_count () +cairo_status_t +cairo_font_face_set_user_data () +void * +cairo_font_face_get_user_data () + + + + + + +Types and Values + + + + + +typedefcairo_font_face_t +enumcairo_font_type_t + + + + + + + + +Description +cairo_font_face_t represents a particular font at a particular weight, +slant, and other characteristic but no size, transformation, or size. +Font faces are created using font-backend-specific +constructors, typically of the form +cairo_backend_font_face_create(), +or implicitly using the toy text API by way of +cairo_select_font_face(). The resulting face can be accessed using +cairo_get_font_face(). + + + +Functions + +cairo_font_face_reference () +cairo_font_face_reference +cairo_font_face_t * +cairo_font_face_reference (cairo_font_face_t *font_face); +Increases the reference count on font_face + by one. This prevents +font_face + from being destroyed until a matching call to +cairo_font_face_destroy() is made. +Use cairo_font_face_get_reference_count() to get the number of +references to a cairo_font_face_t. + +Parameters + + + + + + +font_face +a cairo_font_face_t, (may be NULL in which case this +function does nothing). + + + +Returns + the referenced cairo_font_face_t. +Since: 1.0 + +cairo_font_face_destroy () +cairo_font_face_destroy +void +cairo_font_face_destroy (cairo_font_face_t *font_face); +Decreases the reference count on font_face + by one. If the result +is zero, then font_face + and all associated resources are freed. +See cairo_font_face_reference(). + +Parameters + + + + + + +font_face +a cairo_font_face_t + + +Since: 1.0 + +cairo_font_face_status () +cairo_font_face_status +cairo_status_t +cairo_font_face_status (cairo_font_face_t *font_face); +Checks whether an error has previously occurred for this +font face + +Parameters + + + + + + +font_face +a cairo_font_face_t + + + +Returns + CAIRO_STATUS_SUCCESS or another error such as +CAIRO_STATUS_NO_MEMORY. +Since: 1.0 + +cairo_font_face_get_type () +cairo_font_face_get_type +cairo_font_type_t +cairo_font_face_get_type (cairo_font_face_t *font_face); +This function returns the type of the backend used to create +a font face. See cairo_font_type_t for available types. + +Parameters + + + + + + +font_face +a font face + + + +Returns + The type of font_face +. +Since: 1.2 + +cairo_font_face_get_reference_count () +cairo_font_face_get_reference_count +unsigned int +cairo_font_face_get_reference_count (cairo_font_face_t *font_face); +Returns the current reference count of font_face +. + +Parameters + + + + + + +font_face +a cairo_font_face_t + + + +Returns + the current reference count of font_face +. If the +object is a nil object, 0 will be returned. +Since: 1.4 + +cairo_font_face_set_user_data () +cairo_font_face_set_user_data +cairo_status_t +cairo_font_face_set_user_data (cairo_font_face_t *font_face, + const cairo_user_data_key_t *key, + void *user_data, + cairo_destroy_func_t destroy); +Attach user data to font_face +. To remove user data from a font face, +call this function with the key that was used to set it and NULL +for data +. + +Parameters + + + + + + +font_face +a cairo_font_face_t + +key +the address of a cairo_user_data_key_t to attach the user data to + +user_data +the user data to attach to the font face + +destroy +a cairo_destroy_func_t which will be called when the +font face is destroyed or when new user data is attached using the +same key. + + + +Returns + CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY if a +slot could not be allocated for the user data. +Since: 1.0 + +cairo_font_face_get_user_data () +cairo_font_face_get_user_data +void * +cairo_font_face_get_user_data (cairo_font_face_t *font_face, + const cairo_user_data_key_t *key); +Return user data previously attached to font_face + using the specified +key. If no user data has been attached with the given key this +function returns NULL. + +Parameters + + + + + + +font_face +a cairo_font_face_t + +key +the address of the cairo_user_data_key_t the user data was +attached to + + + +Returns + the user data previously attached or NULL. +Since: 1.0 + + + +Types and Values + +cairo_font_face_t +cairo_font_face_t +typedef struct _cairo_font_face cairo_font_face_t; + +A cairo_font_face_t specifies all aspects of a font other +than the size or font matrix (a font matrix is used to distort +a font by shearing it or scaling it unequally in the two +directions) . A font face can be set on a cairo_t by using +cairo_set_font_face(); the size and font matrix are set with +cairo_set_font_size() and cairo_set_font_matrix(). +There are various types of font faces, depending on the +font backend they use. The type of a +font face can be queried using cairo_font_face_get_type(). +Memory management of cairo_font_face_t is done with +cairo_font_face_reference() and cairo_font_face_destroy(). +Since: 1.0 + +enum cairo_font_type_t +cairo_font_type_t +cairo_font_type_t is used to describe the type of a given font +face or scaled font. The font types are also known as "font +backends" within cairo. +The type of a font face is determined by the function used to +create it, which will generally be of the form +cairo_type_font_face_create(). +The font face type can be queried with cairo_font_face_get_type() +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 +be queried with cairo_scaled_font_get_type() +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_type_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. +New entries may be added in future versions. + +Members + + + + + + +CAIRO_FONT_TYPE_TOY +The font was created using cairo's toy font api (Since: 1.2) + + + +CAIRO_FONT_TYPE_FT +The font is of type FreeType (Since: 1.2) + + + +CAIRO_FONT_TYPE_WIN32 +The font is of type Win32 (Since: 1.2) + + + +CAIRO_FONT_TYPE_QUARTZ +The font is of type Quartz (Since: 1.6, in 1.2 and +1.4 it was named CAIRO_FONT_TYPE_ATSUI) + + + +CAIRO_FONT_TYPE_USER +The font was create using cairo's user font api (Since: 1.8) + + + + +Since: 1.2 + + + +See Also +cairo_scaled_font_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-font-options.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-font-options.xml new file mode 100644 index 0000000..d058175 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-font-options.xml @@ -0,0 +1,677 @@ + + +]> + + +cairo_font_options_t +3 +CAIRO Library + + +cairo_font_options_t +How a font should be rendered + + + +Functions + + + + + +cairo_font_options_t * +cairo_font_options_create () +cairo_font_options_t * +cairo_font_options_copy () +void +cairo_font_options_destroy () +cairo_status_t +cairo_font_options_status () +void +cairo_font_options_merge () +unsigned long +cairo_font_options_hash () +cairo_bool_t +cairo_font_options_equal () +void +cairo_font_options_set_antialias () +cairo_antialias_t +cairo_font_options_get_antialias () +void +cairo_font_options_set_subpixel_order () +cairo_subpixel_order_t +cairo_font_options_get_subpixel_order () +void +cairo_font_options_set_hint_style () +cairo_hint_style_t +cairo_font_options_get_hint_style () +void +cairo_font_options_set_hint_metrics () +cairo_hint_metrics_t +cairo_font_options_get_hint_metrics () +const char * +cairo_font_options_get_variations () +void +cairo_font_options_set_variations () + + + + + + +Types and Values + + + + + +typedefcairo_font_options_t +enumcairo_subpixel_order_t +enumcairo_hint_style_t +enumcairo_hint_metrics_t + + + + + + + + +Description +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. + + + +Functions + +cairo_font_options_create () +cairo_font_options_create +cairo_font_options_t * +cairo_font_options_create (void); +Allocates a new font options object with all options initialized + to default values. + +Returns + a newly allocated cairo_font_options_t. Free with +cairo_font_options_destroy(). This function always returns a +valid pointer; if memory cannot be allocated, then a special +error object is returned where all operations on the object do nothing. +You can check for this with cairo_font_options_status(). +Since: 1.0 + +cairo_font_options_copy () +cairo_font_options_copy +cairo_font_options_t * +cairo_font_options_copy (const cairo_font_options_t *original); +Allocates a new font options object copying the option values from + original +. + +Parameters + + + + + + +original +a cairo_font_options_t + + + +Returns + a newly allocated cairo_font_options_t. Free with +cairo_font_options_destroy(). This function always returns a +valid pointer; if memory cannot be allocated, then a special +error object is returned where all operations on the object do nothing. +You can check for this with cairo_font_options_status(). +Since: 1.0 + +cairo_font_options_destroy () +cairo_font_options_destroy +void +cairo_font_options_destroy (cairo_font_options_t *options); +Destroys a cairo_font_options_t object created with +cairo_font_options_create() or cairo_font_options_copy(). + +Parameters + + + + + + +options +a cairo_font_options_t + + +Since: 1.0 + +cairo_font_options_status () +cairo_font_options_status +cairo_status_t +cairo_font_options_status (cairo_font_options_t *options); +Checks whether an error has previously occurred for this +font options object + +Parameters + + + + + + +options +a cairo_font_options_t + + + +Returns + CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY +Since: 1.0 + +cairo_font_options_merge () +cairo_font_options_merge +void +cairo_font_options_merge (cairo_font_options_t *options, + const cairo_font_options_t *other); +Merges non-default options from other + into options +, replacing +existing values. This operation can be thought of as somewhat +similar to compositing other + onto options + with the operation +of CAIRO_OPERATOR_OVER. + +Parameters + + + + + + +options +a cairo_font_options_t + +other +another cairo_font_options_t + + +Since: 1.0 + +cairo_font_options_hash () +cairo_font_options_hash +unsigned long +cairo_font_options_hash (const cairo_font_options_t *options); +Compute a hash for the font options object; this value will +be useful when storing an object containing a cairo_font_options_t +in a hash table. + +Parameters + + + + + + +options +a cairo_font_options_t + + + +Returns + the hash value for the font options object. +The return value can be cast to a 32-bit type if a +32-bit hash value is needed. +Since: 1.0 + +cairo_font_options_equal () +cairo_font_options_equal +cairo_bool_t +cairo_font_options_equal (const cairo_font_options_t *options, + const cairo_font_options_t *other); +Compares two font options objects for equality. + +Parameters + + + + + + +options +a cairo_font_options_t + +other +another cairo_font_options_t + + + +Returns + TRUE if all fields of the two font options objects match. +Note that this function will return FALSE if either object is in +error. +Since: 1.0 + +cairo_font_options_set_antialias () +cairo_font_options_set_antialias +void +cairo_font_options_set_antialias (cairo_font_options_t *options, + cairo_antialias_t antialias); +Sets the antialiasing mode for the font options object. This +specifies the type of antialiasing to do when rendering text. + +Parameters + + + + + + +options +a cairo_font_options_t + +antialias +the new antialiasing mode + + +Since: 1.0 + +cairo_font_options_get_antialias () +cairo_font_options_get_antialias +cairo_antialias_t +cairo_font_options_get_antialias (const cairo_font_options_t *options); +Gets the antialiasing mode for the font options object. + +Parameters + + + + + + +options +a cairo_font_options_t + + + +Returns + the antialiasing mode +Since: 1.0 + +cairo_font_options_set_subpixel_order () +cairo_font_options_set_subpixel_order +void +cairo_font_options_set_subpixel_order (cairo_font_options_t *options, + cairo_subpixel_order_t subpixel_order); +Sets the subpixel order for the font options object. The subpixel +order specifies the order of color elements within each pixel on +the display device when rendering with an antialiasing mode of +CAIRO_ANTIALIAS_SUBPIXEL. See the documentation for +cairo_subpixel_order_t for full details. + +Parameters + + + + + + +options +a cairo_font_options_t + +subpixel_order +the new subpixel order + + +Since: 1.0 + +cairo_font_options_get_subpixel_order () +cairo_font_options_get_subpixel_order +cairo_subpixel_order_t +cairo_font_options_get_subpixel_order (const cairo_font_options_t *options); +Gets the subpixel order for the font options object. +See the documentation for cairo_subpixel_order_t for full details. + +Parameters + + + + + + +options +a cairo_font_options_t + + + +Returns + the subpixel order for the font options object +Since: 1.0 + +cairo_font_options_set_hint_style () +cairo_font_options_set_hint_style +void +cairo_font_options_set_hint_style (cairo_font_options_t *options, + cairo_hint_style_t hint_style); +Sets the hint style for font outlines for the font options object. +This controls whether to fit font outlines to the pixel grid, +and if so, whether to optimize for fidelity or contrast. +See the documentation for cairo_hint_style_t for full details. + +Parameters + + + + + + +options +a cairo_font_options_t + +hint_style +the new hint style + + +Since: 1.0 + +cairo_font_options_get_hint_style () +cairo_font_options_get_hint_style +cairo_hint_style_t +cairo_font_options_get_hint_style (const cairo_font_options_t *options); +Gets the hint style for font outlines for the font options object. +See the documentation for cairo_hint_style_t for full details. + +Parameters + + + + + + +options +a cairo_font_options_t + + + +Returns + the hint style for the font options object +Since: 1.0 + +cairo_font_options_set_hint_metrics () +cairo_font_options_set_hint_metrics +void +cairo_font_options_set_hint_metrics (cairo_font_options_t *options, + cairo_hint_metrics_t hint_metrics); +Sets the metrics hinting mode for the font options object. This +controls whether metrics are quantized to integer values in +device units. +See the documentation for cairo_hint_metrics_t for full details. + +Parameters + + + + + + +options +a cairo_font_options_t + +hint_metrics +the new metrics hinting mode + + +Since: 1.0 + +cairo_font_options_get_hint_metrics () +cairo_font_options_get_hint_metrics +cairo_hint_metrics_t +cairo_font_options_get_hint_metrics (const cairo_font_options_t *options); +Gets the metrics hinting mode for the font options object. +See the documentation for cairo_hint_metrics_t for full details. + +Parameters + + + + + + +options +a cairo_font_options_t + + + +Returns + the metrics hinting mode for the font options object +Since: 1.0 + +cairo_font_options_get_variations () +cairo_font_options_get_variations +const char * +cairo_font_options_get_variations (cairo_font_options_t *options); +Gets the OpenType font variations for the font options object. +See cairo_font_options_set_variations() for details about the +string format. + +Parameters + + + + + + +options +a cairo_font_options_t + + + +Returns + the font variations for the font options object. The +returned string belongs to the options +and must not be modified. +It is valid until either the font options object is destroyed or +the font variations in this object is modified with +cairo_font_options_set_variations(). +Since: 1.16 + +cairo_font_options_set_variations () +cairo_font_options_set_variations +void +cairo_font_options_set_variations (cairo_font_options_t *options, + const char *variations); +Sets the OpenType font variations for the font options object. +Font variations are specified as a string with a format that +is similar to the CSS font-variation-settings. The string contains +a comma-separated list of axis assignments, which each assignment +consists of a 4-character axis name and a value, separated by +whitespace and optional equals sign. +Examples: +wght=200,wdth=140.5 +wght 200 , wdth 140.5 + +Parameters + + + + + + +options +a cairo_font_options_t + +variations +the new font variations, or NULL + + +Since: 1.16 + + + +Types and Values + +cairo_font_options_t +cairo_font_options_t +typedef struct _cairo_font_options cairo_font_options_t; + +An opaque structure holding all options that are used when +rendering fonts. +Individual features of a cairo_font_options_t can be set or +accessed using functions named +cairo_font_options_set_feature_name() and +cairo_font_options_get_feature_name(), like +cairo_font_options_set_antialias() and +cairo_font_options_get_antialias(). +New features may be added to a cairo_font_options_t in the +future. For this reason, cairo_font_options_copy(), +cairo_font_options_equal(), cairo_font_options_merge(), and +cairo_font_options_hash() should be used to copy, check +for equality, merge, or compute a hash value of +cairo_font_options_t objects. +Since: 1.0 + +enum cairo_subpixel_order_t +cairo_subpixel_order_t +The subpixel order specifies the order of color elements within +each pixel on the display device when rendering with an +antialiasing mode of CAIRO_ANTIALIAS_SUBPIXEL. + +Members + + + + + + +CAIRO_SUBPIXEL_ORDER_DEFAULT +Use the default subpixel order for + for the target device, since 1.0 + + + +CAIRO_SUBPIXEL_ORDER_RGB +Subpixel elements are arranged horizontally + with red at the left, since 1.0 + + + +CAIRO_SUBPIXEL_ORDER_BGR +Subpixel elements are arranged horizontally + with blue at the left, since 1.0 + + + +CAIRO_SUBPIXEL_ORDER_VRGB +Subpixel elements are arranged vertically + with red at the top, since 1.0 + + + +CAIRO_SUBPIXEL_ORDER_VBGR +Subpixel elements are arranged vertically + with blue at the top, since 1.0 + + + + +Since: 1.0 + +enum cairo_hint_style_t +cairo_hint_style_t +Specifies the type of hinting to do on font outlines. Hinting +is the process of fitting outlines to the pixel grid in order +to improve the appearance of the result. Since hinting outlines +involves distorting them, it also reduces the faithfulness +to the original outline shapes. Not all of the outline hinting +styles are supported by all font backends. +New entries may be added in future versions. + +Members + + + + + + +CAIRO_HINT_STYLE_DEFAULT +Use the default hint style for + font backend and target device, since 1.0 + + + +CAIRO_HINT_STYLE_NONE +Do not hint outlines, since 1.0 + + + +CAIRO_HINT_STYLE_SLIGHT +Hint outlines slightly to improve + contrast while retaining good fidelity to the original + shapes, since 1.0 + + + +CAIRO_HINT_STYLE_MEDIUM +Hint outlines with medium strength + giving a compromise between fidelity to the original shapes + and contrast, since 1.0 + + + +CAIRO_HINT_STYLE_FULL +Hint outlines to maximize contrast, since 1.0 + + + + +Since: 1.0 + +enum cairo_hint_metrics_t +cairo_hint_metrics_t +Specifies whether to hint font metrics; hinting font metrics +means quantizing them so that they are integer values in +device space. Doing this improves the consistency of +letter and line spacing, however it also means that text +will be laid out differently at different zoom factors. + +Members + + + + + + +CAIRO_HINT_METRICS_DEFAULT +Hint metrics in the default + manner for the font backend and target device, since 1.0 + + + +CAIRO_HINT_METRICS_OFF +Do not hint font metrics, since 1.0 + + + +CAIRO_HINT_METRICS_ON +Hint font metrics, since 1.0 + + + + +Since: 1.0 + + + +See Also +cairo_scaled_font_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-ft.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-ft.xml new file mode 100644 index 0000000..e68e2ad --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-ft.xml @@ -0,0 +1,408 @@ + + +]> + + +FreeType Fonts +3 +CAIRO Library + + +FreeType Fonts +Font support for FreeType + + + +Functions + + + + + +cairo_font_face_t * +cairo_ft_font_face_create_for_ft_face () +cairo_font_face_t * +cairo_ft_font_face_create_for_pattern () +void +cairo_ft_font_options_substitute () +FT_Face +cairo_ft_scaled_font_lock_face () +void +cairo_ft_scaled_font_unlock_face () +unsigned int +cairo_ft_font_face_get_synthesize () +void +cairo_ft_font_face_set_synthesize () +void +cairo_ft_font_face_unset_synthesize () + + + + + + +Types and Values + + + + + +#defineCAIRO_HAS_FT_FONT +#defineCAIRO_HAS_FC_FONT +enumcairo_ft_synthesize_t + + + + + + + + +Description +The FreeType font backend is primarily used to render text on GNU/Linux +systems, but can be used on other platforms too. + + + +Functions + +cairo_ft_font_face_create_for_ft_face () +cairo_ft_font_face_create_for_ft_face +cairo_font_face_t * +cairo_ft_font_face_create_for_ft_face (FT_Face face, + int load_flags); +Creates a new font face for the FreeType font backend from a +pre-opened FreeType face. This font can then be used with +cairo_set_font_face() or cairo_scaled_font_create(). The +cairo_scaled_font_t returned from cairo_scaled_font_create() is +also for the FreeType backend and can be used with functions such +as cairo_ft_scaled_font_lock_face(). Note that Cairo may keep a reference +to the FT_Face alive in a font-cache and the exact lifetime of the reference +depends highly upon the exact usage pattern and is subject to external +factors. You must not call FT_Done_Face() before the last reference to the +cairo_font_face_t has been dropped. +As an example, below is how one might correctly couple the lifetime of +the FreeType face object to the cairo_font_face_t. + +static const cairo_user_data_key_t key; + +font_face = cairo_ft_font_face_create_for_ft_face (ft_face, 0); +status = cairo_font_face_set_user_data (font_face, &key, + ft_face, (cairo_destroy_func_t) FT_Done_Face); +if (status) { + cairo_font_face_destroy (font_face); + FT_Done_Face (ft_face); + return ERROR; +} + + +Parameters + + + + + + +face +A FreeType face object, already opened. This must +be kept around until the face's ref_count drops to +zero and it is freed. Since the face may be referenced +internally to Cairo, the best way to determine when it +is safe to free the face is to pass a +cairo_destroy_func_t to cairo_font_face_set_user_data() + +load_flags +flags to pass to FT_Load_Glyph when loading +glyphs from the font. These flags are OR'ed together with +the flags derived from the cairo_font_options_t passed +to cairo_scaled_font_create(), so only a few values such +as FT_LOAD_VERTICAL_LAYOUT, and FT_LOAD_FORCE_AUTOHINT +are useful. You should not pass any of the flags affecting +the load target, such as FT_LOAD_TARGET_LIGHT. + + + +Returns + a newly created cairo_font_face_t. Free with +cairo_font_face_destroy() when you are done using it. +Since: 1.0 + +cairo_ft_font_face_create_for_pattern () +cairo_ft_font_face_create_for_pattern +cairo_font_face_t * +cairo_ft_font_face_create_for_pattern (FcPattern *pattern); +Creates a new font face for the FreeType font backend based on a +fontconfig pattern. This font can then be used with +cairo_set_font_face() or cairo_scaled_font_create(). The +cairo_scaled_font_t returned from cairo_scaled_font_create() is +also for the FreeType backend and can be used with functions such +as cairo_ft_scaled_font_lock_face(). +Font rendering options are represented both here and when you +call cairo_scaled_font_create(). Font options that have a representation +in a FcPattern must be passed in here; to modify FcPattern +appropriately to reflect the options in a cairo_font_options_t, call +cairo_ft_font_options_substitute(). +The pattern's FC_FT_FACE element is inspected first and if that is set, +that will be the FreeType font face associated with the returned cairo +font face. Otherwise the FC_FILE element is checked. If it's set, +that and the value of the FC_INDEX element (defaults to zero) of pattern + +are used to load a font face from file. +If both steps from the previous paragraph fails, pattern + will be passed +to FcConfigSubstitute, FcDefaultSubstitute, and finally FcFontMatch, +and the resulting font pattern is used. +If the FC_FT_FACE element of pattern + is set, the user is responsible +for making sure that the referenced FT_Face remains valid for the life +time of the returned cairo_font_face_t. See +cairo_ft_font_face_create_for_ft_face() for an example of how to couple +the life time of the FT_Face to that of the cairo font-face. + +Parameters + + + + + + +pattern +A fontconfig pattern. Cairo makes a copy of the pattern +if it needs to. You are free to modify or free pattern +after this call. + + + +Returns + a newly created cairo_font_face_t. Free with +cairo_font_face_destroy() when you are done using it. +Since: 1.0 + +cairo_ft_font_options_substitute () +cairo_ft_font_options_substitute +void +cairo_ft_font_options_substitute (const cairo_font_options_t *options, + FcPattern *pattern); +Add options to a FcPattern based on a cairo_font_options_t font +options object. Options that are already in the pattern, are not overridden, +so you should call this function after calling FcConfigSubstitute() (the +user's settings should override options based on the surface type), but +before calling FcDefaultSubstitute(). + +Parameters + + + + + + +options +a cairo_font_options_t object + +pattern +an existing FcPattern + + +Since: 1.0 + +cairo_ft_scaled_font_lock_face () +cairo_ft_scaled_font_lock_face +FT_Face +cairo_ft_scaled_font_lock_face (cairo_scaled_font_t *scaled_font); +cairo_ft_scaled_font_lock_face() gets the FT_Face object from a FreeType +backend font and scales it appropriately for the font and applies OpenType +font variations if applicable. You must +release the face with cairo_ft_scaled_font_unlock_face() +when you are done using it. Since the FT_Face object can be +shared between multiple cairo_scaled_font_t objects, you must not +lock any other font objects until you unlock this one. A count is +kept of the number of times cairo_ft_scaled_font_lock_face() is +called. cairo_ft_scaled_font_unlock_face() must be called the same number +of times. +You must be careful when using this function in a library or in a +threaded application, because freetype's design makes it unsafe to +call freetype functions simultaneously from multiple threads, (even +if using distinct FT_Face objects). Because of this, application +code that acquires an FT_Face object with this call must add its +own locking to protect any use of that object, (and which also must +protect any other calls into cairo as almost any cairo function +might result in a call into the freetype library). + +Parameters + + + + + + +scaled_font +A cairo_scaled_font_t from the FreeType font backend. Such an +object can be created by calling cairo_scaled_font_create() on a +FreeType backend font face (see cairo_ft_font_face_create_for_pattern(), +cairo_ft_font_face_create_for_ft_face()). + + + +Returns + The FT_Face object for font +, scaled appropriately, +or NULL if scaled_font +is in an error state (see +cairo_scaled_font_status()) or there is insufficient memory. +Since: 1.0 + +cairo_ft_scaled_font_unlock_face () +cairo_ft_scaled_font_unlock_face +void +cairo_ft_scaled_font_unlock_face (cairo_scaled_font_t *scaled_font); +Releases a face obtained with cairo_ft_scaled_font_lock_face(). + +Parameters + + + + + + +scaled_font +A cairo_scaled_font_t from the FreeType font backend. Such an +object can be created by calling cairo_scaled_font_create() on a +FreeType backend font face (see cairo_ft_font_face_create_for_pattern(), +cairo_ft_font_face_create_for_ft_face()). + + +Since: 1.0 + +cairo_ft_font_face_get_synthesize () +cairo_ft_font_face_get_synthesize +unsigned int +cairo_ft_font_face_get_synthesize (cairo_font_face_t *font_face); +See cairo_ft_synthesize_t. + +Parameters + + + + + + +font_face +The cairo_ft_font_face_t object to query + + + +Returns + the current set of synthesis options. +Since: 1.12 + +cairo_ft_font_face_set_synthesize () +cairo_ft_font_face_set_synthesize +void +cairo_ft_font_face_set_synthesize (cairo_font_face_t *font_face, + unsigned int synth_flags); +FreeType provides the ability to synthesize different glyphs from a base +font, which is useful if you lack those glyphs from a true bold or oblique +font. See also cairo_ft_synthesize_t. + +Parameters + + + + + + +font_face +The cairo_ft_font_face_t object to modify + +synth_flags +the set of synthesis options to enable + + +Since: 1.12 + +cairo_ft_font_face_unset_synthesize () +cairo_ft_font_face_unset_synthesize +void +cairo_ft_font_face_unset_synthesize (cairo_font_face_t *font_face, + unsigned int synth_flags); +See cairo_ft_font_face_set_synthesize(). + +Parameters + + + + + + +font_face +The cairo_ft_font_face_t object to modify + +synth_flags +the set of synthesis options to disable + + +Since: 1.12 + + + +Types and Values + +CAIRO_HAS_FT_FONT +CAIRO_HAS_FT_FONT +#define CAIRO_HAS_FT_FONT 1 + +Defined if the FreeType font backend is available. +This macro can be used to conditionally compile backend-specific code. +Since: 1.0 + +CAIRO_HAS_FC_FONT +CAIRO_HAS_FC_FONT +#define CAIRO_HAS_FC_FONT 1 + +Defined if the Fontconfig-specific functions of the FreeType font backend +are available. +This macro can be used to conditionally compile backend-specific code. +Since: 1.10 + +enum cairo_ft_synthesize_t +cairo_ft_synthesize_t +A set of synthesis options to control how FreeType renders the glyphs +for a particular font face. +Individual synthesis features of a cairo_ft_font_face_t can be set +using cairo_ft_font_face_set_synthesize(), or disabled using +cairo_ft_font_face_unset_synthesize(). The currently enabled set of +synthesis options can be queried with cairo_ft_font_face_get_synthesize(). +Note: that when synthesizing glyphs, the font metrics returned will only +be estimates. + +Members + + + + + + +CAIRO_FT_SYNTHESIZE_BOLD +Embolden the glyphs (redraw with a pixel offset) + + + +CAIRO_FT_SYNTHESIZE_OBLIQUE +Slant the glyph outline by 12 degrees to the +right. + + + + +Since: 1.12 + + + +See Also +cairo_font_face_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-image.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-image.xml new file mode 100644 index 0000000..f9c9443 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-image.xml @@ -0,0 +1,425 @@ + + +]> + + +Image Surfaces +3 +CAIRO Library + + +Image Surfaces +Rendering to memory buffers + + + +Functions + + + + + +int +cairo_format_stride_for_width () +cairo_surface_t * +cairo_image_surface_create () +cairo_surface_t * +cairo_image_surface_create_for_data () +unsigned char * +cairo_image_surface_get_data () +cairo_format_t +cairo_image_surface_get_format () +int +cairo_image_surface_get_width () +int +cairo_image_surface_get_height () +int +cairo_image_surface_get_stride () + + + + + + +Types and Values + + + + + +#defineCAIRO_HAS_IMAGE_SURFACE +enumcairo_format_t + + + + + + + + +Description +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. + + + +Functions + +cairo_format_stride_for_width () +cairo_format_stride_for_width +int +cairo_format_stride_for_width (cairo_format_t format, + int width); +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: + +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, + stride); + + +Parameters + + + + + + +format +A cairo_format_t value + +width +The desired width of an image surface to be created. + + + +Returns + the appropriate stride to use given the desired +format and width, or -1 if either the format is invalid or the width +too large. +Since: 1.6 + +cairo_image_surface_create () +cairo_image_surface_create +cairo_surface_t * +cairo_image_surface_create (cairo_format_t format, + int width, + int height); +Creates an image surface of the specified format and +dimensions. Initially the surface contents are set to 0. +(Specifically, within each pixel, each color or alpha channel +belonging to format will be 0. The contents of bits within a pixel, +but not belonging to the given format are undefined). + +Parameters + + + + + + +format +format of pixels in the surface to create + +width +width of the surface, in pixels + +height +height of the surface, in pixels + + + +Returns + a pointer to the newly created surface. The caller +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. +Since: 1.0 + +cairo_image_surface_create_for_data () +cairo_image_surface_create_for_data +cairo_surface_t * +cairo_image_surface_create_for_data (unsigned char *data, + cairo_format_t format, + int width, + int height, + int stride); +Creates an image surface for the provided pixel data. The output +buffer must be kept around until the cairo_surface_t is destroyed +or cairo_surface_finish() is called on the surface. The initial +contents of data + will be used as the initial image contents; you +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 then use the resulting stride value +to allocate the data and to create the image surface. See +cairo_format_stride_for_width() for example code. + +Parameters + + + + + + +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 as allocated. This value should always be computed by +cairo_format_stride_for_width() before allocating the data +buffer. + + + +Returns + a pointer to the newly created surface. The caller +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 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. +Since: 1.0 + +cairo_image_surface_get_data () +cairo_image_surface_get_data +unsigned char * +cairo_image_surface_get_data (cairo_surface_t *surface); +Get a pointer to the data of the image surface, for direct +inspection or modification. +A call to cairo_surface_flush() is required before accessing the +pixel data to ensure that all pending drawing operations are +finished. A call to cairo_surface_mark_dirty() is required after +the data is modified. + +Parameters + + + + + + +surface +a cairo_image_surface_t + + + +Returns + a pointer to the image data of this surface or NULL +if surface +is not an image surface, or if cairo_surface_finish() +has been called. +Since: 1.2 + +cairo_image_surface_get_format () +cairo_image_surface_get_format +cairo_format_t +cairo_image_surface_get_format (cairo_surface_t *surface); +Get the format of the surface. + +Parameters + + + + + + +surface +a cairo_image_surface_t + + + +Returns + the format of the surface +Since: 1.2 + +cairo_image_surface_get_width () +cairo_image_surface_get_width +int +cairo_image_surface_get_width (cairo_surface_t *surface); +Get the width of the image surface in pixels. + +Parameters + + + + + + +surface +a cairo_image_surface_t + + + +Returns + the width of the surface in pixels. +Since: 1.0 + +cairo_image_surface_get_height () +cairo_image_surface_get_height +int +cairo_image_surface_get_height (cairo_surface_t *surface); +Get the height of the image surface in pixels. + +Parameters + + + + + + +surface +a cairo_image_surface_t + + + +Returns + the height of the surface in pixels. +Since: 1.0 + +cairo_image_surface_get_stride () +cairo_image_surface_get_stride +int +cairo_image_surface_get_stride (cairo_surface_t *surface); +Get the stride of the image surface in bytes + +Parameters + + + + + + +surface +a cairo_image_surface_t + + + +Returns + the stride of the image surface in bytes (or 0 if +surface +is not an image surface). The stride is the distance in +bytes from the beginning of one row of the image data to the +beginning of the next row. +Since: 1.2 + + + +Types and Values + +CAIRO_HAS_IMAGE_SURFACE +CAIRO_HAS_IMAGE_SURFACE +#define CAIRO_HAS_IMAGE_SURFACE 1 + +Defined if the image surface backend is available. +The image surface backend is always built in. +This macro was added for completeness in cairo 1.8. +Since: 1.8 + +enum cairo_format_t +cairo_format_t +cairo_format_t is used to identify the memory format of +image data. +New entries may be added in future versions. + +Members + + + + + + +CAIRO_FORMAT_INVALID +no such format exists or is supported. + + + +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 + alpha is used. (That is, 50% transparent red is 0x80800000, + not 0x80ff0000.) (Since 1.0) + + + +CAIRO_FORMAT_RGB24 +each pixel is a 32-bit quantity, with + the upper 8 bits unused. Red, Green, and Blue are stored + in the remaining 24 bits in that order. (Since 1.0) + + + +CAIRO_FORMAT_A8 +each pixel is a 8-bit quantity holding + an alpha value. (Since 1.0) + + + +CAIRO_FORMAT_A1 +each pixel is a 1-bit quantity holding + an alpha value. Pixels are packed together into 32-bit + quantities. The ordering of the bits matches the + endianness of the platform. On a big-endian machine, the + first pixel is in the uppermost bit, on a little-endian + machine the first pixel is in the least-significant bit. (Since 1.0) + + + +CAIRO_FORMAT_RGB16_565 +each pixel is a 16-bit quantity + with red in the upper 5 bits, then green in the middle + 6 bits, and blue in the lower 5 bits. (Since 1.2) + + + +CAIRO_FORMAT_RGB30 +like RGB24 but with 10bpc. (Since 1.12) + + + + +Since: 1.0 + + + +See Also +cairo_surface_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-matrix.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-matrix.xml new file mode 100644 index 0000000..afb0700 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-matrix.xml @@ -0,0 +1,574 @@ + + +]> + + +cairo_matrix_t +3 +CAIRO Library + + +cairo_matrix_t +Generic matrix operations + + + +Functions + + + + + +void +cairo_matrix_init () +void +cairo_matrix_init_identity () +void +cairo_matrix_init_translate () +void +cairo_matrix_init_scale () +void +cairo_matrix_init_rotate () +void +cairo_matrix_translate () +void +cairo_matrix_scale () +void +cairo_matrix_rotate () +cairo_status_t +cairo_matrix_invert () +void +cairo_matrix_multiply () +void +cairo_matrix_transform_distance () +void +cairo_matrix_transform_point () + + + + + + +Types and Values + + + + + +cairo_matrix_t + + + + + + + + +Description +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. +The transformation of a point (x,y) +is given by: + +x_new = xx * x + xy * y + x0; +y_new = yx * x + yy * y + y0; + +The current transformation matrix of a cairo_t, represented as a +cairo_matrix_t, defines the transformation from user-space +coordinates to device-space coordinates. See cairo_get_matrix() and +cairo_set_matrix(). + + + +Functions + +cairo_matrix_init () +cairo_matrix_init +void +cairo_matrix_init (cairo_matrix_t *matrix, + double xx, + double yx, + double xy, + double yy, + double x0, + double y0); +Sets matrix + to be the affine transformation given by +xx +, yx +, xy +, yy +, x0 +, y0 +. The transformation is given +by: + + x_new = xx * x + xy * y + x0; + y_new = yx * x + yy * y + y0; + + +Parameters + + + + + + +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 + +yy +yy component of the affine transformation + +x0 +X translation component of the affine transformation + +y0 +Y translation component of the affine transformation + + +Since: 1.0 + +cairo_matrix_init_identity () +cairo_matrix_init_identity +void +cairo_matrix_init_identity (cairo_matrix_t *matrix); +Modifies matrix + to be an identity transformation. + +Parameters + + + + + + +matrix +a cairo_matrix_t + + +Since: 1.0 + +cairo_matrix_init_translate () +cairo_matrix_init_translate +void +cairo_matrix_init_translate (cairo_matrix_t *matrix, + double tx, + double ty); +Initializes matrix + to a transformation that translates by tx + and +ty + in the X and Y dimensions, respectively. + +Parameters + + + + + + +matrix +a cairo_matrix_t + +tx +amount to translate in the X direction + +ty +amount to translate in the Y direction + + +Since: 1.0 + +cairo_matrix_init_scale () +cairo_matrix_init_scale +void +cairo_matrix_init_scale (cairo_matrix_t *matrix, + double sx, + double sy); +Initializes matrix + to a transformation that scales by sx + and sy + +in the X and Y dimensions, respectively. + +Parameters + + + + + + +matrix +a cairo_matrix_t + +sx +scale factor in the X direction + +sy +scale factor in the Y direction + + +Since: 1.0 + +cairo_matrix_init_rotate () +cairo_matrix_init_rotate +void +cairo_matrix_init_rotate (cairo_matrix_t *matrix, + double radians); +Initialized matrix + to a transformation that rotates by radians +. + +Parameters + + + + + + +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 +axis orientation of cairo, positive angles rotate in a clockwise +direction. + + +Since: 1.0 + +cairo_matrix_translate () +cairo_matrix_translate +void +cairo_matrix_translate (cairo_matrix_t *matrix, + double tx, + double ty); +Applies a translation by tx +, ty + to the transformation in +matrix +. The effect of the new transformation is to first translate +the coordinates by tx + and ty +, then apply the original transformation +to the coordinates. + +Parameters + + + + + + +matrix +a cairo_matrix_t + +tx +amount to translate in the X direction + +ty +amount to translate in the Y direction + + +Since: 1.0 + +cairo_matrix_scale () +cairo_matrix_scale +void +cairo_matrix_scale (cairo_matrix_t *matrix, + double sx, + double sy); +Applies scaling by sx +, sy + to the transformation in matrix +. The +effect of the new transformation is to first scale the coordinates +by sx + and sy +, then apply the original transformation to the coordinates. + +Parameters + + + + + + +matrix +a cairo_matrix_t + +sx +scale factor in the X direction + +sy +scale factor in the Y direction + + +Since: 1.0 + +cairo_matrix_rotate () +cairo_matrix_rotate +void +cairo_matrix_rotate (cairo_matrix_t *matrix, + double radians); +Applies rotation by radians + to the transformation in +matrix +. The effect of the new transformation is to first rotate the +coordinates by radians +, then apply the original transformation +to the coordinates. + +Parameters + + + + + + +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 +axis orientation of cairo, positive angles rotate in a clockwise +direction. + + +Since: 1.0 + +cairo_matrix_invert () +cairo_matrix_invert +cairo_status_t +cairo_matrix_invert (cairo_matrix_t *matrix); +Changes matrix + to be the inverse of its original value. Not +all transformation matrices have inverses; if the matrix +collapses points together (it is degenerate), +then it has no inverse and this function will fail. + +Parameters + + + + + + +matrix +a cairo_matrix_t + + + +Returns + If matrix +has an inverse, modifies matrix +to +be the inverse matrix and returns CAIRO_STATUS_SUCCESS. Otherwise, +returns CAIRO_STATUS_INVALID_MATRIX. +Since: 1.0 + +cairo_matrix_multiply () +cairo_matrix_multiply +void +cairo_matrix_multiply (cairo_matrix_t *result, + const cairo_matrix_t *a, + const cairo_matrix_t *b); +Multiplies the affine transformations in a + and b + together +and stores the result in result +. The effect of the resulting +transformation is to first apply the transformation in a + to the +coordinates and then apply the transformation in b + to the +coordinates. +It is allowable for result + to be identical to either a + or b +. + +Parameters + + + + + + +result +a cairo_matrix_t in which to store the result + +a +a cairo_matrix_t + +b +a cairo_matrix_t + + +Since: 1.0 + +cairo_matrix_transform_distance () +cairo_matrix_transform_distance +void +cairo_matrix_transform_distance (const cairo_matrix_t *matrix, + double *dx, + double *dy); +Transforms the distance vector (dx +,dy +) by matrix +. This is +similar to cairo_matrix_transform_point() except that the translation +components of the transformation are ignored. The calculation of +the returned vector is as follows: + +dx2 = dx1 * a + dy1 * c; +dy2 = dx1 * b + dy1 * d; + +Affine transformations are position invariant, so the same vector +always transforms to the same vector. If (x1 +,y1 +) transforms +to (x2 +,y2 +) then (x1 ++dx1 +,y1 ++dy1 +) will transform to +(x1 ++dx2 +,y1 ++dy2 +) for all values of x1 + and x2 +. + +Parameters + + + + + + +matrix +a cairo_matrix_t + +dx +X component of a distance vector. An in/out parameter + +dy +Y component of a distance vector. An in/out parameter + + +Since: 1.0 + +cairo_matrix_transform_point () +cairo_matrix_transform_point +void +cairo_matrix_transform_point (const cairo_matrix_t *matrix, + double *x, + double *y); +Transforms the point (x +, y +) by matrix +. + +Parameters + + + + + + +matrix +a cairo_matrix_t + +x +X position. An in/out parameter + +y +Y position. An in/out parameter + + +Since: 1.0 + + + +Types and Values + +cairo_matrix_t +cairo_matrix_t +typedef struct { + double xx; double yx; + double xy; double yy; + double x0; double y0; +} cairo_matrix_t; + +A cairo_matrix_t holds an affine transformation, such as a scale, +rotation, shear, or a combination of those. The transformation of +a point (x, y) is given by: + + x_new = xx * x + xy * y + x0; + y_new = yx * x + yy * y + y0; + + +Members + + + + + + +double xx; +xx component of the affine transformation + + +double yx; +yx component of the affine transformation + + +double xy; +xy component of the affine transformation + + +double yy; +yy component of the affine transformation + + +double x0; +X translation component of the affine transformation + + +double y0; +Y translation component of the affine transformation + + + + +Since: 1.0 + + + +See Also +cairo_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-paths.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-paths.xml new file mode 100644 index 0000000..2373cb6 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-paths.xml @@ -0,0 +1,1125 @@ + + +]> + + +Paths +3 +CAIRO Library + + +Paths +Creating paths and manipulating path data + + + +Functions + + + + + +cairo_path_t * +cairo_copy_path () +cairo_path_t * +cairo_copy_path_flat () +void +cairo_path_destroy () +void +cairo_append_path () +cairo_bool_t +cairo_has_current_point () +void +cairo_get_current_point () +void +cairo_new_path () +void +cairo_new_sub_path () +void +cairo_close_path () +void +cairo_arc () +void +cairo_arc_negative () +void +cairo_curve_to () +void +cairo_line_to () +void +cairo_move_to () +void +cairo_rectangle () +void +cairo_glyph_path () +void +cairo_text_path () +void +cairo_rel_curve_to () +void +cairo_rel_line_to () +void +cairo_rel_move_to () +void +cairo_path_extents () + + + + + + +Types and Values + + + + + +cairo_path_t +unioncairo_path_data_t +enumcairo_path_data_type_t + + + + + + + + +Description +Paths are the most basic drawing tools and are primarily used to implicitly +generate simple masks. + + + +Functions + +cairo_copy_path () +cairo_copy_path +cairo_path_t * +cairo_copy_path (cairo_t *cr); +Creates a copy of the current path and returns it to the user as a +cairo_path_t. See cairo_path_data_t for hints on how to iterate +over the returned data structure. +This function will always return a valid pointer, but the result +will have no data (data==NULL and +num_data==0), if either of the following +conditions hold: + +If there is insufficient memory to copy the path. In this + case path->status will be set to + CAIRO_STATUS_NO_MEMORY. +If cr is already in an error state. In this case + path->status will contain the same status that + would be returned by cairo_status(). + + +Parameters + + + + + + +cr +a cairo context + + + +Returns + the copy of the current path. The caller owns the +returned object and should call cairo_path_destroy() when finished +with it. +Since: 1.0 + +cairo_copy_path_flat () +cairo_copy_path_flat +cairo_path_t * +cairo_copy_path_flat (cairo_t *cr); +Gets a flattened copy of the current path and returns it to the +user as a cairo_path_t. See cairo_path_data_t for hints on +how to iterate over the returned data structure. +This function is like cairo_copy_path() except that any curves +in the path will be approximated with piecewise-linear +approximations, (accurate to within the current tolerance +value). That is, the result is guaranteed to not have any elements +of type CAIRO_PATH_CURVE_TO which will instead be replaced by a +series of CAIRO_PATH_LINE_TO elements. +This function will always return a valid pointer, but the result +will have no data (data==NULL and +num_data==0), if either of the following +conditions hold: + +If there is insufficient memory to copy the path. In this + case path->status will be set to + CAIRO_STATUS_NO_MEMORY. +If cr is already in an error state. In this case + path->status will contain the same status that + would be returned by cairo_status(). + + +Parameters + + + + + + +cr +a cairo context + + + +Returns + the copy of the current path. The caller owns the +returned object and should call cairo_path_destroy() when finished +with it. +Since: 1.0 + +cairo_path_destroy () +cairo_path_destroy +void +cairo_path_destroy (cairo_path_t *path); +Immediately releases all memory associated with path +. After a call +to cairo_path_destroy() the path + pointer is no longer valid and +should not be used further. +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. + +Parameters + + + + + + +path +a path previously returned by either cairo_copy_path() or +cairo_copy_path_flat(). + + +Since: 1.0 + +cairo_append_path () +cairo_append_path +void +cairo_append_path (cairo_t *cr, + const cairo_path_t *path); +Append the path + onto the current path. The path + may be either the +return value from one of cairo_copy_path() or +cairo_copy_path_flat() or it may be constructed manually. See +cairo_path_t for details on how the path data structure should be +initialized, and note that path->status must be +initialized to CAIRO_STATUS_SUCCESS. + +Parameters + + + + + + +cr +a cairo context + +path +path to be appended + + +Since: 1.0 + +cairo_has_current_point () +cairo_has_current_point +cairo_bool_t +cairo_has_current_point (cairo_t *cr); +Returns whether a current point is defined on the current path. +See cairo_get_current_point() for details on the current point. + +Parameters + + + + + + +cr +a cairo context + + + +Returns + whether a current point is defined. +Since: 1.6 + +cairo_get_current_point () +cairo_get_current_point +void +cairo_get_current_point (cairo_t *cr, + double *x, + double *y); +Gets the current point of the current path, which is +conceptually the final point reached by the path so far. +The current point is returned in the user-space coordinate +system. If there is no defined current point or if cr + is in an +error status, x + and y + will both be set to 0.0. It is possible to +check this in advance with cairo_has_current_point(). +Most path construction functions alter the current point. See the +following for details on how they affect the current point: +cairo_new_path(), cairo_new_sub_path(), +cairo_append_path(), cairo_close_path(), +cairo_move_to(), cairo_line_to(), cairo_curve_to(), +cairo_rel_move_to(), cairo_rel_line_to(), cairo_rel_curve_to(), +cairo_arc(), cairo_arc_negative(), cairo_rectangle(), +cairo_text_path(), cairo_glyph_path(), cairo_stroke_to_path(). +Some functions use and alter the current point but do not +otherwise change current path: +cairo_show_text(). +Some functions unset the current path and as a result, current point: +cairo_fill(), cairo_stroke(). + +Parameters + + + + + + +cr +a cairo context + +x +return value for X coordinate of the current point + +y +return value for Y coordinate of the current point + + +Since: 1.0 + +cairo_new_path () +cairo_new_path +void +cairo_new_path (cairo_t *cr); +Clears the current path. After this call there will be no path and +no current point. + +Parameters + + + + + + +cr +a cairo context + + +Since: 1.0 + +cairo_new_sub_path () +cairo_new_sub_path +void +cairo_new_sub_path (cairo_t *cr); +Begin a new sub-path. Note that the existing path is not +affected. After this call there will be no current point. +In many cases, this call is not needed since new sub-paths are +frequently started with cairo_move_to(). +A call to cairo_new_sub_path() is particularly useful when +beginning a new sub-path with one of the cairo_arc() calls. This +makes things easier as it is no longer necessary to manually +compute the arc's initial coordinates for a call to +cairo_move_to(). + +Parameters + + + + + + +cr +a cairo context + + +Since: 1.2 + +cairo_close_path () +cairo_close_path +void +cairo_close_path (cairo_t *cr); +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 +cairo_move_to()), and closes this sub-path. After this call the +current point will be at the joined endpoint of the sub-path. +The behavior of cairo_close_path() is distinct from simply calling +cairo_line_to() with the equivalent coordinate in the case of +stroking. When a closed sub-path is stroked, there are no caps on +the ends of the sub-path. Instead, there is a line join connecting +the final and initial segments of the sub-path. +If there is no current point before the call to cairo_close_path(), +this function will have no effect. +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 +not be necessary to save the "last move_to point" during processing +as the MOVE_TO immediately after the CLOSE_PATH will provide that +point. + +Parameters + + + + + + +cr +a cairo context + + +Since: 1.0 + +cairo_arc () +cairo_arc +void +cairo_arc (cairo_t *cr, + double xc, + double yc, + double radius, + double angle1, + double angle2); +Adds a circular arc of the given radius + to the current path. The +arc is centered at (xc +, yc +), begins at angle1 + and proceeds in +the direction of increasing angles to end at angle2 +. If angle2 + is +less than angle1 + it will be progressively increased by +2*M_PI until it is greater than angle1 +. +If there is a current point, an initial line segment will be added +to the path to connect the current point to the beginning of the +arc. If this initial line is undesired, it can be avoided by +calling cairo_new_sub_path() before calling cairo_arc(). +Angles are measured in radians. An angle of 0.0 is in the direction +of the positive X axis (in user space). An angle of +M_PI/2.0 radians (90 degrees) is in the +direction of the positive Y axis (in user space). Angles increase +in the direction from the positive X axis toward the positive Y +axis. So with the default transformation matrix, angles increase in +a clockwise direction. +(To convert from degrees to radians, use degrees * (M_PI / +180.).) +This function gives the arc in the direction of increasing angles; +see cairo_arc_negative() to get the arc in the direction of +decreasing angles. +The arc is circular in user space. To achieve an elliptical arc, +you can scale the current transformation matrix by different +amounts in the X and Y directions. For example, to draw an ellipse +in the box given by x +, y +, width +, height +: + +cairo_save (cr); +cairo_translate (cr, x + width / 2., y + height / 2.); +cairo_scale (cr, width / 2., height / 2.); +cairo_arc (cr, 0., 0., 1., 0., 2 * M_PI); +cairo_restore (cr); + + +Parameters + + + + + + +cr +a cairo context + +xc +X position of the center of the arc + +yc +Y position of the center of the arc + +radius +the radius of the arc + +angle1 +the start angle, in radians + +angle2 +the end angle, in radians + + +Since: 1.0 + +cairo_arc_negative () +cairo_arc_negative +void +cairo_arc_negative (cairo_t *cr, + double xc, + double yc, + double radius, + double angle1, + double angle2); +Adds a circular arc of the given radius + to the current path. The +arc is centered at (xc +, yc +), begins at angle1 + and proceeds in +the direction of decreasing angles to end at angle2 +. If angle2 + is +greater than angle1 + it will be progressively decreased by +2*M_PI until it is less than angle1 +. +See cairo_arc() for more details. This function differs only in the +direction of the arc between the two angles. + +Parameters + + + + + + +cr +a cairo context + +xc +X position of the center of the arc + +yc +Y position of the center of the arc + +radius +the radius of the arc + +angle1 +the start angle, in radians + +angle2 +the end angle, in radians + + +Since: 1.0 + +cairo_curve_to () +cairo_curve_to +void +cairo_curve_to (cairo_t *cr, + double x1, + double y1, + double x2, + double y2, + double x3, + double y3); +Adds a cubic Bézier spline to the path from the current point to +position (x3 +, y3 +) in user-space coordinates, using (x1 +, y1 +) and +(x2 +, y2 +) as the control points. After this call the current point +will be (x3 +, y3 +). +If there is no current point before the call to cairo_curve_to() +this function will behave as if preceded by a call to +cairo_move_to(cr +, x1 +, y1 +). + +Parameters + + + + + + +cr +a cairo context + +x1 +the X coordinate of the first control point + +y1 +the Y coordinate of the first control point + +x2 +the X coordinate of the second control point + +y2 +the Y coordinate of the second control point + +x3 +the X coordinate of the end of the curve + +y3 +the Y coordinate of the end of the curve + + +Since: 1.0 + +cairo_line_to () +cairo_line_to +void +cairo_line_to (cairo_t *cr, + double x, + double y); +Adds a line to the path from the current point to position (x +, y +) +in user-space coordinates. After this call the current point +will be (x +, y +). +If there is no current point before the call to cairo_line_to() +this function will behave as cairo_move_to(cr +, x +, y +). + +Parameters + + + + + + +cr +a cairo context + +x +the X coordinate of the end of the new line + +y +the Y coordinate of the end of the new line + + +Since: 1.0 + +cairo_move_to () +cairo_move_to +void +cairo_move_to (cairo_t *cr, + double x, + double y); +Begin a new sub-path. After this call the current point will be (x +, +y +). + +Parameters + + + + + + +cr +a cairo context + +x +the X coordinate of the new position + +y +the Y coordinate of the new position + + +Since: 1.0 + +cairo_rectangle () +cairo_rectangle +void +cairo_rectangle (cairo_t *cr, + double x, + double y, + double width, + double height); +Adds a closed sub-path rectangle of the given size to the current +path at position (x +, y +) in user-space coordinates. +This function is logically equivalent to: + +cairo_move_to (cr, x, y); +cairo_rel_line_to (cr, width, 0); +cairo_rel_line_to (cr, 0, height); +cairo_rel_line_to (cr, -width, 0); +cairo_close_path (cr); + + +Parameters + + + + + + +cr +a cairo context + +x +the X coordinate of the top left corner of the rectangle + +y +the Y coordinate to the top left corner of the rectangle + +width +the width of the rectangle + +height +the height of the rectangle + + +Since: 1.0 + +cairo_glyph_path () +cairo_glyph_path +void +cairo_glyph_path (cairo_t *cr, + const cairo_glyph_t *glyphs, + int num_glyphs); +Adds closed paths for the glyphs to the current path. The generated +path if filled, achieves an effect similar to that of +cairo_show_glyphs(). + +Parameters + + + + + + +cr +a cairo context + +glyphs +array of glyphs to show + +num_glyphs +number of glyphs to show + + +Since: 1.0 + +cairo_text_path () +cairo_text_path +void +cairo_text_path (cairo_t *cr, + const char *utf8); +Adds closed paths for text to the current path. The generated +path if filled, achieves an effect similar to that of +cairo_show_text(). +Text conversion and positioning is done similar to cairo_show_text(). +Like cairo_show_text(), After this call the current point is +moved to the origin of where the next glyph would be placed in +this same progression. That is, the current point will be at +the origin of the final glyph offset by its advance values. +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 +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 +"real" text path API in cairo. + +Parameters + + + + + + +cr +a cairo context + +utf8 +a NUL-terminated string of text encoded in UTF-8, or NULL + + +Since: 1.0 + +cairo_rel_curve_to () +cairo_rel_curve_to +void +cairo_rel_curve_to (cairo_t *cr, + double dx1, + double dy1, + double dx2, + double dy2, + double dx3, + double dy3); +Relative-coordinate version of cairo_curve_to(). All offsets are +relative to the current point. Adds a cubic Bézier spline to the +path from the current point to a point offset from the current +point by (dx3 +, dy3 +), using points offset by (dx1 +, dy1 +) and +(dx2 +, dy2 +) as the control points. After this call the current +point will be offset by (dx3 +, dy3 +). +Given a current point of (x, y), cairo_rel_curve_to(cr +, dx1 +, +dy1 +, dx2 +, dy2 +, dx3 +, dy3 +) is logically equivalent to +cairo_curve_to(cr +, x+dx1 +, y+dy1 +, x+dx2 +, y+dy2 +, x+dx3 +, y+dy3 +). +It is an error to call this function with no current point. Doing +so will cause cr + to shutdown with a status of +CAIRO_STATUS_NO_CURRENT_POINT. + +Parameters + + + + + + +cr +a cairo context + +dx1 +the X offset to the first control point + +dy1 +the Y offset to the first control point + +dx2 +the X offset to the second control point + +dy2 +the Y offset to the second control point + +dx3 +the X offset to the end of the curve + +dy3 +the Y offset to the end of the curve + + +Since: 1.0 + +cairo_rel_line_to () +cairo_rel_line_to +void +cairo_rel_line_to (cairo_t *cr, + double dx, + double dy); +Relative-coordinate version of cairo_line_to(). Adds a line to the +path from the current point to a point that is offset from the +current point by (dx +, dy +) in user space. After this call the +current point will be offset by (dx +, dy +). +Given a current point of (x, y), cairo_rel_line_to(cr +, dx +, dy +) +is logically equivalent to cairo_line_to(cr +, x + dx +, y + dy +). +It is an error to call this function with no current point. Doing +so will cause cr + to shutdown with a status of +CAIRO_STATUS_NO_CURRENT_POINT. + +Parameters + + + + + + +cr +a cairo context + +dx +the X offset to the end of the new line + +dy +the Y offset to the end of the new line + + +Since: 1.0 + +cairo_rel_move_to () +cairo_rel_move_to +void +cairo_rel_move_to (cairo_t *cr, + double dx, + double dy); +Begin a new sub-path. After this call the current point will offset +by (x +, y +). +Given a current point of (x, y), cairo_rel_move_to(cr +, dx +, dy +) +is logically equivalent to cairo_move_to(cr +, x + dx +, y + dy +). +It is an error to call this function with no current point. Doing +so will cause cr + to shutdown with a status of +CAIRO_STATUS_NO_CURRENT_POINT. + +Parameters + + + + + + +cr +a cairo context + +dx +the X offset + +dy +the Y offset + + +Since: 1.0 + +cairo_path_extents () +cairo_path_extents +void +cairo_path_extents (cairo_t *cr, + double *x1, + double *y1, + double *x2, + double *y2); +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(). + +Parameters + + + + + + +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 + + +Since: 1.6 + + + +Types and Values + +cairo_path_t +cairo_path_t +typedef struct { + cairo_status_t status; + cairo_path_data_t *data; + int num_data; +} cairo_path_t; + +A data structure for holding a path. This data structure serves as +the return value for cairo_copy_path() and +cairo_copy_path_flat() as well the input value for +cairo_append_path(). +See cairo_path_data_t for hints on how to iterate over the +actual data within the path. +The num_data member gives the number of elements in the data +array. This number is larger than the number of independent path +portions (defined in cairo_path_data_type_t), since the data +includes both headers and coordinates for each portion. + +Members + + + + + + +cairo_status_t status; +the current error status + + +cairo_path_data_t *data; +the elements in the path + + +int num_data; +the number of elements in the data array + + + + +Since: 1.0 + +union cairo_path_data_t +cairo_path_data_t +cairo_path_data_t is used to represent the path data inside a +cairo_path_t. +The data structure is designed to try to balance the demands of +efficiency and ease-of-use. A path is represented as an array of +cairo_path_data_t, which is a union of headers and points. +Each portion of the path is represented by one or more elements in +the array, (one header followed by 0 or more points). The length +value of the header is the number of array elements for the current +portion including the header, (ie. length == 1 + # of points), and +where the number of points for each element type is as follows: + + %CAIRO_PATH_MOVE_TO: 1 point + %CAIRO_PATH_LINE_TO: 1 point + %CAIRO_PATH_CURVE_TO: 3 points + %CAIRO_PATH_CLOSE_PATH: 0 points + +The semantics and ordering of the coordinate values are consistent +with cairo_move_to(), cairo_line_to(), cairo_curve_to(), and +cairo_close_path(). +Here is sample code for iterating through a cairo_path_t: + + int i; + 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: + do_move_to_things (data[1].point.x, data[1].point.y); + break; + case CAIRO_PATH_LINE_TO: + do_line_to_things (data[1].point.x, data[1].point.y); + break; + 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: + do_close_path_things (); + break; + } + } + cairo_path_destroy (path); + +As of cairo 1.4, cairo does not mind if there are more elements in +a portion of the path than needed. Such elements can be used by +users of the cairo API to hold extra values in the path data +structure. For this reason, it is recommended that applications +always use data->header.length to +iterate over the path data, instead of hardcoding the number of +elements for each element type. +Since: 1.0 + +enum cairo_path_data_type_t +cairo_path_data_type_t +cairo_path_data_t is used to describe the type of one portion +of a path when represented as a cairo_path_t. +See cairo_path_data_t for details. + +Members + + + + + + +CAIRO_PATH_MOVE_TO +A move-to operation, since 1.0 + + + +CAIRO_PATH_LINE_TO +A line-to operation, since 1.0 + + + +CAIRO_PATH_CURVE_TO +A curve-to operation, since 1.0 + + + +CAIRO_PATH_CLOSE_PATH +A close-path operation, since 1.0 + + + + +Since: 1.0 + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-pattern.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-pattern.xml new file mode 100644 index 0000000..7386cde --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-pattern.xml @@ -0,0 +1,1966 @@ + + +]> + + +cairo_pattern_t +3 +CAIRO Library + + +cairo_pattern_t +Sources for drawing + + + +Functions + + + + + +void +cairo_pattern_add_color_stop_rgb () +void +cairo_pattern_add_color_stop_rgba () +cairo_status_t +cairo_pattern_get_color_stop_count () +cairo_status_t +cairo_pattern_get_color_stop_rgba () +cairo_pattern_t * +cairo_pattern_create_rgb () +cairo_pattern_t * +cairo_pattern_create_rgba () +cairo_status_t +cairo_pattern_get_rgba () +cairo_pattern_t * +cairo_pattern_create_for_surface () +cairo_status_t +cairo_pattern_get_surface () +cairo_pattern_t * +cairo_pattern_create_linear () +cairo_status_t +cairo_pattern_get_linear_points () +cairo_pattern_t * +cairo_pattern_create_radial () +cairo_status_t +cairo_pattern_get_radial_circles () +cairo_pattern_t * +cairo_pattern_create_mesh () +void +cairo_mesh_pattern_begin_patch () +void +cairo_mesh_pattern_end_patch () +void +cairo_mesh_pattern_move_to () +void +cairo_mesh_pattern_line_to () +void +cairo_mesh_pattern_curve_to () +void +cairo_mesh_pattern_set_control_point () +void +cairo_mesh_pattern_set_corner_color_rgb () +void +cairo_mesh_pattern_set_corner_color_rgba () +cairo_status_t +cairo_mesh_pattern_get_patch_count () +cairo_path_t * +cairo_mesh_pattern_get_path () +cairo_status_t +cairo_mesh_pattern_get_control_point () +cairo_status_t +cairo_mesh_pattern_get_corner_color_rgba () +cairo_pattern_t * +cairo_pattern_reference () +void +cairo_pattern_destroy () +cairo_status_t +cairo_pattern_status () +void +cairo_pattern_set_extend () +cairo_extend_t +cairo_pattern_get_extend () +void +cairo_pattern_set_filter () +cairo_filter_t +cairo_pattern_get_filter () +void +cairo_pattern_set_matrix () +void +cairo_pattern_get_matrix () +cairo_pattern_type_t +cairo_pattern_get_type () +unsigned int +cairo_pattern_get_reference_count () +cairo_status_t +cairo_pattern_set_user_data () +void * +cairo_pattern_get_user_data () + + + + + + +Types and Values + + + + + +typedefcairo_pattern_t +enumcairo_extend_t +enumcairo_filter_t +enumcairo_pattern_type_t + + + + + + + + +Description +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. +A cairo pattern is created by using one of the many constructors, +of the form +cairo_pattern_create_type() +or implicitly through +cairo_set_source_type() +functions. + + + +Functions + +cairo_pattern_add_color_stop_rgb () +cairo_pattern_add_color_stop_rgb +void +cairo_pattern_add_color_stop_rgb (cairo_pattern_t *pattern, + double offset, + double red, + double green, + double blue); +Adds an opaque color stop to a gradient pattern. The offset +specifies the location along the gradient's control vector. For +example, a linear gradient's control vector is from (x0,y0) to +(x1,y1) while a radial gradient's control vector is from any point +on the start circle to the corresponding point on the end circle. +The color is specified in the same way as in cairo_set_source_rgb(). +If two (or more) stops are specified with identical offset values, +they will be sorted according to the order in which the stops are +added, (stops added earlier will compare less than stops added +later). This can be useful for reliably making sharp color +transitions instead of the typical blend. +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 CAIRO_STATUS_PATTERN_TYPE_MISMATCH. + +Parameters + + + + + + +pattern +a cairo_pattern_t + +offset +an offset in the range [0.0 .. 1.0] + +red +red component of color + +green +green component of color + +blue +blue component of color + + +Since: 1.0 + +cairo_pattern_add_color_stop_rgba () +cairo_pattern_add_color_stop_rgba +void +cairo_pattern_add_color_stop_rgba (cairo_pattern_t *pattern, + double offset, + double red, + double green, + double blue, + double alpha); +Adds a translucent color stop to a gradient pattern. The offset +specifies the location along the gradient's control vector. For +example, a linear gradient's control vector is from (x0,y0) to +(x1,y1) while a radial gradient's control vector is from any point +on the start circle to the corresponding point on the end circle. +The color is specified in the same way as in cairo_set_source_rgba(). +If two (or more) stops are specified with identical offset values, +they will be sorted according to the order in which the stops are +added, (stops added earlier will compare less than stops added +later). This can be useful for reliably making sharp color +transitions instead of the typical blend. +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 CAIRO_STATUS_PATTERN_TYPE_MISMATCH. + +Parameters + + + + + + +pattern +a cairo_pattern_t + +offset +an offset in the range [0.0 .. 1.0] + +red +red component of color + +green +green component of color + +blue +blue component of color + +alpha +alpha component of color + + +Since: 1.0 + +cairo_pattern_get_color_stop_count () +cairo_pattern_get_color_stop_count +cairo_status_t +cairo_pattern_get_color_stop_count (cairo_pattern_t *pattern, + int *count); +Gets the number of color stops specified in the given gradient +pattern. + +Parameters + + + + + + +pattern +a cairo_pattern_t + +count +return value for the number of color stops, or NULL + + + +Returns + CAIRO_STATUS_SUCCESS, or +CAIRO_STATUS_PATTERN_TYPE_MISMATCH if pattern +is not a gradient +pattern. +Since: 1.4 + +cairo_pattern_get_color_stop_rgba () +cairo_pattern_get_color_stop_rgba +cairo_status_t +cairo_pattern_get_color_stop_rgba (cairo_pattern_t *pattern, + int index, + double *offset, + double *red, + double *green, + double *blue, + double *alpha); +Gets the color and offset information at the given index + for a +gradient pattern. Values of index + range from 0 to n-1 +where n is the number returned +by cairo_pattern_get_color_stop_count(). + +Parameters + + + + + + +pattern +a cairo_pattern_t + +index +index of the stop to return data for + +offset +return value for the offset of the stop, or NULL + +red +return value for red component of color, or NULL + +green +return value for green component of color, or NULL + +blue +return value for blue component of color, or NULL + +alpha +return value for alpha component of color, or NULL + + + +Returns + CAIRO_STATUS_SUCCESS, or CAIRO_STATUS_INVALID_INDEX +if index +is not valid for the given pattern. If the pattern is +not a gradient pattern, CAIRO_STATUS_PATTERN_TYPE_MISMATCH is +returned. +Since: 1.4 + +cairo_pattern_create_rgb () +cairo_pattern_create_rgb +cairo_pattern_t * +cairo_pattern_create_rgb (double red, + double green, + double blue); +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. + +Parameters + + + + + + +red +red component of the color + +green +green component of the color + +blue +blue component of the color + + + +Returns + the newly created cairo_pattern_t if successful, or +an error pattern in case of no memory. The caller owns the +returned object and should call cairo_pattern_destroy() when +finished with it. +This function will always return a valid pointer, but if an error +occurred the pattern status will be set to an error. To inspect +the status of a pattern use cairo_pattern_status(). +Since: 1.0 + +cairo_pattern_create_rgba () +cairo_pattern_create_rgba +cairo_pattern_t * +cairo_pattern_create_rgba (double red, + double green, + double blue, + double alpha); +Creates a new cairo_pattern_t corresponding to a translucent color. +The color components are floating point numbers in the range 0 to + +If the values passed in are outside that range, they will be +clamped. + + +Parameters + + + + + + +red +red component of the color + +green +green component of the color + +blue +blue component of the color + +alpha +alpha component of the color + + + +Returns + the newly created cairo_pattern_t if successful, or +an error pattern in case of no memory. The caller owns the +returned object and should call cairo_pattern_destroy() when +finished with it. +This function will always return a valid pointer, but if an error +occurred the pattern status will be set to an error. To inspect +the status of a pattern use cairo_pattern_status(). +Since: 1.0 + +cairo_pattern_get_rgba () +cairo_pattern_get_rgba +cairo_status_t +cairo_pattern_get_rgba (cairo_pattern_t *pattern, + double *red, + double *green, + double *blue, + double *alpha); +Gets the solid color for a solid color pattern. + +Parameters + + + + + + +pattern +a cairo_pattern_t + +red +return value for red component of color, or NULL + +green +return value for green component of color, or NULL + +blue +return value for blue component of color, or NULL + +alpha +return value for alpha component of color, or NULL + + + +Returns + CAIRO_STATUS_SUCCESS, or +CAIRO_STATUS_PATTERN_TYPE_MISMATCH if the pattern is not a solid +color pattern. +Since: 1.4 + +cairo_pattern_create_for_surface () +cairo_pattern_create_for_surface +cairo_pattern_t * +cairo_pattern_create_for_surface (cairo_surface_t *surface); +Create a new cairo_pattern_t for the given surface. + +Parameters + + + + + + +surface +the surface + + + +Returns + the newly created cairo_pattern_t if successful, or +an error pattern in case of no memory. The caller owns the +returned object and should call cairo_pattern_destroy() when +finished with it. +This function will always return a valid pointer, but if an error +occurred the pattern status will be set to an error. To inspect +the status of a pattern use cairo_pattern_status(). +Since: 1.0 + +cairo_pattern_get_surface () +cairo_pattern_get_surface +cairo_status_t +cairo_pattern_get_surface (cairo_pattern_t *pattern, + cairo_surface_t **surface); +Gets the surface of a surface pattern. The reference returned in +surface + is owned by the pattern; the caller should call +cairo_surface_reference() if the surface is to be retained. + +Parameters + + + + + + +pattern +a cairo_pattern_t + +surface +return value for surface of pattern, or NULL + + + +Returns + CAIRO_STATUS_SUCCESS, or +CAIRO_STATUS_PATTERN_TYPE_MISMATCH if the pattern is not a surface +pattern. +Since: 1.4 + +cairo_pattern_create_linear () +cairo_pattern_create_linear +cairo_pattern_t * +cairo_pattern_create_linear (double x0, + double y0, + double x1, + double y1); +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 +cairo_pattern_add_color_stop_rgba(). +Note: The coordinates here are in pattern space. For a new pattern, +pattern space is identical to user space, but the relationship +between the spaces can be changed with cairo_pattern_set_matrix(). + +Parameters + + + + + + +x0 +x coordinate of the start point + +y0 +y coordinate of the start point + +x1 +x coordinate of the end point + +y1 +y coordinate of the end point + + + +Returns + the newly created cairo_pattern_t if successful, or +an error pattern in case of no memory. The caller owns the +returned object and should call cairo_pattern_destroy() when +finished with it. +This function will always return a valid pointer, but if an error +occurred the pattern status will be set to an error. To inspect +the status of a pattern use cairo_pattern_status(). +Since: 1.0 + +cairo_pattern_get_linear_points () +cairo_pattern_get_linear_points +cairo_status_t +cairo_pattern_get_linear_points (cairo_pattern_t *pattern, + double *x0, + double *y0, + double *x1, + double *y1); +Gets the gradient endpoints for a linear gradient. + +Parameters + + + + + + +pattern +a cairo_pattern_t + +x0 +return value for the x coordinate of the first point, or NULL + +y0 +return value for the y coordinate of the first point, or NULL + +x1 +return value for the x coordinate of the second point, or NULL + +y1 +return value for the y coordinate of the second point, or NULL + + + +Returns + CAIRO_STATUS_SUCCESS, or +CAIRO_STATUS_PATTERN_TYPE_MISMATCH if pattern +is not a linear +gradient pattern. +Since: 1.4 + +cairo_pattern_create_radial () +cairo_pattern_create_radial +cairo_pattern_t * +cairo_pattern_create_radial (double cx0, + double cy0, + double radius0, + double cx1, + double cy1, + double radius1); +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 +cairo_pattern_add_color_stop_rgba(). +Note: The coordinates here are in pattern space. For a new pattern, +pattern space is identical to user space, but the relationship +between the spaces can be changed with cairo_pattern_set_matrix(). + +Parameters + + + + + + +cx0 +x coordinate for the center of the start circle + +cy0 +y coordinate for the center of the start circle + +radius0 +radius of the start circle + +cx1 +x coordinate for the center of the end circle + +cy1 +y coordinate for the center of the end circle + +radius1 +radius of the end circle + + + +Returns + the newly created cairo_pattern_t if successful, or +an error pattern in case of no memory. The caller owns the +returned object and should call cairo_pattern_destroy() when +finished with it. +This function will always return a valid pointer, but if an error +occurred the pattern status will be set to an error. To inspect +the status of a pattern use cairo_pattern_status(). +Since: 1.0 + +cairo_pattern_get_radial_circles () +cairo_pattern_get_radial_circles +cairo_status_t +cairo_pattern_get_radial_circles (cairo_pattern_t *pattern, + double *x0, + double *y0, + double *r0, + double *x1, + double *y1, + double *r1); +Gets the gradient endpoint circles for a radial gradient, each +specified as a center coordinate and a radius. + +Parameters + + + + + + +pattern +a cairo_pattern_t + +x0 +return value for the x coordinate of the center of the first circle, or NULL + +y0 +return value for the y coordinate of the center of the first circle, or NULL + +r0 +return value for the radius of the first circle, or NULL + +x1 +return value for the x coordinate of the center of the second circle, or NULL + +y1 +return value for the y coordinate of the center of the second circle, or NULL + +r1 +return value for the radius of the second circle, or NULL + + + +Returns + CAIRO_STATUS_SUCCESS, or +CAIRO_STATUS_PATTERN_TYPE_MISMATCH if pattern +is not a radial +gradient pattern. +Since: 1.4 + +cairo_pattern_create_mesh () +cairo_pattern_create_mesh +cairo_pattern_t * +cairo_pattern_create_mesh (void); +Create a new mesh pattern. +Mesh patterns are tensor-product patch meshes (type 7 shadings in +PDF). Mesh patterns may also be used to create other types of +shadings that are special cases of tensor-product patch meshes such +as Coons patch meshes (type 6 shading in PDF) and Gouraud-shaded +triangle meshes (type 4 and 5 shadings in PDF). +Mesh patterns consist of one or more tensor-product patches, which +should be defined before using the mesh pattern. Using a mesh +pattern with a partially defined patch as source or mask will put +the context in an error status with a status of +CAIRO_STATUS_INVALID_MESH_CONSTRUCTION. +A tensor-product patch is defined by 4 Bézier curves (side 0, 1, 2, +3) and by 4 additional control points (P0, P1, P2, P3) that provide +further control over the patch and complete the definition of the +tensor-product patch. The corner C0 is the first point of the +patch. +Degenerate sides are permitted so straight lines may be used. A +zero length line on one side may be used to create 3 sided patches. + + C1 Side 1 C2 + +---------------+ + | | + | P1 P2 | + | | +Side 0 | | Side 2 + | | + | | + | P0 P3 | + | | + +---------------+ + C0 Side 3 C3 + +Each patch is constructed by first calling +cairo_mesh_pattern_begin_patch(), then cairo_mesh_pattern_move_to() +to specify the first point in the patch (C0). Then the sides are +specified with calls to cairo_mesh_pattern_curve_to() and +cairo_mesh_pattern_line_to(). +The four additional control points (P0, P1, P2, P3) in a patch can +be specified with cairo_mesh_pattern_set_control_point(). +At each corner of the patch (C0, C1, C2, C3) a color may be +specified with cairo_mesh_pattern_set_corner_color_rgb() or +cairo_mesh_pattern_set_corner_color_rgba(). Any corner whose color +is not explicitly specified defaults to transparent black. +A Coons patch is a special case of the tensor-product patch where +the control points are implicitly defined by the sides of the +patch. The default value for any control point not specified is the +implicit value for a Coons patch, i.e. if no control points are +specified the patch is a Coons patch. +A triangle is a special case of the tensor-product patch where the +control points are implicitly defined by the sides of the patch, +all the sides are lines and one of them has length 0, i.e. if the +patch is specified using just 3 lines, it is a triangle. If the +corners connected by the 0-length side have the same color, the +patch is a Gouraud-shaded triangle. +Patches may be oriented differently to the above diagram. For +example the first point could be at the top left. The diagram only +shows the relationship between the sides, corners and control +points. Regardless of where the first point is located, when +specifying colors, corner 0 will always be the first point, corner +1 the point between side 0 and side 1 etc. +Calling cairo_mesh_pattern_end_patch() completes the current +patch. If less than 4 sides have been defined, the first missing +side is defined as a line from the current point to the first point +of the patch (C0) and the other sides are degenerate lines from C0 +to C0. The corners between the added sides will all be coincident +with C0 of the patch and their color will be set to be the same as +the color of C0. +Additional patches may be added with additional calls to +cairo_mesh_pattern_begin_patch()/cairo_mesh_pattern_end_patch(). + +cairo_pattern_t *pattern = cairo_pattern_create_mesh (); + +/* Add a Coons patch */ +cairo_mesh_pattern_begin_patch (pattern); +cairo_mesh_pattern_move_to (pattern, 0, 0); +cairo_mesh_pattern_curve_to (pattern, 30, -30, 60, 30, 100, 0); +cairo_mesh_pattern_curve_to (pattern, 60, 30, 130, 60, 100, 100); +cairo_mesh_pattern_curve_to (pattern, 60, 70, 30, 130, 0, 100); +cairo_mesh_pattern_curve_to (pattern, 30, 70, -30, 30, 0, 0); +cairo_mesh_pattern_set_corner_color_rgb (pattern, 0, 1, 0, 0); +cairo_mesh_pattern_set_corner_color_rgb (pattern, 1, 0, 1, 0); +cairo_mesh_pattern_set_corner_color_rgb (pattern, 2, 0, 0, 1); +cairo_mesh_pattern_set_corner_color_rgb (pattern, 3, 1, 1, 0); +cairo_mesh_pattern_end_patch (pattern); + +/* Add a Gouraud-shaded triangle */ +cairo_mesh_pattern_begin_patch (pattern) +cairo_mesh_pattern_move_to (pattern, 100, 100); +cairo_mesh_pattern_line_to (pattern, 130, 130); +cairo_mesh_pattern_line_to (pattern, 130, 70); +cairo_mesh_pattern_set_corner_color_rgb (pattern, 0, 1, 0, 0); +cairo_mesh_pattern_set_corner_color_rgb (pattern, 1, 0, 1, 0); +cairo_mesh_pattern_set_corner_color_rgb (pattern, 2, 0, 0, 1); +cairo_mesh_pattern_end_patch (pattern) + +When two patches overlap, the last one that has been added is drawn +over the first one. +When a patch folds over itself, points are sorted depending on +their parameter coordinates inside the patch. The v coordinate +ranges from 0 to 1 when moving from side 3 to side 1; the u +coordinate ranges from 0 to 1 when going from side 0 to side + + +Points with higher v coordinate hide points with lower v +coordinate. When two points have the same v coordinate, the one +with higher u coordinate is above. This means that points nearer to +side 1 are above points nearer to side 3; when this is not +sufficient to decide which point is above (for example when both +points belong to side 1 or side 3) points nearer to side 2 are +above points nearer to side 0. + + +For a complete definition of tensor-product patches, see the PDF +specification (ISO32000), which describes the parametrization in +detail. +Note: The coordinates are always in pattern space. For a new +pattern, pattern space is identical to user space, but the +relationship between the spaces can be changed with +cairo_pattern_set_matrix(). + +Returns + the newly created cairo_pattern_t if successful, or +an error pattern in case of no memory. The caller owns the returned +object and should call cairo_pattern_destroy() when finished with +it. +This function will always return a valid pointer, but if an error +occurred the pattern status will be set to an error. To inspect the +status of a pattern use cairo_pattern_status(). +Since: 1.12 + +cairo_mesh_pattern_begin_patch () +cairo_mesh_pattern_begin_patch +void +cairo_mesh_pattern_begin_patch (cairo_pattern_t *pattern); +Begin a patch in a mesh pattern. +After calling this function, the patch shape should be defined with +cairo_mesh_pattern_move_to(), cairo_mesh_pattern_line_to() and +cairo_mesh_pattern_curve_to(). +After defining the patch, cairo_mesh_pattern_end_patch() must be +called before using pattern + as a source or mask. +Note: If pattern + is not a mesh pattern then pattern + will be put +into an error status with a status of +CAIRO_STATUS_PATTERN_TYPE_MISMATCH. If pattern + already has a +current patch, it will be put into an error status with a status of +CAIRO_STATUS_INVALID_MESH_CONSTRUCTION. + +Parameters + + + + + + +pattern +a cairo_pattern_t + + +Since: 1.12 + +cairo_mesh_pattern_end_patch () +cairo_mesh_pattern_end_patch +void +cairo_mesh_pattern_end_patch (cairo_pattern_t *pattern); +Indicates the end of the current patch in a mesh pattern. +If the current patch has less than 4 sides, it is closed with a +straight line from the current point to the first point of the +patch as if cairo_mesh_pattern_line_to() was used. +Note: If pattern + is not a mesh pattern then pattern + will be put +into an error status with a status of +CAIRO_STATUS_PATTERN_TYPE_MISMATCH. If pattern + has no current +patch or the current patch has no current point, pattern + will be +put into an error status with a status of +CAIRO_STATUS_INVALID_MESH_CONSTRUCTION. + +Parameters + + + + + + +pattern +a cairo_pattern_t + + +Since: 1.12 + +cairo_mesh_pattern_move_to () +cairo_mesh_pattern_move_to +void +cairo_mesh_pattern_move_to (cairo_pattern_t *pattern, + double x, + double y); +Define the first point of the current patch in a mesh pattern. +After this call the current point will be (x +, y +). +Note: If pattern + is not a mesh pattern then pattern + will be put +into an error status with a status of +CAIRO_STATUS_PATTERN_TYPE_MISMATCH. If pattern + has no current +patch or the current patch already has at least one side, pattern + +will be put into an error status with a status of +CAIRO_STATUS_INVALID_MESH_CONSTRUCTION. + +Parameters + + + + + + +pattern +a cairo_pattern_t + +x +the X coordinate of the new position + +y +the Y coordinate of the new position + + +Since: 1.12 + +cairo_mesh_pattern_line_to () +cairo_mesh_pattern_line_to +void +cairo_mesh_pattern_line_to (cairo_pattern_t *pattern, + double x, + double y); +Adds a line to the current patch from the current point to position +(x +, y +) in pattern-space coordinates. +If there is no current point before the call to +cairo_mesh_pattern_line_to() this function will behave as +cairo_mesh_pattern_move_to(pattern +, x +, y +). +After this call the current point will be (x +, y +). +Note: If pattern + is not a mesh pattern then pattern + will be put +into an error status with a status of +CAIRO_STATUS_PATTERN_TYPE_MISMATCH. If pattern + has no current +patch or the current patch already has 4 sides, pattern + will be +put into an error status with a status of +CAIRO_STATUS_INVALID_MESH_CONSTRUCTION. + +Parameters + + + + + + +pattern +a cairo_pattern_t + +x +the X coordinate of the end of the new line + +y +the Y coordinate of the end of the new line + + +Since: 1.12 + +cairo_mesh_pattern_curve_to () +cairo_mesh_pattern_curve_to +void +cairo_mesh_pattern_curve_to (cairo_pattern_t *pattern, + double x1, + double y1, + double x2, + double y2, + double x3, + double y3); +Adds a cubic Bézier spline to the current patch from the current +point to position (x3 +, y3 +) in pattern-space coordinates, using +(x1 +, y1 +) and (x2 +, y2 +) as the control points. +If the current patch has no current point before the call to +cairo_mesh_pattern_curve_to(), this function will behave as if +preceded by a call to cairo_mesh_pattern_move_to(pattern +, x1 +, +y1 +). +After this call the current point will be (x3 +, y3 +). +Note: If pattern + is not a mesh pattern then pattern + will be put +into an error status with a status of +CAIRO_STATUS_PATTERN_TYPE_MISMATCH. If pattern + has no current +patch or the current patch already has 4 sides, pattern + will be +put into an error status with a status of +CAIRO_STATUS_INVALID_MESH_CONSTRUCTION. + +Parameters + + + + + + +pattern +a cairo_pattern_t + +x1 +the X coordinate of the first control point + +y1 +the Y coordinate of the first control point + +x2 +the X coordinate of the second control point + +y2 +the Y coordinate of the second control point + +x3 +the X coordinate of the end of the curve + +y3 +the Y coordinate of the end of the curve + + +Since: 1.12 + +cairo_mesh_pattern_set_control_point () +cairo_mesh_pattern_set_control_point +void +cairo_mesh_pattern_set_control_point (cairo_pattern_t *pattern, + unsigned int point_num, + double x, + double y); +Set an internal control point of the current patch. +Valid values for point_num + are from 0 to 3 and identify the +control points as explained in cairo_pattern_create_mesh(). +Note: If pattern + is not a mesh pattern then pattern + will be put +into an error status with a status of +CAIRO_STATUS_PATTERN_TYPE_MISMATCH. If point_num + is not valid, +pattern + will be put into an error status with a status of +CAIRO_STATUS_INVALID_INDEX. If pattern + has no current patch, +pattern + will be put into an error status with a status of +CAIRO_STATUS_INVALID_MESH_CONSTRUCTION. + +Parameters + + + + + + +pattern +a cairo_pattern_t + +point_num +the control point to set the position for + +x +the X coordinate of the control point + +y +the Y coordinate of the control point + + +Since: 1.12 + +cairo_mesh_pattern_set_corner_color_rgb () +cairo_mesh_pattern_set_corner_color_rgb +void +cairo_mesh_pattern_set_corner_color_rgb + (cairo_pattern_t *pattern, + unsigned int corner_num, + double red, + double green, + double blue); +Sets the color of a corner of the current patch in a mesh pattern. +The color is specified in the same way as in cairo_set_source_rgb(). +Valid values for corner_num + are from 0 to 3 and identify the +corners as explained in cairo_pattern_create_mesh(). +Note: If pattern + is not a mesh pattern then pattern + will be put +into an error status with a status of +CAIRO_STATUS_PATTERN_TYPE_MISMATCH. If corner_num + is not valid, +pattern + will be put into an error status with a status of +CAIRO_STATUS_INVALID_INDEX. If pattern + has no current patch, +pattern + will be put into an error status with a status of +CAIRO_STATUS_INVALID_MESH_CONSTRUCTION. + +Parameters + + + + + + +pattern +a cairo_pattern_t + +corner_num +the corner to set the color for + +red +red component of color + +green +green component of color + +blue +blue component of color + + +Since: 1.12 + +cairo_mesh_pattern_set_corner_color_rgba () +cairo_mesh_pattern_set_corner_color_rgba +void +cairo_mesh_pattern_set_corner_color_rgba + (cairo_pattern_t *pattern, + unsigned int corner_num, + double red, + double green, + double blue, + double alpha); +Sets the color of a corner of the current patch in a mesh pattern. +The color is specified in the same way as in cairo_set_source_rgba(). +Valid values for corner_num + are from 0 to 3 and identify the +corners as explained in cairo_pattern_create_mesh(). +Note: If pattern + is not a mesh pattern then pattern + will be put +into an error status with a status of +CAIRO_STATUS_PATTERN_TYPE_MISMATCH. If corner_num + is not valid, +pattern + will be put into an error status with a status of +CAIRO_STATUS_INVALID_INDEX. If pattern + has no current patch, +pattern + will be put into an error status with a status of +CAIRO_STATUS_INVALID_MESH_CONSTRUCTION. + +Parameters + + + + + + +pattern +a cairo_pattern_t + +corner_num +the corner to set the color for + +red +red component of color + +green +green component of color + +blue +blue component of color + +alpha +alpha component of color + + +Since: 1.12 + +cairo_mesh_pattern_get_patch_count () +cairo_mesh_pattern_get_patch_count +cairo_status_t +cairo_mesh_pattern_get_patch_count (cairo_pattern_t *pattern, + unsigned int *count); +Gets the number of patches specified in the given mesh pattern. +The number only includes patches which have been finished by +calling cairo_mesh_pattern_end_patch(). For example it will be 0 +during the definition of the first patch. + +Parameters + + + + + + +pattern +a cairo_pattern_t + +count +return value for the number patches, or NULL + + + +Returns + CAIRO_STATUS_SUCCESS, or +CAIRO_STATUS_PATTERN_TYPE_MISMATCH if pattern +is not a mesh +pattern. +Since: 1.12 + +cairo_mesh_pattern_get_path () +cairo_mesh_pattern_get_path +cairo_path_t * +cairo_mesh_pattern_get_path (cairo_pattern_t *pattern, + unsigned int patch_num); +Gets path defining the patch patch_num + for a mesh +pattern. +patch_num + can range from 0 to n-1 where n is the number returned by +cairo_mesh_pattern_get_patch_count(). + +Parameters + + + + + + +pattern +a cairo_pattern_t + +patch_num +the patch number to return data for + + + +Returns + the path defining the patch, or a path with status +CAIRO_STATUS_INVALID_INDEX if patch_num +or point_num +is not +valid for pattern +. If pattern +is not a mesh pattern, a path with +status CAIRO_STATUS_PATTERN_TYPE_MISMATCH is returned. +Since: 1.12 + +cairo_mesh_pattern_get_control_point () +cairo_mesh_pattern_get_control_point +cairo_status_t +cairo_mesh_pattern_get_control_point (cairo_pattern_t *pattern, + unsigned int patch_num, + unsigned int point_num, + double *x, + double *y); +Gets the control point point_num + of patch patch_num + for a mesh +pattern. +patch_num + can range from 0 to n-1 where n is the number returned by +cairo_mesh_pattern_get_patch_count(). +Valid values for point_num + are from 0 to 3 and identify the +control points as explained in cairo_pattern_create_mesh(). + +Parameters + + + + + + +pattern +a cairo_pattern_t + +patch_num +the patch number to return data for + +point_num +the control point number to return data for + +x +return value for the x coordinate of the control point, or NULL + +y +return value for the y coordinate of the control point, or NULL + + + +Returns + CAIRO_STATUS_SUCCESS, or CAIRO_STATUS_INVALID_INDEX +if patch_num +or point_num +is not valid for pattern +. If pattern +is not a mesh pattern, CAIRO_STATUS_PATTERN_TYPE_MISMATCH is +returned. +Since: 1.12 + +cairo_mesh_pattern_get_corner_color_rgba () +cairo_mesh_pattern_get_corner_color_rgba +cairo_status_t +cairo_mesh_pattern_get_corner_color_rgba + (cairo_pattern_t *pattern, + unsigned int patch_num, + unsigned int corner_num, + double *red, + double *green, + double *blue, + double *alpha); +Gets the color information in corner corner_num + of patch +patch_num + for a mesh pattern. +patch_num + can range from 0 to n-1 where n is the number returned by +cairo_mesh_pattern_get_patch_count(). +Valid values for corner_num + are from 0 to 3 and identify the +corners as explained in cairo_pattern_create_mesh(). + +Parameters + + + + + + +pattern +a cairo_pattern_t + +patch_num +the patch number to return data for + +corner_num +the corner number to return data for + +red +return value for red component of color, or NULL + +green +return value for green component of color, or NULL + +blue +return value for blue component of color, or NULL + +alpha +return value for alpha component of color, or NULL + + + +Returns + CAIRO_STATUS_SUCCESS, or CAIRO_STATUS_INVALID_INDEX +if patch_num +or corner_num +is not valid for pattern +. If +pattern +is not a mesh pattern, CAIRO_STATUS_PATTERN_TYPE_MISMATCH +is returned. +Since: 1.12 + +cairo_pattern_reference () +cairo_pattern_reference +cairo_pattern_t * +cairo_pattern_reference (cairo_pattern_t *pattern); +Increases the reference count on pattern + by one. This prevents +pattern + from being destroyed until a matching call to +cairo_pattern_destroy() is made. +Use cairo_pattern_get_reference_count() to get the number of +references to a cairo_pattern_t. + +Parameters + + + + + + +pattern +a cairo_pattern_t + + + +Returns + the referenced cairo_pattern_t. +Since: 1.0 + +cairo_pattern_destroy () +cairo_pattern_destroy +void +cairo_pattern_destroy (cairo_pattern_t *pattern); +Decreases the reference count on pattern + by one. If the result is +zero, then pattern + and all associated resources are freed. See +cairo_pattern_reference(). + +Parameters + + + + + + +pattern +a cairo_pattern_t + + +Since: 1.0 + +cairo_pattern_status () +cairo_pattern_status +cairo_status_t +cairo_pattern_status (cairo_pattern_t *pattern); +Checks whether an error has previously occurred for this +pattern. + +Parameters + + + + + + +pattern +a cairo_pattern_t + + + +Returns + CAIRO_STATUS_SUCCESS, CAIRO_STATUS_NO_MEMORY, +CAIRO_STATUS_INVALID_MATRIX, CAIRO_STATUS_PATTERN_TYPE_MISMATCH, +or CAIRO_STATUS_INVALID_MESH_CONSTRUCTION. +Since: 1.0 + +cairo_pattern_set_extend () +cairo_pattern_set_extend +void +cairo_pattern_set_extend (cairo_pattern_t *pattern, + cairo_extend_t extend); +Sets the mode to be used for drawing outside the area of a pattern. +See cairo_extend_t for details on the semantics of each extend +strategy. +The default extend mode is CAIRO_EXTEND_NONE for surface patterns +and CAIRO_EXTEND_PAD for gradient patterns. + +Parameters + + + + + + +pattern +a cairo_pattern_t + +extend +a cairo_extend_t describing how the area outside of the +pattern will be drawn + + +Since: 1.0 + +cairo_pattern_get_extend () +cairo_pattern_get_extend +cairo_extend_t +cairo_pattern_get_extend (cairo_pattern_t *pattern); +Gets the current extend mode for a pattern. See cairo_extend_t +for details on the semantics of each extend strategy. + +Parameters + + + + + + +pattern +a cairo_pattern_t + + + +Returns + the current extend strategy used for drawing the +pattern. +Since: 1.0 + +cairo_pattern_set_filter () +cairo_pattern_set_filter +void +cairo_pattern_set_filter (cairo_pattern_t *pattern, + cairo_filter_t filter); +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: + + + +cairo_set_source_surface (cr, image, x, y); +cairo_pattern_set_filter (cairo_get_source (cr), CAIRO_FILTER_NEAREST); + + +Parameters + + + + + + +pattern +a cairo_pattern_t + +filter +a cairo_filter_t describing the filter to use for resizing +the pattern + + +Since: 1.0 + +cairo_pattern_get_filter () +cairo_pattern_get_filter +cairo_filter_t +cairo_pattern_get_filter (cairo_pattern_t *pattern); +Gets the current filter for a pattern. See cairo_filter_t +for details on each filter. + +Parameters + + + + + + +pattern +a cairo_pattern_t + + + +Returns + the current filter used for resizing the pattern. +Since: 1.0 + +cairo_pattern_set_matrix () +cairo_pattern_set_matrix +void +cairo_pattern_set_matrix (cairo_pattern_t *pattern, + const cairo_matrix_t *matrix); +Sets the pattern's transformation matrix to matrix +. This matrix is +a transformation from user space to pattern space. +When a pattern is first created it always has the identity matrix +for its transformation matrix, which means that pattern space is +initially identical to user space. +Important: Please note that the direction of this transformation +matrix is from user space to pattern space. This means that if you +imagine the flow from a pattern to user space (and on to device +space), then coordinates in that flow will be transformed by the +inverse of the pattern matrix. +For example, if you want to make a pattern appear twice as large as +it does by default the correct code to use is: + +cairo_matrix_init_scale (&matrix, 0.5, 0.5); +cairo_pattern_set_matrix (pattern, &matrix); + +Meanwhile, using values of 2.0 rather than 0.5 in the code above +would cause the pattern to appear at half of its default size. +Also, please note the discussion of the user-space locking +semantics of cairo_set_source(). + +Parameters + + + + + + +pattern +a cairo_pattern_t + +matrix +a cairo_matrix_t + + +Since: 1.0 + +cairo_pattern_get_matrix () +cairo_pattern_get_matrix +void +cairo_pattern_get_matrix (cairo_pattern_t *pattern, + cairo_matrix_t *matrix); +Stores the pattern's transformation matrix into matrix +. + +Parameters + + + + + + +pattern +a cairo_pattern_t + +matrix +return value for the matrix + + +Since: 1.0 + +cairo_pattern_get_type () +cairo_pattern_get_type +cairo_pattern_type_t +cairo_pattern_get_type (cairo_pattern_t *pattern); +Get the pattern's type. See cairo_pattern_type_t for available +types. + +Parameters + + + + + + +pattern +a cairo_pattern_t + + + +Returns + The type of pattern +. +Since: 1.2 + +cairo_pattern_get_reference_count () +cairo_pattern_get_reference_count +unsigned int +cairo_pattern_get_reference_count (cairo_pattern_t *pattern); +Returns the current reference count of pattern +. + +Parameters + + + + + + +pattern +a cairo_pattern_t + + + +Returns + the current reference count of pattern +. If the +object is a nil object, 0 will be returned. +Since: 1.4 + +cairo_pattern_set_user_data () +cairo_pattern_set_user_data +cairo_status_t +cairo_pattern_set_user_data (cairo_pattern_t *pattern, + const cairo_user_data_key_t *key, + void *user_data, + cairo_destroy_func_t destroy); +Attach user data to pattern +. To remove user data from a surface, +call this function with the key that was used to set it and NULL +for data +. + +Parameters + + + + + + +pattern +a cairo_pattern_t + +key +the address of a cairo_user_data_key_t to attach the user data to + +user_data +the user data to attach to the cairo_pattern_t + +destroy +a cairo_destroy_func_t which will be called when the +cairo_t is destroyed or when new user data is attached using the +same key. + + + +Returns + CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY if a +slot could not be allocated for the user data. +Since: 1.4 + +cairo_pattern_get_user_data () +cairo_pattern_get_user_data +void * +cairo_pattern_get_user_data (cairo_pattern_t *pattern, + const cairo_user_data_key_t *key); +Return user data previously attached to pattern + using the +specified key. If no user data has been attached with the given +key this function returns NULL. + +Parameters + + + + + + +pattern +a cairo_pattern_t + +key +the address of the cairo_user_data_key_t the user data was +attached to + + + +Returns + the user data previously attached or NULL. +Since: 1.4 + + + +Types and Values + +cairo_pattern_t +cairo_pattern_t +typedef struct _cairo_pattern cairo_pattern_t; + +A cairo_pattern_t represents a source when drawing onto a +surface. There are different subtypes of cairo_pattern_t, +for different types of sources; for example, +cairo_pattern_create_rgb() creates a pattern for a solid +opaque color. +Other than various +cairo_pattern_create_type() +functions, some of the pattern types can be implicitly created using various +cairo_set_source_type() functions; +for example cairo_set_source_rgb(). +The type of a pattern can be queried with cairo_pattern_get_type(). +Memory management of cairo_pattern_t is done with +cairo_pattern_reference() and cairo_pattern_destroy(). +Since: 1.0 + +enum cairo_extend_t +cairo_extend_t +cairo_extend_t is used to describe how pattern color/alpha will be +determined for areas "outside" the pattern's natural area, (for +example, outside the surface bounds or outside the gradient +geometry). +Mesh patterns are not affected by the extend mode. +The default extend mode is CAIRO_EXTEND_NONE for surface patterns +and CAIRO_EXTEND_PAD for gradient patterns. +New entries may be added in future versions. + +Members + + + + + + +CAIRO_EXTEND_NONE +pixels outside of the source pattern + are fully transparent (Since 1.0) + + + +CAIRO_EXTEND_REPEAT +the pattern is tiled by repeating (Since 1.0) + + + +CAIRO_EXTEND_REFLECT +the pattern is tiled by reflecting + at the edges (Since 1.0; but only implemented for surface patterns since 1.6) + + + +CAIRO_EXTEND_PAD +pixels outside of the pattern copy + the closest pixel from the source (Since 1.2; but only + implemented for surface patterns since 1.6) + + + + +Since: 1.0 + +enum cairo_filter_t +cairo_filter_t +cairo_filter_t is used to indicate what filtering should be +applied when reading pixel values from patterns. See +cairo_pattern_set_filter() for indicating the desired filter to be +used with a particular pattern. + +Members + + + + + + +CAIRO_FILTER_FAST +A high-performance filter, with quality similar + to CAIRO_FILTER_NEAREST (Since 1.0) + + + +CAIRO_FILTER_GOOD +A reasonable-performance filter, with quality + similar to CAIRO_FILTER_BILINEAR (Since 1.0) + + + +CAIRO_FILTER_BEST +The highest-quality available, performance may + not be suitable for interactive use. (Since 1.0) + + + +CAIRO_FILTER_NEAREST +Nearest-neighbor filtering (Since 1.0) + + + +CAIRO_FILTER_BILINEAR +Linear interpolation in two dimensions (Since 1.0) + + + +CAIRO_FILTER_GAUSSIAN +This filter value is currently + unimplemented, and should not be used in current code. (Since 1.0) + + + + +Since: 1.0 + +enum cairo_pattern_type_t +cairo_pattern_type_t +cairo_pattern_type_t is used to describe the type of a given pattern. +The type of a pattern is determined by the function used to create +it. The cairo_pattern_create_rgb() and cairo_pattern_create_rgba() +functions create SOLID patterns. The remaining +cairo_pattern_create functions map to pattern types in obvious +ways. +The pattern type can be queried with cairo_pattern_get_type() +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 +cairo_pattern_add_color_stop_rgba() which must only be called with +gradient patterns (either LINEAR or RADIAL). Otherwise the pattern +will be shutdown and put into an error state. +New entries may be added in future versions. + +Members + + + + + + +CAIRO_PATTERN_TYPE_SOLID +The pattern is a solid (uniform) +color. It may be opaque or translucent, since 1.2. + + + +CAIRO_PATTERN_TYPE_SURFACE +The pattern is a based on a surface (an image), since 1.2. + + + +CAIRO_PATTERN_TYPE_LINEAR +The pattern is a linear gradient, since 1.2. + + + +CAIRO_PATTERN_TYPE_RADIAL +The pattern is a radial gradient, since 1.2. + + + +CAIRO_PATTERN_TYPE_MESH +The pattern is a mesh, since 1.12. + + + +CAIRO_PATTERN_TYPE_RASTER_SOURCE +The pattern is a user pattern providing raster data, since 1.12. + + + + +Since: 1.2 + + + +See Also +cairo_t, cairo_surface_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-pdf.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-pdf.xml new file mode 100644 index 0000000..c0c5b8e --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-pdf.xml @@ -0,0 +1,595 @@ + + +]> + + +PDF Surfaces +3 +CAIRO Library + + +PDF Surfaces +Rendering PDF documents + + + +Functions + + + + + +cairo_surface_t * +cairo_pdf_surface_create () +cairo_surface_t * +cairo_pdf_surface_create_for_stream () +void +cairo_pdf_surface_restrict_to_version () +void +cairo_pdf_get_versions () +const char * +cairo_pdf_version_to_string () +void +cairo_pdf_surface_set_size () +int +cairo_pdf_surface_add_outline () +void +cairo_pdf_surface_set_metadata () +void +cairo_pdf_surface_set_page_label () +void +cairo_pdf_surface_set_thumbnail_size () + + + + + + +Types and Values + + + + + +#defineCAIRO_HAS_PDF_SURFACE +#defineCAIRO_PDF_OUTLINE_ROOT +enumcairo_pdf_outline_flags_t +enumcairo_pdf_metadata_t +enumcairo_pdf_version_t + + + + + + + + +Description +The PDF surface is used to render cairo graphics to Adobe +PDF files and is a multi-page vector surface backend. +The following mime types are supported: CAIRO_MIME_TYPE_JPEG, +CAIRO_MIME_TYPE_JP2, CAIRO_MIME_TYPE_UNIQUE_ID, +CAIRO_MIME_TYPE_JBIG2, CAIRO_MIME_TYPE_JBIG2_GLOBAL, +CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID, +CAIRO_MIME_TYPE_CCITT_FAX, CAIRO_MIME_TYPE_CCITT_FAX_PARAMS. +JBIG2 ImagesJBIG2 data in PDF must be in the embedded format as described in +ISO/IEC 11544. Image specific JBIG2 data must be in +CAIRO_MIME_TYPE_JBIG2. Any global segments in the JBIG2 data +(segments with page association field set to 0) must be in +CAIRO_MIME_TYPE_JBIG2_GLOBAL. The global data may be shared by +multiple images. All images sharing the same global data must set +CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID to a unique identifier. At least +one of the images must provide the global data using +CAIRO_MIME_TYPE_JBIG2_GLOBAL. The global data will only be +embedded once and shared by all JBIG2 images with the same +CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID. + +CCITT Fax ImagesThe CAIRO_MIME_TYPE_CCITT_FAX mime data requires a number of decoding +parameters These parameters are specified using CAIRO_MIME_TYPE_CCITT_FAX_PARAMS. +CAIRO_MIME_TYPE_CCITT_FAX_PARAMS mime data must contain a string of the form +"param1=value1 param2=value2 ...". +Columns +: [required] An integer specifying the width of the image in pixels. +Rows +: [required] An integer specifying the height of the image in scan lines. +K +: [optional] An integer identifying the encoding scheme used. < 0 +is 2 dimensional Group 4, = 0 is Group3 1 dimensional, > 0 is mixed 1 +and 2 dimensional encoding. Default is 0. +EndOfLine +: [optional] If true end-of-line bit patterns are present. Default is false. +EncodedByteAlign +: [optional] If true the end of line is padded +with 0 bits so the next line begins on a byte boundary. Default is false. +EndOfBlock +: [optional] If true the data contains an end-of-block pattern. Default is true. +BlackIs1 +: [optional] If true 1 bits are black pixels. Default is false. +DamagedRowsBeforeError +: [optional] An integer specifying the +number of damages rows tolerated before an error occurs. Default is 0. +Boolean values may be "true" or "false", or 1 or 0. +These parameters are the same as the CCITTFaxDecode parameters in the +PostScript Language Reference +and Portable Document Format (PDF). +Refer to these documents for further details. +An example CAIRO_MIME_TYPE_CCITT_FAX_PARAMS string is: + +"Columns=10230 Rows=40000 K=1 EndOfLine=true EncodedByteAlign=1 BlackIs1=false" + + + + + +Functions + +cairo_pdf_surface_create () +cairo_pdf_surface_create +cairo_surface_t * +cairo_pdf_surface_create (const char *filename, + double width_in_points, + double height_in_points); +Creates a PDF surface of the specified size in points to be written +to filename +. + +Parameters + + + + + + +filename +a filename for the PDF output (must be writable), NULL may be +used to specify no output. This will generate a PDF surface that +may be queried and used as a source, without generating a +temporary file. + +width_in_points +width of the surface, in points (1 point == 1/72.0 inch) + +height_in_points +height of the surface, in points (1 point == 1/72.0 inch) + + + +Returns + a pointer to the newly created surface. The caller +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. +Since: 1.2 + +cairo_pdf_surface_create_for_stream () +cairo_pdf_surface_create_for_stream +cairo_surface_t * +cairo_pdf_surface_create_for_stream (cairo_write_func_t write_func, + void *closure, + double width_in_points, + double height_in_points); +Creates a PDF surface of the specified size in points to be written +incrementally to the stream represented by write_func + and closure +. + +Parameters + + + + + + +write_func +a cairo_write_func_t to accept the output data, may be NULL +to indicate a no-op write_func +. With a no-op write_func +, +the surface may be queried or used as a source without +generating any temporary files. + +closure +the closure argument for write_func + + +width_in_points +width of the surface, in points (1 point == 1/72.0 inch) + +height_in_points +height of the surface, in points (1 point == 1/72.0 inch) + + + +Returns + a pointer to the newly created surface. The caller +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. +Since: 1.2 + +cairo_pdf_surface_restrict_to_version () +cairo_pdf_surface_restrict_to_version +void +cairo_pdf_surface_restrict_to_version (cairo_surface_t *surface, + cairo_pdf_version_t version); +Restricts the generated PDF file to version +. See cairo_pdf_get_versions() +for a list of available version values that can be used here. +This function should only be called before any drawing operations +have been performed on the given surface. The simplest way to do +this is to call this function immediately after creating the +surface. + +Parameters + + + + + + +surface +a PDF cairo_surface_t + +version +PDF version + + +Since: 1.10 + +cairo_pdf_get_versions () +cairo_pdf_get_versions +void +cairo_pdf_get_versions (cairo_pdf_version_t const **versions, + int *num_versions); +Used to retrieve the list of supported versions. See +cairo_pdf_surface_restrict_to_version(). + +Parameters + + + + + + +versions +supported version list + +num_versions +list length + + +Since: 1.10 + +cairo_pdf_version_to_string () +cairo_pdf_version_to_string +const char * +cairo_pdf_version_to_string (cairo_pdf_version_t version); +Get the string representation of the given version + id. This function +will return NULL if version + isn't valid. See cairo_pdf_get_versions() +for a way to get the list of valid version ids. + +Parameters + + + + + + +version +a version id + + + +Returns + the string associated to given version. +Since: 1.10 + +cairo_pdf_surface_set_size () +cairo_pdf_surface_set_size +void +cairo_pdf_surface_set_size (cairo_surface_t *surface, + double width_in_points, + double height_in_points); +Changes the size of a PDF surface for the current (and +subsequent) pages. +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 or immediately after completing a page with either +cairo_show_page() or cairo_copy_page(). + +Parameters + + + + + + +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) + + +Since: 1.2 + +cairo_pdf_surface_add_outline () +cairo_pdf_surface_add_outline +int +cairo_pdf_surface_add_outline (cairo_surface_t *surface, + int parent_id, + const char *utf8, + const char *link_attribs, + cairo_pdf_outline_flags_t flags); +Add an item to the document outline hierarchy with the name utf8 + +that links to the location specified by link_attribs +. Link +attributes have the same keys and values as the Link Tag, +excluding the "rect" attribute. The item will be a child of the +item with id parent_id +. Use CAIRO_PDF_OUTLINE_ROOT as the parent +id of top level items. + +Parameters + + + + + + +surface +a PDF cairo_surface_t + +parent_id +the id of the parent item or CAIRO_PDF_OUTLINE_ROOT if this is a top level item. + +utf8 +the name of the outline + +link_attribs +the link attributes specifying where this outline links to + +flags +outline item flags + + + +Returns + the id for the added item. +Since: 1.16 + +cairo_pdf_surface_set_metadata () +cairo_pdf_surface_set_metadata +void +cairo_pdf_surface_set_metadata (cairo_surface_t *surface, + cairo_pdf_metadata_t metadata, + const char *utf8); +Set document metadata. The CAIRO_PDF_METADATA_CREATE_DATE and +CAIRO_PDF_METADATA_MOD_DATE values must be in ISO-8601 format: +YYYY-MM-DDThh:mm:ss. An optional timezone of the form "[+/-]hh:mm" +or "Z" for UTC time can be appended. All other metadata values can be any UTF-8 +string. +For example: + +cairo_pdf_surface_set_metadata (surface, CAIRO_PDF_METADATA_TITLE, "My Document"); +cairo_pdf_surface_set_metadata (surface, CAIRO_PDF_METADATA_CREATE_DATE, "2015-12-31T23:59+02:00"); + + +Parameters + + + + + + +surface +a PDF cairo_surface_t + +metadata +The metadata item to set. + +utf8 +metadata value + + +Since: 1.16 + +cairo_pdf_surface_set_page_label () +cairo_pdf_surface_set_page_label +void +cairo_pdf_surface_set_page_label (cairo_surface_t *surface, + const char *utf8); +Set page label for the current page. + +Parameters + + + + + + +surface +a PDF cairo_surface_t + +utf8 +The page label. + + +Since: 1.16 + +cairo_pdf_surface_set_thumbnail_size () +cairo_pdf_surface_set_thumbnail_size +void +cairo_pdf_surface_set_thumbnail_size (cairo_surface_t *surface, + int width, + int height); +Set the thumbnail image size for the current and all subsequent +pages. Setting a width or height of 0 disables thumbnails for the +current and subsequent pages. + +Parameters + + + + + + +surface +a PDF cairo_surface_t + +width +Thumbnail width. + +height +Thumbnail height + + +Since: 1.16 + + + +Types and Values + +CAIRO_HAS_PDF_SURFACE +CAIRO_HAS_PDF_SURFACE +#define CAIRO_HAS_PDF_SURFACE 1 + +Defined if the PDF surface backend is available. +This macro can be used to conditionally compile backend-specific code. +Since: 1.2 + +CAIRO_PDF_OUTLINE_ROOT +CAIRO_PDF_OUTLINE_ROOT +#define CAIRO_PDF_OUTLINE_ROOT 0 + +The root outline item in cairo_pdf_surface_add_outline(). +Since: 1.16 + +enum cairo_pdf_outline_flags_t +cairo_pdf_outline_flags_t +cairo_pdf_outline_flags_t is used by the +cairo_pdf_surface_add_outline() function specify the attributes of +an outline item. These flags may be bitwise-or'd to produce any +combination of flags. + +Members + + + + + + +CAIRO_PDF_OUTLINE_FLAG_OPEN +The outline item defaults to open in the PDF viewer (Since 1.16) + + + +CAIRO_PDF_OUTLINE_FLAG_BOLD +The outline item is displayed by the viewer in bold text (Since 1.16) + + + +CAIRO_PDF_OUTLINE_FLAG_ITALIC +The outline item is displayed by the viewer in italic text (Since 1.16) + + + + +Since: 1.16 + +enum cairo_pdf_metadata_t +cairo_pdf_metadata_t +cairo_pdf_metadata_t is used by the +cairo_pdf_surface_set_metadata() function specify the metadata to set. + +Members + + + + + + +CAIRO_PDF_METADATA_TITLE +The document title (Since 1.16) + + + +CAIRO_PDF_METADATA_AUTHOR +The document author (Since 1.16) + + + +CAIRO_PDF_METADATA_SUBJECT +The document subject (Since 1.16) + + + +CAIRO_PDF_METADATA_KEYWORDS +The document keywords (Since 1.16) + + + +CAIRO_PDF_METADATA_CREATOR +The document creator (Since 1.16) + + + +CAIRO_PDF_METADATA_CREATE_DATE +The document creation date (Since 1.16) + + + +CAIRO_PDF_METADATA_MOD_DATE +The document modification date (Since 1.16) + + + + +Since: 1.16 + +enum cairo_pdf_version_t +cairo_pdf_version_t +cairo_pdf_version_t is used to describe the version number of the PDF +specification that a generated PDF file will conform to. + +Members + + + + + + +CAIRO_PDF_VERSION_1_4 +The version 1.4 of the PDF specification. (Since 1.10) + + + +CAIRO_PDF_VERSION_1_5 +The version 1.5 of the PDF specification. (Since 1.10) + + + + +Since: 1.10 + + + +See Also +cairo_surface_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-png.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-png.xml new file mode 100644 index 0000000..d8a1ea7 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-png.xml @@ -0,0 +1,309 @@ + + +]> + + +PNG Support +3 +CAIRO Library + + +PNG Support +Reading and writing PNG images + + + +Functions + + + + + +cairo_surface_t * +cairo_image_surface_create_from_png () +cairo_status_t +(*cairo_read_func_t) () +cairo_surface_t * +cairo_image_surface_create_from_png_stream () +cairo_status_t +cairo_surface_write_to_png () +cairo_status_t +(*cairo_write_func_t) () +cairo_status_t +cairo_surface_write_to_png_stream () + + + + + + +Types and Values + + + + + +#defineCAIRO_HAS_PNG_FUNCTIONS + + + + + + + + +Description +The PNG functions allow reading PNG images into image surfaces, and writing +any surface to a PNG file. +It is a toy API. It only offers very simple support for reading and +writing PNG files, which is sufficient for testing and +demonstration purposes. Applications which need more control over +the generated PNG file should access the pixel data directly, using +cairo_image_surface_get_data() or a backend-specific access +function, and process it with another library, e.g. gdk-pixbuf or +libpng. + + + +Functions + +cairo_image_surface_create_from_png () +cairo_image_surface_create_from_png +cairo_surface_t * +cairo_image_surface_create_from_png (const char *filename); +Creates a new image surface and initializes the contents to the +given PNG file. + +Parameters + + + + + + +filename +name of PNG file to load. On Windows this filename +is encoded in UTF-8. + + + +Returns + a new cairo_surface_t initialized with the contents +of the PNG file, or a "nil" surface if any error occurred. A nil +surface can be checked for with cairo_surface_status(surface) which +may return one of the following values: +CAIRO_STATUS_NO_MEMORY +CAIRO_STATUS_FILE_NOT_FOUND +CAIRO_STATUS_READ_ERROR +CAIRO_STATUS_PNG_ERROR +Alternatively, you can allow errors to propagate through the drawing +operations and check the status on the context upon completion +using cairo_status(). +Since: 1.0 + +cairo_read_func_t () +cairo_read_func_t +cairo_status_t +(*cairo_read_func_t) (void *closure, + unsigned char *data, + unsigned int length); +cairo_read_func_t is the type of function which is called when a +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 +CAIRO_STATUS_SUCCESS if all the data was successfully read, +CAIRO_STATUS_READ_ERROR otherwise. + +Parameters + + + + + + +closure +the input closure + +data +the buffer into which to read the data + +length +the amount of data to read + + + +Returns + the status code of the read operation +Since: 1.0 + +cairo_image_surface_create_from_png_stream () +cairo_image_surface_create_from_png_stream +cairo_surface_t * +cairo_image_surface_create_from_png_stream + (cairo_read_func_t read_func, + void *closure); +Creates a new image surface from PNG data read incrementally +via the read_func + function. + +Parameters + + + + + + +read_func +function called to read the data of the file + +closure +data to pass to read_func +. + + + +Returns + a new cairo_surface_t initialized with the contents +of the PNG file or a "nil" surface if the data read is not a valid PNG image +or memory could not be allocated for the operation. A nil +surface can be checked for with cairo_surface_status(surface) which +may return one of the following values: +CAIRO_STATUS_NO_MEMORY +CAIRO_STATUS_READ_ERROR +CAIRO_STATUS_PNG_ERROR +Alternatively, you can allow errors to propagate through the drawing +operations and check the status on the context upon completion +using cairo_status(). +Since: 1.0 + +cairo_surface_write_to_png () +cairo_surface_write_to_png +cairo_status_t +cairo_surface_write_to_png (cairo_surface_t *surface, + const char *filename); +Writes the contents of surface + to a new file filename + as a PNG +image. + +Parameters + + + + + + +surface +a cairo_surface_t with pixel contents + +filename +the name of a file to write to; on Windows this filename +is encoded in UTF-8. + + + +Returns + 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 +while attempting to write the file, or CAIRO_STATUS_PNG_ERROR if libpng +returned an error. +Since: 1.0 + +cairo_write_func_t () +cairo_write_func_t +cairo_status_t +(*cairo_write_func_t) (void *closure, + const unsigned char *data, + unsigned int length); +cairo_write_func_t is the type of function which is called when a +backend needs to write data to an output stream. It is passed the +closure which was specified by the user at the time the write +function was registered, the data to write and the length of the +data in bytes. The write function should return +CAIRO_STATUS_SUCCESS if all the data was successfully written, +CAIRO_STATUS_WRITE_ERROR otherwise. + +Parameters + + + + + + +closure +the output closure + +data +the buffer containing the data to write + +length +the amount of data to write + + + +Returns + the status code of the write operation +Since: 1.0 + +cairo_surface_write_to_png_stream () +cairo_surface_write_to_png_stream +cairo_status_t +cairo_surface_write_to_png_stream (cairo_surface_t *surface, + cairo_write_func_t write_func, + void *closure); +Writes the image surface to the write function. + +Parameters + + + + + + +surface +a cairo_surface_t with pixel contents + +write_func +a cairo_write_func_t + +closure +closure data for the write function + + + +Returns + 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, or CAIRO_STATUS_PNG_ERROR if libpng +returned an error. +Since: 1.0 + + + +Types and Values + +CAIRO_HAS_PNG_FUNCTIONS +CAIRO_HAS_PNG_FUNCTIONS +#define CAIRO_HAS_PNG_FUNCTIONS 1 + +Defined if the PNG functions are available. +This macro can be used to conditionally compile code using the cairo +PNG functions. +Since: 1.0 + + + +See Also +cairo_surface_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-ps.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-ps.xml new file mode 100644 index 0000000..3a73d7f --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-ps.xml @@ -0,0 +1,548 @@ + + +]> + + +PostScript Surfaces +3 +CAIRO Library + + +PostScript Surfaces +Rendering PostScript documents + + + +Functions + + + + + +cairo_surface_t * +cairo_ps_surface_create () +cairo_surface_t * +cairo_ps_surface_create_for_stream () +void +cairo_ps_surface_restrict_to_level () +void +cairo_ps_get_levels () +const char * +cairo_ps_level_to_string () +void +cairo_ps_surface_set_eps () +cairo_bool_t +cairo_ps_surface_get_eps () +void +cairo_ps_surface_set_size () +void +cairo_ps_surface_dsc_begin_setup () +void +cairo_ps_surface_dsc_begin_page_setup () +void +cairo_ps_surface_dsc_comment () + + + + + + +Types and Values + + + + + +#defineCAIRO_HAS_PS_SURFACE +enumcairo_ps_level_t + + + + + + + + +Description +The PostScript surface is used to render cairo graphics to Adobe +PostScript files and is a multi-page vector surface backend. +The following mime types are supported: CAIRO_MIME_TYPE_JPEG, +CAIRO_MIME_TYPE_UNIQUE_ID, +CAIRO_MIME_TYPE_CCITT_FAX, CAIRO_MIME_TYPE_CCITT_FAX_PARAMS, +CAIRO_MIME_TYPE_CCITT_FAX, CAIRO_MIME_TYPE_CCITT_FAX_PARAMS, +CAIRO_MIME_TYPE_EPS, CAIRO_MIME_TYPE_EPS_PARAMS. +Source surfaces used by the PostScript surface that have a +CAIRO_MIME_TYPE_UNIQUE_ID mime type will be stored in PostScript +printer memory for the duration of the print +job. CAIRO_MIME_TYPE_UNIQUE_ID should only be used for small +frequently used sources. +The CAIRO_MIME_TYPE_CCITT_FAX and CAIRO_MIME_TYPE_CCITT_FAX_PARAMS mime types +are documented in CCITT Fax Images. +Embedding EPS filesEncapsulated PostScript files can be embedded in the PS output by +setting the CAIRO_MIME_TYPE_EPS mime data on a surface to the EPS +data and painting the surface. The EPS will be scaled and +translated to the extents of the surface the EPS data is attached +to. +The CAIRO_MIME_TYPE_EPS mime type requires the +CAIRO_MIME_TYPE_EPS_PARAMS mime data to also be provided in order +to specify the embeddding parameters. CAIRO_MIME_TYPE_EPS_PARAMS +mime data must contain a string of the form "bbox=[llx lly urx +ury]" that specifies the bounding box (in PS coordinates) of the +EPS graphics. The parameters are: lower left x, lower left y, upper +right x, upper right y. Normally the bbox data is identical to the +%%BoundingBox data in the EPS file. + + + + +Functions + +cairo_ps_surface_create () +cairo_ps_surface_create +cairo_surface_t * +cairo_ps_surface_create (const char *filename, + double width_in_points, + double height_in_points); +Creates a PostScript surface of the specified size in points to be +written to filename +. See cairo_ps_surface_create_for_stream() for +a more flexible mechanism for handling the PostScript output than +simply writing it to a named file. +Note that the size of individual pages of the PostScript output can +vary. See cairo_ps_surface_set_size(). + +Parameters + + + + + + +filename +a filename for the PS output (must be writable), NULL may be +used to specify no output. This will generate a PS surface that +may be queried and used as a source, without generating a +temporary file. + +width_in_points +width of the surface, in points (1 point == 1/72.0 inch) + +height_in_points +height of the surface, in points (1 point == 1/72.0 inch) + + + +Returns + a pointer to the newly created surface. The caller +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. +Since: 1.2 + +cairo_ps_surface_create_for_stream () +cairo_ps_surface_create_for_stream +cairo_surface_t * +cairo_ps_surface_create_for_stream (cairo_write_func_t write_func, + void *closure, + double width_in_points, + double height_in_points); +Creates a PostScript surface of the specified size in points to be +written incrementally to the stream represented by write_func + and +closure +. See cairo_ps_surface_create() for a more convenient way +to simply direct the PostScript output to a named file. +Note that the size of individual pages of the PostScript +output can vary. See cairo_ps_surface_set_size(). + +Parameters + + + + + + +write_func +a cairo_write_func_t to accept the output data, may be NULL +to indicate a no-op write_func +. With a no-op write_func +, +the surface may be queried or used as a source without +generating any temporary files. + +closure +the closure argument for write_func + + +width_in_points +width of the surface, in points (1 point == 1/72.0 inch) + +height_in_points +height of the surface, in points (1 point == 1/72.0 inch) + + + +Returns + a pointer to the newly created surface. The caller +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. +Since: 1.2 + +cairo_ps_surface_restrict_to_level () +cairo_ps_surface_restrict_to_level +void +cairo_ps_surface_restrict_to_level (cairo_surface_t *surface, + cairo_ps_level_t level); +Restricts the generated PostSript file to level +. See +cairo_ps_get_levels() for a list of available level values that +can be used here. +This function should only be called before any drawing operations +have been performed on the given surface. The simplest way to do +this is to call this function immediately after creating the +surface. + +Parameters + + + + + + +surface +a PostScript cairo_surface_t + +level +PostScript level + + +Since: 1.6 + +cairo_ps_get_levels () +cairo_ps_get_levels +void +cairo_ps_get_levels (cairo_ps_level_t const **levels, + int *num_levels); +Used to retrieve the list of supported levels. See +cairo_ps_surface_restrict_to_level(). + +Parameters + + + + + + +levels +supported level list + +num_levels +list length + + +Since: 1.6 + +cairo_ps_level_to_string () +cairo_ps_level_to_string +const char * +cairo_ps_level_to_string (cairo_ps_level_t level); +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() +for a way to get the list of valid level ids. + +Parameters + + + + + + +level +a level id + + + +Returns + the string associated to given level. +Since: 1.6 + +cairo_ps_surface_set_eps () +cairo_ps_surface_set_eps +void +cairo_ps_surface_set_eps (cairo_surface_t *surface, + cairo_bool_t eps); +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 +than one page. + +Parameters + + + + + + +surface +a PostScript cairo_surface_t + +eps +TRUE to output EPS format PostScript + + +Since: 1.6 + +cairo_ps_surface_get_eps () +cairo_ps_surface_get_eps +cairo_bool_t +cairo_ps_surface_get_eps (cairo_surface_t *surface); +Check whether the PostScript surface will output Encapsulated PostScript. + +Parameters + + + + + + +surface +a PostScript cairo_surface_t + + + +Returns + TRUE if the surface will output Encapsulated PostScript. +Since: 1.6 + +cairo_ps_surface_set_size () +cairo_ps_surface_set_size +void +cairo_ps_surface_set_size (cairo_surface_t *surface, + double width_in_points, + double height_in_points); +Changes the size of a PostScript surface for the current (and +subsequent) pages. +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 or immediately after completing a page with either +cairo_show_page() or cairo_copy_page(). + +Parameters + + + + + + +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) + + +Since: 1.2 + +cairo_ps_surface_dsc_begin_setup () +cairo_ps_surface_dsc_begin_setup +void +cairo_ps_surface_dsc_begin_setup (cairo_surface_t *surface); +This function indicates that subsequent calls to +cairo_ps_surface_dsc_comment() should direct comments to the Setup +section of the PostScript output. +This function should be called at most once per surface, and must +be called before any call to cairo_ps_surface_dsc_begin_page_setup() +and before any drawing is performed to the surface. +See cairo_ps_surface_dsc_comment() for more details. + +Parameters + + + + + + +surface +a PostScript cairo_surface_t + + +Since: 1.2 + +cairo_ps_surface_dsc_begin_page_setup () +cairo_ps_surface_dsc_begin_page_setup +void +cairo_ps_surface_dsc_begin_page_setup (cairo_surface_t *surface); +This function indicates that subsequent calls to +cairo_ps_surface_dsc_comment() should direct comments to the +PageSetup section of the PostScript output. +This function call is only needed for the first page of a +surface. It should be called after any call to +cairo_ps_surface_dsc_begin_setup() and before any drawing is +performed to the surface. +See cairo_ps_surface_dsc_comment() for more details. + +Parameters + + + + + + +surface +a PostScript cairo_surface_t + + +Since: 1.2 + +cairo_ps_surface_dsc_comment () +cairo_ps_surface_dsc_comment +void +cairo_ps_surface_dsc_comment (cairo_surface_t *surface, + const char *comment); +Emit a comment into the PostScript output for the given surface. +The comment is expected to conform to the PostScript Language +Document Structuring Conventions (DSC). Please see that manual for +details on the available comments and their meanings. In +particular, the %%IncludeFeature comment allows a +device-independent means of controlling printer device features. So +the PostScript Printer Description Files Specification will also be +a useful reference. +The comment string must begin with a percent character (%) and the +total length of the string (including any initial percent +characters) must not exceed 255 characters. Violating either of +these conditions will place surface + into an error state. But +beyond these two conditions, this function will not enforce +conformance of the comment with any particular specification. +The comment string should not have a trailing newline. +The DSC specifies different sections in which particular comments +can appear. This function provides for comments to be emitted +within three sections: the header, the Setup section, and the +PageSetup section. Comments appearing in the first two sections +apply to the entire document while comments in the BeginPageSetup +section apply only to a single page. +For comments to appear in the header section, this function should +be called after the surface is created, but before a call to +cairo_ps_surface_dsc_begin_setup(). +For comments to appear in the Setup section, this function should +be called after a call to cairo_ps_surface_dsc_begin_setup() but +before a call to cairo_ps_surface_dsc_begin_page_setup(). +For comments to appear in the PageSetup section, this function +should be called after a call to +cairo_ps_surface_dsc_begin_page_setup(). +Note that it is only necessary to call +cairo_ps_surface_dsc_begin_page_setup() for the first page of any +surface. After a call to cairo_show_page() or cairo_copy_page() +comments are unambiguously directed to the PageSetup section of the +current page. But it doesn't hurt to call this function at the +beginning of every page as that consistency may make the calling +code simpler. +As a final note, cairo automatically generates several comments on +its own. As such, applications must not manually generate any of +the following comments: +Header section: %!PS-Adobe-3.0, %%Creator, %%CreationDate, %%Pages, +%%BoundingBox, %%DocumentData, %%LanguageLevel, %%EndComments. +Setup section: %%BeginSetup, %%EndSetup +PageSetup section: %%BeginPageSetup, %%PageBoundingBox, %%EndPageSetup. +Other sections: %%BeginProlog, %%EndProlog, %%Page, %%Trailer, %%EOF +Here is an example sequence showing how this function might be used: + +cairo_surface_t *surface = cairo_ps_surface_create (filename, width, height); +... +cairo_ps_surface_dsc_comment (surface, "%%Title: My excellent document"); +cairo_ps_surface_dsc_comment (surface, "%%Copyright: Copyright (C) 2006 Cairo Lover") +... +cairo_ps_surface_dsc_begin_setup (surface); +cairo_ps_surface_dsc_comment (surface, "%%IncludeFeature: *MediaColor White"); +... +cairo_ps_surface_dsc_begin_page_setup (surface); +cairo_ps_surface_dsc_comment (surface, "%%IncludeFeature: *PageSize A3"); +cairo_ps_surface_dsc_comment (surface, "%%IncludeFeature: *InputSlot LargeCapacity"); +cairo_ps_surface_dsc_comment (surface, "%%IncludeFeature: *MediaType Glossy"); +cairo_ps_surface_dsc_comment (surface, "%%IncludeFeature: *MediaColor Blue"); +... draw to first page here .. +cairo_show_page (cr); +... +cairo_ps_surface_dsc_comment (surface, "%%IncludeFeature: *PageSize A5"); +... + + +Parameters + + + + + + +surface +a PostScript cairo_surface_t + +comment +a comment string to be emitted into the PostScript output + + +Since: 1.2 + + + +Types and Values + +CAIRO_HAS_PS_SURFACE +CAIRO_HAS_PS_SURFACE +#define CAIRO_HAS_PS_SURFACE 1 + +Defined if the PostScript surface backend is available. +This macro can be used to conditionally compile backend-specific code. +Since: 1.2 + +enum cairo_ps_level_t +cairo_ps_level_t +cairo_ps_level_t is used to describe the language level of the +PostScript Language Reference that a generated PostScript file will +conform to. + +Members + + + + + + +CAIRO_PS_LEVEL_2 +The language level 2 of the PostScript specification. (Since 1.6) + + + +CAIRO_PS_LEVEL_3 +The language level 3 of the PostScript specification. (Since 1.6) + + + + +Since: 1.6 + + + +See Also +cairo_surface_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-quartz-fonts.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-quartz-fonts.xml new file mode 100644 index 0000000..6b74915 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-quartz-fonts.xml @@ -0,0 +1,129 @@ + + +]> + + +Quartz (CGFont) Fonts +3 +CAIRO Library + + +Quartz (CGFont) Fonts +Font support via CGFont on OS X + + + +Functions + + + + + +cairo_font_face_t * +cairo_quartz_font_face_create_for_cgfont () +cairo_font_face_t * +cairo_quartz_font_face_create_for_atsu_font_id () + + + + + + +Types and Values + + + + + +#defineCAIRO_HAS_QUARTZ_FONT + + + + + + + + +Description +The Quartz font backend is primarily used to render text on Apple +MacOS X systems. The CGFont API is used for the internal +implementation of the font backend methods. + + + +Functions + +cairo_quartz_font_face_create_for_cgfont () +cairo_quartz_font_face_create_for_cgfont +cairo_font_face_t * +cairo_quartz_font_face_create_for_cgfont + (CGFontRef font); +Creates a new font for the Quartz font backend based on a +CGFontRef. This font can then be used with +cairo_set_font_face() or cairo_scaled_font_create(). + +Parameters + + + + + + +font +a CGFontRef obtained through a method external to cairo. + + + +Returns + a newly created cairo_font_face_t. Free with +cairo_font_face_destroy() when you are done using it. +Since: 1.6 + +cairo_quartz_font_face_create_for_atsu_font_id () +cairo_quartz_font_face_create_for_atsu_font_id +cairo_font_face_t * +cairo_quartz_font_face_create_for_atsu_font_id + (ATSUFontID font_id); +Creates a new font for the Quartz font backend based on an +ATSUFontID. This font can then be used with +cairo_set_font_face() or cairo_scaled_font_create(). + +Parameters + + + + + + +font_id +an ATSUFontID for the font. + + + +Returns + a newly created cairo_font_face_t. Free with +cairo_font_face_destroy() when you are done using it. +Since: 1.6 + + + +Types and Values + +CAIRO_HAS_QUARTZ_FONT +CAIRO_HAS_QUARTZ_FONT +#define CAIRO_HAS_QUARTZ_FONT 1 + +Defined if the Quartz font backend is available. +This macro can be used to conditionally compile backend-specific code. +Since: 1.6 + + + +See Also +cairo_font_face_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-quartz.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-quartz.xml new file mode 100644 index 0000000..d39d524 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-quartz.xml @@ -0,0 +1,183 @@ + + +]> + + +Quartz Surfaces +3 +CAIRO Library + + +Quartz Surfaces +Rendering to Quartz surfaces + + + +Functions + + + + + +cairo_surface_t * +cairo_quartz_surface_create () +cairo_surface_t * +cairo_quartz_surface_create_for_cg_context () +CGContextRef +cairo_quartz_surface_get_cg_context () + + + + + + +Types and Values + + + + + +#defineCAIRO_HAS_QUARTZ_SURFACE + + + + + + + + +Description +The Quartz surface is used to render cairo graphics targeting the +Apple OS X Quartz rendering system. + + + +Functions + +cairo_quartz_surface_create () +cairo_quartz_surface_create +cairo_surface_t * +cairo_quartz_surface_create (cairo_format_t format, + unsigned int width, + unsigned int height); +Creates a Quartz surface backed by a CGBitmap. The surface is +created using the Device RGB (or Device Gray, for A8) color space. +All Cairo operations, including those that require software +rendering, will succeed on this surface. + +Parameters + + + + + + +format +format of pixels in the surface to create + +width +width of the surface, in pixels + +height +height of the surface, in pixels + + + +Returns + the newly created surface. +Since: 1.6 + +cairo_quartz_surface_create_for_cg_context () +cairo_quartz_surface_create_for_cg_context +cairo_surface_t * +cairo_quartz_surface_create_for_cg_context + (CGContextRef cgContext, + unsigned int width, + unsigned int height); +Creates a Quartz surface that wraps the given CGContext. The +CGContext is assumed to be in the standard Cairo coordinate space +(that is, with the origin at the upper left and the Y axis +increasing downward). If the CGContext is in the Quartz coordinate +space (with the origin at the bottom left), then it should be +flipped before this function is called. The flip can be accomplished +using a translate and a scale; for example: + +CGContextTranslateCTM (cgContext, 0.0, height); +CGContextScaleCTM (cgContext, 1.0, -1.0); + +All Cairo operations are implemented in terms of Quartz operations, +as long as Quartz-compatible elements are used (such as Quartz fonts). + +Parameters + + + + + + +cgContext +the existing CGContext for which to create the surface + +width +width of the surface, in pixels + +height +height of the surface, in pixels + + + +Returns + the newly created Cairo surface. +Since: 1.6 + +cairo_quartz_surface_get_cg_context () +cairo_quartz_surface_get_cg_context +CGContextRef +cairo_quartz_surface_get_cg_context (cairo_surface_t *surface); +Returns the CGContextRef that the given Quartz surface is backed +by. +A call to cairo_surface_flush() is required before using the +CGContextRef to ensure that all pending drawing operations are +finished and to restore any temporary modification cairo has made +to its state. A call to cairo_surface_mark_dirty() is required +after the state or the content of the CGContextRef has been +modified. + +Parameters + + + + + + +surface +the Cairo Quartz surface + + + +Returns + the CGContextRef for the given surface. +Since: 1.6 + + + +Types and Values + +CAIRO_HAS_QUARTZ_SURFACE +CAIRO_HAS_QUARTZ_SURFACE +#define CAIRO_HAS_QUARTZ_SURFACE 1 + +Defined if the Quartz surface backend is available. +This macro can be used to conditionally compile backend-specific code. +Since: 1.6 + + + +See Also +cairo_surface_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-raster-source.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-raster-source.xml new file mode 100644 index 0000000..227bb18 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-raster-source.xml @@ -0,0 +1,550 @@ + + +]> + + +Raster Sources +3 +CAIRO Library + + +Raster Sources +Supplying arbitrary image data + + + +Functions + + + + + +cairo_pattern_t * +cairo_pattern_create_raster_source () +void +cairo_raster_source_pattern_set_callback_data () +void * +cairo_raster_source_pattern_get_callback_data () +void +cairo_raster_source_pattern_set_acquire () +void +cairo_raster_source_pattern_get_acquire () +void +cairo_raster_source_pattern_set_snapshot () +cairo_raster_source_snapshot_func_t +cairo_raster_source_pattern_get_snapshot () +void +cairo_raster_source_pattern_set_copy () +cairo_raster_source_copy_func_t +cairo_raster_source_pattern_get_copy () +void +cairo_raster_source_pattern_set_finish () +cairo_raster_source_finish_func_t +cairo_raster_source_pattern_get_finish () +cairo_surface_t +(*cairo_raster_source_acquire_func_t) () +void +(*cairo_raster_source_release_func_t) () +cairo_status_t +(*cairo_raster_source_snapshot_func_t) () +cairo_status_t +(*cairo_raster_source_copy_func_t) () +void +(*cairo_raster_source_finish_func_t) () + + + + + + + + +Description +The raster source provides the ability to supply arbitrary pixel data +whilst rendering. The pixels are queried at the time of rasterisation +by means of user callback functions, allowing for the ultimate +flexibility. For example, in handling compressed image sources, you +may keep a MRU cache of decompressed images and decompress sources on the +fly and discard old ones to conserve memory. +For the raster source to be effective, you must at least specify +the acquire and release callbacks which are used to retrieve the pixel +data for the region of interest and demark when it can be freed afterwards. +Other callbacks are provided for when the pattern is copied temporarily +during rasterisation, or more permanently as a snapshot in order to keep +the pixel data available for printing. + + + +Functions + +cairo_pattern_create_raster_source () +cairo_pattern_create_raster_source +cairo_pattern_t * +cairo_pattern_create_raster_source (void *user_data, + cairo_content_t content, + int width, + int height); +Creates a new user pattern for providing pixel data. +Use the setter functions to associate callbacks with the returned +pattern. The only mandatory callback is acquire. + +Parameters + + + + + + +user_data +the user data to be passed to all callbacks + +content +content type for the pixel data that will be returned. Knowing +the content type ahead of time is used for analysing the operation and +picking the appropriate rendering path. + +width +maximum size of the sample area + +height +maximum size of the sample area + + + +Returns + a newly created cairo_pattern_t. Free with +cairo_pattern_destroy() when you are done using it. +Since: 1.12 + +cairo_raster_source_pattern_set_callback_data () +cairo_raster_source_pattern_set_callback_data +void +cairo_raster_source_pattern_set_callback_data + (cairo_pattern_t *pattern, + void *data); +Updates the user data that is provided to all callbacks. + +Parameters + + + + + + +pattern +the pattern to update + +data +the user data to be passed to all callbacks + + +Since: 1.12 + +cairo_raster_source_pattern_get_callback_data () +cairo_raster_source_pattern_get_callback_data +void * +cairo_raster_source_pattern_get_callback_data + (cairo_pattern_t *pattern); +Queries the current user data. + +Parameters + + + + + + +pattern +the pattern to update + + + +Returns + the current user-data passed to each callback +Since: 1.12 + +cairo_raster_source_pattern_set_acquire () +cairo_raster_source_pattern_set_acquire +void +cairo_raster_source_pattern_set_acquire + (cairo_pattern_t *pattern, + cairo_raster_source_acquire_func_t acquire, + cairo_raster_source_release_func_t release); +Specifies the callbacks used to generate the image surface for a rendering +operation (acquire) and the function used to cleanup that surface afterwards. +The acquire + callback should create a surface (preferably an image +surface created to match the target using +cairo_surface_create_similar_image()) that defines at least the region +of interest specified by extents. The surface is allowed to be the entire +sample area, but if it does contain a subsection of the sample area, +the surface extents should be provided by setting the device offset (along +with its width and height) using cairo_surface_set_device_offset(). + +Parameters + + + + + + +pattern +the pattern to update + +acquire +acquire callback + +release +release callback + + +Since: 1.12 + +cairo_raster_source_pattern_get_acquire () +cairo_raster_source_pattern_get_acquire +void +cairo_raster_source_pattern_get_acquire + (cairo_pattern_t *pattern, + cairo_raster_source_acquire_func_t *acquire, + cairo_raster_source_release_func_t *release); +Queries the current acquire and release callbacks. + +Parameters + + + + + + +pattern +the pattern to query + +acquire +return value for the current acquire callback + +release +return value for the current release callback + + +Since: 1.12 + +cairo_raster_source_pattern_set_snapshot () +cairo_raster_source_pattern_set_snapshot +void +cairo_raster_source_pattern_set_snapshot + (cairo_pattern_t *pattern, + cairo_raster_source_snapshot_func_t snapshot); +Sets the callback that will be used whenever a snapshot is taken of the +pattern, that is whenever the current contents of the pattern should be +preserved for later use. This is typically invoked whilst printing. + +Parameters + + + + + + +pattern +the pattern to update + +snapshot +snapshot callback + + +Since: 1.12 + +cairo_raster_source_pattern_get_snapshot () +cairo_raster_source_pattern_get_snapshot +cairo_raster_source_snapshot_func_t +cairo_raster_source_pattern_get_snapshot + (cairo_pattern_t *pattern); +Queries the current snapshot callback. + +Parameters + + + + + + +pattern +the pattern to query + + + +Returns + the current snapshot callback +Since: 1.12 + +cairo_raster_source_pattern_set_copy () +cairo_raster_source_pattern_set_copy +void +cairo_raster_source_pattern_set_copy (cairo_pattern_t *pattern, + cairo_raster_source_copy_func_t copy); +Updates the copy callback which is used whenever a temporary copy of the +pattern is taken. + +Parameters + + + + + + +pattern +the pattern to update + +copy +the copy callback + + +Since: 1.12 + +cairo_raster_source_pattern_get_copy () +cairo_raster_source_pattern_get_copy +cairo_raster_source_copy_func_t +cairo_raster_source_pattern_get_copy (cairo_pattern_t *pattern); +Queries the current copy callback. + +Parameters + + + + + + +pattern +the pattern to query + + + +Returns + the current copy callback +Since: 1.12 + +cairo_raster_source_pattern_set_finish () +cairo_raster_source_pattern_set_finish +void +cairo_raster_source_pattern_set_finish + (cairo_pattern_t *pattern, + cairo_raster_source_finish_func_t finish); +Updates the finish callback which is used whenever a pattern (or a copy +thereof) will no longer be used. + +Parameters + + + + + + +pattern +the pattern to update + +finish +the finish callback + + +Since: 1.12 + +cairo_raster_source_pattern_get_finish () +cairo_raster_source_pattern_get_finish +cairo_raster_source_finish_func_t +cairo_raster_source_pattern_get_finish + (cairo_pattern_t *pattern); +Queries the current finish callback. + +Parameters + + + + + + +pattern +the pattern to query + + + +Returns + the current finish callback +Since: 1.12 + +cairo_raster_source_acquire_func_t () +cairo_raster_source_acquire_func_t +cairo_surface_t +(*cairo_raster_source_acquire_func_t) (cairo_pattern_t *pattern, + void *callback_data, + cairo_surface_t *target, + const cairo_rectangle_int_t *extents); +cairo_raster_source_acquire_func_t is the type of function which is +called when a pattern is being rendered from. It should create a surface +that provides the pixel data for the region of interest as defined by +extents, though the surface itself does not have to be limited to that +area. For convenience the surface should probably be of image type, +created with cairo_surface_create_similar_image() for the target (which +enables the number of copies to be reduced during transfer to the +device). Another option, might be to return a similar surface to the +target for explicit handling by the application of a set of cached sources +on the device. The region of sample data provided should be defined using +cairo_surface_set_device_offset() to specify the top-left corner of the +sample data (along with width and height of the surface). + +Parameters + + + + + + +pattern +the pattern being rendered from + +callback_data +the user data supplied during creation + +target +the rendering target surface + +extents +rectangular region of interest in pixels in sample space + + + +Returns + a cairo_surface_t +Since: 1.12 + +cairo_raster_source_release_func_t () +cairo_raster_source_release_func_t +void +(*cairo_raster_source_release_func_t) (cairo_pattern_t *pattern, + void *callback_data, + cairo_surface_t *surface); +cairo_raster_source_release_func_t is the type of function which is +called when the pixel data is no longer being access by the pattern +for the rendering operation. Typically this function will simply +destroy the surface created during acquire. + +Parameters + + + + + + +pattern +the pattern being rendered from + +callback_data +the user data supplied during creation + +surface +the surface created during acquire + + +Since: 1.12 + +cairo_raster_source_snapshot_func_t () +cairo_raster_source_snapshot_func_t +cairo_status_t +(*cairo_raster_source_snapshot_func_t) + (cairo_pattern_t *pattern, + void *callback_data); +cairo_raster_source_snapshot_func_t is the type of function which is +called when the pixel data needs to be preserved for later use +during printing. This pattern will be accessed again later, and it +is expected to provide the pixel data that was current at the time +of snapshotting. + +Parameters + + + + + + +pattern +the pattern being rendered from + +callback_data +the user data supplied during creation + + + +Returns + CAIRO_STATUS_SUCCESS on success, or one of the +cairo_status_t error codes for failure. +Since: 1.12 + +cairo_raster_source_copy_func_t () +cairo_raster_source_copy_func_t +cairo_status_t +(*cairo_raster_source_copy_func_t) (cairo_pattern_t *pattern, + void *callback_data, + const cairo_pattern_t *other); +cairo_raster_source_copy_func_t is the type of function which is +called when the pattern gets copied as a normal part of rendering. + +Parameters + + + + + + +pattern +the cairo_pattern_t that was copied to + +callback_data +the user data supplied during creation + +other +the cairo_pattern_t being used as the source for the copy + + + +Returns + CAIRO_STATUS_SUCCESS on success, or one of the +cairo_status_t error codes for failure. +Since: 1.12 + +cairo_raster_source_finish_func_t () +cairo_raster_source_finish_func_t +void +(*cairo_raster_source_finish_func_t) (cairo_pattern_t *pattern, + void *callback_data); +cairo_raster_source_finish_func_t is the type of function which is +called when the pattern (or a copy thereof) is no longer required. + +Parameters + + + + + + +pattern +the pattern being rendered from + +callback_data +the user data supplied during creation + + +Since: 1.12 + + + +Types and Values + + + +See Also +cairo_pattern_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-recording.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-recording.xml new file mode 100644 index 0000000..b6b9a6f --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-recording.xml @@ -0,0 +1,204 @@ + + +]> + + +Recording Surfaces +3 +CAIRO Library + + +Recording Surfaces +Records all drawing operations + + + +Functions + + + + + +cairo_surface_t * +cairo_recording_surface_create () +void +cairo_recording_surface_ink_extents () +cairo_bool_t +cairo_recording_surface_get_extents () + + + + + + +Types and Values + + + + + +#defineCAIRO_HAS_RECORDING_SURFACE + + + + + + + + +Description +A recording surface is a surface that records all drawing operations at +the highest level of the surface backend interface, (that is, the +level of paint, mask, stroke, fill, and show_text_glyphs). The recording +surface can then be "replayed" against any target surface by using it +as a source surface. +If you want to replay a surface so that the results in target will be +identical to the results that would have been obtained if the original +operations applied to the recording surface had instead been applied to the +target surface, you can use code like this: + +cairo_t *cr; + +cr = cairo_create (target); +cairo_set_source_surface (cr, recording_surface, 0.0, 0.0); +cairo_paint (cr); +cairo_destroy (cr); + +A recording surface is logically unbounded, i.e. it has no implicit constraint +on the size of the drawing surface. However, in practice this is rarely +useful as you wish to replay against a particular target surface with +known bounds. For this case, it is more efficient to specify the target +extents to the recording surface upon creation. +The recording phase of the recording surface is careful to snapshot all +necessary objects (paths, patterns, etc.), in order to achieve +accurate replay. The efficiency of the recording surface could be +improved by improving the implementation of snapshot for the +various objects. For example, it would be nice to have a +copy-on-write implementation for _cairo_surface_snapshot. + + + +Functions + +cairo_recording_surface_create () +cairo_recording_surface_create +cairo_surface_t * +cairo_recording_surface_create (cairo_content_t content, + const cairo_rectangle_t *extents); +Creates a recording-surface which can be used to record all drawing operations +at the highest level (that is, the level of paint, mask, stroke, fill +and show_text_glyphs). The recording surface can then be "replayed" against +any target surface by using it as a source to drawing operations. +The recording phase of the recording surface is careful to snapshot all +necessary objects (paths, patterns, etc.), in order to achieve +accurate replay. + +Parameters + + + + + + +content +the content of the recording surface + +extents +the extents to record in pixels, can be NULL to record +unbounded operations. + + + +Returns + a pointer to the newly created surface. The caller +owns the surface and should call cairo_surface_destroy() when done +with it. +Since: 1.10 + +cairo_recording_surface_ink_extents () +cairo_recording_surface_ink_extents +void +cairo_recording_surface_ink_extents (cairo_surface_t *surface, + double *x0, + double *y0, + double *width, + double *height); +Measures the extents of the operations stored within the recording-surface. +This is useful to compute the required size of an image surface (or +equivalent) into which to replay the full sequence of drawing operations. + +Parameters + + + + + + +surface +a cairo_recording_surface_t + +x0 +the x-coordinate of the top-left of the ink bounding box + +y0 +the y-coordinate of the top-left of the ink bounding box + +width +the width of the ink bounding box + +height +the height of the ink bounding box + + +Since: 1.10 + +cairo_recording_surface_get_extents () +cairo_recording_surface_get_extents +cairo_bool_t +cairo_recording_surface_get_extents (cairo_surface_t *surface, + cairo_rectangle_t *extents); +Get the extents of the recording-surface. + +Parameters + + + + + + +surface +a cairo_recording_surface_t + +extents +the cairo_rectangle_t to be assigned the extents + + + +Returns + TRUE if the surface is bounded, of recording type, and +not in an error state, otherwise FALSE +Since: 1.12 + + + +Types and Values + +CAIRO_HAS_RECORDING_SURFACE +CAIRO_HAS_RECORDING_SURFACE +#define CAIRO_HAS_RECORDING_SURFACE 1 + +Defined if the recording surface backend is available. +The recording surface backend is always built in. +This macro was added for completeness in cairo 1.10. +Since: 1.10 + + + +See Also +cairo_surface_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-region.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-region.xml new file mode 100644 index 0000000..30bc405 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-region.xml @@ -0,0 +1,793 @@ + + +]> + + +Regions +3 +CAIRO Library + + +Regions +Representing a pixel-aligned area + + + +Functions + + + + + +cairo_region_t * +cairo_region_create () +cairo_region_t * +cairo_region_create_rectangle () +cairo_region_t * +cairo_region_create_rectangles () +cairo_region_t * +cairo_region_copy () +cairo_region_t * +cairo_region_reference () +void +cairo_region_destroy () +cairo_status_t +cairo_region_status () +void +cairo_region_get_extents () +int +cairo_region_num_rectangles () +void +cairo_region_get_rectangle () +cairo_bool_t +cairo_region_is_empty () +cairo_bool_t +cairo_region_contains_point () +cairo_region_overlap_t +cairo_region_contains_rectangle () +cairo_bool_t +cairo_region_equal () +void +cairo_region_translate () +cairo_status_t +cairo_region_intersect () +cairo_status_t +cairo_region_intersect_rectangle () +cairo_status_t +cairo_region_subtract () +cairo_status_t +cairo_region_subtract_rectangle () +cairo_status_t +cairo_region_union () +cairo_status_t +cairo_region_union_rectangle () +cairo_status_t +cairo_region_xor () +cairo_status_t +cairo_region_xor_rectangle () + + + + + + +Types and Values + + + + + +typedefcairo_region_t +enumcairo_region_overlap_t + + + + + + + + +Description +Regions are a simple graphical data type representing an area of +integer-aligned rectangles. They are often used on raster surfaces +to track areas of interest, such as change or clip areas. + + + +Functions + +cairo_region_create () +cairo_region_create +cairo_region_t * +cairo_region_create (void); +Allocates a new empty region object. + +Returns + A newly allocated cairo_region_t. Free with +cairo_region_destroy(). This function always returns a +valid pointer; if memory cannot be allocated, then a special +error object is returned where all operations on the object do nothing. +You can check for this with cairo_region_status(). +Since: 1.10 + +cairo_region_create_rectangle () +cairo_region_create_rectangle +cairo_region_t * +cairo_region_create_rectangle (const cairo_rectangle_int_t *rectangle); +Allocates a new region object containing rectangle +. + +Parameters + + + + + + +rectangle +a cairo_rectangle_int_t + + + +Returns + A newly allocated cairo_region_t. Free with +cairo_region_destroy(). This function always returns a +valid pointer; if memory cannot be allocated, then a special +error object is returned where all operations on the object do nothing. +You can check for this with cairo_region_status(). +Since: 1.10 + +cairo_region_create_rectangles () +cairo_region_create_rectangles +cairo_region_t * +cairo_region_create_rectangles (const cairo_rectangle_int_t *rects, + int count); +Allocates a new region object containing the union of all given rects +. + +Parameters + + + + + + +rects +an array of count +rectangles + +count +number of rectangles + + + +Returns + A newly allocated cairo_region_t. Free with +cairo_region_destroy(). This function always returns a +valid pointer; if memory cannot be allocated, then a special +error object is returned where all operations on the object do nothing. +You can check for this with cairo_region_status(). +Since: 1.10 + +cairo_region_copy () +cairo_region_copy +cairo_region_t * +cairo_region_copy (const cairo_region_t *original); +Allocates a new region object copying the area from original +. + +Parameters + + + + + + +original +a cairo_region_t + + + +Returns + A newly allocated cairo_region_t. Free with +cairo_region_destroy(). This function always returns a +valid pointer; if memory cannot be allocated, then a special +error object is returned where all operations on the object do nothing. +You can check for this with cairo_region_status(). +Since: 1.10 + +cairo_region_reference () +cairo_region_reference +cairo_region_t * +cairo_region_reference (cairo_region_t *region); +Increases the reference count on region + by one. This prevents +region + from being destroyed until a matching call to +cairo_region_destroy() is made. + +Parameters + + + + + + +region +a cairo_region_t + + + +Returns + the referenced cairo_region_t. +Since: 1.10 + +cairo_region_destroy () +cairo_region_destroy +void +cairo_region_destroy (cairo_region_t *region); +Destroys a cairo_region_t object created with +cairo_region_create(), cairo_region_copy(), or +or cairo_region_create_rectangle(). + +Parameters + + + + + + +region +a cairo_region_t + + +Since: 1.10 + +cairo_region_status () +cairo_region_status +cairo_status_t +cairo_region_status (const cairo_region_t *region); +Checks whether an error has previous occurred for this +region object. + +Parameters + + + + + + +region +a cairo_region_t + + + +Returns + CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY +Since: 1.10 + +cairo_region_get_extents () +cairo_region_get_extents +void +cairo_region_get_extents (const cairo_region_t *region, + cairo_rectangle_int_t *extents); +Gets the bounding rectangle of region + as a cairo_rectangle_int_t + +Parameters + + + + + + +region +a cairo_region_t + +extents +rectangle into which to store the extents + + +Since: 1.10 + +cairo_region_num_rectangles () +cairo_region_num_rectangles +int +cairo_region_num_rectangles (const cairo_region_t *region); +Returns the number of rectangles contained in region +. + +Parameters + + + + + + +region +a cairo_region_t + + + +Returns + The number of rectangles contained in region +. +Since: 1.10 + +cairo_region_get_rectangle () +cairo_region_get_rectangle +void +cairo_region_get_rectangle (const cairo_region_t *region, + int nth, + cairo_rectangle_int_t *rectangle); +Stores the nth + rectangle from the region in rectangle +. + +Parameters + + + + + + +region +a cairo_region_t + +nth +a number indicating which rectangle should be returned + +rectangle +return location for a cairo_rectangle_int_t + + +Since: 1.10 + +cairo_region_is_empty () +cairo_region_is_empty +cairo_bool_t +cairo_region_is_empty (const cairo_region_t *region); +Checks whether region + is empty. + +Parameters + + + + + + +region +a cairo_region_t + + + +Returns + TRUE if region +is empty, FALSE if it isn't. +Since: 1.10 + +cairo_region_contains_point () +cairo_region_contains_point +cairo_bool_t +cairo_region_contains_point (const cairo_region_t *region, + int x, + int y); +Checks whether (x +, y +) is contained in region +. + +Parameters + + + + + + +region +a cairo_region_t + +x +the x coordinate of a point + +y +the y coordinate of a point + + + +Returns + TRUE if (x +, y +) is contained in region +, FALSE if it is not. +Since: 1.10 + +cairo_region_contains_rectangle () +cairo_region_contains_rectangle +cairo_region_overlap_t +cairo_region_contains_rectangle (const cairo_region_t *region, + const cairo_rectangle_int_t *rectangle); +Checks whether rectangle + is inside, outside or partially contained +in region + + +Parameters + + + + + + +region +a cairo_region_t + +rectangle +a cairo_rectangle_int_t + + + +Returns + CAIRO_REGION_OVERLAP_IN if rectangle +is entirely inside region +, +CAIRO_REGION_OVERLAP_OUT if rectangle +is entirely outside region +, or +CAIRO_REGION_OVERLAP_PART if rectangle +is partially inside and partially outside region +. +Since: 1.10 + +cairo_region_equal () +cairo_region_equal +cairo_bool_t +cairo_region_equal (const cairo_region_t *a, + const cairo_region_t *b); +Compares whether region_a is equivalent to region_b. NULL as an argument +is equal to itself, but not to any non-NULL region. + +Parameters + + + + + + +a +a cairo_region_t or NULL + +b +a cairo_region_t or NULL + + + +Returns + TRUE if both regions contained the same coverage, +FALSE if it is not or any region is in an error status. +Since: 1.10 + +cairo_region_translate () +cairo_region_translate +void +cairo_region_translate (cairo_region_t *region, + int dx, + int dy); +Translates region + by (dx +, dy +). + +Parameters + + + + + + +region +a cairo_region_t + +dx +Amount to translate in the x direction + +dy +Amount to translate in the y direction + + +Since: 1.10 + +cairo_region_intersect () +cairo_region_intersect +cairo_status_t +cairo_region_intersect (cairo_region_t *dst, + const cairo_region_t *other); +Computes the intersection of dst + with other + and places the result in dst + + +Parameters + + + + + + +dst +a cairo_region_t + +other +another cairo_region_t + + + +Returns + CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY +Since: 1.10 + +cairo_region_intersect_rectangle () +cairo_region_intersect_rectangle +cairo_status_t +cairo_region_intersect_rectangle (cairo_region_t *dst, + const cairo_rectangle_int_t *rectangle); +Computes the intersection of dst + with rectangle + and places the +result in dst + + +Parameters + + + + + + +dst +a cairo_region_t + +rectangle +a cairo_rectangle_int_t + + + +Returns + CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY +Since: 1.10 + +cairo_region_subtract () +cairo_region_subtract +cairo_status_t +cairo_region_subtract (cairo_region_t *dst, + const cairo_region_t *other); +Subtracts other + from dst + and places the result in dst + + +Parameters + + + + + + +dst +a cairo_region_t + +other +another cairo_region_t + + + +Returns + CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY +Since: 1.10 + +cairo_region_subtract_rectangle () +cairo_region_subtract_rectangle +cairo_status_t +cairo_region_subtract_rectangle (cairo_region_t *dst, + const cairo_rectangle_int_t *rectangle); +Subtracts rectangle + from dst + and places the result in dst + + +Parameters + + + + + + +dst +a cairo_region_t + +rectangle +a cairo_rectangle_int_t + + + +Returns + CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY +Since: 1.10 + +cairo_region_union () +cairo_region_union +cairo_status_t +cairo_region_union (cairo_region_t *dst, + const cairo_region_t *other); +Computes the union of dst + with other + and places the result in dst + + +Parameters + + + + + + +dst +a cairo_region_t + +other +another cairo_region_t + + + +Returns + CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY +Since: 1.10 + +cairo_region_union_rectangle () +cairo_region_union_rectangle +cairo_status_t +cairo_region_union_rectangle (cairo_region_t *dst, + const cairo_rectangle_int_t *rectangle); +Computes the union of dst + with rectangle + and places the result in dst +. + +Parameters + + + + + + +dst +a cairo_region_t + +rectangle +a cairo_rectangle_int_t + + + +Returns + CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY +Since: 1.10 + +cairo_region_xor () +cairo_region_xor +cairo_status_t +cairo_region_xor (cairo_region_t *dst, + const cairo_region_t *other); +Computes the exclusive difference of dst + with other + and places the +result in dst +. That is, dst + will be set to contain all areas that +are either in dst + or in other +, but not in both. + +Parameters + + + + + + +dst +a cairo_region_t + +other +another cairo_region_t + + + +Returns + CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY +Since: 1.10 + +cairo_region_xor_rectangle () +cairo_region_xor_rectangle +cairo_status_t +cairo_region_xor_rectangle (cairo_region_t *dst, + const cairo_rectangle_int_t *rectangle); +Computes the exclusive difference of dst + with rectangle + and places the +result in dst +. That is, dst + will be set to contain all areas that are +either in dst + or in rectangle +, but not in both. + +Parameters + + + + + + +dst +a cairo_region_t + +rectangle +a cairo_rectangle_int_t + + + +Returns + CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY +Since: 1.10 + + + +Types and Values + +cairo_region_t +cairo_region_t +typedef struct _cairo_region cairo_region_t; + +A cairo_region_t represents a set of integer-aligned rectangles. +It allows set-theoretical operations like cairo_region_union() and +cairo_region_intersect() to be performed on them. +Memory management of cairo_region_t is done with +cairo_region_reference() and cairo_region_destroy(). +Since: 1.10 + +enum cairo_region_overlap_t +cairo_region_overlap_t +Used as the return value for cairo_region_contains_rectangle(). + +Members + + + + + + +CAIRO_REGION_OVERLAP_IN +The contents are entirely inside the region. (Since 1.10) + + + +CAIRO_REGION_OVERLAP_OUT +The contents are entirely outside the region. (Since 1.10) + + + +CAIRO_REGION_OVERLAP_PART +The contents are partially inside and + partially outside the region. (Since 1.10) + + + + +Since: 1.10 + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-scaled-font.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-scaled-font.xml new file mode 100644 index 0000000..3be82a2 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-scaled-font.xml @@ -0,0 +1,925 @@ + + +]> + + +cairo_scaled_font_t +3 +CAIRO Library + + +cairo_scaled_font_t +Font face at particular size and options + + + +Functions + + + + + +cairo_scaled_font_t * +cairo_scaled_font_create () +cairo_scaled_font_t * +cairo_scaled_font_reference () +void +cairo_scaled_font_destroy () +cairo_status_t +cairo_scaled_font_status () +void +cairo_scaled_font_extents () +void +cairo_scaled_font_text_extents () +void +cairo_scaled_font_glyph_extents () +cairo_status_t +cairo_scaled_font_text_to_glyphs () +cairo_font_face_t * +cairo_scaled_font_get_font_face () +void +cairo_scaled_font_get_font_options () +void +cairo_scaled_font_get_font_matrix () +void +cairo_scaled_font_get_ctm () +void +cairo_scaled_font_get_scale_matrix () +cairo_font_type_t +cairo_scaled_font_get_type () +unsigned int +cairo_scaled_font_get_reference_count () +cairo_status_t +cairo_scaled_font_set_user_data () +void * +cairo_scaled_font_get_user_data () + + + + + + +Types and Values + + + + + +typedefcairo_scaled_font_t +cairo_font_extents_t +cairo_text_extents_t + + + + + + + + +Description +cairo_scaled_font_t represents a realization of a font face at a particular +size and transformation and a certain set of font options. + + + +Functions + +cairo_scaled_font_create () +cairo_scaled_font_create +cairo_scaled_font_t * +cairo_scaled_font_create (cairo_font_face_t *font_face, + const cairo_matrix_t *font_matrix, + const cairo_matrix_t *ctm, + const cairo_font_options_t *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 +be used. + +Parameters + + + + + + +font_face +a cairo_font_face_t + +font_matrix +font space to user space transformation matrix for the +font. In the simplest case of a N point font, this matrix is +just a scale by N, but it can also be used to shear the font +or stretch it unequally along the two axes. See +cairo_set_font_matrix(). + +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. + + + +Returns + a newly created cairo_scaled_font_t. Destroy with +cairo_scaled_font_destroy() +Since: 1.0 + +cairo_scaled_font_reference () +cairo_scaled_font_reference +cairo_scaled_font_t * +cairo_scaled_font_reference (cairo_scaled_font_t *scaled_font); +Increases the reference count on scaled_font + by one. This prevents +scaled_font + from being destroyed until a matching call to +cairo_scaled_font_destroy() is made. +Use cairo_scaled_font_get_reference_count() to get the number of +references to a cairo_scaled_font_t. + +Parameters + + + + + + +scaled_font +a cairo_scaled_font_t, (may be NULL in which case +this function does nothing) + + + +Returns + the referenced cairo_scaled_font_t +Since: 1.0 + +cairo_scaled_font_destroy () +cairo_scaled_font_destroy +void +cairo_scaled_font_destroy (cairo_scaled_font_t *scaled_font); +Decreases the reference count on font + by one. If the result +is zero, then font + and all associated resources are freed. +See cairo_scaled_font_reference(). + +Parameters + + + + + + +scaled_font +a cairo_scaled_font_t + + +Since: 1.0 + +cairo_scaled_font_status () +cairo_scaled_font_status +cairo_status_t +cairo_scaled_font_status (cairo_scaled_font_t *scaled_font); +Checks whether an error has previously occurred for this +scaled_font. + +Parameters + + + + + + +scaled_font +a cairo_scaled_font_t + + + +Returns + CAIRO_STATUS_SUCCESS or another error such as +CAIRO_STATUS_NO_MEMORY. +Since: 1.0 + +cairo_scaled_font_extents () +cairo_scaled_font_extents +void +cairo_scaled_font_extents (cairo_scaled_font_t *scaled_font, + cairo_font_extents_t *extents); +Gets the metrics for a cairo_scaled_font_t. + +Parameters + + + + + + +scaled_font +a cairo_scaled_font_t + +extents +a cairo_font_extents_t which to store the retrieved extents. + + +Since: 1.0 + +cairo_scaled_font_text_extents () +cairo_scaled_font_text_extents +void +cairo_scaled_font_text_extents (cairo_scaled_font_t *scaled_font, + const char *utf8, + cairo_text_extents_t *extents); +Gets the extents for a string of text. The extents describe a +user-space rectangle that encloses the "inked" portion of the text +drawn at the origin (0,0) (as it would be drawn by cairo_show_text() +if the cairo graphics state were set to the same font_face, +font_matrix, ctm, and font_options as scaled_font +). Additionally, +the x_advance and y_advance values indicate the amount by which the +current point would be advanced by cairo_show_text(). +Note that whitespace characters do not directly contribute to the +size of the rectangle (extents.width and extents.height). They do +contribute indirectly by changing the position of non-whitespace +characters. In particular, trailing whitespace characters are +likely to not affect the size of the rectangle, though they will +affect the x_advance and y_advance values. + +Parameters + + + + + + +scaled_font +a cairo_scaled_font_t + +utf8 +a NUL-terminated string of text, encoded in UTF-8 + +extents +a cairo_text_extents_t which to store the retrieved extents. + + +Since: 1.2 + +cairo_scaled_font_glyph_extents () +cairo_scaled_font_glyph_extents +void +cairo_scaled_font_glyph_extents (cairo_scaled_font_t *scaled_font, + const cairo_glyph_t *glyphs, + int num_glyphs, + cairo_text_extents_t *extents); +Gets the extents for an array of glyphs. The extents describe a +user-space rectangle that encloses the "inked" portion of the +glyphs, (as they would be drawn by cairo_show_glyphs() if the cairo +graphics state were set to the same font_face, font_matrix, ctm, +and font_options as scaled_font +). Additionally, the x_advance and +y_advance values indicate the amount by which the current point +would be advanced by cairo_show_glyphs(). +Note that whitespace glyphs do not contribute to the size of the +rectangle (extents.width and extents.height). + +Parameters + + + + + + +scaled_font +a cairo_scaled_font_t + +glyphs +an array of glyph IDs with X and Y offsets. + +num_glyphs +the number of glyphs in the glyphs +array + +extents +a cairo_text_extents_t which to store the retrieved extents. + + +Since: 1.0 + +cairo_scaled_font_text_to_glyphs () +cairo_scaled_font_text_to_glyphs +cairo_status_t +cairo_scaled_font_text_to_glyphs (cairo_scaled_font_t *scaled_font, + double x, + double y, + const char *utf8, + int utf8_len, + cairo_glyph_t **glyphs, + int *num_glyphs, + cairo_text_cluster_t **clusters, + int *num_clusters, + cairo_text_cluster_flags_t *cluster_flags); +Converts UTF-8 text to an array of glyphs, optionally with cluster +mapping, that can be used to render later using scaled_font +. +If glyphs + initially points to a non-NULL value, that array is used +as a glyph buffer, and num_glyphs + should point to the number of glyph +entries available there. If the provided glyph array is too short for +the conversion, a new glyph array is allocated using cairo_glyph_allocate() +and placed in glyphs +. Upon return, num_glyphs + always contains the +number of generated glyphs. If the value glyphs + points to has changed +after the call, the user is responsible for freeing the allocated glyph +array using cairo_glyph_free(). This may happen even if the provided +array was large enough. +If clusters + is not NULL, num_clusters + and cluster_flags + should not be NULL, +and cluster mapping will be computed. +The semantics of how cluster array allocation works is similar to the glyph +array. That is, +if clusters + initially points to a non-NULL value, that array is used +as a cluster buffer, and num_clusters + should point to the number of cluster +entries available there. If the provided cluster array is too short for +the conversion, a new cluster array is allocated using cairo_text_cluster_allocate() +and placed in clusters +. Upon return, num_clusters + always contains the +number of generated clusters. If the value clusters + points at has changed +after the call, the user is responsible for freeing the allocated cluster +array using cairo_text_cluster_free(). This may happen even if the provided +array was large enough. +In the simplest case, glyphs + and clusters + can point to NULL initially +and a suitable array will be allocated. In code: + +cairo_status_t status; + +cairo_glyph_t *glyphs = NULL; +int num_glyphs; +cairo_text_cluster_t *clusters = NULL; +int num_clusters; +cairo_text_cluster_flags_t cluster_flags; + +status = cairo_scaled_font_text_to_glyphs (scaled_font, + x, y, + utf8, utf8_len, + &glyphs, &num_glyphs, + &clusters, &num_clusters, &cluster_flags); + +if (status == CAIRO_STATUS_SUCCESS) { + cairo_show_text_glyphs (cr, + utf8, utf8_len, + glyphs, num_glyphs, + clusters, num_clusters, cluster_flags); + + cairo_glyph_free (glyphs); + cairo_text_cluster_free (clusters); +} + +If no cluster mapping is needed: + +cairo_status_t status; + +cairo_glyph_t *glyphs = NULL; +int num_glyphs; + +status = cairo_scaled_font_text_to_glyphs (scaled_font, + x, y, + utf8, utf8_len, + &glyphs, &num_glyphs, + NULL, NULL, + NULL); + +if (status == CAIRO_STATUS_SUCCESS) { + cairo_show_glyphs (cr, glyphs, num_glyphs); + cairo_glyph_free (glyphs); +} + +If stack-based glyph and cluster arrays are to be used for small +arrays: + +cairo_status_t status; + +cairo_glyph_t stack_glyphs[40]; +cairo_glyph_t *glyphs = stack_glyphs; +int num_glyphs = sizeof (stack_glyphs) / sizeof (stack_glyphs[0]); +cairo_text_cluster_t stack_clusters[40]; +cairo_text_cluster_t *clusters = stack_clusters; +int num_clusters = sizeof (stack_clusters) / sizeof (stack_clusters[0]); +cairo_text_cluster_flags_t cluster_flags; + +status = cairo_scaled_font_text_to_glyphs (scaled_font, + x, y, + utf8, utf8_len, + &glyphs, &num_glyphs, + &clusters, &num_clusters, &cluster_flags); + +if (status == CAIRO_STATUS_SUCCESS) { + cairo_show_text_glyphs (cr, + utf8, utf8_len, + glyphs, num_glyphs, + clusters, num_clusters, cluster_flags); + + if (glyphs != stack_glyphs) + cairo_glyph_free (glyphs); + if (clusters != stack_clusters) + cairo_text_cluster_free (clusters); +} + +For details of how clusters +, num_clusters +, and cluster_flags + map input +UTF-8 text to the output glyphs see cairo_show_text_glyphs(). +The output values can be readily passed to cairo_show_text_glyphs() +cairo_show_glyphs(), or related functions, assuming that the exact +same scaled_font + is used for the operation. + +Parameters + + + + + + +x +X position to place first glyph + +y +Y position to place first glyph + +scaled_font +a cairo_scaled_font_t + +utf8 +a string of text encoded in UTF-8 + +utf8_len +length of utf8 +in bytes, or -1 if it is NUL-terminated + +glyphs +pointer to array of glyphs to fill + +num_glyphs +pointer to number of glyphs + +clusters +pointer to array of cluster mapping information to fill, or NULL + +num_clusters +pointer to number of clusters, or NULL + +cluster_flags +pointer to location to store cluster flags corresponding to the +output clusters +, or NULL + + + +Returns + CAIRO_STATUS_SUCCESS upon success, or an error status +if the input values are wrong or if conversion failed. If the input +values are correct but the conversion failed, the error status is also +set on scaled_font +. +Since: 1.8 + +cairo_scaled_font_get_font_face () +cairo_scaled_font_get_font_face +cairo_font_face_t * +cairo_scaled_font_get_font_face (cairo_scaled_font_t *scaled_font); +Gets the font face that this scaled font uses. This might be the +font face passed to cairo_scaled_font_create(), but this does not +hold true for all possible cases. + +Parameters + + + + + + +scaled_font +a cairo_scaled_font_t + + + +Returns + The cairo_font_face_t with which scaled_font +was +created. This object is owned by cairo. To keep a reference to it, +you must call cairo_scaled_font_reference(). +Since: 1.2 + +cairo_scaled_font_get_font_options () +cairo_scaled_font_get_font_options +void +cairo_scaled_font_get_font_options (cairo_scaled_font_t *scaled_font, + cairo_font_options_t *options); +Stores the font options with which scaled_font + was created into +options +. + +Parameters + + + + + + +scaled_font +a cairo_scaled_font_t + +options +return value for the font options + + +Since: 1.2 + +cairo_scaled_font_get_font_matrix () +cairo_scaled_font_get_font_matrix +void +cairo_scaled_font_get_font_matrix (cairo_scaled_font_t *scaled_font, + cairo_matrix_t *font_matrix); +Stores the font matrix with which scaled_font + was created into +matrix +. + +Parameters + + + + + + +scaled_font +a cairo_scaled_font_t + +font_matrix +return value for the matrix + + +Since: 1.2 + +cairo_scaled_font_get_ctm () +cairo_scaled_font_get_ctm +void +cairo_scaled_font_get_ctm (cairo_scaled_font_t *scaled_font, + cairo_matrix_t *ctm); +Stores the CTM with which scaled_font + was created into ctm +. +Note that the translation offsets (x0, y0) of the CTM are ignored +by cairo_scaled_font_create(). So, the matrix this +function returns always has 0,0 as x0,y0. + +Parameters + + + + + + +scaled_font +a cairo_scaled_font_t + +ctm +return value for the CTM + + +Since: 1.2 + +cairo_scaled_font_get_scale_matrix () +cairo_scaled_font_get_scale_matrix +void +cairo_scaled_font_get_scale_matrix (cairo_scaled_font_t *scaled_font, + cairo_matrix_t *scale_matrix); +Stores the scale matrix of scaled_font + into matrix +. +The scale matrix is product of the font matrix and the ctm +associated with the scaled font, and hence is the matrix mapping from +font space to device space. + +Parameters + + + + + + +scaled_font +a cairo_scaled_font_t + +scale_matrix +return value for the matrix + + +Since: 1.8 + +cairo_scaled_font_get_type () +cairo_scaled_font_get_type +cairo_font_type_t +cairo_scaled_font_get_type (cairo_scaled_font_t *scaled_font); +This function returns the type of the backend used to create +a scaled font. See cairo_font_type_t for available types. +However, this function never returns CAIRO_FONT_TYPE_TOY. + +Parameters + + + + + + +scaled_font +a cairo_scaled_font_t + + + +Returns + The type of scaled_font +. +Since: 1.2 + +cairo_scaled_font_get_reference_count () +cairo_scaled_font_get_reference_count +unsigned int +cairo_scaled_font_get_reference_count (cairo_scaled_font_t *scaled_font); +Returns the current reference count of scaled_font +. + +Parameters + + + + + + +scaled_font +a cairo_scaled_font_t + + + +Returns + the current reference count of scaled_font +. If the +object is a nil object, 0 will be returned. +Since: 1.4 + +cairo_scaled_font_set_user_data () +cairo_scaled_font_set_user_data +cairo_status_t +cairo_scaled_font_set_user_data (cairo_scaled_font_t *scaled_font, + const cairo_user_data_key_t *key, + void *user_data, + cairo_destroy_func_t destroy); +Attach user data to scaled_font +. To remove user data from a surface, +call this function with the key that was used to set it and NULL +for data +. + +Parameters + + + + + + +scaled_font +a cairo_scaled_font_t + +key +the address of a cairo_user_data_key_t to attach the user data to + +user_data +the user data to attach to the cairo_scaled_font_t + +destroy +a cairo_destroy_func_t which will be called when the +cairo_t is destroyed or when new user data is attached using the +same key. + + + +Returns + CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY if a +slot could not be allocated for the user data. +Since: 1.4 + +cairo_scaled_font_get_user_data () +cairo_scaled_font_get_user_data +void * +cairo_scaled_font_get_user_data (cairo_scaled_font_t *scaled_font, + const cairo_user_data_key_t *key); +Return user data previously attached to scaled_font + using the +specified key. If no user data has been attached with the given +key this function returns NULL. + +Parameters + + + + + + +scaled_font +a cairo_scaled_font_t + +key +the address of the cairo_user_data_key_t the user data was +attached to + + + +Returns + the user data previously attached or NULL. +Since: 1.4 + + + +Types and Values + +cairo_scaled_font_t +cairo_scaled_font_t +typedef struct _cairo_scaled_font 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 +usage where a library or application wants to cache a reference +to a scaled font to speed up the computation of metrics. +There are various types of scaled fonts, depending on the +font backend they use. The type of a +scaled font can be queried using cairo_scaled_font_get_type(). +Memory management of cairo_scaled_font_t is done with +cairo_scaled_font_reference() and cairo_scaled_font_destroy(). +Since: 1.0 + +cairo_font_extents_t +cairo_font_extents_t +typedef struct { + double ascent; + double descent; + double height; + double max_x_advance; + double max_y_advance; +} cairo_font_extents_t; + +The cairo_font_extents_t structure stores metric information for +a font. Values are given in the current user-space coordinate +system. +Because font metrics are in user-space coordinates, they are +mostly, but not entirely, independent of the current transformation +matrix. If you call cairo_scale(cr, 2.0, 2.0), +text will be drawn twice as big, but the reported text extents will +not be doubled. They will change slightly due to hinting (so you +can't assume that metrics are independent of the transformation +matrix), but otherwise will remain unchanged. + +Members + + + + + + +double ascent; +the distance that the font extends above the baseline. +Note that this is not always exactly equal to the maximum +of the extents of all the glyphs in the font, but rather +is picked to express the font designer's intent as to +how the font should align with elements above it. + + +double descent; +the distance that the font extends below the baseline. +This value is positive for typical fonts that include +portions below the baseline. Note that this is not always +exactly equal to the maximum of the extents of all the +glyphs in the font, but rather is picked to express the +font designer's intent as to how the font should +align with elements below it. + + +double height; +the recommended vertical distance between baselines when +setting consecutive lines of text with the font. This +is greater than ascent ++descent +by a +quantity known as the line spacing +or external leading. When space +is at a premium, most fonts can be set with only +a distance of ascent ++descent +between lines. + + +double max_x_advance; +the maximum distance in the X direction that +the origin is advanced for any glyph in the font. + + +double max_y_advance; +the maximum distance in the Y direction that +the origin is advanced for any glyph in the font. +This will be zero for normal fonts used for horizontal +writing. (The scripts of East Asia are sometimes written +vertically.) + + + + +Since: 1.0 + +cairo_text_extents_t +cairo_text_extents_t +typedef struct { + double x_bearing; + double y_bearing; + double width; + double height; + double x_advance; + double y_advance; +} cairo_text_extents_t; + +The cairo_text_extents_t structure stores the extents of a single +glyph or a string of glyphs in user-space coordinates. Because text +extents are in user-space coordinates, they are mostly, but not +entirely, independent of the current transformation matrix. If you call +cairo_scale(cr, 2.0, 2.0), text will +be drawn twice as big, but the reported text extents will not be +doubled. They will change slightly due to hinting (so you can't +assume that metrics are independent of the transformation matrix), +but otherwise will remain unchanged. + +Members + + + + + + +double x_bearing; +the horizontal distance from the origin to the +leftmost part of the glyphs as drawn. Positive if the +glyphs lie entirely to the right of the origin. + + +double y_bearing; +the vertical distance from the origin to the +topmost part of the glyphs as drawn. Positive only if the +glyphs lie completely below the origin; will usually be +negative. + + +double width; +width of the glyphs as drawn + + +double height; +height of the glyphs as drawn + + +double x_advance; +distance to advance in the X direction +after drawing these glyphs + + +double y_advance; +distance to advance in the Y direction +after drawing these glyphs. Will typically be zero except +for vertical text layout as found in East-Asian languages. + + + + +Since: 1.0 + + + +See Also +cairo_font_face_t, cairo_matrix_t, cairo_font_options_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-script.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-script.xml new file mode 100644 index 0000000..c535be3 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-script.xml @@ -0,0 +1,349 @@ + + +]> + + +Script Surfaces +3 +CAIRO Library + + +Script Surfaces +Rendering to replayable scripts + + + +Functions + + + + + +cairo_device_t * +cairo_script_create () +cairo_device_t * +cairo_script_create_for_stream () +cairo_status_t +cairo_script_from_recording_surface () +cairo_script_mode_t +cairo_script_get_mode () +void +cairo_script_set_mode () +cairo_surface_t * +cairo_script_surface_create () +cairo_surface_t * +cairo_script_surface_create_for_target () +void +cairo_script_write_comment () + + + + + + +Types and Values + + + + + +#defineCAIRO_HAS_SCRIPT_SURFACE +enumcairo_script_mode_t + + + + + + + + +Description +The script surface provides the ability to render to a native +script that matches the cairo drawing model. The scripts can +be replayed using tools under the util/cairo-script directory, +or with cairo-perf-trace. + + + +Functions + +cairo_script_create () +cairo_script_create +cairo_device_t * +cairo_script_create (const char *filename); +Creates a output device for emitting the script, used when +creating the individual surfaces. + +Parameters + + + + + + +filename +the name (path) of the file to write the script to + + + +Returns + a pointer to the newly created device. The caller +owns the surface and should call cairo_device_destroy() when done +with it. +This function always returns a valid pointer, but it will return a +pointer to a "nil" device if an error such as out of memory +occurs. You can use cairo_device_status() to check for this. +Since: 1.12 + +cairo_script_create_for_stream () +cairo_script_create_for_stream +cairo_device_t * +cairo_script_create_for_stream (cairo_write_func_t write_func, + void *closure); +Creates a output device for emitting the script, used when +creating the individual surfaces. + +Parameters + + + + + + +write_func +callback function passed the bytes written to the script + +closure +user data to be passed to the callback + + + +Returns + a pointer to the newly created device. The caller +owns the surface and should call cairo_device_destroy() when done +with it. +This function always returns a valid pointer, but it will return a +pointer to a "nil" device if an error such as out of memory +occurs. You can use cairo_device_status() to check for this. +Since: 1.12 + +cairo_script_from_recording_surface () +cairo_script_from_recording_surface +cairo_status_t +cairo_script_from_recording_surface (cairo_device_t *script, + cairo_surface_t *recording_surface); +Converts the record operations in recording_surface + into a script. + +Parameters + + + + + + +script +the script (output device) + +recording_surface +the recording surface to replay + + + +Returns + CAIRO_STATUS_SUCCESS on successful completion or an error code. +Since: 1.12 + +cairo_script_get_mode () +cairo_script_get_mode +cairo_script_mode_t +cairo_script_get_mode (cairo_device_t *script); +Queries the script for its current output mode. + +Parameters + + + + + + +script +The script (output device) to query + + + +Returns + the current output mode of the script +Since: 1.12 + +cairo_script_set_mode () +cairo_script_set_mode +void +cairo_script_set_mode (cairo_device_t *script, + cairo_script_mode_t mode); +Change the output mode of the script + +Parameters + + + + + + +script +The script (output device) + +mode +the new mode + + +Since: 1.12 + +cairo_script_surface_create () +cairo_script_surface_create +cairo_surface_t * +cairo_script_surface_create (cairo_device_t *script, + cairo_content_t content, + double width, + double height); +Create a new surface that will emit its rendering through script + + +Parameters + + + + + + +script +the script (output device) + +content +the content of the surface + +width +width in pixels + +height +height in pixels + + + +Returns + a pointer to the newly created surface. The caller +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. +Since: 1.12 + +cairo_script_surface_create_for_target () +cairo_script_surface_create_for_target +cairo_surface_t * +cairo_script_surface_create_for_target + (cairo_device_t *script, + cairo_surface_t *target); +Create a pxoy surface that will render to target + and record +the operations to device +. + +Parameters + + + + + + +script +the script (output device) + +target +a target surface to wrap + + + +Returns + a pointer to the newly created surface. The caller +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. +Since: 1.12 + +cairo_script_write_comment () +cairo_script_write_comment +void +cairo_script_write_comment (cairo_device_t *script, + const char *comment, + int len); +Emit a string verbatim into the script. + +Parameters + + + + + + +script +the script (output device) + +comment +the string to emit + +len +the length of the sting to write, or -1 to use strlen() + + +Since: 1.12 + + + +Types and Values + +CAIRO_HAS_SCRIPT_SURFACE +CAIRO_HAS_SCRIPT_SURFACE +#define CAIRO_HAS_SCRIPT_SURFACE 1 + +Defined if the script surface backend is available. +The script surface backend is always built in since 1.12. +Since: 1.12 + +enum cairo_script_mode_t +cairo_script_mode_t +A set of script output variants. + +Members + + + + + + +CAIRO_SCRIPT_MODE_ASCII +the output will be in readable text (default). (Since 1.12) + + + +CAIRO_SCRIPT_MODE_BINARY +the output will use byte codes. (Since 1.12) + + + + +Since: 1.12 + + + +See Also +cairo_surface_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-skia.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-skia.xml new file mode 100644 index 0000000..aa4af88 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-skia.xml @@ -0,0 +1,32 @@ + + +]> + + +cairo-skia +3 +CAIRO Library + + +cairo-skia + + + + + + +Description + + + +Functions + + + +Types and Values + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-status.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-status.xml new file mode 100644 index 0000000..d257b95 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-status.xml @@ -0,0 +1,366 @@ + + +]> + + +Error handling +3 +CAIRO Library + + +Error handling +Decoding cairo's status + + + +Functions + + + + + +const char * +cairo_status_to_string () +void +cairo_debug_reset_static_data () + + + + + + +Types and Values + + + + + +enumcairo_status_t + + + + + + + + +Description +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. +Cairo's error handling is designed to be easy to use and safe. All major +cairo objects retain 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. + + + +Functions + +cairo_status_to_string () +cairo_status_to_string +const char * +cairo_status_to_string (cairo_status_t status); +Provides a human-readable description of a cairo_status_t. + +Parameters + + + + + + +status +a cairo status + + + +Returns + a string representation of the status +Since: 1.0 + +cairo_debug_reset_static_data () +cairo_debug_reset_static_data +void +cairo_debug_reset_static_data (void); +Resets all static data within cairo to its original state, +(ie. identical to the state at the time of program invocation). For +example, all caches within cairo will be flushed empty. +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(), +it will report all data reachable via cairo's static objects as +"still reachable". Calling cairo_debug_reset_static_data() just prior +to program termination will make it easier to get squeaky clean +reports from valgrind. +WARNING: It is only safe to call this function when there are no +active cairo objects remaining, (ie. the appropriate destroy +functions have been called as necessary). If there are active cairo +objects, this call is likely to cause a crash, (eg. an assertion +failure due to a hash table being destroyed when non-empty). +Since: 1.0 + + + +Types and Values + +enum cairo_status_t +cairo_status_t +cairo_status_t is used to indicate errors that can occur when +using Cairo. In some cases it is returned directly by functions. +but when using cairo_t, the last error, if any, is stored in +the context and can be retrieved with cairo_status(). +New entries may be added in future versions. Use cairo_status_to_string() +to get a human-readable representation of an error message. + +Members + + + + + + +CAIRO_STATUS_SUCCESS +no error has occurred (Since 1.0) + + + +CAIRO_STATUS_NO_MEMORY +out of memory (Since 1.0) + + + +CAIRO_STATUS_INVALID_RESTORE +cairo_restore() called without matching cairo_save() (Since 1.0) + + + +CAIRO_STATUS_INVALID_POP_GROUP +no saved group to pop, i.e. cairo_pop_group() without matching cairo_push_group() (Since 1.0) + + + +CAIRO_STATUS_NO_CURRENT_POINT +no current point defined (Since 1.0) + + + +CAIRO_STATUS_INVALID_MATRIX +invalid matrix (not invertible) (Since 1.0) + + + +CAIRO_STATUS_INVALID_STATUS +invalid value for an input cairo_status_t (Since 1.0) + + + +CAIRO_STATUS_NULL_POINTER +NULL pointer (Since 1.0) + + + +CAIRO_STATUS_INVALID_STRING +input string not valid UTF-8 (Since 1.0) + + + +CAIRO_STATUS_INVALID_PATH_DATA +input path data not valid (Since 1.0) + + + +CAIRO_STATUS_READ_ERROR +error while reading from input stream (Since 1.0) + + + +CAIRO_STATUS_WRITE_ERROR +error while writing to output stream (Since 1.0) + + + +CAIRO_STATUS_SURFACE_FINISHED +target surface has been finished (Since 1.0) + + + +CAIRO_STATUS_SURFACE_TYPE_MISMATCH +the surface type is not appropriate for the operation (Since 1.0) + + + +CAIRO_STATUS_PATTERN_TYPE_MISMATCH +the pattern type is not appropriate for the operation (Since 1.0) + + + +CAIRO_STATUS_INVALID_CONTENT +invalid value for an input cairo_content_t (Since 1.0) + + + +CAIRO_STATUS_INVALID_FORMAT +invalid value for an input cairo_format_t (Since 1.0) + + + +CAIRO_STATUS_INVALID_VISUAL +invalid value for an input Visual* (Since 1.0) + + + +CAIRO_STATUS_FILE_NOT_FOUND +file not found (Since 1.0) + + + +CAIRO_STATUS_INVALID_DASH +invalid value for a dash setting (Since 1.0) + + + +CAIRO_STATUS_INVALID_DSC_COMMENT +invalid value for a DSC comment (Since 1.2) + + + +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_FONT_TYPE_MISMATCH +the font type is not appropriate for the operation (Since 1.8) + + + +CAIRO_STATUS_USER_FONT_IMMUTABLE +the user-font is immutable (Since 1.8) + + + +CAIRO_STATUS_USER_FONT_ERROR +error occurred in a user-font callback function (Since 1.8) + + + +CAIRO_STATUS_NEGATIVE_COUNT +negative number used where it is not allowed (Since 1.8) + + + +CAIRO_STATUS_INVALID_CLUSTERS +input clusters do not represent the accompanying text and glyph array (Since 1.8) + + + +CAIRO_STATUS_INVALID_SLANT +invalid value for an input cairo_font_slant_t (Since 1.8) + + + +CAIRO_STATUS_INVALID_WEIGHT +invalid value for an input cairo_font_weight_t (Since 1.8) + + + +CAIRO_STATUS_INVALID_SIZE +invalid value (typically too big) for the size of the input (surface, pattern, etc.) (Since 1.10) + + + +CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED +user-font method not implemented (Since 1.10) + + + +CAIRO_STATUS_DEVICE_TYPE_MISMATCH +the device type is not appropriate for the operation (Since 1.10) + + + +CAIRO_STATUS_DEVICE_ERROR +an operation to the device caused an unspecified error (Since 1.10) + + + +CAIRO_STATUS_INVALID_MESH_CONSTRUCTION +a mesh pattern + construction operation was used outside of a + cairo_mesh_pattern_begin_patch()/cairo_mesh_pattern_end_patch() + pair (Since 1.12) + + + +CAIRO_STATUS_DEVICE_FINISHED +target device has been finished (Since 1.12) + + + +CAIRO_STATUS_JBIG2_GLOBAL_MISSING +CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID has been used on at least one image + but no image provided CAIRO_MIME_TYPE_JBIG2_GLOBAL (Since 1.14) + + + +CAIRO_STATUS_PNG_ERROR +error occurred in libpng while reading from or writing to a PNG file (Since 1.16) + + + +CAIRO_STATUS_FREETYPE_ERROR +error occurred in libfreetype (Since 1.16) + + + +CAIRO_STATUS_WIN32_GDI_ERROR +error occurred in the Windows Graphics Device Interface (Since 1.16) + + + +CAIRO_STATUS_TAG_ERROR +invalid tag name, attributes, or nesting (Since 1.16) + + + +CAIRO_STATUS_LAST_STATUS +this is a special value indicating the number of + status values defined in this enumeration. When using this value, note + that the version of cairo at run-time may have additional status values + defined than the value of this symbol at compile-time. (Since 1.10) + + + + +Since: 1.0 + + + +See Also +cairo_status(), cairo_surface_status(), cairo_pattern_status(), + cairo_font_face_status(), cairo_scaled_font_status(), + cairo_region_status() + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-surface-observer.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-surface-observer.xml new file mode 100644 index 0000000..b7e31b9 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-surface-observer.xml @@ -0,0 +1,233 @@ + + +]> + + +cairo-surface-observer +3 +CAIRO Library + + +cairo-surface-observer + + + + +Functions + + + + + +cairo_surface_t * +cairo_surface_create_observer () +cairo_status_t +cairo_surface_observer_add_fill_callback () +cairo_status_t +cairo_surface_observer_add_finish_callback () +cairo_status_t +cairo_surface_observer_add_flush_callback () +cairo_status_t +cairo_surface_observer_add_glyphs_callback () +cairo_status_t +cairo_surface_observer_add_mask_callback () +cairo_status_t +cairo_surface_observer_add_paint_callback () +cairo_status_t +cairo_surface_observer_add_stroke_callback () +void +(*cairo_surface_observer_callback_t) () +double +cairo_surface_observer_elapsed () +cairo_status_t +cairo_surface_observer_print () + + + + + + +Types and Values + + + + + +#defineCAIRO_HAS_OBSERVER_SURFACE +enumcairo_surface_observer_mode_t + + + + + + + + +Description + + + +Functions + +cairo_surface_create_observer () +cairo_surface_create_observer +cairo_surface_t * +cairo_surface_create_observer (cairo_surface_t *target, + cairo_surface_observer_mode_t mode); +Create a new surface that exists solely to watch another is doing. In +the process it will log operations and times, which are fast, which are +slow, which are frequent, etc. +The mode + parameter can be set to either CAIRO_SURFACE_OBSERVER_NORMAL +or CAIRO_SURFACE_OBSERVER_RECORD_OPERATIONS, to control whether or not +the internal observer should record operations. + +Parameters + + + + + + +target +an existing surface for which the observer will watch + +mode +sets the mode of operation (normal vs. record) + + + +Returns + a pointer to the newly allocated surface. The caller +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 other +is already in an error state +or any other error occurs. +Since: 1.12 + +cairo_surface_observer_add_fill_callback () +cairo_surface_observer_add_fill_callback +cairo_status_t +cairo_surface_observer_add_fill_callback + (cairo_surface_t *abstract_surface, + cairo_surface_observer_callback_t func, + void *data); + + +cairo_surface_observer_add_finish_callback () +cairo_surface_observer_add_finish_callback +cairo_status_t +cairo_surface_observer_add_finish_callback + (cairo_surface_t *abstract_surface, + cairo_surface_observer_callback_t func, + void *data); + + +cairo_surface_observer_add_flush_callback () +cairo_surface_observer_add_flush_callback +cairo_status_t +cairo_surface_observer_add_flush_callback + (cairo_surface_t *abstract_surface, + cairo_surface_observer_callback_t func, + void *data); + + +cairo_surface_observer_add_glyphs_callback () +cairo_surface_observer_add_glyphs_callback +cairo_status_t +cairo_surface_observer_add_glyphs_callback + (cairo_surface_t *abstract_surface, + cairo_surface_observer_callback_t func, + void *data); + + +cairo_surface_observer_add_mask_callback () +cairo_surface_observer_add_mask_callback +cairo_status_t +cairo_surface_observer_add_mask_callback + (cairo_surface_t *abstract_surface, + cairo_surface_observer_callback_t func, + void *data); + + +cairo_surface_observer_add_paint_callback () +cairo_surface_observer_add_paint_callback +cairo_status_t +cairo_surface_observer_add_paint_callback + (cairo_surface_t *abstract_surface, + cairo_surface_observer_callback_t func, + void *data); + + +cairo_surface_observer_add_stroke_callback () +cairo_surface_observer_add_stroke_callback +cairo_status_t +cairo_surface_observer_add_stroke_callback + (cairo_surface_t *abstract_surface, + cairo_surface_observer_callback_t func, + void *data); + + +cairo_surface_observer_callback_t () +cairo_surface_observer_callback_t +void +(*cairo_surface_observer_callback_t) (cairo_surface_t *observer, + cairo_surface_t *target, + void *data); + + +cairo_surface_observer_elapsed () +cairo_surface_observer_elapsed +double +cairo_surface_observer_elapsed (cairo_surface_t *surface); + + +cairo_surface_observer_print () +cairo_surface_observer_print +cairo_status_t +cairo_surface_observer_print (cairo_surface_t *surface, + cairo_write_func_t write_func, + void *closure); + + + + +Types and Values + +CAIRO_HAS_OBSERVER_SURFACE +CAIRO_HAS_OBSERVER_SURFACE +#define CAIRO_HAS_OBSERVER_SURFACE 1 + + + +enum cairo_surface_observer_mode_t +cairo_surface_observer_mode_t +Whether operations should be recorded. + +Members + + + + + + +CAIRO_SURFACE_OBSERVER_NORMAL +no recording is done + + + +CAIRO_SURFACE_OBSERVER_RECORD_OPERATIONS +operations are recorded + + + + +Since: 1.12 + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-surface.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-surface.xml new file mode 100644 index 0000000..2b8e112 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-surface.xml @@ -0,0 +1,1525 @@ + + +]> + + +cairo_surface_t +3 +CAIRO Library + + +cairo_surface_t +Base class for surfaces + + + +Functions + + + + + +cairo_surface_t * +cairo_surface_create_similar () +cairo_surface_t * +cairo_surface_create_similar_image () +cairo_surface_t * +cairo_surface_create_for_rectangle () +cairo_surface_t * +cairo_surface_reference () +void +cairo_surface_destroy () +cairo_status_t +cairo_surface_status () +void +cairo_surface_finish () +void +cairo_surface_flush () +cairo_device_t * +cairo_surface_get_device () +void +cairo_surface_get_font_options () +cairo_content_t +cairo_surface_get_content () +void +cairo_surface_mark_dirty () +void +cairo_surface_mark_dirty_rectangle () +void +cairo_surface_set_device_offset () +void +cairo_surface_get_device_offset () +void +cairo_surface_get_device_scale () +void +cairo_surface_set_device_scale () +void +cairo_surface_set_fallback_resolution () +void +cairo_surface_get_fallback_resolution () +cairo_surface_type_t +cairo_surface_get_type () +unsigned int +cairo_surface_get_reference_count () +cairo_status_t +cairo_surface_set_user_data () +void * +cairo_surface_get_user_data () +void +cairo_surface_copy_page () +void +cairo_surface_show_page () +cairo_bool_t +cairo_surface_has_show_text_glyphs () +cairo_status_t +cairo_surface_set_mime_data () +void +cairo_surface_get_mime_data () +cairo_bool_t +cairo_surface_supports_mime_type () +cairo_surface_t * +cairo_surface_map_to_image () +void +cairo_surface_unmap_image () + + + + + + +Types and Values + + + + + +#defineCAIRO_HAS_MIME_SURFACE +#defineCAIRO_MIME_TYPE_CCITT_FAX +#defineCAIRO_MIME_TYPE_CCITT_FAX_PARAMS +#defineCAIRO_MIME_TYPE_EPS +#defineCAIRO_MIME_TYPE_EPS_PARAMS +#defineCAIRO_MIME_TYPE_JBIG2 +#defineCAIRO_MIME_TYPE_JBIG2_GLOBAL +#defineCAIRO_MIME_TYPE_JBIG2_GLOBAL_ID +#defineCAIRO_MIME_TYPE_JP2 +#defineCAIRO_MIME_TYPE_JPEG +#defineCAIRO_MIME_TYPE_PNG +#defineCAIRO_MIME_TYPE_URI +#defineCAIRO_MIME_TYPE_UNIQUE_ID +typedefcairo_surface_t +enumcairo_content_t +enumcairo_surface_type_t + + + + + + + + +Description +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 context. +A cairo surface is created by using backend-specific +constructors, typically of the form +cairo_backend_surface_create(). +Most surface types allow accessing the surface without using Cairo +functions. If you do this, keep in mind that it is mandatory that you call +cairo_surface_flush() before reading from or writing to the surface and that +you must use cairo_surface_mark_dirty() after modifying it. + +Directly modifying an image surface + +void +modify_image_surface (cairo_surface_t *surface) +{ + unsigned char *data; + int width, height, stride; + + // flush to ensure all writing to the image was done + cairo_surface_flush (surface); + + // modify the image + data = cairo_image_surface_get_data (surface); + width = cairo_image_surface_get_width (surface); + height = cairo_image_surface_get_height (surface); + stride = cairo_image_surface_get_stride (surface); + modify_image_data (data, width, height, stride); + + // mark the image dirty so Cairo clears its caches. + cairo_surface_mark_dirty (surface); +} + + +Note that for other surface types it might be necessary to acquire the +surface's device first. See cairo_device_acquire() for a discussion of +devices. + + + +Functions + +cairo_surface_create_similar () +cairo_surface_create_similar +cairo_surface_t * +cairo_surface_create_similar (cairo_surface_t *other, + cairo_content_t content, + int width, + int height); +Create a new surface that is as compatible as possible with an +existing surface. For example the new surface will have the same +device scale, fallback resolution and font options as +other +. Generally, the new surface will also use the same backend +as other +, unless that is not possible for some reason. The type of +the returned surface may be examined with +cairo_surface_get_type(). +Initially the surface contents are all 0 (transparent if contents +have transparency, black otherwise.) +Use cairo_surface_create_similar_image() if you need an image surface +which can be painted quickly to the target surface. + +Parameters + + + + + + +other +an existing surface used to select the backend of the new surface + +content +the content for the new surface + +width +width of the new surface, (in device-space units) + +height +height of the new surface (in device-space units) + + + +Returns + a pointer to the newly allocated surface. The caller +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 other +is already in an error state +or any other error occurs. +Since: 1.0 + +cairo_surface_create_similar_image () +cairo_surface_create_similar_image +cairo_surface_t * +cairo_surface_create_similar_image (cairo_surface_t *other, + cairo_format_t format, + int width, + int height); +Create a new image surface that is as compatible as possible for uploading +to and the use in conjunction with an existing surface. However, this surface +can still be used like any normal image surface. Unlike +cairo_surface_create_similar() the new image surface won't inherit +the device scale from other +. +Initially the surface contents are all 0 (transparent if contents +have transparency, black otherwise.) +Use cairo_surface_create_similar() if you don't need an image surface. + +Parameters + + + + + + +other +an existing surface used to select the preference of the new surface + +format +the format for the new surface + +width +width of the new surface, (in pixels) + +height +height of the new surface (in pixels) + + + +Returns + a pointer to the newly allocated image surface. The caller +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 other +is already in an error state +or any other error occurs. +Since: 1.12 + +cairo_surface_create_for_rectangle () +cairo_surface_create_for_rectangle +cairo_surface_t * +cairo_surface_create_for_rectangle (cairo_surface_t *target, + double x, + double y, + double width, + double height); +Create a new surface that is a rectangle within the target surface. +All operations drawn to this surface are then clipped and translated +onto the target surface. Nothing drawn via this sub-surface outside of +its bounds is drawn onto the target surface, making this a useful method +for passing constrained child surfaces to library routines that draw +directly onto the parent surface, i.e. with no further backend allocations, +double buffering or copies. +The semantics of subsurfaces have not been finalized yet +unless the rectangle is in full device units, is contained within +the extents of the target surface, and the target or subsurface's +device transforms are not changed. + +Parameters + + + + + + +target +an existing surface for which the sub-surface will point to + +x +the x-origin of the sub-surface from the top-left of the target surface (in device-space units) + +y +the y-origin of the sub-surface from the top-left of the target surface (in device-space units) + +width +width of the sub-surface (in device-space units) + +height +height of the sub-surface (in device-space units) + + + +Returns + a pointer to the newly allocated surface. The caller +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 other +is already in an error state +or any other error occurs. +Since: 1.10 + +cairo_surface_reference () +cairo_surface_reference +cairo_surface_t * +cairo_surface_reference (cairo_surface_t *surface); +Increases the reference count on surface + by one. This prevents +surface + from being destroyed until a matching call to +cairo_surface_destroy() is made. +Use cairo_surface_get_reference_count() to get the number of +references to a cairo_surface_t. + +Parameters + + + + + + +surface +a cairo_surface_t + + + +Returns + the referenced cairo_surface_t. +Since: 1.0 + +cairo_surface_destroy () +cairo_surface_destroy +void +cairo_surface_destroy (cairo_surface_t *surface); +Decreases the reference count on surface + by one. If the result is +zero, then surface + and all associated resources are freed. See +cairo_surface_reference(). + +Parameters + + + + + + +surface +a cairo_surface_t + + +Since: 1.0 + +cairo_surface_status () +cairo_surface_status +cairo_status_t +cairo_surface_status (cairo_surface_t *surface); +Checks whether an error has previously occurred for this +surface. + +Parameters + + + + + + +surface +a cairo_surface_t + + + +Returns + CAIRO_STATUS_SUCCESS, CAIRO_STATUS_NULL_POINTER, +CAIRO_STATUS_NO_MEMORY, CAIRO_STATUS_READ_ERROR, +CAIRO_STATUS_INVALID_CONTENT, CAIRO_STATUS_INVALID_FORMAT, or +CAIRO_STATUS_INVALID_VISUAL. +Since: 1.0 + +cairo_surface_finish () +cairo_surface_finish +void +cairo_surface_finish (cairo_surface_t *surface); +This function finishes the surface and drops all references to +external resources. For example, for the Xlib backend it means +that cairo will no longer access the drawable, which can be freed. +After calling cairo_surface_finish() the only valid operations on a +surface are getting and setting user, referencing and +destroying, and flushing and finishing it. +Further drawing to the surface will not affect the +surface but will instead trigger a CAIRO_STATUS_SURFACE_FINISHED +error. +When the last call to cairo_surface_destroy() decreases the +reference count to zero, cairo will call cairo_surface_finish() if +it hasn't been called already, before freeing the resources +associated with the surface. + +Parameters + + + + + + +surface +the cairo_surface_t to finish + + +Since: 1.0 + +cairo_surface_flush () +cairo_surface_flush +void +cairo_surface_flush (cairo_surface_t *surface); +Do any pending drawing for the surface and also restore any temporary +modifications cairo has made to the surface's state. This function +must be called before switching from drawing on the surface with +cairo to drawing on it directly with native APIs, or accessing its +memory outside of Cairo. If the surface doesn't support direct +access, then this function does nothing. + +Parameters + + + + + + +surface +a cairo_surface_t + + +Since: 1.0 + +cairo_surface_get_device () +cairo_surface_get_device +cairo_device_t * +cairo_surface_get_device (cairo_surface_t *surface); +This function returns the device for a surface +. +See cairo_device_t. + +Parameters + + + + + + +surface +a cairo_surface_t + + + +Returns + The device for surface +or NULL if the surface does +not have an associated device. +Since: 1.10 + +cairo_surface_get_font_options () +cairo_surface_get_font_options +void +cairo_surface_get_font_options (cairo_surface_t *surface, + cairo_font_options_t *options); +Retrieves the default font rendering options for the surface. +This allows display surfaces to report the correct subpixel order +for rendering on them, print surfaces to disable hinting of +metrics and so forth. The result can then be used with +cairo_scaled_font_create(). + +Parameters + + + + + + +surface +a cairo_surface_t + +options +a cairo_font_options_t object into which to store +the retrieved options. All existing values are overwritten + + +Since: 1.0 + +cairo_surface_get_content () +cairo_surface_get_content +cairo_content_t +cairo_surface_get_content (cairo_surface_t *surface); +This function returns the content type of surface + which indicates +whether the surface contains color and/or alpha information. See +cairo_content_t. + +Parameters + + + + + + +surface +a cairo_surface_t + + + +Returns + The content type of surface +. +Since: 1.2 + +cairo_surface_mark_dirty () +cairo_surface_mark_dirty +void +cairo_surface_mark_dirty (cairo_surface_t *surface); +Tells cairo that drawing has been done to surface using means other +than cairo, and that cairo should reread any cached areas. Note +that you must call cairo_surface_flush() before doing such drawing. + +Parameters + + + + + + +surface +a cairo_surface_t + + +Since: 1.0 + +cairo_surface_mark_dirty_rectangle () +cairo_surface_mark_dirty_rectangle +void +cairo_surface_mark_dirty_rectangle (cairo_surface_t *surface, + int x, + int y, + int width, + int height); +Like cairo_surface_mark_dirty(), but drawing has been done only to +the specified rectangle, so that cairo can retain cached contents +for other parts of the surface. +Any cached clip set on the surface will be reset by this function, +to make sure that future cairo calls have the clip set that they +expect. + +Parameters + + + + + + +surface +a cairo_surface_t + +x +X coordinate of dirty rectangle + +y +Y coordinate of dirty rectangle + +width +width of dirty rectangle + +height +height of dirty rectangle + + +Since: 1.0 + +cairo_surface_set_device_offset () +cairo_surface_set_device_offset +void +cairo_surface_set_device_offset (cairo_surface_t *surface, + double x_offset, + double y_offset); +Sets an offset that is added to the device coordinates determined +by the CTM when drawing to surface +. One use case for this function +is when we want to create a cairo_surface_t that redirects drawing +for a portion of an onscreen surface to an offscreen surface in a +way that is completely invisible to the user of the cairo +API. Setting a transformation via cairo_translate() isn't +sufficient to do this, since functions like +cairo_device_to_user() will expose the hidden offset. +Note that the offset affects drawing to the surface as well as +using the surface in a source pattern. + +Parameters + + + + + + +surface +a cairo_surface_t + +x_offset +the offset in the X direction, in device units + +y_offset +the offset in the Y direction, in device units + + +Since: 1.0 + +cairo_surface_get_device_offset () +cairo_surface_get_device_offset +void +cairo_surface_get_device_offset (cairo_surface_t *surface, + double *x_offset, + double *y_offset); +This function returns the previous device offset set by +cairo_surface_set_device_offset(). + +Parameters + + + + + + +surface +a cairo_surface_t + +x_offset +the offset in the X direction, in device units + +y_offset +the offset in the Y direction, in device units + + +Since: 1.2 + +cairo_surface_get_device_scale () +cairo_surface_get_device_scale +void +cairo_surface_get_device_scale (cairo_surface_t *surface, + double *x_scale, + double *y_scale); +This function returns the previous device offset set by +cairo_surface_set_device_scale(). + +Parameters + + + + + + +surface +a cairo_surface_t + +x_scale +the scale in the X direction, in device units + +y_scale +the scale in the Y direction, in device units + + +Since: 1.14 + +cairo_surface_set_device_scale () +cairo_surface_set_device_scale +void +cairo_surface_set_device_scale (cairo_surface_t *surface, + double x_scale, + double y_scale); +Sets a scale that is multiplied to the device coordinates determined +by the CTM when drawing to surface +. One common use for this is to +render to very high resolution display devices at a scale factor, so +that code that assumes 1 pixel will be a certain size will still work. +Setting a transformation via cairo_translate() isn't +sufficient to do this, since functions like +cairo_device_to_user() will expose the hidden scale. +Note that the scale affects drawing to the surface as well as +using the surface in a source pattern. + +Parameters + + + + + + +surface +a cairo_surface_t + +x_scale +a scale factor in the X direction + +y_scale +a scale factor in the Y direction + + +Since: 1.14 + +cairo_surface_set_fallback_resolution () +cairo_surface_set_fallback_resolution +void +cairo_surface_set_fallback_resolution (cairo_surface_t *surface, + double x_pixels_per_inch, + double y_pixels_per_inch); +Set the horizontal and vertical resolution for image fallbacks. +When certain operations aren't supported natively by a backend, +cairo will fallback by rendering operations to an image and then +overlaying that image onto the output. For backends that are +natively vector-oriented, this function can be used to set the +resolution used for these image fallbacks, (larger values will +result in more detailed images, but also larger file sizes). +Some examples of natively vector-oriented backends are the ps, pdf, +and svg backends. +For backends that are natively raster-oriented, image fallbacks are +still possible, but they are always performed at the native +device resolution. So this function has no effect on those +backends. +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. +The default fallback resoultion is 300 pixels per inch in both +dimensions. + +Parameters + + + + + + +surface +a cairo_surface_t + +x_pixels_per_inch +horizontal setting for pixels per inch + +y_pixels_per_inch +vertical setting for pixels per inch + + +Since: 1.2 + +cairo_surface_get_fallback_resolution () +cairo_surface_get_fallback_resolution +void +cairo_surface_get_fallback_resolution (cairo_surface_t *surface, + double *x_pixels_per_inch, + double *y_pixels_per_inch); +This function returns the previous fallback resolution set by +cairo_surface_set_fallback_resolution(), or default fallback +resolution if never set. + +Parameters + + + + + + +surface +a cairo_surface_t + +x_pixels_per_inch +horizontal pixels per inch + +y_pixels_per_inch +vertical pixels per inch + + +Since: 1.8 + +cairo_surface_get_type () +cairo_surface_get_type +cairo_surface_type_t +cairo_surface_get_type (cairo_surface_t *surface); +This function returns the type of the backend used to create +a surface. See cairo_surface_type_t for available types. + +Parameters + + + + + + +surface +a cairo_surface_t + + + +Returns + The type of surface +. +Since: 1.2 + +cairo_surface_get_reference_count () +cairo_surface_get_reference_count +unsigned int +cairo_surface_get_reference_count (cairo_surface_t *surface); +Returns the current reference count of surface +. + +Parameters + + + + + + +surface +a cairo_surface_t + + + +Returns + the current reference count of surface +. If the +object is a nil object, 0 will be returned. +Since: 1.4 + +cairo_surface_set_user_data () +cairo_surface_set_user_data +cairo_status_t +cairo_surface_set_user_data (cairo_surface_t *surface, + const cairo_user_data_key_t *key, + void *user_data, + cairo_destroy_func_t destroy); +Attach user data to surface +. To remove user data from a surface, +call this function with the key that was used to set it and NULL +for data +. + +Parameters + + + + + + +surface +a cairo_surface_t + +key +the address of a cairo_user_data_key_t to attach the user data to + +user_data +the user data to attach to the surface + +destroy +a cairo_destroy_func_t which will be called when the +surface is destroyed or when new user data is attached using the +same key. + + + +Returns + CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY if a +slot could not be allocated for the user data. +Since: 1.0 + +cairo_surface_get_user_data () +cairo_surface_get_user_data +void * +cairo_surface_get_user_data (cairo_surface_t *surface, + const cairo_user_data_key_t *key); +Return user data previously attached to surface + using the specified +key. If no user data has been attached with the given key this +function returns NULL. + +Parameters + + + + + + +surface +a cairo_surface_t + +key +the address of the cairo_user_data_key_t the user data was +attached to + + + +Returns + the user data previously attached or NULL. +Since: 1.0 + +cairo_surface_copy_page () +cairo_surface_copy_page +void +cairo_surface_copy_page (cairo_surface_t *surface); +Emits the current page for backends that support multiple pages, +but doesn't clear it, so that the contents of the current page will +be retained for the next page. Use cairo_surface_show_page() if you +want to get an empty page after the emission. +There is a convenience function for this that takes a cairo_t, +namely cairo_copy_page(). + +Parameters + + + + + + +surface +a cairo_surface_t + + +Since: 1.6 + +cairo_surface_show_page () +cairo_surface_show_page +void +cairo_surface_show_page (cairo_surface_t *surface); +Emits and clears the current page for backends that support multiple +pages. Use cairo_surface_copy_page() if you don't want to clear the page. +There is a convenience function for this that takes a cairo_t, +namely cairo_show_page(). + +Parameters + + + + + + +surface +a cairo_Surface_t + + +Since: 1.6 + +cairo_surface_has_show_text_glyphs () +cairo_surface_has_show_text_glyphs +cairo_bool_t +cairo_surface_has_show_text_glyphs (cairo_surface_t *surface); +Returns whether the surface supports +sophisticated cairo_show_text_glyphs() operations. That is, +whether it actually uses the provided text and cluster data +to a cairo_show_text_glyphs() call. +Note: Even if this function returns FALSE, a +cairo_show_text_glyphs() operation targeted at surface + will +still succeed. It just will +act like a cairo_show_glyphs() operation. Users can use this +function to avoid computing UTF-8 text and cluster mapping if the +target surface does not use it. + +Parameters + + + + + + +surface +a cairo_surface_t + + + +Returns + TRUE if surface +supports +cairo_show_text_glyphs(), FALSE otherwise +Since: 1.8 + +cairo_surface_set_mime_data () +cairo_surface_set_mime_data +cairo_status_t +cairo_surface_set_mime_data (cairo_surface_t *surface, + const char *mime_type, + const unsigned char *data, + unsigned long length, + cairo_destroy_func_t destroy, + void *closure); +Attach an image in the format mime_type + to surface +. To remove +the data from a surface, call this function with same mime type +and NULL for data +. +The attached image (or filename) data can later be used by backends +which support it (currently: PDF, PS, SVG and Win32 Printing +surfaces) to emit this data instead of making a snapshot of the +surface +. This approach tends to be faster and requires less +memory and disk space. +The recognized MIME types are the following: CAIRO_MIME_TYPE_JPEG, +CAIRO_MIME_TYPE_PNG, CAIRO_MIME_TYPE_JP2, CAIRO_MIME_TYPE_URI, +CAIRO_MIME_TYPE_UNIQUE_ID, CAIRO_MIME_TYPE_JBIG2, +CAIRO_MIME_TYPE_JBIG2_GLOBAL, CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID, +CAIRO_MIME_TYPE_CCITT_FAX, CAIRO_MIME_TYPE_CCITT_FAX_PARAMS. +See corresponding backend surface docs for details about which MIME +types it can handle. Caution: the associated MIME data will be +discarded if you draw on the surface afterwards. Use this function +with care. +Even if a backend supports a MIME type, that does not mean cairo +will always be able to use the attached MIME data. For example, if +the backend does not natively support the compositing operation used +to apply the MIME data to the backend. In that case, the MIME data +will be ignored. Therefore, to apply an image in all cases, it is best +to create an image surface which contains the decoded image data and +then attach the MIME data to that. This ensures the image will always +be used while still allowing the MIME data to be used whenever +possible. + +Parameters + + + + + + +surface +a cairo_surface_t + +mime_type +the MIME type of the image data + +data +the image data to attach to the surface + +length +the length of the image data + +destroy +a cairo_destroy_func_t which will be called when the +surface is destroyed or when new image data is attached using the +same mime type. + +closure +the data to be passed to the destroy +notifier + + + +Returns + CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY if a +slot could not be allocated for the user data. +Since: 1.10 + +cairo_surface_get_mime_data () +cairo_surface_get_mime_data +void +cairo_surface_get_mime_data (cairo_surface_t *surface, + const char *mime_type, + const unsigned char **data, + unsigned long *length); +Return mime data previously attached to surface + using the +specified mime type. If no data has been attached with the given +mime type, data + is set NULL. + +Parameters + + + + + + +surface +a cairo_surface_t + +mime_type +the mime type of the image data + +data +the image data to attached to the surface + +length +the length of the image data + + +Since: 1.10 + +cairo_surface_supports_mime_type () +cairo_surface_supports_mime_type +cairo_bool_t +cairo_surface_supports_mime_type (cairo_surface_t *surface, + const char *mime_type); +Return whether surface + supports mime_type +. + +Parameters + + + + + + +surface +a cairo_surface_t + +mime_type +the mime type + + + +Returns + TRUE if surface +supports +mime_type +, FALSE otherwise +Since: 1.12 + +cairo_surface_map_to_image () +cairo_surface_map_to_image +cairo_surface_t * +cairo_surface_map_to_image (cairo_surface_t *surface, + const cairo_rectangle_int_t *extents); +Returns an image surface that is the most efficient mechanism for +modifying the backing store of the target surface. The region retrieved +may be limited to the extents + or NULL for the whole surface +Note, the use of the original surface as a target or source whilst +it is mapped is undefined. The result of mapping the surface +multiple times is undefined. Calling cairo_surface_destroy() or +cairo_surface_finish() on the resulting image surface results in +undefined behavior. Changing the device transform of the image +surface or of surface + before the image surface is unmapped results +in undefined behavior. + +Parameters + + + + + + +surface +an existing surface used to extract the image from + +extents +limit the extraction to an rectangular region + + + +Returns + a pointer to the newly allocated image surface. The caller +must use cairo_surface_unmap_image() to destroy this image surface. +This function always returns a valid pointer, but it will return a +pointer to a "nil" surface if other +is already in an error state +or any other error occurs. If the returned pointer does not have an +error status, it is guaranteed to be an image surface whose format +is not CAIRO_FORMAT_INVALID. +Since: 1.12 + +cairo_surface_unmap_image () +cairo_surface_unmap_image +void +cairo_surface_unmap_image (cairo_surface_t *surface, + cairo_surface_t *image); +Unmaps the image surface as returned from cairo_surface_map_to_image(). +The content of the image will be uploaded to the target surface. +Afterwards, the image is destroyed. +Using an image surface which wasn't returned by cairo_surface_map_to_image() +results in undefined behavior. + +Parameters + + + + + + +surface +the surface passed to cairo_surface_map_to_image(). + +image +the currently mapped image + + +Since: 1.12 + + + +Types and Values + +CAIRO_HAS_MIME_SURFACE +CAIRO_HAS_MIME_SURFACE +#define CAIRO_HAS_MIME_SURFACE 1 + + + +CAIRO_MIME_TYPE_CCITT_FAX +CAIRO_MIME_TYPE_CCITT_FAX +#define CAIRO_MIME_TYPE_CCITT_FAX "image/g3fax" + +Group 3 or Group 4 CCITT facsimile encoding (International +Telecommunication Union, Recommendations T.4 and T.6.) +Since: 1.16 + +CAIRO_MIME_TYPE_CCITT_FAX_PARAMS +CAIRO_MIME_TYPE_CCITT_FAX_PARAMS +#define CAIRO_MIME_TYPE_CCITT_FAX_PARAMS "application/x-cairo.ccitt.params" + +Decode parameters for Group 3 or Group 4 CCITT facsimile encoding. +See CCITT Fax Images. +Since: 1.16 + +CAIRO_MIME_TYPE_EPS +CAIRO_MIME_TYPE_EPS +#define CAIRO_MIME_TYPE_EPS "application/postscript" + +Encapsulated PostScript file. +Encapsulated PostScript File Format Specification +Since: 1.16 + +CAIRO_MIME_TYPE_EPS_PARAMS +CAIRO_MIME_TYPE_EPS_PARAMS +#define CAIRO_MIME_TYPE_EPS_PARAMS "application/x-cairo.eps.params" + +Embedding parameters Encapsulated PostScript data. +See Embedding EPS files. +Since: 1.16 + +CAIRO_MIME_TYPE_JBIG2 +CAIRO_MIME_TYPE_JBIG2 +#define CAIRO_MIME_TYPE_JBIG2 "application/x-cairo.jbig2" + +Joint Bi-level Image Experts Group image coding standard (ISO/IEC 11544). +Since: 1.14 + +CAIRO_MIME_TYPE_JBIG2_GLOBAL +CAIRO_MIME_TYPE_JBIG2_GLOBAL +#define CAIRO_MIME_TYPE_JBIG2_GLOBAL "application/x-cairo.jbig2-global" + +Joint Bi-level Image Experts Group image coding standard (ISO/IEC 11544) global segment. +Since: 1.14 + +CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID +CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID +#define CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID "application/x-cairo.jbig2-global-id" + +An unique identifier shared by a JBIG2 global segment and all JBIG2 images +that depend on the global segment. +Since: 1.14 + +CAIRO_MIME_TYPE_JP2 +CAIRO_MIME_TYPE_JP2 +#define CAIRO_MIME_TYPE_JP2 "image/jp2" + +The Joint Photographic Experts Group (JPEG) 2000 image coding standard (ISO/IEC 15444-1). +Since: 1.10 + +CAIRO_MIME_TYPE_JPEG +CAIRO_MIME_TYPE_JPEG +#define CAIRO_MIME_TYPE_JPEG "image/jpeg" + +The Joint Photographic Experts Group (JPEG) image coding standard (ISO/IEC 10918-1). +Since: 1.10 + +CAIRO_MIME_TYPE_PNG +CAIRO_MIME_TYPE_PNG +#define CAIRO_MIME_TYPE_PNG "image/png" + +The Portable Network Graphics image file format (ISO/IEC 15948). +Since: 1.10 + +CAIRO_MIME_TYPE_URI +CAIRO_MIME_TYPE_URI +#define CAIRO_MIME_TYPE_URI "text/x-uri" + +URI for an image file (unofficial MIME type). +Since: 1.10 + +CAIRO_MIME_TYPE_UNIQUE_ID +CAIRO_MIME_TYPE_UNIQUE_ID +#define CAIRO_MIME_TYPE_UNIQUE_ID "application/x-cairo.uuid" + +Unique identifier for a surface (cairo specific MIME type). All surfaces with +the same unique identifier will only be embedded once. +Since: 1.12 + +cairo_surface_t +cairo_surface_t +typedef struct _cairo_surface cairo_surface_t; + +A cairo_surface_t represents an image, either as the destination +of a drawing operation or as source when drawing onto another +surface. To draw to a cairo_surface_t, create a cairo context +with the surface as the target, using cairo_create(). +There are different subtypes of cairo_surface_t for +different drawing backends; for example, cairo_image_surface_create() +creates a bitmap image in memory. +The type of a surface can be queried with cairo_surface_get_type(). +The initial contents of a surface after creation depend upon the manner +of its creation. If cairo creates the surface and backing storage for +the user, it will be initially cleared; for example, +cairo_image_surface_create() and cairo_surface_create_similar(). +Alternatively, if the user passes in a reference to some backing storage +and asks cairo to wrap that in a cairo_surface_t, then the contents are +not modified; for example, cairo_image_surface_create_for_data() and +cairo_xlib_surface_create(). +Memory management of cairo_surface_t is done with +cairo_surface_reference() and cairo_surface_destroy(). +Since: 1.0 + +enum cairo_content_t +cairo_content_t +cairo_content_t is used to describe the content that a surface will +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 +implementation can detect the error if users confuse the two types. + +Members + + + + + + +CAIRO_CONTENT_COLOR +The surface will hold color content only. (Since 1.0) + + + +CAIRO_CONTENT_ALPHA +The surface will hold alpha content only. (Since 1.0) + + + +CAIRO_CONTENT_COLOR_ALPHA +The surface will hold color and alpha content. (Since 1.0) + + + + +Since: 1.0 + +enum cairo_surface_type_t +cairo_surface_type_t +cairo_surface_type_t is used to describe the type of a given +surface. The surface types are also known as "backends" or "surface +backends" within cairo. +The type of a surface is determined by the function used to create +it, which will generally be of the form +cairo_type_surface_create(), +(though see cairo_surface_create_similar() as well). +The surface type can be queried with cairo_surface_get_type() +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 +cairo_type_surface such as cairo_image_surface_get_width(). +The behavior of calling a type-specific function with a surface of +the wrong type is undefined. +New entries may be added in future versions. + +Members + + + + + + +CAIRO_SURFACE_TYPE_IMAGE +The surface is of type image, since 1.2 + + + +CAIRO_SURFACE_TYPE_PDF +The surface is of type pdf, since 1.2 + + + +CAIRO_SURFACE_TYPE_PS +The surface is of type ps, since 1.2 + + + +CAIRO_SURFACE_TYPE_XLIB +The surface is of type xlib, since 1.2 + + + +CAIRO_SURFACE_TYPE_XCB +The surface is of type xcb, since 1.2 + + + +CAIRO_SURFACE_TYPE_GLITZ +The surface is of type glitz, since 1.2 + + + +CAIRO_SURFACE_TYPE_QUARTZ +The surface is of type quartz, since 1.2 + + + +CAIRO_SURFACE_TYPE_WIN32 +The surface is of type win32, since 1.2 + + + +CAIRO_SURFACE_TYPE_BEOS +The surface is of type beos, since 1.2 + + + +CAIRO_SURFACE_TYPE_DIRECTFB +The surface is of type directfb, since 1.2 + + + +CAIRO_SURFACE_TYPE_SVG +The surface is of type svg, since 1.2 + + + +CAIRO_SURFACE_TYPE_OS2 +The surface is of type os2, since 1.4 + + + +CAIRO_SURFACE_TYPE_WIN32_PRINTING +The surface is a win32 printing surface, since 1.6 + + + +CAIRO_SURFACE_TYPE_QUARTZ_IMAGE +The surface is of type quartz_image, since 1.6 + + + +CAIRO_SURFACE_TYPE_SCRIPT +The surface is of type script, since 1.10 + + + +CAIRO_SURFACE_TYPE_QT +The surface is of type Qt, since 1.10 + + + +CAIRO_SURFACE_TYPE_RECORDING +The surface is of type recording, since 1.10 + + + +CAIRO_SURFACE_TYPE_VG +The surface is a OpenVG surface, since 1.10 + + + +CAIRO_SURFACE_TYPE_GL +The surface is of type OpenGL, since 1.10 + + + +CAIRO_SURFACE_TYPE_DRM +The surface is of type Direct Render Manager, since 1.10 + + + +CAIRO_SURFACE_TYPE_TEE +The surface is of type 'tee' (a multiplexing surface), since 1.10 + + + +CAIRO_SURFACE_TYPE_XML +The surface is of type XML (for debugging), since 1.10 + + + +CAIRO_SURFACE_TYPE_SKIA + + +CAIRO_SURFACE_TYPE_SUBSURFACE +The surface is a subsurface created with + cairo_surface_create_for_rectangle(), since 1.10 + + + +CAIRO_SURFACE_TYPE_COGL +This surface is of type Cogl, since 1.12 + + + + +Since: 1.2 + + + +See Also +cairo_t, cairo_pattern_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-svg.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-svg.xml new file mode 100644 index 0000000..60d81dd --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-svg.xml @@ -0,0 +1,425 @@ + + +]> + + +SVG Surfaces +3 +CAIRO Library + + +SVG Surfaces +Rendering SVG documents + + + +Functions + + + + + +cairo_surface_t * +cairo_svg_surface_create () +cairo_surface_t * +cairo_svg_surface_create_for_stream () +cairo_svg_unit_t +cairo_svg_surface_get_document_unit () +void +cairo_svg_surface_set_document_unit () +void +cairo_svg_surface_restrict_to_version () +void +cairo_svg_get_versions () +const char * +cairo_svg_version_to_string () + + + + + + +Types and Values + + + + + +#defineCAIRO_HAS_SVG_SURFACE +enumcairo_svg_version_t +enumcairo_svg_unit_t + + + + + + + + +Description +The SVG surface is used to render cairo graphics to +SVG files and is a multi-page vector surface backend. + + + +Functions + +cairo_svg_surface_create () +cairo_svg_surface_create +cairo_surface_t * +cairo_svg_surface_create (const char *filename, + double width_in_points, + double height_in_points); +Creates a SVG surface of the specified size in points to be written +to filename +. +The SVG surface backend recognizes the following MIME types for the +data attached to a surface (see cairo_surface_set_mime_data()) when +it is used as a source pattern for drawing on this surface: +CAIRO_MIME_TYPE_JPEG, CAIRO_MIME_TYPE_PNG, +CAIRO_MIME_TYPE_URI. If any of them is specified, the SVG backend +emits a href with the content of MIME data instead of a surface +snapshot (PNG, Base64-encoded) in the corresponding image tag. +The unofficial MIME type CAIRO_MIME_TYPE_URI is examined +first. If present, the URI is emitted as is: assuring the +correctness of URI is left to the client code. +If CAIRO_MIME_TYPE_URI is not present, but CAIRO_MIME_TYPE_JPEG +or CAIRO_MIME_TYPE_PNG is specified, the corresponding data is +Base64-encoded and emitted. +If CAIRO_MIME_TYPE_UNIQUE_ID is present, all surfaces with the same +unique identifier will only be embedded once. + +Parameters + + + + + + +filename +a filename for the SVG output (must be writable), NULL may be +used to specify no output. This will generate a SVG surface that +may be queried and used as a source, without generating a +temporary file. + +width_in_points +width of the surface, in points (1 point == 1/72.0 inch) + +height_in_points +height of the surface, in points (1 point == 1/72.0 inch) + + + +Returns + a pointer to the newly created surface. The caller +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. +Since: 1.2 + +cairo_svg_surface_create_for_stream () +cairo_svg_surface_create_for_stream +cairo_surface_t * +cairo_svg_surface_create_for_stream (cairo_write_func_t write_func, + void *closure, + double width_in_points, + double height_in_points); +Creates a SVG surface of the specified size in points to be written +incrementally to the stream represented by write_func + and closure +. + +Parameters + + + + + + +write_func +a cairo_write_func_t to accept the output data, may be NULL +to indicate a no-op write_func +. With a no-op write_func +, +the surface may be queried or used as a source without +generating any temporary files. + +closure +the closure argument for write_func + + +width_in_points +width of the surface, in points (1 point == 1/72.0 inch) + +height_in_points +height of the surface, in points (1 point == 1/72.0 inch) + + + +Returns + a pointer to the newly created surface. The caller +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. +Since: 1.2 + +cairo_svg_surface_get_document_unit () +cairo_svg_surface_get_document_unit +cairo_svg_unit_t +cairo_svg_surface_get_document_unit (cairo_surface_t *surface); +Get the unit of the SVG surface. +If the surface passed as an argument is not a SVG surface, the function +sets the error status to CAIRO_STATUS_SURFACE_TYPE_MISMATCH and returns +CAIRO_SVG_UNIT_USER. + +Parameters + + + + + + +surface +a SVG cairo_surface_t + + + +Returns + the SVG unit of the SVG surface. +Since: 1.16 + +cairo_svg_surface_set_document_unit () +cairo_svg_surface_set_document_unit +void +cairo_svg_surface_set_document_unit (cairo_surface_t *surface, + cairo_svg_unit_t unit); +Use the specified unit for the width and height of the generated SVG file. +See cairo_svg_unit_t for a list of available unit values that can be used +here. +This function can be called at any time before generating the SVG file. +However to minimize the risk of ambiguities it's recommended to call it +before any drawing operations have been performed on the given surface, to +make it clearer what the unit used in the drawing operations is. +The simplest way to do this is to call this function immediately after +creating the SVG surface. +Note if this function is never called, the default unit for SVG documents +generated by cairo will be "pt". This is for historical reasons. + +Parameters + + + + + + +surface +a SVG cairo_surface_t + +unit +SVG unit + + +Since: 1.16 + +cairo_svg_surface_restrict_to_version () +cairo_svg_surface_restrict_to_version +void +cairo_svg_surface_restrict_to_version (cairo_surface_t *surface, + cairo_svg_version_t version); +Restricts the generated SVG file to version +. See cairo_svg_get_versions() +for a list of available version values that can be used here. +This function should only be called before any drawing operations +have been performed on the given surface. The simplest way to do +this is to call this function immediately after creating the +surface. + +Parameters + + + + + + +surface +a SVG cairo_surface_t + +version +SVG version + + +Since: 1.2 + +cairo_svg_get_versions () +cairo_svg_get_versions +void +cairo_svg_get_versions (cairo_svg_version_t const **versions, + int *num_versions); +Used to retrieve the list of supported versions. See +cairo_svg_surface_restrict_to_version(). + +Parameters + + + + + + +versions +supported version list + +num_versions +list length + + +Since: 1.2 + +cairo_svg_version_to_string () +cairo_svg_version_to_string +const char * +cairo_svg_version_to_string (cairo_svg_version_t version); +Get the string representation of the given version + id. This function +will return NULL if version + isn't valid. See cairo_svg_get_versions() +for a way to get the list of valid version ids. + +Parameters + + + + + + +version +a version id + + + +Returns + the string associated to given version. +Since: 1.2 + + + +Types and Values + +CAIRO_HAS_SVG_SURFACE +CAIRO_HAS_SVG_SURFACE +#define CAIRO_HAS_SVG_SURFACE 1 + +Defined if the SVG surface backend is available. +This macro can be used to conditionally compile backend-specific code. +Since: 1.2 + +enum cairo_svg_version_t +cairo_svg_version_t +cairo_svg_version_t is used to describe the version number of the SVG +specification that a generated SVG file will conform to. + +Members + + + + + + +CAIRO_SVG_VERSION_1_1 +The version 1.1 of the SVG specification. (Since 1.2) + + + +CAIRO_SVG_VERSION_1_2 +The version 1.2 of the SVG specification. (Since 1.2) + + + + +Since: 1.2 + +enum cairo_svg_unit_t +cairo_svg_unit_t +CAIRO_SVG_UNIT_USER +: User unit, a value in the current coordinate system. + If used in the root element for the initial coordinate systems it + corresponds to pixels. (Since 1.16) +CAIRO_SVG_UNIT_EM +: The size of the element's font. (Since 1.16) +CAIRO_SVG_UNIT_EX +: The x-height of the element’s font. (Since 1.16) +CAIRO_SVG_UNIT_PX +: Pixels (1px = 1/96th of 1in). (Since 1.16) +CAIRO_SVG_UNIT_IN +: Inches (1in = 2.54cm = 96px). (Since 1.16) +CAIRO_SVG_UNIT_CM +: Centimeters (1cm = 96px/2.54). (Since 1.16) +CAIRO_SVG_UNIT_MM +: Millimeters (1mm = 1/10th of 1cm). (Since 1.16) +CAIRO_SVG_UNIT_PT +: Points (1pt = 1/72th of 1in). (Since 1.16) +CAIRO_SVG_UNIT_PC +: Picas (1pc = 1/6th of 1in). (Since 1.16) +CAIRO_SVG_UNIT_PERCENT +: Percent, a value that is some fraction of another + reference value. (Since 1.16) +cairo_svg_unit_t is used to describe the units valid for coordinates and +lengths in the SVG specification. +See also: +https://www.w3.org/TR/SVG/coords.htmlUnits +https://www.w3.org/TR/SVG/types.htmlDataTypeLength +https://www.w3.org/TR/css-values-3/lengths + +Members + + + + + + +CAIRO_SVG_UNIT_USER + + +CAIRO_SVG_UNIT_EM + + +CAIRO_SVG_UNIT_EX + + +CAIRO_SVG_UNIT_PX + + +CAIRO_SVG_UNIT_IN + + +CAIRO_SVG_UNIT_CM + + +CAIRO_SVG_UNIT_MM + + +CAIRO_SVG_UNIT_PT + + +CAIRO_SVG_UNIT_PC + + +CAIRO_SVG_UNIT_PERCENT + + + +Since: 1.16 + + + +See Also +cairo_surface_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-tag.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-tag.xml new file mode 100644 index 0000000..bf2a8d0 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-tag.xml @@ -0,0 +1,353 @@ + + +]> + + +Tags and Links +3 +CAIRO Library + + +Tags and Links +Hyperlinks and document structure + + + +Functions + + + + + +void +cairo_tag_begin () +void +cairo_tag_end () + + + + + + +Types and Values + + + + + +#defineCAIRO_TAG_DEST +#defineCAIRO_TAG_LINK + + + + + + + + +Description +The tag functions provide the ability to specify hyperlinks and +document logical structure on supported backends. The following tags are supported: + +Link - Create a hyperlink +Destinations - Create a hyperlink destination + +Document Structure Tags - Create PDF Document Structure + + +Link TagsA hyperlink is specified by enclosing the hyperlink text with the CAIRO_TAG_LINK tag. +For example: + +cairo_tag_begin (cr, CAIRO_TAG_LINK, "uri='https://cairographics.org'"); +cairo_move_to (cr, 50, 50); +cairo_show_text (cr, "This is a link to the cairo website."); +cairo_tag_end (cr, CAIRO_TAG_LINK); + +The PDF backend uses one or more rectangles to define the clickable +area of the link. By default cairo will use the extents of the +drawing operations enclosed by the begin/end link tags to define the +clickable area. In some cases, such as a link split across two +lines, the default rectangle is undesirable. +rect +: [optional] The "rect" attribute allows the application to +specify one or more rectangles that form the clickable region. The +value of this attribute is an array of floats. Each rectangle is +specified by four elements in the array: x, y, width, height. The +array size must be a multiple of four. +An example of creating a link with user specified clickable region: + +cairo_font_extents_t font_extents; +cairo_text_extents_t text1_extents; +cairo_text_extents_t text2_extents; +char attribs[100]; +const char *text1 = "This link is split"; +const char *text2 = "across two lines"; + +cairo_font_extents (cr, &font_extents); +cairo_move_to (cr, 450, 50); +cairo_text_extents (cr, text1, &text1_extents); +cairo_move_to (cr, 50, 70); +cairo_text_extents (cr, text2, &text2_extents); +sprintf (attribs, + "rect=[%f %f %f %f %f %f %f %f] uri='https://cairographics.org'", + text1_extents.x_bearing, + text1_extents.y_bearing, + text1_extents.width, + text1_extents.height, + text2_extents.x_bearing, + text2_extents.y_bearing, + text2_extents.width, + text2_extents.height); + +cairo_tag_begin (cr, CAIRO_TAG_LINK, attribs); +cairo_show_text (cr, "This is a link to the cairo website"); +cairo_move_to (cr, 450, 50); +cairo_show_text (cr, text1); +cairo_move_to (cr, 50, 70); +cairo_show_text (cr, text2); +cairo_tag_end (cr, CAIRO_TAG_LINK); + +There are three types of links. Each type has its own attributes as detailed below. + +Internal Links - A link to a location in the same document +URI Links - A link to a Uniform resource identifier + +File Links - A link to a location in another document + + +Internal LinksAn internal link is a link to a location in the same document. The destination +is specified with either: +dest +: a UTF-8 string specifying the destination in the PDF file to link +to. Destinations are created with the CAIRO_TAG_DEST tag. +or the two attributes: +page +: An integer specifying the page number in the PDF file to link to. +pos +: [optional] An array of two floats specifying the x,y position +on the page. +An example of the link attributes to link to a page and x,y position: + +"page=3 pos=[3.1 6.2]" + + +URI LinksA URI link is a link to a Uniform Resource Identifier (RFC 2396). +A URI is specified with the following attribute: +uri +: An ASCII string specifying the URI. +An example of the link attributes to the cairo website: + +"uri='https://cairographics.org'" + + +File LinksA file link is a link a location in another PDF file. +The file attribute (required) specifies the name of the PDF file: +file +: File name of PDF file to link to. +The position is specified by either: + dest +: a UTF-8 string specifying the named destination in the PDF file. +or + page +: An integer specifying the page number in the PDF file. + pos +: [optional] An array of two floats specifying the x,y + position on the page. Position coordinates in external files are in PDF + coordinates (0,0 at bottom left). +An example of the link attributes to PDF file: + +"file='document.pdf' page=16 pos=[25 40]" + + + +Destination TagsA destination is specified by enclosing the destination drawing +operations with the CAIRO_TAG_DEST tag. +name +: [required] A UTF-8 string specifying the name of this destination. +x +: [optional] A float specifying the x coordinate of destination + position on this page. If not specified the default + x coordinate is the left side of the extents of the + operations enclosed by the CAIRO_TAG_DEST begin/end tags. If + no operations are enclosed, the x coordidate is 0. +y +: [optional] A float specifying the y coordinate of destination + position on this page. If not specified the default + y coordinate is the top of the extents of the + operations enclosed by the CAIRO_TAG_DEST begin/end tags. If + no operations are enclosed, the y coordidate is 0. +internal +: A boolean that if true, the destination name may be + omitted from PDF where possible. In this case, links + refer directly to the page and position instead of via + the named destination table. Note that if this + destination is referenced by another PDF (see File Links), + this attribute must be false. Default is false. + +/* Create a hyperlink */ +cairo_tag_begin (cr, CAIRO_TAG_LINK, "dest='mydest' internal"); +cairo_move_to (cr, 50, 50); +cairo_show_text (cr, "This is a hyperlink."); +cairo_tag_end (cr, CAIRO_TAG_LINK); + +/* Create a destination */ +cairo_tag_begin (cr, CAIRO_TAG_DEST, "name='mydest'"); +cairo_move_to (cr, 50, 250); +cairo_show_text (cr, "This paragraph is the destination of the above link."); +cairo_tag_end (cr, CAIRO_TAG_DEST); + + +Document Structure (PDF)The document structure tags provide a means of specifying structural information +such as headers, paragraphs, tables, and figures. The inclusion of structural information facilitates: + +Extraction of text and graphics for copy and paste +Reflow of text and graphics in the viewer +Processing text eg searching and indexing +Conversion to other formats + +Accessability support + + +The list of structure types is specified in section 14.8.4 of the +PDF Reference. +Note the PDF "Link" structure tag is the same as the cairo CAIRO_TAG_LINK tag. +The following example creates a document structure for a document containing two section, each with +a header and a paragraph. + +cairo_tag_begin (cr, "Document", NULL); + +cairo_tag_begin (cr, "Sect", NULL); +cairo_tag_begin (cr, "H1", NULL); +cairo_show_text (cr, "Heading 1"); +cairo_tag_end (cr, "H1"); + +cairo_tag_begin (cr, "P", NULL); +cairo_show_text (cr, "Paragraph 1"); +cairo_tag_end (cr, "P"); +cairo_tag_end (cr, "Sect"); + +cairo_tag_begin (cr, "Sect", NULL); +cairo_tag_begin (cr, "H1", NULL); +cairo_show_text (cr, "Heading 2"); +cairo_tag_end (cr, "H1"); + +cairo_tag_begin (cr, "P", NULL); +cairo_show_text (cr, "Paragraph 2"); +cairo_tag_end (cr, "P"); +cairo_tag_end (cr, "Sect"); + +cairo_tag_end (cr, "Document"); + + + + + +Functions + +cairo_tag_begin () +cairo_tag_begin +void +cairo_tag_begin (cairo_t *cr, + const char *tag_name, + const char *attributes); +Marks the beginning of the tag_name + structure. Call +cairo_tag_end() with the same tag_name + to mark the end of the +structure. +The attributes string is of the form "key1=value2 key2=value2 ...". +Values may be boolean (true/false or 1/0), integer, float, string, +or an array. +String values are enclosed in single quotes +('). Single quotes and backslashes inside the string should be +escaped with a backslash. +Boolean values may be set to true by only +specifying the key. eg the attribute string "key" is the equivalent +to "key=true". +Arrays are enclosed in '[]'. eg "rect=[1.2 4.3 2.0 3.0]". +If no attributes are required, attributes + can be an empty string or NULL. +See Tags and Links Description +for the list of tags and attributes. +Invalid nesting of tags or invalid attributes will cause cr + to +shutdown with a status of CAIRO_STATUS_TAG_ERROR. +See cairo_tag_end(). + +Parameters + + + + + + +cr +a cairo context + +tag_name +tag name + +attributes +tag attributes + + +Since: 1.16 + +cairo_tag_end () +cairo_tag_end +void +cairo_tag_end (cairo_t *cr, + const char *tag_name); +Marks the end of the tag_name + structure. +Invalid nesting of tags will cause cr + to shutdown with a status of +CAIRO_STATUS_TAG_ERROR. +See cairo_tag_begin(). + +Parameters + + + + + + +cr +a cairo context + +tag_name +tag name + + +Since: 1.16 + + + +Types and Values + +CAIRO_TAG_DEST +CAIRO_TAG_DEST +#define CAIRO_TAG_DEST "cairo.dest" + +Create a destination for a hyperlink. Destination tag attributes +are detailed at Destinations. +Since: 1.16 + +CAIRO_TAG_LINK +CAIRO_TAG_LINK +#define CAIRO_TAG_LINK "Link" + +Create hyperlink. Link tag attributes are detailed at +Links. +Since: 1.16 + + + +See Also +cairo_pdf_surface_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-text.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-text.xml new file mode 100644 index 0000000..b62edec --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-text.xml @@ -0,0 +1,1090 @@ + + +]> + + +text +3 +CAIRO Library + + +text +Rendering text and glyphs + + + +Functions + + + + + +void +cairo_select_font_face () +void +cairo_set_font_size () +void +cairo_set_font_matrix () +void +cairo_get_font_matrix () +void +cairo_set_font_options () +void +cairo_get_font_options () +void +cairo_set_font_face () +cairo_font_face_t * +cairo_get_font_face () +void +cairo_set_scaled_font () +cairo_scaled_font_t * +cairo_get_scaled_font () +void +cairo_show_text () +void +cairo_show_glyphs () +void +cairo_show_text_glyphs () +void +cairo_font_extents () +void +cairo_text_extents () +void +cairo_glyph_extents () +cairo_font_face_t * +cairo_toy_font_face_create () +const char * +cairo_toy_font_face_get_family () +cairo_font_slant_t +cairo_toy_font_face_get_slant () +cairo_font_weight_t +cairo_toy_font_face_get_weight () +cairo_glyph_t * +cairo_glyph_allocate () +void +cairo_glyph_free () +cairo_text_cluster_t * +cairo_text_cluster_allocate () +void +cairo_text_cluster_free () + + + + + + +Types and Values + + + + + +cairo_glyph_t +enumcairo_font_slant_t +enumcairo_font_weight_t +cairo_text_cluster_t +enumcairo_text_cluster_flags_t + + + + + + + + +Description +The functions with text in their name form cairo's +toy 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. +The functions with glyphs in their name form cairo's +low-level 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 http://www.pango.org/. + + + +Functions + +cairo_select_font_face () +cairo_select_font_face +void +cairo_select_font_face (cairo_t *cr, + const char *family, + cairo_font_slant_t slant, + cairo_font_weight_t weight); +Note: The cairo_select_font_face() 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. +Selects a family and style of font from a simplified description as +a family name, slant and weight. Cairo provides no operation to +list available family names on the system (this is a "toy", +remember), but the standard CSS2 generic family names, ("serif", +"sans-serif", "cursive", "fantasy", "monospace"), are likely to +work as expected. +If family + starts with the string "cairo +:", or if no native font +backends are compiled in, cairo will use an internal font family. +The internal font family recognizes many modifiers in the family + +string, most notably, it recognizes the string "monospace". That is, +the family name "cairo +:monospace" will use the monospace version of +the internal font family. +For "real" font selection, see the font-backend-specific +font_face_create functions for the font backend you are using. (For +example, if you are using the freetype-based cairo-ft font backend, +see cairo_ft_font_face_create_for_ft_face() or +cairo_ft_font_face_create_for_pattern().) The resulting font face +could then be used with cairo_scaled_font_create() and +cairo_set_scaled_font(). +Similarly, when using the "real" font support, you can call +directly into the underlying font system, (such as fontconfig or +freetype), for operations such as listing available fonts, etc. +It is expected that most applications will need to use a more +comprehensive font handling and text layout library, (for example, +pango), in conjunction with cairo. +If text is drawn without a call to cairo_select_font_face(), (nor +cairo_set_font_face() nor cairo_set_scaled_font()), the default +family is platform-specific, but is essentially "sans-serif". +Default slant is CAIRO_FONT_SLANT_NORMAL, and default weight is +CAIRO_FONT_WEIGHT_NORMAL. +This function is equivalent to a call to cairo_toy_font_face_create() +followed by cairo_set_font_face(). + +Parameters + + + + + + +cr +a cairo_t + +family +a font family name, encoded in UTF-8 + +slant +the slant for the font + +weight +the weight for the font + + +Since: 1.0 + +cairo_set_font_size () +cairo_set_font_size +void +cairo_set_font_size (cairo_t *cr, + double size); +Sets the current font matrix to a scale by a factor of size +, replacing +any font matrix previously set with cairo_set_font_size() or +cairo_set_font_matrix(). This results in a font size of size + user space +units. (More precisely, this matrix will result in the font's +em-square being a size + by size + square in user space.) +If text is drawn without a call to cairo_set_font_size(), (nor +cairo_set_font_matrix() nor cairo_set_scaled_font()), the default +font size is 10.0. + +Parameters + + + + + + +cr +a cairo_t + +size +the new font size, in user space units + + +Since: 1.0 + +cairo_set_font_matrix () +cairo_set_font_matrix +void +cairo_set_font_matrix (cairo_t *cr, + const cairo_matrix_t *matrix); +Sets the current font matrix to matrix +. The font matrix gives a +transformation from the design space of the font (in this space, +the em-square is 1 unit by 1 unit) to user space. Normally, a +simple scale is used (see cairo_set_font_size()), but a more +complex font matrix can be used to shear the font +or stretch it unequally along the two axes + +Parameters + + + + + + +cr +a cairo_t + +matrix +a cairo_matrix_t describing a transform to be applied to +the current font. + + +Since: 1.0 + +cairo_get_font_matrix () +cairo_get_font_matrix +void +cairo_get_font_matrix (cairo_t *cr, + cairo_matrix_t *matrix); +Stores the current font matrix into matrix +. See +cairo_set_font_matrix(). + +Parameters + + + + + + +cr +a cairo_t + +matrix +return value for the matrix + + +Since: 1.0 + +cairo_set_font_options () +cairo_set_font_options +void +cairo_set_font_options (cairo_t *cr, + const cairo_font_options_t *options); +Sets a set of custom font rendering options for the cairo_t. +Rendering options are derived by merging these options with the +options derived from underlying surface; if the value in options + +has a default value (like CAIRO_ANTIALIAS_DEFAULT), then the value +from the surface is used. + +Parameters + + + + + + +cr +a cairo_t + +options +font options to use + + +Since: 1.0 + +cairo_get_font_options () +cairo_get_font_options +void +cairo_get_font_options (cairo_t *cr, + cairo_font_options_t *options); +Retrieves font rendering options set via cairo_set_font_options. +Note that the returned options do not include any options derived +from the underlying surface; they are literally the options +passed to cairo_set_font_options(). + +Parameters + + + + + + +cr +a cairo_t + +options +a cairo_font_options_t object into which to store +the retrieved options. All existing values are overwritten + + +Since: 1.0 + +cairo_set_font_face () +cairo_set_font_face +void +cairo_set_font_face (cairo_t *cr, + cairo_font_face_t *font_face); +Replaces the current cairo_font_face_t object in the cairo_t with +font_face +. The replaced font face in the cairo_t will be +destroyed if there are no other references to it. + +Parameters + + + + + + +cr +a cairo_t + +font_face +a cairo_font_face_t, or NULL to restore to the default font + + +Since: 1.0 + +cairo_get_font_face () +cairo_get_font_face +cairo_font_face_t * +cairo_get_font_face (cairo_t *cr); +Gets the current font face for a cairo_t. + +Parameters + + + + + + +cr +a cairo_t + + + +Returns + the current font face. This object is owned by +cairo. To keep a reference to it, you must call +cairo_font_face_reference(). +This function never returns NULL. If memory cannot be allocated, a +special "nil" cairo_font_face_t object will be returned on which +cairo_font_face_status() returns CAIRO_STATUS_NO_MEMORY. Using +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). +Since: 1.0 + +cairo_set_scaled_font () +cairo_set_scaled_font +void +cairo_set_scaled_font (cairo_t *cr, + const cairo_scaled_font_t *scaled_font); +Replaces the current font face, font matrix, and font options in +the cairo_t with those of the cairo_scaled_font_t. Except for +some translation, the current CTM of the cairo_t should be the +same as that of the cairo_scaled_font_t, which can be accessed +using cairo_scaled_font_get_ctm(). + +Parameters + + + + + + +cr +a cairo_t + +scaled_font +a cairo_scaled_font_t + + +Since: 1.2 + +cairo_get_scaled_font () +cairo_get_scaled_font +cairo_scaled_font_t * +cairo_get_scaled_font (cairo_t *cr); +Gets the current scaled font for a cairo_t. + +Parameters + + + + + + +cr +a cairo_t + + + +Returns + the current scaled font. This object is owned by +cairo. To keep a reference to it, you must call +cairo_scaled_font_reference(). +This function never returns NULL. If memory cannot be allocated, a +special "nil" cairo_scaled_font_t object will be returned on which +cairo_scaled_font_status() returns CAIRO_STATUS_NO_MEMORY. Using +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). +Since: 1.4 + +cairo_show_text () +cairo_show_text +void +cairo_show_text (cairo_t *cr, + const char *utf8); +A drawing operator that generates the shape from a string of UTF-8 +characters, rendered according to the current font_face, font_size +(font_matrix), and font_options. +This function first computes a set of glyphs for the string of +text. The first glyph is placed so that its origin is at the +current point. The origin of each subsequent glyph is offset from +that of the previous glyph by the advance values of the previous +glyph. +After this call the current point is moved to the origin of where +the next glyph would be placed in this same progression. That is, +the current point will be at the origin of the final glyph offset +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 +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 +"real" text display API in cairo. + +Parameters + + + + + + +cr +a cairo context + +utf8 +a NUL-terminated string of text encoded in UTF-8, or NULL + + +Since: 1.0 + +cairo_show_glyphs () +cairo_show_glyphs +void +cairo_show_glyphs (cairo_t *cr, + const cairo_glyph_t *glyphs, + int num_glyphs); +A drawing operator that generates the shape from an array of glyphs, +rendered according to the current font face, font size +(font matrix), and font options. + +Parameters + + + + + + +cr +a cairo context + +glyphs +array of glyphs to show + +num_glyphs +number of glyphs to show + + +Since: 1.0 + +cairo_show_text_glyphs () +cairo_show_text_glyphs +void +cairo_show_text_glyphs (cairo_t *cr, + const char *utf8, + int utf8_len, + const cairo_glyph_t *glyphs, + int num_glyphs, + const cairo_text_cluster_t *clusters, + int num_clusters, + cairo_text_cluster_flags_t cluster_flags); +This operation has rendering effects similar to cairo_show_glyphs() +but, if the target surface supports it, uses the provided text and +cluster mapping to embed the text for the glyphs shown in the output. +If the target does not support the extended attributes, this function +acts like the basic cairo_show_glyphs() as if it had been passed +glyphs + and num_glyphs +. +The mapping between utf8 + and glyphs + is provided by an array of +clusters. Each cluster covers a number of +text bytes and glyphs, and neighboring clusters cover neighboring +areas of utf8 + and glyphs +. The clusters should collectively cover utf8 + +and glyphs + in entirety. +The first cluster always covers bytes from the beginning of utf8 +. +If cluster_flags + do not have the CAIRO_TEXT_CLUSTER_FLAG_BACKWARD +set, the first cluster also covers the beginning +of glyphs +, otherwise it covers the end of the glyphs + array and +following clusters move backward. +See cairo_text_cluster_t for constraints on valid clusters. + +Parameters + + + + + + +cr +a cairo context + +utf8 +a string of text encoded in UTF-8 + +utf8_len +length of utf8 +in bytes, or -1 if it is NUL-terminated + +glyphs +array of glyphs to show + +num_glyphs +number of glyphs to show + +clusters +array of cluster mapping information + +num_clusters +number of clusters in the mapping + +cluster_flags +cluster mapping flags + + +Since: 1.8 + +cairo_font_extents () +cairo_font_extents +void +cairo_font_extents (cairo_t *cr, + cairo_font_extents_t *extents); +Gets the font extents for the currently selected font. + +Parameters + + + + + + +cr +a cairo_t + +extents +a cairo_font_extents_t object into which the results +will be stored. + + +Since: 1.0 + +cairo_text_extents () +cairo_text_extents +void +cairo_text_extents (cairo_t *cr, + const char *utf8, + cairo_text_extents_t *extents); +Gets the extents for a string of text. The extents describe a +user-space rectangle that encloses the "inked" portion of the text, +(as it would be drawn by cairo_show_text()). Additionally, the +x_advance and y_advance values indicate the amount by which the +current point would be advanced by cairo_show_text(). +Note that whitespace characters do not directly contribute to the +size of the rectangle (extents.width and extents.height). They do +contribute indirectly by changing the position of non-whitespace +characters. In particular, trailing whitespace characters are +likely to not affect the size of the rectangle, though they will +affect the x_advance and y_advance values. + +Parameters + + + + + + +cr +a cairo_t + +utf8 +a NUL-terminated string of text encoded in UTF-8, or NULL + +extents +a cairo_text_extents_t object into which the results +will be stored + + +Since: 1.0 + +cairo_glyph_extents () +cairo_glyph_extents +void +cairo_glyph_extents (cairo_t *cr, + const cairo_glyph_t *glyphs, + int num_glyphs, + cairo_text_extents_t *extents); +Gets the extents for an array of glyphs. The extents describe a +user-space rectangle that encloses the "inked" portion of the +glyphs, (as they would be drawn by cairo_show_glyphs()). +Additionally, the x_advance and y_advance values indicate the +amount by which the current point would be advanced by +cairo_show_glyphs(). +Note that whitespace glyphs do not contribute to the size of the +rectangle (extents.width and extents.height). + +Parameters + + + + + + +cr +a cairo_t + +glyphs +an array of cairo_glyph_t objects + +num_glyphs +the number of elements in glyphs + + +extents +a cairo_text_extents_t object into which the results +will be stored + + +Since: 1.0 + +cairo_toy_font_face_create () +cairo_toy_font_face_create +cairo_font_face_t * +cairo_toy_font_face_create (const char *family, + cairo_font_slant_t slant, + cairo_font_weight_t weight); +Creates a font face from a triplet of family, slant, and weight. +These font faces are used in implementation of the the cairo_t "toy" +font API. +If family + is the zero-length string "", the platform-specific default +family is assumed. The default family then can be queried using +cairo_toy_font_face_get_family(). +The cairo_select_font_face() function uses this to create font faces. +See that function for limitations and other details of toy font faces. + +Parameters + + + + + + +family +a font family name, encoded in UTF-8 + +slant +the slant for the font + +weight +the weight for the font + + + +Returns + a newly created cairo_font_face_t. Free with +cairo_font_face_destroy() when you are done using it. +Since: 1.8 + +cairo_toy_font_face_get_family () +cairo_toy_font_face_get_family +const char * +cairo_toy_font_face_get_family (cairo_font_face_t *font_face); +Gets the familly name of a toy font. + +Parameters + + + + + + +font_face +A toy font face + + + +Returns + The family name. This string is owned by the font face +and remains valid as long as the font face is alive (referenced). +Since: 1.8 + +cairo_toy_font_face_get_slant () +cairo_toy_font_face_get_slant +cairo_font_slant_t +cairo_toy_font_face_get_slant (cairo_font_face_t *font_face); +Gets the slant a toy font. + +Parameters + + + + + + +font_face +A toy font face + + + +Returns + The slant value +Since: 1.8 + +cairo_toy_font_face_get_weight () +cairo_toy_font_face_get_weight +cairo_font_weight_t +cairo_toy_font_face_get_weight (cairo_font_face_t *font_face); +Gets the weight a toy font. + +Parameters + + + + + + +font_face +A toy font face + + + +Returns + The weight value +Since: 1.8 + +cairo_glyph_allocate () +cairo_glyph_allocate +cairo_glyph_t * +cairo_glyph_allocate (int num_glyphs); +Allocates an array of cairo_glyph_t's. +This function is only useful in implementations of +cairo_user_scaled_font_text_to_glyphs_func_t where the user +needs to allocate an array of glyphs that cairo will free. +For all other uses, user can use their own allocation method +for glyphs. +This function returns NULL if num_glyphs + is not positive, +or if out of memory. That means, the NULL return value +signals out-of-memory only if num_glyphs + was positive. + +Parameters + + + + + + +num_glyphs +number of glyphs to allocate + + + +Returns + the newly allocated array of glyphs that should be +freed using cairo_glyph_free() +Since: 1.8 + +cairo_glyph_free () +cairo_glyph_free +void +cairo_glyph_free (cairo_glyph_t *glyphs); +Frees an array of cairo_glyph_t's allocated using cairo_glyph_allocate(). +This function is only useful to free glyph array returned +by cairo_scaled_font_text_to_glyphs() where cairo returns +an array of glyphs that the user will free. +For all other uses, user can use their own allocation method +for glyphs. + +Parameters + + + + + + +glyphs +array of glyphs to free, or NULL + + +Since: 1.8 + +cairo_text_cluster_allocate () +cairo_text_cluster_allocate +cairo_text_cluster_t * +cairo_text_cluster_allocate (int num_clusters); +Allocates an array of cairo_text_cluster_t's. +This function is only useful in implementations of +cairo_user_scaled_font_text_to_glyphs_func_t where the user +needs to allocate an array of text clusters that cairo will free. +For all other uses, user can use their own allocation method +for text clusters. +This function returns NULL if num_clusters + is not positive, +or if out of memory. That means, the NULL return value +signals out-of-memory only if num_clusters + was positive. + +Parameters + + + + + + +num_clusters +number of text_clusters to allocate + + + +Returns + the newly allocated array of text clusters that should be +freed using cairo_text_cluster_free() +Since: 1.8 + +cairo_text_cluster_free () +cairo_text_cluster_free +void +cairo_text_cluster_free (cairo_text_cluster_t *clusters); +Frees an array of cairo_text_cluster's allocated using cairo_text_cluster_allocate(). +This function is only useful to free text cluster array returned +by cairo_scaled_font_text_to_glyphs() where cairo returns +an array of text clusters that the user will free. +For all other uses, user can use their own allocation method +for text clusters. + +Parameters + + + + + + +clusters +array of text clusters to free, or NULL + + +Since: 1.8 + + + +Types and Values + +cairo_glyph_t +cairo_glyph_t +typedef struct { + unsigned long index; + double x; + double y; +} cairo_glyph_t; + +The cairo_glyph_t structure holds information about a single glyph +when drawing or measuring text. A font is (in simple terms) a +collection of shapes used to draw text. A glyph is one of these +shapes. There can be multiple glyphs for a single character +(alternates to be used in different contexts, for example), or a +glyph can be a ligature of multiple +characters. Cairo doesn't expose any way of converting input text +into glyphs, so in order to use the Cairo interfaces that take +arrays of glyphs, you must directly access the appropriate +underlying font system. +Note that the offsets given by x + and y + are not cumulative. When +drawing or measuring text, each glyph is individually positioned +with respect to the overall origin + +Members + + + + + + +unsigned long index; +glyph index in the font. The exact interpretation of the +glyph index depends on the font technology being used. + + +double x; +the offset in the X direction between the origin used for +drawing or measuring the string and the origin of this glyph. + + +double y; +the offset in the Y direction between the origin used for +drawing or measuring the string and the origin of this glyph. + + + + +Since: 1.0 + +enum cairo_font_slant_t +cairo_font_slant_t +Specifies variants of a font face based on their slant. + +Members + + + + + + +CAIRO_FONT_SLANT_NORMAL +Upright font style, since 1.0 + + + +CAIRO_FONT_SLANT_ITALIC +Italic font style, since 1.0 + + + +CAIRO_FONT_SLANT_OBLIQUE +Oblique font style, since 1.0 + + + + +Since: 1.0 + +enum cairo_font_weight_t +cairo_font_weight_t +Specifies variants of a font face based on their weight. + +Members + + + + + + +CAIRO_FONT_WEIGHT_NORMAL +Normal font weight, since 1.0 + + + +CAIRO_FONT_WEIGHT_BOLD +Bold font weight, since 1.0 + + + + +Since: 1.0 + +cairo_text_cluster_t +cairo_text_cluster_t +typedef struct { + int num_bytes; + int num_glyphs; +} cairo_text_cluster_t; + +The cairo_text_cluster_t structure holds information about a single +text cluster. A text cluster is a minimal +mapping of some glyphs corresponding to some UTF-8 text. +For a cluster to be valid, both num_bytes + and num_glyphs + should +be non-negative, and at least one should be non-zero. +Note that clusters with zero glyphs are not as well supported as +normal clusters. For example, PDF rendering applications typically +ignore those clusters when PDF text is being selected. +See cairo_show_text_glyphs() for how clusters are used in advanced +text operations. + +Members + + + + + + +int num_bytes; +the number of bytes of UTF-8 text covered by cluster + + +int num_glyphs; +the number of glyphs covered by cluster + + + + +Since: 1.8 + +enum cairo_text_cluster_flags_t +cairo_text_cluster_flags_t +Specifies properties of a text cluster mapping. + +Members + + + + + + +CAIRO_TEXT_CLUSTER_FLAG_BACKWARD +The clusters in the cluster array +map to glyphs in the glyph array from end to start. (Since 1.8) + + + + +Since: 1.8 + + + +See Also +cairo_font_face_t, cairo_scaled_font_t, cairo_text_path(), + cairo_glyph_path() + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-transforms.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-transforms.xml new file mode 100644 index 0000000..22d38bb --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-transforms.xml @@ -0,0 +1,389 @@ + + +]> + + +Transformations +3 +CAIRO Library + + +Transformations +Manipulating the current transformation matrix + + + +Functions + + + + + +void +cairo_translate () +void +cairo_scale () +void +cairo_rotate () +void +cairo_transform () +void +cairo_set_matrix () +void +cairo_get_matrix () +void +cairo_identity_matrix () +void +cairo_user_to_device () +void +cairo_user_to_device_distance () +void +cairo_device_to_user () +void +cairo_device_to_user_distance () + + + + + + + + +Description +The current transformation matrix, ctm, is a +two-dimensional affine transformation that maps all coordinates and other +drawing instruments from the user space into the +surface's canonical coordinate system, also known as the device +space. + + + +Functions + +cairo_translate () +cairo_translate +void +cairo_translate (cairo_t *cr, + double tx, + double ty); +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 +user-space origin takes place after any existing transformation. + +Parameters + + + + + + +cr +a cairo context + +tx +amount to translate in the X direction + +ty +amount to translate in the Y direction + + +Since: 1.0 + +cairo_scale () +cairo_scale +void +cairo_scale (cairo_t *cr, + double sx, + double sy); +Modifies the current transformation matrix (CTM) by scaling the X +and Y user-space axes by sx + and sy + respectively. The scaling of +the axes takes place after any existing transformation of user +space. + +Parameters + + + + + + +cr +a cairo context + +sx +scale factor for the X dimension + +sy +scale factor for the Y dimension + + +Since: 1.0 + +cairo_rotate () +cairo_rotate +void +cairo_rotate (cairo_t *cr, + double angle); +Modifies the current transformation matrix (CTM) by rotating the +user-space axes by angle + radians. The rotation of the axes takes +places after any existing transformation of user space. The +rotation direction for positive angles is from the positive X axis +toward the positive Y axis. + +Parameters + + + + + + +cr +a cairo context + +angle +angle (in radians) by which the user-space axes will be +rotated + + +Since: 1.0 + +cairo_transform () +cairo_transform +void +cairo_transform (cairo_t *cr, + const cairo_matrix_t *matrix); +Modifies the current transformation matrix (CTM) by applying +matrix + as an additional transformation. The new transformation of +user space takes place after any existing transformation. + +Parameters + + + + + + +cr +a cairo context + +matrix +a transformation to be applied to the user-space axes + + +Since: 1.0 + +cairo_set_matrix () +cairo_set_matrix +void +cairo_set_matrix (cairo_t *cr, + const cairo_matrix_t *matrix); +Modifies the current transformation matrix (CTM) by setting it +equal to matrix +. + +Parameters + + + + + + +cr +a cairo context + +matrix +a transformation matrix from user space to device space + + +Since: 1.0 + +cairo_get_matrix () +cairo_get_matrix +void +cairo_get_matrix (cairo_t *cr, + cairo_matrix_t *matrix); +Stores the current transformation matrix (CTM) into matrix +. + +Parameters + + + + + + +cr +a cairo context + +matrix +return value for the matrix + + +Since: 1.0 + +cairo_identity_matrix () +cairo_identity_matrix +void +cairo_identity_matrix (cairo_t *cr); +Resets the current transformation matrix (CTM) by setting it equal +to the identity matrix. That is, the user-space and device-space +axes will be aligned and one user-space unit will transform to one +device-space unit. + +Parameters + + + + + + +cr +a cairo context + + +Since: 1.0 + +cairo_user_to_device () +cairo_user_to_device +void +cairo_user_to_device (cairo_t *cr, + double *x, + double *y); +Transform a coordinate from user space to device space by +multiplying the given point by the current transformation matrix +(CTM). + +Parameters + + + + + + +cr +a cairo context + +x +X value of coordinate (in/out parameter) + +y +Y value of coordinate (in/out parameter) + + +Since: 1.0 + +cairo_user_to_device_distance () +cairo_user_to_device_distance +void +cairo_user_to_device_distance (cairo_t *cr, + double *dx, + double *dy); +Transform a distance vector from user space to device space. This +function is similar to cairo_user_to_device() except that the +translation components of the CTM will be ignored when transforming +(dx +,dy +). + +Parameters + + + + + + +cr +a cairo context + +dx +X component of a distance vector (in/out parameter) + +dy +Y component of a distance vector (in/out parameter) + + +Since: 1.0 + +cairo_device_to_user () +cairo_device_to_user +void +cairo_device_to_user (cairo_t *cr, + double *x, + double *y); +Transform a coordinate from device space to user space by +multiplying the given point by the inverse of the current +transformation matrix (CTM). + +Parameters + + + + + + +cr +a cairo + +x +X value of coordinate (in/out parameter) + +y +Y value of coordinate (in/out parameter) + + +Since: 1.0 + +cairo_device_to_user_distance () +cairo_device_to_user_distance +void +cairo_device_to_user_distance (cairo_t *cr, + double *dx, + double *dy); +Transform a distance vector from device space to user space. This +function is similar to cairo_device_to_user() except that the +translation components of the inverse CTM will be ignored when +transforming (dx +,dy +). + +Parameters + + + + + + +cr +a cairo context + +dx +X component of a distance vector (in/out parameter) + +dy +Y component of a distance vector (in/out parameter) + + +Since: 1.0 + + + +Types and Values + + + +See Also +cairo_matrix_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-types.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-types.xml new file mode 100644 index 0000000..916e4f4 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-types.xml @@ -0,0 +1,161 @@ + + +]> + + +Types +3 +CAIRO Library + + +Types +Generic data types + + + +Functions + + + + + +void +(*cairo_destroy_func_t) () + + + + + + +Types and Values + + + + + +typedefcairo_bool_t +cairo_user_data_key_t +cairo_rectangle_int_t + + + + + + + + +Description +This section lists generic data types used in the cairo API. + + + +Functions + +cairo_destroy_func_t () +cairo_destroy_func_t +void +(*cairo_destroy_func_t) (void *data); +cairo_destroy_func_t the type of function which is called when a +data element is destroyed. It is passed the pointer to the data +element and should free any memory and resources allocated for it. + +Parameters + + + + + + +data +The data element being destroyed. + + +Since: 1.0 + + + +Types and Values + +cairo_bool_t +cairo_bool_t +typedef int cairo_bool_t; + +cairo_bool_t is used for boolean values. Returns of type +cairo_bool_t will always be either 0 or 1, but testing against +these values explicitly is not encouraged; just use the +value as a boolean condition. + + if (cairo_in_stroke (cr, x, y)) { + /* do something */ + } + +Since: 1.0 + +cairo_user_data_key_t +cairo_user_data_key_t +typedef struct { + int unused; +} cairo_user_data_key_t; + +cairo_user_data_key_t is used for attaching user data to cairo +data structures. The actual contents of the struct is never used, +and there is no need to initialize the object; only the unique +address of a cairo_data_key_t object is used. Typically, you +would just use the address of a static cairo_data_key_t object. + +Members + + + + + + +int unused; +not used; ignore. + + + + +Since: 1.0 + +cairo_rectangle_int_t +cairo_rectangle_int_t +typedef struct { + int x, y; + int width, height; +} cairo_rectangle_int_t; + +A data structure for holding a rectangle with integer coordinates. + +Members + + + + + + +int x; +X coordinate of the left side of the rectangle + + +int y; +Y coordinate of the the top side of the rectangle + + +int width; +width of the rectangle + + +int height; +height of the rectangle + + + + +Since: 1.10 + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-user-fonts.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-user-fonts.xml new file mode 100644 index 0000000..894fd7a --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-user-fonts.xml @@ -0,0 +1,626 @@ + + +]> + + +User Fonts +3 +CAIRO Library + + +User Fonts +Font support with font data provided by the user + + + +Functions + + + + + +cairo_status_t +(*cairo_user_scaled_font_init_func_t) () +cairo_status_t +(*cairo_user_scaled_font_render_glyph_func_t) () +cairo_status_t +(*cairo_user_scaled_font_text_to_glyphs_func_t) () +cairo_status_t +(*cairo_user_scaled_font_unicode_to_glyph_func_t) () +cairo_font_face_t * +cairo_user_font_face_create () +void +cairo_user_font_face_set_init_func () +cairo_user_scaled_font_init_func_t +cairo_user_font_face_get_init_func () +void +cairo_user_font_face_set_render_glyph_func () +cairo_user_scaled_font_render_glyph_func_t +cairo_user_font_face_get_render_glyph_func () +void +cairo_user_font_face_set_unicode_to_glyph_func () +cairo_user_scaled_font_unicode_to_glyph_func_t +cairo_user_font_face_get_unicode_to_glyph_func () +void +cairo_user_font_face_set_text_to_glyphs_func () +cairo_user_scaled_font_text_to_glyphs_func_t +cairo_user_font_face_get_text_to_glyphs_func () + + + + + + +Types and Values + + + + + +#defineCAIRO_HAS_USER_FONT + + + + + + + + +Description +The user-font feature allows the cairo user to provide drawings for glyphs +in a font. This is most useful in implementing fonts in non-standard +formats, like SVG fonts and Flash fonts, but can also be used by games and +other application to draw "funky" fonts. + + + +Functions + +cairo_user_scaled_font_init_func_t () +cairo_user_scaled_font_init_func_t +cairo_status_t +(*cairo_user_scaled_font_init_func_t) (cairo_scaled_font_t *scaled_font, + cairo_t *cr, + cairo_font_extents_t *extents); +cairo_user_scaled_font_init_func_t is the type of function which is +called when a scaled-font needs to be created for a user font-face. +The cairo context cr + is not used by the caller, but is prepared in font +space, similar to what the cairo contexts passed to the render_glyph +method will look like. The callback can use this context for extents +computation for example. After the callback is called, cr + is checked +for any error status. +The extents + argument is where the user font sets the font extents for +scaled_font +. It is in font space, which means that for most cases its +ascent and descent members should add to 1.0. extents + is preset to +hold a value of 1.0 for ascent, height, and max_x_advance, and 0.0 for +descent and max_y_advance members. +The callback is optional. If not set, default font extents as described +in the previous paragraph will be used. +Note that scaled_font + is not fully initialized at this +point and trying to use it for text operations in the callback will result +in deadlock. + +Parameters + + + + + + +scaled_font +the scaled-font being created + +cr +a cairo context, in font space + +extents +font extents to fill in, in font space + + + +Returns + CAIRO_STATUS_SUCCESS upon success, or an error status on error. +Since: 1.8 + +cairo_user_scaled_font_render_glyph_func_t () +cairo_user_scaled_font_render_glyph_func_t +cairo_status_t +(*cairo_user_scaled_font_render_glyph_func_t) + (cairo_scaled_font_t *scaled_font, + unsigned long glyph, + cairo_t *cr, + cairo_text_extents_t *extents); +cairo_user_scaled_font_render_glyph_func_t is the type of function which +is called when a user scaled-font needs to render a glyph. +The callback is mandatory, and expected to draw the glyph with code glyph + to +the cairo context cr +. cr + is prepared such that the glyph drawing is done in +font space. That is, the matrix set on cr + is the scale matrix of scaled_font +, +The extents + argument is where the user font sets the font extents for +scaled_font +. However, if user prefers to draw in user space, they can +achieve that by changing the matrix on cr +. All cairo rendering operations +to cr + are permitted, however, the result is undefined if any source other +than the default source on cr + is used. That means, glyph bitmaps should +be rendered using cairo_mask() instead of cairo_paint(). +Other non-default settings on cr + include a font size of 1.0 (given that +it is set up to be in font space), and font options corresponding to +scaled_font +. +The extents + argument is preset to have x_bearing, +width, and y_advance of zero, +y_bearing set to -font_extents.ascent, +height to font_extents.ascent+font_extents.descent, +and x_advance to font_extents.max_x_advance. +The only field user needs to set in majority of cases is +x_advance. +If the width field is zero upon the callback returning +(which is its preset value), the glyph extents are automatically computed +based on the drawings done to cr +. This is in most cases exactly what the +desired behavior is. However, if for any reason the callback sets the +extents, it must be ink extents, and include the extents of all drawing +done to cr + in the callback. + +Parameters + + + + + + +scaled_font +user scaled-font + +glyph +glyph code to render + +cr +cairo context to draw to, in font space + +extents +glyph extents to fill in, in font space + + + +Returns + CAIRO_STATUS_SUCCESS upon success, or +CAIRO_STATUS_USER_FONT_ERROR or any other error status on error. +Since: 1.8 + +cairo_user_scaled_font_text_to_glyphs_func_t () +cairo_user_scaled_font_text_to_glyphs_func_t +cairo_status_t +(*cairo_user_scaled_font_text_to_glyphs_func_t) + (cairo_scaled_font_t *scaled_font, + const char *utf8, + int utf8_len, + cairo_glyph_t **glyphs, + int *num_glyphs, + cairo_text_cluster_t **clusters, + int *num_clusters, + cairo_text_cluster_flags_t *cluster_flags); +cairo_user_scaled_font_text_to_glyphs_func_t is the type of function which +is called to convert input text to an array of glyphs. This is used by the +cairo_show_text() operation. +Using this callback the user-font has full control on glyphs and their +positions. That means, it allows for features like ligatures and kerning, +as well as complex shaping required for scripts like +Arabic and Indic. +The num_glyphs + argument is preset to the number of glyph entries available +in the glyphs + buffer. If the glyphs + buffer is NULL, the value of +num_glyphs + will be zero. If the provided glyph array is too short for +the conversion (or for convenience), a new glyph array may be allocated +using cairo_glyph_allocate() and placed in glyphs +. Upon return, +num_glyphs + should contain the number of generated glyphs. If the value +glyphs + points at has changed after the call, the caller will free the +allocated glyph array using cairo_glyph_free(). The caller will also free +the original value of glyphs +, so the callback shouldn't do so. +The callback should populate the glyph indices and positions (in font space) +assuming that the text is to be shown at the origin. +If clusters + is not NULL, num_clusters + and cluster_flags + are also +non-NULL, and cluster mapping should be computed. The semantics of how +cluster array allocation works is similar to the glyph array. That is, +if clusters + initially points to a non-NULL value, that array may be used +as a cluster buffer, and num_clusters + points to the number of cluster +entries available there. If the provided cluster array is too short for +the conversion (or for convenience), a new cluster array may be allocated +using cairo_text_cluster_allocate() and placed in clusters +. In this case, +the original value of clusters + will still be freed by the caller. Upon +return, num_clusters + should contain the number of generated clusters. +If the value clusters + points at has changed after the call, the caller +will free the allocated cluster array using cairo_text_cluster_free(). +The callback is optional. If num_glyphs + is negative upon +the callback returning or if the return value +is CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED, the unicode_to_glyph callback +is tried. See cairo_user_scaled_font_unicode_to_glyph_func_t. +Note: While cairo does not impose any limitation on glyph indices, +some applications may assume that a glyph index fits in a 16-bit +unsigned integer. As such, it is advised that user-fonts keep their +glyphs in the 0 to 65535 range. Furthermore, some applications may +assume that glyph 0 is a special glyph-not-found glyph. User-fonts +are advised to use glyph 0 for such purposes and do not use that +glyph value for other purposes. + +Parameters + + + + + + +scaled_font +the scaled-font being created + +utf8 +a string of text encoded in UTF-8 + +utf8_len +length of utf8 +in bytes + +glyphs +pointer to array of glyphs to fill, in font space + +num_glyphs +pointer to number of glyphs + +clusters +pointer to array of cluster mapping information to fill, or NULL + +num_clusters +pointer to number of clusters + +cluster_flags +pointer to location to store cluster flags corresponding to the +output clusters + + + + +Returns + CAIRO_STATUS_SUCCESS upon success, +CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED if fallback options should be tried, +or CAIRO_STATUS_USER_FONT_ERROR or any other error status on error. +Since: 1.8 + +cairo_user_scaled_font_unicode_to_glyph_func_t () +cairo_user_scaled_font_unicode_to_glyph_func_t +cairo_status_t +(*cairo_user_scaled_font_unicode_to_glyph_func_t) + (cairo_scaled_font_t *scaled_font, + unsigned long unicode, + unsigned long *glyph_index); +cairo_user_scaled_font_unicode_to_glyph_func_t is the type of function which +is called to convert an input Unicode character to a single glyph. +This is used by the cairo_show_text() operation. +This callback is used to provide the same functionality as the +text_to_glyphs callback does (see cairo_user_scaled_font_text_to_glyphs_func_t) +but has much less control on the output, +in exchange for increased ease of use. The inherent assumption to using +this callback is that each character maps to one glyph, and that the +mapping is context independent. It also assumes that glyphs are positioned +according to their advance width. These mean no ligatures, kerning, or +complex scripts can be implemented using this callback. +The callback is optional, and only used if text_to_glyphs callback is not +set or fails to return glyphs. If this callback is not set or if it returns +CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED, an identity mapping from Unicode +code-points to glyph indices is assumed. +Note: While cairo does not impose any limitation on glyph indices, +some applications may assume that a glyph index fits in a 16-bit +unsigned integer. As such, it is advised that user-fonts keep their +glyphs in the 0 to 65535 range. Furthermore, some applications may +assume that glyph 0 is a special glyph-not-found glyph. User-fonts +are advised to use glyph 0 for such purposes and do not use that +glyph value for other purposes. + +Parameters + + + + + + +scaled_font +the scaled-font being created + +unicode +input unicode character code-point + +glyph_index +output glyph index + + + +Returns + CAIRO_STATUS_SUCCESS upon success, +CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED if fallback options should be tried, +or CAIRO_STATUS_USER_FONT_ERROR or any other error status on error. +Since: 1.8 + +cairo_user_font_face_create () +cairo_user_font_face_create +cairo_font_face_t * +cairo_user_font_face_create (void); +Creates a new user font-face. +Use the setter functions to associate callbacks with the returned +user font. The only mandatory callback is render_glyph. +After the font-face is created, the user can attach arbitrary data +(the actual font data) to it using cairo_font_face_set_user_data() +and access it from the user-font callbacks by using +cairo_scaled_font_get_font_face() followed by +cairo_font_face_get_user_data(). + +Returns + a newly created cairo_font_face_t. Free with +cairo_font_face_destroy() when you are done using it. +Since: 1.8 + +cairo_user_font_face_set_init_func () +cairo_user_font_face_set_init_func +void +cairo_user_font_face_set_init_func (cairo_font_face_t *font_face, + cairo_user_scaled_font_init_func_t init_func); +Sets the scaled-font initialization function of a user-font. +See cairo_user_scaled_font_init_func_t for details of how the callback +works. +The font-face should not be immutable or a CAIRO_STATUS_USER_FONT_IMMUTABLE +error will occur. A user font-face is immutable as soon as a scaled-font +is created from it. + +Parameters + + + + + + +font_face +A user font face + +init_func +The init callback, or NULL + + +Since: 1.8 + +cairo_user_font_face_get_init_func () +cairo_user_font_face_get_init_func +cairo_user_scaled_font_init_func_t +cairo_user_font_face_get_init_func (cairo_font_face_t *font_face); +Gets the scaled-font initialization function of a user-font. + +Parameters + + + + + + +font_face +A user font face + + + +Returns + The init callback of font_face +or NULL if none set or an error has occurred. +Since: 1.8 + +cairo_user_font_face_set_render_glyph_func () +cairo_user_font_face_set_render_glyph_func +void +cairo_user_font_face_set_render_glyph_func + (cairo_font_face_t *font_face, + cairo_user_scaled_font_render_glyph_func_t render_glyph_func); +Sets the glyph rendering function of a user-font. +See cairo_user_scaled_font_render_glyph_func_t for details of how the callback +works. +The font-face should not be immutable or a CAIRO_STATUS_USER_FONT_IMMUTABLE +error will occur. A user font-face is immutable as soon as a scaled-font +is created from it. +The render_glyph callback is the only mandatory callback of a user-font. +If the callback is NULL and a glyph is tried to be rendered using +font_face +, a CAIRO_STATUS_USER_FONT_ERROR will occur. + +Parameters + + + + + + +font_face +A user font face + +render_glyph_func +The render_glyph callback, or NULL + + +Since: 1.8 + +cairo_user_font_face_get_render_glyph_func () +cairo_user_font_face_get_render_glyph_func +cairo_user_scaled_font_render_glyph_func_t +cairo_user_font_face_get_render_glyph_func + (cairo_font_face_t *font_face); +Gets the glyph rendering function of a user-font. + +Parameters + + + + + + +font_face +A user font face + + + +Returns + The render_glyph callback of font_face +or NULL if none set or an error has occurred. +Since: 1.8 + +cairo_user_font_face_set_unicode_to_glyph_func () +cairo_user_font_face_set_unicode_to_glyph_func +void +cairo_user_font_face_set_unicode_to_glyph_func + (cairo_font_face_t *font_face, + cairo_user_scaled_font_unicode_to_glyph_func_t unicode_to_glyph_func); +Sets the unicode-to-glyph conversion function of a user-font. +See cairo_user_scaled_font_unicode_to_glyph_func_t for details of how the callback +works. +The font-face should not be immutable or a CAIRO_STATUS_USER_FONT_IMMUTABLE +error will occur. A user font-face is immutable as soon as a scaled-font +is created from it. + +Parameters + + + + + + +font_face +A user font face + +unicode_to_glyph_func +The unicode_to_glyph callback, or NULL + + +Since: 1.8 + +cairo_user_font_face_get_unicode_to_glyph_func () +cairo_user_font_face_get_unicode_to_glyph_func +cairo_user_scaled_font_unicode_to_glyph_func_t +cairo_user_font_face_get_unicode_to_glyph_func + (cairo_font_face_t *font_face); +Gets the unicode-to-glyph conversion function of a user-font. + +Parameters + + + + + + +font_face +A user font face + + + +Returns + The unicode_to_glyph callback of font_face +or NULL if none set or an error occurred. +Since: 1.8 + +cairo_user_font_face_set_text_to_glyphs_func () +cairo_user_font_face_set_text_to_glyphs_func +void +cairo_user_font_face_set_text_to_glyphs_func + (cairo_font_face_t *font_face, + cairo_user_scaled_font_text_to_glyphs_func_t text_to_glyphs_func); +Sets th text-to-glyphs conversion function of a user-font. +See cairo_user_scaled_font_text_to_glyphs_func_t for details of how the callback +works. +The font-face should not be immutable or a CAIRO_STATUS_USER_FONT_IMMUTABLE +error will occur. A user font-face is immutable as soon as a scaled-font +is created from it. + +Parameters + + + + + + +font_face +A user font face + +text_to_glyphs_func +The text_to_glyphs callback, or NULL + + +Since: 1.8 + +cairo_user_font_face_get_text_to_glyphs_func () +cairo_user_font_face_get_text_to_glyphs_func +cairo_user_scaled_font_text_to_glyphs_func_t +cairo_user_font_face_get_text_to_glyphs_func + (cairo_font_face_t *font_face); +Gets the text-to-glyphs conversion function of a user-font. + +Parameters + + + + + + +font_face +A user font face + + + +Returns + The text_to_glyphs callback of font_face +or NULL if none set or an error occurred. +Since: 1.8 + + + +Types and Values + +CAIRO_HAS_USER_FONT +CAIRO_HAS_USER_FONT +#define CAIRO_HAS_USER_FONT 1 + +Defined if the user font backend is available. +This macro can be used to conditionally compile backend-specific code. +The user font backend is always built in versions of cairo that support +this feature (1.8 and later). +Since: 1.8 + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-version.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-version.xml new file mode 100644 index 0000000..7825ecd --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-version.xml @@ -0,0 +1,278 @@ + + +]> + + +Version Information +3 +CAIRO Library + + +Version Information +Compile-time and run-time version checks. + + + +Functions + + + + + +#defineCAIRO_VERSION_ENCODE() +#defineCAIRO_VERSION_STRINGIZE() +int +cairo_version () +const char * +cairo_version_string () + + + + + + +Types and Values + + + + + +#defineCAIRO_VERSION +#defineCAIRO_VERSION_MAJOR +#defineCAIRO_VERSION_MINOR +#defineCAIRO_VERSION_MICRO +#defineCAIRO_VERSION_STRING + + + + + + + + +Description +Cairo has a three-part version number scheme. In this scheme, we use +even vs. odd numbers to distinguish fixed points in the software +vs. in-progress development, (such as from git instead of a tar file, +or as a "snapshot" tar file as opposed to a "release" tar file). + + _____ Major. Always 1, until we invent a new scheme. +/ ___ Minor. Even/Odd = Release/Snapshot (tar files) or Branch/Head (git) +| / _ Micro. Even/Odd = Tar-file/git +| | / +1.0.0 + +Here are a few examples of versions that one might see. + +Releases +-------- +1.0.0 - A major release +1.0.2 - A subsequent maintenance release +1.2.0 - Another major release +  +Snapshots +--------- +1.1.2 - A snapshot (working toward the 1.2.0 release) +  +In-progress development (eg. from git) +-------------------------------------- +1.0.1 - Development on a maintenance branch (toward 1.0.2 release) +1.1.1 - Development on head (toward 1.1.2 snapshot and 1.2.0 release) + + +Compatibility + +The API/ABI compatibility guarantees for various versions are as +follows. First, let's assume some cairo-using application code that is +successfully using the API/ABI "from" one version of cairo. Then let's +ask the question whether this same code can be moved "to" the API/ABI +of another version of cairo. + +Moving from a release to any later version (release, snapshot, +development) is always guaranteed to provide compatibility. + +Moving from a snapshot to any later version is not guaranteed to +provide compatibility, since snapshots may introduce new API that ends +up being removed before the next release. + +Moving from an in-development version (odd micro component) to any +later version is not guaranteed to provide compatibility. In fact, +there's not even a guarantee that the code will even continue to work +with the same in-development version number. This is because these +numbers don't correspond to any fixed state of the software, but +rather the many states between snapshots and releases. + + + +Examining the version + +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 the +macro CAIRO_VERSION_ENCODE() to perform the encoding. + + +Compile-time +------------ +CAIRO_VERSION_STRING Human-readable +CAIRO_VERSION Encoded, suitable for comparison +  +Run-time +-------- +cairo_version_string() Human-readable +cairo_version() Encoded, suitable for comparison + + +For example, checking that the cairo version is greater than or equal +to 1.0.0 could be achieved at compile-time or run-time as follows: + + +##if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 0, 0) +printf ("Compiling with suitable cairo version: %s\n", %CAIRO_VERSION_STRING); +##endif + +if (cairo_version() >= CAIRO_VERSION_ENCODE(1, 0, 0)) + printf ("Running with suitable cairo version: %s\n", cairo_version_string ()); + + + + + + +Functions + +CAIRO_VERSION_ENCODE() +CAIRO_VERSION_ENCODE +#define CAIRO_VERSION_ENCODE(major, minor, micro) +This macro encodes the given cairo version into an integer. The numbers +returned by CAIRO_VERSION and cairo_version() are encoded using this macro. +Two encoded version numbers can be compared as integers. The encoding ensures +that later versions compare greater than earlier versions. + +Parameters + + + + + + +major +the major component of the version number + +minor +the minor component of the version number + +micro +the micro component of the version number + + + +Returns + the encoded version. +Since: 1.0 + +CAIRO_VERSION_STRINGIZE() +CAIRO_VERSION_STRINGIZE +#define CAIRO_VERSION_STRINGIZE(major, minor, micro) +This macro encodes the given cairo version into an string. The numbers +returned by CAIRO_VERSION_STRING and cairo_version_string() are encoded using this macro. +The parameters to this macro must expand to numerical literals. + +Parameters + + + + + + +major +the major component of the version number + +minor +the minor component of the version number + +micro +the micro component of the version number + + + +Returns + a string literal containing the version. +Since: 1.8 + +cairo_version () +cairo_version +int +cairo_version (void); +Returns the version of the cairo library encoded in a single +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 +or equal to version X.Y.Z could be performed as follows: + +if (cairo_version() >= CAIRO_VERSION_ENCODE(X,Y,Z)) {...} + +See also cairo_version_string() as well as the compile-time +equivalents CAIRO_VERSION and CAIRO_VERSION_STRING. + +Returns + the encoded version. +Since: 1.0 + +cairo_version_string () +cairo_version_string +const char * +cairo_version_string (void); +Returns the version of the cairo library as a human-readable string +of the form "X.Y.Z". +See also cairo_version() as well as the compile-time equivalents +CAIRO_VERSION_STRING and CAIRO_VERSION. + +Returns + a string containing the version. +Since: 1.0 + + + +Types and Values + +CAIRO_VERSION +CAIRO_VERSION +#define CAIRO_VERSION +The version of cairo available at compile-time, encoded using +CAIRO_VERSION_ENCODE(). +Since: 1.0 + +CAIRO_VERSION_MAJOR +CAIRO_VERSION_MAJOR +#define CAIRO_VERSION_MAJOR USE_cairo_version_OR_cairo_version_string_INSTEAD + +The major component of the version of cairo available at compile-time. +Since: 1.0 + +CAIRO_VERSION_MINOR +CAIRO_VERSION_MINOR +#define CAIRO_VERSION_MINOR USE_cairo_version_OR_cairo_version_string_INSTEAD + +The minor component of the version of cairo available at compile-time. +Since: 1.0 + +CAIRO_VERSION_MICRO +CAIRO_VERSION_MICRO +#define CAIRO_VERSION_MICRO USE_cairo_version_OR_cairo_version_string_INSTEAD + +The micro component of the version of cairo available at compile-time. +Since: 1.0 + +CAIRO_VERSION_STRING +CAIRO_VERSION_STRING +#define CAIRO_VERSION_STRING +A human-readable string literal containing the version of cairo available +at compile-time, in the form of "X.Y.Z". +Since: 1.8 + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-win32-fonts.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-win32-fonts.xml new file mode 100644 index 0000000..2a2d0e1 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-win32-fonts.xml @@ -0,0 +1,323 @@ + + +]> + + +Win32 Fonts +3 +CAIRO Library + + +Win32 Fonts +Font support for Microsoft Windows + + + +Functions + + + + + +cairo_font_face_t * +cairo_win32_font_face_create_for_logfontw () +cairo_font_face_t * +cairo_win32_font_face_create_for_hfont () +cairo_font_face_t * +cairo_win32_font_face_create_for_logfontw_hfont () +cairo_status_t +cairo_win32_scaled_font_select_font () +void +cairo_win32_scaled_font_done_font () +double +cairo_win32_scaled_font_get_metrics_factor () +void +cairo_win32_scaled_font_get_logical_to_device () +void +cairo_win32_scaled_font_get_device_to_logical () + + + + + + +Types and Values + + + + + +#defineCAIRO_HAS_WIN32_FONT + + + + + + + + +Description +The Microsoft Windows font backend is primarily used to render text on +Microsoft Windows systems. + + + +Functions + +cairo_win32_font_face_create_for_logfontw () +cairo_win32_font_face_create_for_logfontw +cairo_font_face_t * +cairo_win32_font_face_create_for_logfontw + (LOGFONTW *logfont); +Creates a new font for the Win32 font backend based on a +LOGFONT. This font can then be used with +cairo_set_font_face() or cairo_scaled_font_create(). +The cairo_scaled_font_t +returned from cairo_scaled_font_create() is also for the Win32 backend +and can be used with functions such as cairo_win32_scaled_font_select_font(). + +Parameters + + + + + + +logfont +A LOGFONTW structure specifying the font to use. +The lfHeight, lfWidth, lfOrientation and lfEscapement +fields of this structure are ignored. + + + +Returns + a newly created cairo_font_face_t. Free with +cairo_font_face_destroy() when you are done using it. +Since: 1.0 + +cairo_win32_font_face_create_for_hfont () +cairo_win32_font_face_create_for_hfont +cairo_font_face_t * +cairo_win32_font_face_create_for_hfont + (HFONT font); +Creates a new font for the Win32 font backend based on a +HFONT. This font can then be used with +cairo_set_font_face() or cairo_scaled_font_create(). +The cairo_scaled_font_t +returned from cairo_scaled_font_create() is also for the Win32 backend +and can be used with functions such as cairo_win32_scaled_font_select_font(). + +Parameters + + + + + + +font +An HFONT structure specifying the font to use. + + + +Returns + a newly created cairo_font_face_t. Free with +cairo_font_face_destroy() when you are done using it. +Since: 1.2 + +cairo_win32_font_face_create_for_logfontw_hfont () +cairo_win32_font_face_create_for_logfontw_hfont +cairo_font_face_t * +cairo_win32_font_face_create_for_logfontw_hfont + (LOGFONTW *logfont, + HFONT font); +Creates a new font for the Win32 font backend based on a +LOGFONT. This font can then be used with +cairo_set_font_face() or cairo_scaled_font_create(). +The cairo_scaled_font_t +returned from cairo_scaled_font_create() is also for the Win32 backend +and can be used with functions such as cairo_win32_scaled_font_select_font(). + +Parameters + + + + + + +logfont +A LOGFONTW structure specifying the font to use. +If font +is NULL then the lfHeight, lfWidth, lfOrientation and lfEscapement +fields of this structure are ignored. Otherwise lfWidth, lfOrientation and +lfEscapement must be zero. + +font +An HFONT that can be used when the font matrix is a scale by +-lfHeight and the CTM is identity. + + + +Returns + a newly created cairo_font_face_t. Free with +cairo_font_face_destroy() when you are done using it. +Since: 1.6 + +cairo_win32_scaled_font_select_font () +cairo_win32_scaled_font_select_font +cairo_status_t +cairo_win32_scaled_font_select_font (cairo_scaled_font_t *scaled_font, + HDC hdc); +Selects the font into the given device context and changes the +map mode and world transformation of the device context to match +that of the font. This function is intended for use when using +layout APIs such as Uniscribe to do text layout with the +cairo font. After finishing using the device context, you must call +cairo_win32_scaled_font_done_font() to release any resources allocated +by this function. +See cairo_win32_scaled_font_get_metrics_factor() for converting logical +coordinates from the device context to font space. +Normally, calls to SaveDC() and RestoreDC() would be made around +the use of this function to preserve the original graphics state. + +Parameters + + + + + + +scaled_font +A cairo_scaled_font_t from the Win32 font backend. Such an +object can be created with cairo_win32_font_face_create_for_logfontw(). + +hdc +a device context + + + +Returns + CAIRO_STATUS_SUCCESS if the operation succeeded. +otherwise an error such as CAIRO_STATUS_NO_MEMORY and +the device context is unchanged. +Since: 1.0 + +cairo_win32_scaled_font_done_font () +cairo_win32_scaled_font_done_font +void +cairo_win32_scaled_font_done_font (cairo_scaled_font_t *scaled_font); +Releases any resources allocated by cairo_win32_scaled_font_select_font() + +Parameters + + + + + + +scaled_font +A scaled font from the Win32 font backend. + + +Since: 1.0 + +cairo_win32_scaled_font_get_metrics_factor () +cairo_win32_scaled_font_get_metrics_factor +double +cairo_win32_scaled_font_get_metrics_factor + (cairo_scaled_font_t *scaled_font); +Gets a scale factor between logical coordinates in the coordinate +space used by cairo_win32_scaled_font_select_font() (that is, the +coordinate system used by the Windows functions to return metrics) and +font space coordinates. + +Parameters + + + + + + +scaled_font +a scaled font from the Win32 font backend + + + +Returns + factor to multiply logical units by to get font space +coordinates. +Since: 1.0 + +cairo_win32_scaled_font_get_logical_to_device () +cairo_win32_scaled_font_get_logical_to_device +void +cairo_win32_scaled_font_get_logical_to_device + (cairo_scaled_font_t *scaled_font, + cairo_matrix_t *logical_to_device); +Gets the transformation mapping the logical space used by scaled_font + +to device space. + +Parameters + + + + + + +scaled_font +a scaled font from the Win32 font backend + +logical_to_device +matrix to return + + +Since: 1.4 + +cairo_win32_scaled_font_get_device_to_logical () +cairo_win32_scaled_font_get_device_to_logical +void +cairo_win32_scaled_font_get_device_to_logical + (cairo_scaled_font_t *scaled_font, + cairo_matrix_t *device_to_logical); +Gets the transformation mapping device space to the logical space +used by scaled_font +. + +Parameters + + + + + + +scaled_font +a scaled font from the Win32 font backend + +device_to_logical +matrix to return + + +Since: 1.4 + + + +Types and Values + +CAIRO_HAS_WIN32_FONT +CAIRO_HAS_WIN32_FONT +#define CAIRO_HAS_WIN32_FONT 1 + +Defined if the Microsoft Windows font backend is available. +This macro can be used to conditionally compile backend-specific code. +Since: 1.8 + + + +See Also +cairo_font_face_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-win32.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-win32.xml new file mode 100644 index 0000000..52b7a71 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-win32.xml @@ -0,0 +1,306 @@ + + +]> + + +Win32 Surfaces +3 +CAIRO Library + + +Win32 Surfaces +Microsoft Windows surface support + + + +Functions + + + + + +cairo_surface_t * +cairo_win32_surface_create () +cairo_surface_t * +cairo_win32_surface_create_with_dib () +cairo_surface_t * +cairo_win32_surface_create_with_ddb () +cairo_surface_t * +cairo_win32_surface_create_with_format () +cairo_surface_t * +cairo_win32_printing_surface_create () +HDC +cairo_win32_surface_get_dc () +cairo_surface_t * +cairo_win32_surface_get_image () + + + + + + +Types and Values + + + + + +#defineCAIRO_HAS_WIN32_SURFACE + + + + + + + + +Description +The Microsoft Windows surface is used to render cairo graphics to +Microsoft Windows windows, bitmaps, and printing device contexts. +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. +The surface returned by the other win32 constructors is of surface type +CAIRO_SURFACE_TYPE_WIN32 and is a raster surface type. + + + +Functions + +cairo_win32_surface_create () +cairo_win32_surface_create +cairo_surface_t * +cairo_win32_surface_create (HDC hdc); +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 +size of the cairo surface. The resulting surface will always be of +format CAIRO_FORMAT_RGB24; should you need another surface format, +you will need to create one through +cairo_win32_surface_create_with_format() or +cairo_win32_surface_create_with_dib(). + +Parameters + + + + + + +hdc +the DC to create a surface for + + + +Returns + the newly created surface, NULL on failure +Since: 1.0 + +cairo_win32_surface_create_with_dib () +cairo_win32_surface_create_with_dib +cairo_surface_t * +cairo_win32_surface_create_with_dib (cairo_format_t format, + int width, + int height); +Creates a device-independent-bitmap surface not associated with +any particular existing surface or device context. The created +bitmap will be uninitialized. + +Parameters + + + + + + +format +format of pixels in the surface to create + +width +width of the surface, in pixels + +height +height of the surface, in pixels + + + +Returns + the newly created surface +Since: 1.2 + +cairo_win32_surface_create_with_ddb () +cairo_win32_surface_create_with_ddb +cairo_surface_t * +cairo_win32_surface_create_with_ddb (HDC hdc, + cairo_format_t format, + int width, + int height); +Creates a device-dependent-bitmap surface not associated with +any particular existing surface or device context. The created +bitmap will be uninitialized. + +Parameters + + + + + + +hdc +a DC compatible with the surface to create + +format +format of pixels in the surface to create + +width +width of the surface, in pixels + +height +height of the surface, in pixels + + + +Returns + the newly created surface +Since: 1.4 + +cairo_win32_surface_create_with_format () +cairo_win32_surface_create_with_format +cairo_surface_t * +cairo_win32_surface_create_with_format + (HDC hdc, + cairo_format_t format); +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 +size of the cairo surface. +Supported formats are: +CAIRO_FORMAT_ARGB32 +CAIRO_FORMAT_RGB24 +Note: format + only tells cairo how to draw on the surface, not what +the format of the surface is. Namely, cairo does not (and cannot) +check that hdc + actually supports alpha-transparency. + +Parameters + + + + + + +hdc +the DC to create a surface for + +format +format of pixels in the surface to create + + + +Returns + the newly created surface, NULL on failure +Since: 1.14 + +cairo_win32_printing_surface_create () +cairo_win32_printing_surface_create +cairo_surface_t * +cairo_win32_printing_surface_create (HDC hdc); +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 +size of the cairo surface. The DC should be a printing DC; +antialiasing will be ignored, and GDI will be used as much as +possible to draw to the surface. +The returned surface will be wrapped using the paginated surface to +provide correct complex rendering behaviour; cairo_surface_show_page() and +associated methods must be used for correct output. + +Parameters + + + + + + +hdc +the DC to create a surface for + + + +Returns + the newly created surface +Since: 1.6 + +cairo_win32_surface_get_dc () +cairo_win32_surface_get_dc +HDC +cairo_win32_surface_get_dc (cairo_surface_t *surface); +Returns the HDC associated with this surface, or NULL if none. +Also returns NULL if the surface is not a win32 surface. +A call to cairo_surface_flush() is required before using the HDC to +ensure that all pending drawing operations are finished and to +restore any temporary modification cairo has made to its state. A +call to cairo_surface_mark_dirty() is required after the state or +the content of the HDC has been modified. + +Parameters + + + + + + +surface +a cairo_surface_t + + + +Returns + HDC or NULL if no HDC available. +Since: 1.2 + +cairo_win32_surface_get_image () +cairo_win32_surface_get_image +cairo_surface_t * +cairo_win32_surface_get_image (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. + +Parameters + + + + + + +surface +a cairo_surface_t + + + +Returns + a cairo_surface_t (owned by the win32 cairo_surface_t), +or NULL if the win32 surface is not a DIB. +Since: 1.4 + + + +Types and Values + +CAIRO_HAS_WIN32_SURFACE +CAIRO_HAS_WIN32_SURFACE +#define CAIRO_HAS_WIN32_SURFACE 1 + +Defined if the Microsoft Windows surface backend is available. +This macro can be used to conditionally compile backend-specific code. +Since: 1.0 + + + +See Also +cairo_surface_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-xcb.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-xcb.xml new file mode 100644 index 0000000..5c23f62 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-xcb.xml @@ -0,0 +1,474 @@ + + +]> + + +XCB Surfaces +3 +CAIRO Library + + +XCB Surfaces +X Window System rendering using the XCB library + + + +Functions + + + + + +cairo_surface_t * +cairo_xcb_surface_create () +cairo_surface_t * +cairo_xcb_surface_create_for_bitmap () +cairo_surface_t * +cairo_xcb_surface_create_with_xrender_format () +void +cairo_xcb_surface_set_size () +void +cairo_xcb_surface_set_drawable () +xcb_connection_t * +cairo_xcb_device_get_connection () +void +cairo_xcb_device_debug_cap_xrender_version () +void +cairo_xcb_device_debug_cap_xshm_version () +int +cairo_xcb_device_debug_get_precision () +void +cairo_xcb_device_debug_set_precision () + + + + + + +Types and Values + + + + + +#defineCAIRO_HAS_XCB_SURFACE +#defineCAIRO_HAS_XCB_SHM_FUNCTIONS + + + + + + + + +Description +The XCB surface is used to render cairo graphics to X Window System +windows and pixmaps using the XCB library. +Note that the XCB surface automatically takes advantage of the X render +extension if it is available. + + + +Functions + +cairo_xcb_surface_create () +cairo_xcb_surface_create +cairo_surface_t * +cairo_xcb_surface_create (xcb_connection_t *connection, + xcb_drawable_t drawable, + xcb_visualtype_t *visual, + int width, + int height); +Creates an XCB surface that draws to the given drawable. +The way that colors are represented in the drawable is specified +by the provided visual. +Note: If drawable + is a Window, then the function +cairo_xcb_surface_set_size() must be called whenever the size of the +window changes. +When drawable + is a Window containing child windows then drawing to +the created surface will be clipped by those child windows. When +the created surface is used as a source, the contents of the +children will be included. + +Parameters + + + + + + +connection +an XCB connection + +drawable +an XCB drawable + +visual +the visual to use for drawing to drawable +. The depth +of the visual must match the depth of the drawable. +Currently, only TrueColor visuals are fully supported. + +width +the current width of drawable + + +height +the current height of drawable + + + + +Returns + a pointer to the newly created surface. The caller +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. +Since: 1.12 + +cairo_xcb_surface_create_for_bitmap () +cairo_xcb_surface_create_for_bitmap +cairo_surface_t * +cairo_xcb_surface_create_for_bitmap (xcb_connection_t *connection, + xcb_screen_t *screen, + xcb_pixmap_t bitmap, + int width, + int height); +Creates an XCB surface that draws to the given bitmap. +This will be drawn to as a CAIRO_FORMAT_A1 object. + +Parameters + + + + + + +connection +an XCB connection + +screen +the XCB screen associated with bitmap + + +bitmap +an XCB drawable (a Pixmap with depth 1) + +width +the current width of bitmap + + +height +the current height of bitmap + + + + +Returns + a pointer to the newly created surface. The caller +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. +Since: 1.12 + +cairo_xcb_surface_create_with_xrender_format () +cairo_xcb_surface_create_with_xrender_format +cairo_surface_t * +cairo_xcb_surface_create_with_xrender_format + (xcb_connection_t *connection, + xcb_screen_t *screen, + xcb_drawable_t drawable, + xcb_render_pictforminfo_t *format, + int width, + int height); +Creates an XCB surface that draws to the given drawable. +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 +cairo_xcb_surface_set_size() must be called whenever the size of the +window changes. +When drawable + is a Window containing child windows then drawing to +the created surface will be clipped by those child windows. When +the created surface is used as a source, the contents of the +children will be included. + +Parameters + + + + + + +connection +an XCB connection + +drawable +an XCB drawable + +screen +the XCB screen associated with drawable + + +format +the picture format to use for drawing to drawable +. The +depth of format +mush match the depth of the drawable. + +width +the current width of drawable + + +height +the current height of drawable + + + + +Returns + a pointer to the newly created surface. The caller +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. +Since: 1.12 + +cairo_xcb_surface_set_size () +cairo_xcb_surface_set_size +void +cairo_xcb_surface_set_size (cairo_surface_t *surface, + int width, + int height); +Informs cairo of the new size of the XCB drawable underlying the +surface. For a surface created for a window (rather than a pixmap), +this function must be called each time the size of the window +changes. (For a subwindow, you are normally resizing the window +yourself, but for a toplevel window, it is necessary to listen for +ConfigureNotify events.) +A pixmap can never change size, so it is never necessary to call +this function on a surface created for a pixmap. +If cairo_surface_flush() wasn't called, some pending operations +might be discarded. + +Parameters + + + + + + +surface +a cairo_surface_t for the XCB backend + +width +the new width of the surface + +height +the new height of the surface + + +Since: 1.12 + +cairo_xcb_surface_set_drawable () +cairo_xcb_surface_set_drawable +void +cairo_xcb_surface_set_drawable (cairo_surface_t *surface, + xcb_drawable_t drawable, + int width, + int height); +Informs cairo of the new drawable and size of the XCB drawable underlying the +surface. +If cairo_surface_flush() wasn't called, some pending operations +might be discarded. + +Parameters + + + + + + +surface +a cairo_surface_t for the XCB backend + +drawable +the new drawable of the surface + +width +the new width of the surface + +height +the new height of the surface + + +Since: 1.12 + +cairo_xcb_device_get_connection () +cairo_xcb_device_get_connection +xcb_connection_t * +cairo_xcb_device_get_connection (cairo_device_t *device); +Get the connection for the XCB device. + +Parameters + + + + + + +device +a cairo_device_t for the XCB backend + + + +Returns + the xcb_connection_t for the connection +Since: 1.12 + +cairo_xcb_device_debug_cap_xrender_version () +cairo_xcb_device_debug_cap_xrender_version +void +cairo_xcb_device_debug_cap_xrender_version + (cairo_device_t *device, + int major_version, + int minor_version); +Restricts all future XCB surfaces for this devices to the specified version +of the RENDER extension. This function exists solely for debugging purpose. +It let's you find out how cairo would behave with an older version of +the RENDER extension. +Use the special values -1 and -1 for disabling the RENDER extension. + +Parameters + + + + + + +device +a cairo_device_t for the XCB backend + +major_version +major version to restrict to + +minor_version +minor version to restrict to + + +Since: 1.12 + +cairo_xcb_device_debug_cap_xshm_version () +cairo_xcb_device_debug_cap_xshm_version +void +cairo_xcb_device_debug_cap_xshm_version + (cairo_device_t *device, + int major_version, + int minor_version); +Restricts all future XCB surfaces for this devices to the specified version +of the SHM extension. This function exists solely for debugging purpose. +It let's you find out how cairo would behave with an older version of +the SHM extension. +Use the special values -1 and -1 for disabling the SHM extension. + +Parameters + + + + + + +device +a cairo_device_t for the XCB backend + +major_version +major version to restrict to + +minor_version +minor version to restrict to + + +Since: 1.12 + +cairo_xcb_device_debug_get_precision () +cairo_xcb_device_debug_get_precision +int +cairo_xcb_device_debug_get_precision (cairo_device_t *device); +Get the Xrender precision mode. + +Parameters + + + + + + +device +a cairo_device_t for the XCB backend + + + +Returns + the render precision mode +Since: 1.12 + +cairo_xcb_device_debug_set_precision () +cairo_xcb_device_debug_set_precision +void +cairo_xcb_device_debug_set_precision (cairo_device_t *device, + int precision); +Render supports two modes of precision when rendering trapezoids. Set +the precision to the desired mode. + +Parameters + + + + + + +device +a cairo_device_t for the XCB backend + +precision +the precision to use + + +Since: 1.12 + + + +Types and Values + +CAIRO_HAS_XCB_SURFACE +CAIRO_HAS_XCB_SURFACE +#define CAIRO_HAS_XCB_SURFACE 1 + +Defined if the xcb surface backend is available. +This macro can be used to conditionally compile backend-specific code. +Since: 1.12 + +CAIRO_HAS_XCB_SHM_FUNCTIONS +CAIRO_HAS_XCB_SHM_FUNCTIONS +#define CAIRO_HAS_XCB_SHM_FUNCTIONS 1 + + + + + +See Also +cairo_surface_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-xlib-xrender.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-xlib-xrender.xml new file mode 100644 index 0000000..2f7c6ce --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-xlib-xrender.xml @@ -0,0 +1,162 @@ + + +]> + + +XLib-XRender Backend +3 +CAIRO Library + + +XLib-XRender Backend +X Window System rendering using XLib and the X Render extension + + + +Functions + + + + + +cairo_surface_t * +cairo_xlib_surface_create_with_xrender_format () +XRenderPictFormat * +cairo_xlib_surface_get_xrender_format () + + + + + + +Types and Values + + + + + +#defineCAIRO_HAS_XLIB_XRENDER_SURFACE + + + + + + + + +Description +The XLib surface is used to render cairo graphics to X Window System +windows and pixmaps using the XLib and Xrender libraries. +Note that the XLib surface automatically takes advantage of X Render extension +if it is available. + + + +Functions + +cairo_xlib_surface_create_with_xrender_format () +cairo_xlib_surface_create_with_xrender_format +cairo_surface_t * +cairo_xlib_surface_create_with_xrender_format + (Display *dpy, + Drawable drawable, + Screen *screen, + XRenderPictFormat *format, + int width, + int height); +Creates an Xlib surface that draws to the given drawable. +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 +cairo_xlib_surface_set_size() must be called whenever the size of the +window changes. + +Parameters + + + + + + +dpy +an X Display + +drawable +an X Drawable, (a Pixmap or a Window) + +screen +the X Screen associated with drawable + + +format +the picture format to use for drawing to drawable +. The depth +of format +must match the depth of the drawable. + +width +the current width of drawable +. + +height +the current height of drawable +. + + + +Returns + the newly created surface +Since: 1.0 + +cairo_xlib_surface_get_xrender_format () +cairo_xlib_surface_get_xrender_format +XRenderPictFormat * +cairo_xlib_surface_get_xrender_format (cairo_surface_t *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. + +Parameters + + + + + + +surface +an xlib surface + + + +Returns + 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 + + + +Types and Values + +CAIRO_HAS_XLIB_XRENDER_SURFACE +CAIRO_HAS_XLIB_XRENDER_SURFACE +#define CAIRO_HAS_XLIB_XRENDER_SURFACE 1 + +Defined if the XLib/XRender surface functions are available. +This macro can be used to conditionally compile backend-specific code. +Since: 1.6 + + + +See Also +cairo_surface_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-xlib.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-xlib.xml new file mode 100644 index 0000000..77d0702 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-xlib.xml @@ -0,0 +1,507 @@ + + +]> + + +XLib Surfaces +3 +CAIRO Library + + +XLib Surfaces +X Window System rendering using XLib + + + +Functions + + + + + +cairo_surface_t * +cairo_xlib_surface_create () +cairo_surface_t * +cairo_xlib_surface_create_for_bitmap () +void +cairo_xlib_surface_set_size () +Display * +cairo_xlib_surface_get_display () +Screen * +cairo_xlib_surface_get_screen () +void +cairo_xlib_surface_set_drawable () +Drawable +cairo_xlib_surface_get_drawable () +Visual * +cairo_xlib_surface_get_visual () +int +cairo_xlib_surface_get_width () +int +cairo_xlib_surface_get_height () +int +cairo_xlib_surface_get_depth () +void +cairo_xlib_device_debug_cap_xrender_version () +int +cairo_xlib_device_debug_get_precision () +void +cairo_xlib_device_debug_set_precision () + + + + + + +Types and Values + + + + + +#defineCAIRO_HAS_XLIB_SURFACE + + + + + + + + +Description +The XLib surface is used to render cairo graphics to X Window System +windows and pixmaps using the XLib library. +Note that the XLib surface automatically takes advantage of X render extension +if it is available. + + + +Functions + +cairo_xlib_surface_create () +cairo_xlib_surface_create +cairo_surface_t * +cairo_xlib_surface_create (Display *dpy, + Drawable drawable, + Visual *visual, + int width, + int height); +Creates an Xlib surface that draws to the given drawable. +The way that colors are represented in the drawable is specified +by the provided visual. +Note: If drawable + is a Window, then the function +cairo_xlib_surface_set_size() must be called whenever the size of the +window changes. +When drawable + is a Window containing child windows then drawing to +the created surface will be clipped by those child windows. When +the created surface is used as a source, the contents of the +children will be included. + +Parameters + + + + + + +dpy +an X Display + +drawable +an X Drawable, (a Pixmap or a Window) + +visual +the visual to use for drawing to drawable +. The depth +of the visual must match the depth of the drawable. +Currently, only TrueColor visuals are fully supported. + +width +the current width of drawable +. + +height +the current height of drawable +. + + + +Returns + the newly created surface +Since: 1.0 + +cairo_xlib_surface_create_for_bitmap () +cairo_xlib_surface_create_for_bitmap +cairo_surface_t * +cairo_xlib_surface_create_for_bitmap (Display *dpy, + Pixmap bitmap, + Screen *screen, + int width, + int height); +Creates an Xlib surface that draws to the given bitmap. +This will be drawn to as a CAIRO_FORMAT_A1 object. + +Parameters + + + + + + +dpy +an X Display + +bitmap +an X Drawable, (a depth-1 Pixmap) + +screen +the X Screen associated with bitmap + + +width +the current width of bitmap +. + +height +the current height of bitmap +. + + + +Returns + the newly created surface +Since: 1.0 + +cairo_xlib_surface_set_size () +cairo_xlib_surface_set_size +void +cairo_xlib_surface_set_size (cairo_surface_t *surface, + int width, + int height); +Informs cairo of the new size of the X Drawable underlying the +surface. For a surface created for a Window (rather than a Pixmap), +this function must be called each time the size of the window +changes. (For a subwindow, you are normally resizing the window +yourself, but for a toplevel window, it is necessary to listen for +ConfigureNotify events.) +A Pixmap can never change size, so it is never necessary to call +this function on a surface created for a Pixmap. + +Parameters + + + + + + +surface +a cairo_surface_t for the XLib backend + +width +the new width of the surface + +height +the new height of the surface + + +Since: 1.0 + +cairo_xlib_surface_get_display () +cairo_xlib_surface_get_display +Display * +cairo_xlib_surface_get_display (cairo_surface_t *surface); +Get the X Display for the underlying X Drawable. + +Parameters + + + + + + +surface +a cairo_xlib_surface_t + + + +Returns + the display. +Since: 1.2 + +cairo_xlib_surface_get_screen () +cairo_xlib_surface_get_screen +Screen * +cairo_xlib_surface_get_screen (cairo_surface_t *surface); +Get the X Screen for the underlying X Drawable. + +Parameters + + + + + + +surface +a cairo_xlib_surface_t + + + +Returns + the screen. +Since: 1.2 + +cairo_xlib_surface_set_drawable () +cairo_xlib_surface_set_drawable +void +cairo_xlib_surface_set_drawable (cairo_surface_t *surface, + Drawable drawable, + int width, + int height); +Informs cairo of a new X Drawable underlying the +surface. The drawable must match the display, screen +and format of the existing drawable or the application +will get X protocol errors and will probably terminate. +No checks are done by this function to ensure this +compatibility. + +Parameters + + + + + + +surface +a cairo_surface_t for the XLib backend + +drawable +the new drawable for the surface + +width +the width of the new drawable + +height +the height of the new drawable + + +Since: 1.0 + +cairo_xlib_surface_get_drawable () +cairo_xlib_surface_get_drawable +Drawable +cairo_xlib_surface_get_drawable (cairo_surface_t *surface); +Get the underlying X Drawable used for the surface. + +Parameters + + + + + + +surface +a cairo_xlib_surface_t + + + +Returns + the drawable. +Since: 1.2 + +cairo_xlib_surface_get_visual () +cairo_xlib_surface_get_visual +Visual * +cairo_xlib_surface_get_visual (cairo_surface_t *surface); +Gets the X Visual associated with surface +, suitable for use with the +underlying X Drawable. If surface + was created by +cairo_xlib_surface_create(), the return value is the Visual passed to that +constructor. + +Parameters + + + + + + +surface +a cairo_xlib_surface_t + + + +Returns + the Visual or NULL if there is no appropriate Visual for +surface +. +Since: 1.2 + +cairo_xlib_surface_get_width () +cairo_xlib_surface_get_width +int +cairo_xlib_surface_get_width (cairo_surface_t *surface); +Get the width of the X Drawable underlying the surface in pixels. + +Parameters + + + + + + +surface +a cairo_xlib_surface_t + + + +Returns + the width of the surface in pixels. +Since: 1.2 + +cairo_xlib_surface_get_height () +cairo_xlib_surface_get_height +int +cairo_xlib_surface_get_height (cairo_surface_t *surface); +Get the height of the X Drawable underlying the surface in pixels. + +Parameters + + + + + + +surface +a cairo_xlib_surface_t + + + +Returns + the height of the surface in pixels. +Since: 1.2 + +cairo_xlib_surface_get_depth () +cairo_xlib_surface_get_depth +int +cairo_xlib_surface_get_depth (cairo_surface_t *surface); +Get the number of bits used to represent each pixel value. + +Parameters + + + + + + +surface +a cairo_xlib_surface_t + + + +Returns + the depth of the surface in bits. +Since: 1.2 + +cairo_xlib_device_debug_cap_xrender_version () +cairo_xlib_device_debug_cap_xrender_version +void +cairo_xlib_device_debug_cap_xrender_version + (cairo_device_t *device, + int major_version, + int minor_version); +Restricts all future Xlib surfaces for this devices to the specified version +of the RENDER extension. This function exists solely for debugging purpose. +It lets you find out how cairo would behave with an older version of +the RENDER extension. +Use the special values -1 and -1 for disabling the RENDER extension. + +Parameters + + + + + + +device +a cairo_device_t for the Xlib backend + +major_version +major version to restrict to + +minor_version +minor version to restrict to + + +Since: 1.12 + +cairo_xlib_device_debug_get_precision () +cairo_xlib_device_debug_get_precision +int +cairo_xlib_device_debug_get_precision (cairo_device_t *device); +Get the Xrender precision mode. + +Parameters + + + + + + +device +a cairo_device_t for the Xlib backend + + + +Returns + the render precision mode +Since: 1.12 + +cairo_xlib_device_debug_set_precision () +cairo_xlib_device_debug_set_precision +void +cairo_xlib_device_debug_set_precision (cairo_device_t *device, + int precision); +Render supports two modes of precision when rendering trapezoids. Set +the precision to the desired mode. + +Parameters + + + + + + +device +a cairo_device_t for the Xlib backend + +precision +the precision to use + + +Since: 1.12 + + + +Types and Values + +CAIRO_HAS_XLIB_SURFACE +CAIRO_HAS_XLIB_SURFACE +#define CAIRO_HAS_XLIB_SURFACE 1 + +Defined if the Xlib surface backend is available. +This macro can be used to conditionally compile backend-specific code. +Since: 1.0 + + + +See Also +cairo_surface_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo.xml b/libs/cairo-1.16.0/doc/public/xml/cairo.xml new file mode 100644 index 0000000..c4b546f --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo.xml @@ -0,0 +1,2538 @@ + + +]> + + +cairo_t +3 +CAIRO Library + + +cairo_t +The cairo drawing context + + + +Functions + + + + + +cairo_t * +cairo_create () +cairo_t * +cairo_reference () +void +cairo_destroy () +cairo_status_t +cairo_status () +void +cairo_save () +void +cairo_restore () +cairo_surface_t * +cairo_get_target () +void +cairo_push_group () +void +cairo_push_group_with_content () +cairo_pattern_t * +cairo_pop_group () +void +cairo_pop_group_to_source () +cairo_surface_t * +cairo_get_group_target () +void +cairo_set_source_rgb () +void +cairo_set_source_rgba () +void +cairo_set_source () +void +cairo_set_source_surface () +cairo_pattern_t * +cairo_get_source () +void +cairo_set_antialias () +cairo_antialias_t +cairo_get_antialias () +void +cairo_set_dash () +int +cairo_get_dash_count () +void +cairo_get_dash () +void +cairo_set_fill_rule () +cairo_fill_rule_t +cairo_get_fill_rule () +void +cairo_set_line_cap () +cairo_line_cap_t +cairo_get_line_cap () +void +cairo_set_line_join () +cairo_line_join_t +cairo_get_line_join () +void +cairo_set_line_width () +double +cairo_get_line_width () +void +cairo_set_miter_limit () +double +cairo_get_miter_limit () +void +cairo_set_operator () +cairo_operator_t +cairo_get_operator () +void +cairo_set_tolerance () +double +cairo_get_tolerance () +void +cairo_clip () +void +cairo_clip_preserve () +void +cairo_clip_extents () +cairo_bool_t +cairo_in_clip () +void +cairo_reset_clip () +void +cairo_rectangle_list_destroy () +cairo_rectangle_list_t * +cairo_copy_clip_rectangle_list () +void +cairo_fill () +void +cairo_fill_preserve () +void +cairo_fill_extents () +cairo_bool_t +cairo_in_fill () +void +cairo_mask () +void +cairo_mask_surface () +void +cairo_paint () +void +cairo_paint_with_alpha () +void +cairo_stroke () +void +cairo_stroke_preserve () +void +cairo_stroke_extents () +cairo_bool_t +cairo_in_stroke () +void +cairo_copy_page () +void +cairo_show_page () +unsigned int +cairo_get_reference_count () +cairo_status_t +cairo_set_user_data () +void * +cairo_get_user_data () + + + + + + +Types and Values + + + + + +typedefcairo_t +enumcairo_antialias_t +enumcairo_fill_rule_t +enumcairo_line_cap_t +enumcairo_line_join_t +enumcairo_operator_t +cairo_rectangle_t +cairo_rectangle_list_t + + + + + + + + +Description +cairo_t is the main object used when drawing with cairo. To +draw with cairo, you create a cairo_t, set the target surface, +and drawing options for the cairo_t, create shapes with +functions like cairo_move_to() and cairo_line_to(), and then +draw shapes with cairo_stroke() or cairo_fill(). +cairo_t's can be pushed to a stack via cairo_save(). +They may then safely be changed, without losing the current state. +Use cairo_restore() to restore to the saved state. + + + +Functions + +cairo_create () +cairo_create +cairo_t * +cairo_create (cairo_surface_t *target); +Creates a new cairo_t with all graphics state parameters set to +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 +cairo_backend_surface_create() +variant). +This function references target +, so you can immediately +call cairo_surface_destroy() on it if you don't need to +maintain a separate reference to it. + +Parameters + + + + + + +target +target surface for the context + + + +Returns + a newly allocated cairo_t with a reference +count of 1. The initial reference count should be released +with cairo_destroy() when you are done using the cairo_t. +This function never returns NULL. If memory cannot be +allocated, a special cairo_t object will be returned on +which cairo_status() returns CAIRO_STATUS_NO_MEMORY. If +you attempt to target a surface which does not support +writing (such as cairo_mime_surface_t) then a +CAIRO_STATUS_WRITE_ERROR will be raised. You can use this +object normally, but no drawing will be done. +Since: 1.0 + +cairo_reference () +cairo_reference +cairo_t * +cairo_reference (cairo_t *cr); +Increases the reference count on cr + by one. This prevents +cr + from being destroyed until a matching call to cairo_destroy() +is made. +Use cairo_get_reference_count() to get the number of references to +a cairo_t. + +Parameters + + + + + + +cr +a cairo_t + + + +Returns + the referenced cairo_t. +Since: 1.0 + +cairo_destroy () +cairo_destroy +void +cairo_destroy (cairo_t *cr); +Decreases the reference count on cr + by one. If the result +is zero, then cr + and all associated resources are freed. +See cairo_reference(). + +Parameters + + + + + + +cr +a cairo_t + + +Since: 1.0 + +cairo_status () +cairo_status +cairo_status_t +cairo_status (cairo_t *cr); +Checks whether an error has previously occurred for this context. + +Parameters + + + + + + +cr +a cairo context + + + +Returns + the current status of this context, see cairo_status_t +Since: 1.0 + +cairo_save () +cairo_save +void +cairo_save (cairo_t *cr); +Makes a copy of the current state of cr + and saves it +on an internal stack of saved states for cr +. When +cairo_restore() is called, cr + will be restored to +the saved state. Multiple calls to cairo_save() and +cairo_restore() can be nested; each call to cairo_restore() +restores the state from the matching paired cairo_save(). +It isn't necessary to clear all saved states before +a cairo_t is freed. If the reference count of a cairo_t +drops to zero in response to a call to cairo_destroy(), +any saved states will be freed along with the cairo_t. + +Parameters + + + + + + +cr +a cairo_t + + +Since: 1.0 + +cairo_restore () +cairo_restore +void +cairo_restore (cairo_t *cr); +Restores cr + to the state saved by a preceding call to +cairo_save() and removes that state from the stack of +saved states. + +Parameters + + + + + + +cr +a cairo_t + + +Since: 1.0 + +cairo_get_target () +cairo_get_target +cairo_surface_t * +cairo_get_target (cairo_t *cr); +Gets the target surface for the cairo context as passed to +cairo_create(). +This function will always return a valid pointer, but the result +can be a "nil" surface if cr + is already in an error state, +(ie. cairo_status() != CAIRO_STATUS_SUCCESS). +A nil surface is indicated by cairo_surface_status() +!= CAIRO_STATUS_SUCCESS. + +Parameters + + + + + + +cr +a cairo context + + + +Returns + the target surface. This object is owned by cairo. To +keep a reference to it, you must call cairo_surface_reference(). +Since: 1.0 + +cairo_push_group () +cairo_push_group +void +cairo_push_group (cairo_t *cr); +Temporarily redirects drawing to an intermediate surface known as a +group. The redirection lasts until the group is completed by a call +to cairo_pop_group() or cairo_pop_group_to_source(). These calls +provide the result of any drawing to the group as a pattern, +(either as an explicit object, or set as the source pattern). +This group functionality can be convenient for performing +intermediate compositing. One common use of a group is to render +objects as opaque within the group, (so that they occlude each +other), and then blend the result with translucence onto the +destination. +Groups can be nested arbitrarily deep by making balanced calls to +cairo_push_group()/cairo_pop_group(). Each call pushes/pops the new +target group onto/from a stack. +The cairo_push_group() function calls cairo_save() so that any +changes to the graphics state will not be visible outside the +group, (the pop_group functions call cairo_restore()). +By default the intermediate group will have a content type of +CAIRO_CONTENT_COLOR_ALPHA. Other content types can be chosen for +the group by using cairo_push_group_with_content() instead. +As an example, here is how one might fill and stroke a path with +translucence, but without any portion of the fill being visible +under the stroke: + +cairo_push_group (cr); +cairo_set_source (cr, fill_pattern); +cairo_fill_preserve (cr); +cairo_set_source (cr, stroke_pattern); +cairo_stroke (cr); +cairo_pop_group_to_source (cr); +cairo_paint_with_alpha (cr, alpha); + + +Parameters + + + + + + +cr +a cairo context + + +Since: 1.2 + +cairo_push_group_with_content () +cairo_push_group_with_content +void +cairo_push_group_with_content (cairo_t *cr, + cairo_content_t content); +Temporarily redirects drawing to an intermediate surface known as a +group. The redirection lasts until the group is completed by a call +to cairo_pop_group() or cairo_pop_group_to_source(). These calls +provide the result of any drawing to the group as a pattern, +(either as an explicit object, or set as the source pattern). +The group will have a content type of content +. The ability to +control this content type is the only distinction between this +function and cairo_push_group() which you should see for a more +detailed description of group rendering. + +Parameters + + + + + + +cr +a cairo context + +content +a cairo_content_t indicating the type of group that +will be created + + +Since: 1.2 + +cairo_pop_group () +cairo_pop_group +cairo_pattern_t * +cairo_pop_group (cairo_t *cr); +Terminates the redirection begun by a call to cairo_push_group() or +cairo_push_group_with_content() and returns a new pattern +containing the results of all drawing operations performed to the +group. +The cairo_pop_group() function calls cairo_restore(), (balancing a +call to cairo_save() by the push_group function), so that any +changes to the graphics state will not be visible outside the +group. + +Parameters + + + + + + +cr +a cairo context + + + +Returns + a newly created (surface) pattern containing the +results of all drawing operations performed to the group. The +caller owns the returned object and should call +cairo_pattern_destroy() when finished with it. +Since: 1.2 + +cairo_pop_group_to_source () +cairo_pop_group_to_source +void +cairo_pop_group_to_source (cairo_t *cr); +Terminates the redirection begun by a call to cairo_push_group() or +cairo_push_group_with_content() and installs the resulting pattern +as the source pattern in the given cairo context. +The behavior of this function is equivalent to the sequence of +operations: + +cairo_pattern_t *group = cairo_pop_group (cr); +cairo_set_source (cr, group); +cairo_pattern_destroy (group); + +but is more convenient as their is no need for a variable to store +the short-lived pointer to the pattern. +The cairo_pop_group() function calls cairo_restore(), (balancing a +call to cairo_save() by the push_group function), so that any +changes to the graphics state will not be visible outside the +group. + +Parameters + + + + + + +cr +a cairo context + + +Since: 1.2 + +cairo_get_group_target () +cairo_get_group_target +cairo_surface_t * +cairo_get_group_target (cairo_t *cr); +Gets the current destination surface for the context. This is either +the original target surface as passed to cairo_create() or the target +surface for the current group as started by the most recent call to +cairo_push_group() or cairo_push_group_with_content(). +This function will always return a valid pointer, but the result +can be a "nil" surface if cr + is already in an error state, +(ie. cairo_status() != CAIRO_STATUS_SUCCESS). +A nil surface is indicated by cairo_surface_status() +!= CAIRO_STATUS_SUCCESS. + +Parameters + + + + + + +cr +a cairo context + + + +Returns + the target surface. This object is owned by cairo. To +keep a reference to it, you must call cairo_surface_reference(). +Since: 1.2 + +cairo_set_source_rgb () +cairo_set_source_rgb +void +cairo_set_source_rgb (cairo_t *cr, + double red, + double green, + double blue); +Sets the source pattern within cr + to an opaque color. This opaque +color will then be used for any subsequent drawing operation until +a new source pattern is set. +The color components are floating point numbers in the range 0 to + + +If the values passed in are outside that range, they will be +clamped. + + +The default source pattern is opaque black, (that is, it is +equivalent to cairo_set_source_rgb(cr, 0.0, 0.0, 0.0)). + +Parameters + + + + + + +cr +a cairo context + +red +red component of color + +green +green component of color + +blue +blue component of color + + +Since: 1.0 + +cairo_set_source_rgba () +cairo_set_source_rgba +void +cairo_set_source_rgba (cairo_t *cr, + double red, + double green, + double blue, + double alpha); +Sets the source pattern within cr + to a translucent color. This +color will then be used for any subsequent drawing operation until +a new source pattern is set. +The color and alpha components are floating point numbers in the +range 0 to 1. If the values passed in are outside that range, they +will be clamped. +The default source pattern is opaque black, (that is, it is +equivalent to cairo_set_source_rgba(cr, 0.0, 0.0, 0.0, 1.0)). + +Parameters + + + + + + +cr +a cairo context + +red +red component of color + +green +green component of color + +blue +blue component of color + +alpha +alpha component of color + + +Since: 1.0 + +cairo_set_source () +cairo_set_source +void +cairo_set_source (cairo_t *cr, + cairo_pattern_t *source); +Sets the source pattern within cr + to source +. This pattern +will then be used for any subsequent drawing operation until a new +source pattern is set. +Note: The pattern's transformation matrix will be locked to the +user space in effect at the time of cairo_set_source(). This means +that further modifications of the current transformation matrix +will not affect the source pattern. See cairo_pattern_set_matrix(). +The default source pattern is a solid pattern that is opaque black, +(that is, it is equivalent to cairo_set_source_rgb(cr, 0.0, 0.0, +0.0)). + +Parameters + + + + + + +cr +a cairo context + +source +a cairo_pattern_t to be used as the source for +subsequent drawing operations. + + +Since: 1.0 + +cairo_set_source_surface () +cairo_set_source_surface +void +cairo_set_source_surface (cairo_t *cr, + cairo_surface_t *surface, + double x, + double y); +This is a convenience function for creating a pattern from surface + +and setting it as the source in cr + with cairo_set_source(). +The x + and y + parameters give the user-space coordinate at which +the surface origin should appear. (The surface origin is its +upper-left corner before any transformation has been applied.) The +x + and y + parameters are negated and then set as translation values +in the pattern matrix. +Other than the initial translation pattern matrix, as described +above, all other pattern attributes, (such as its extend mode), are +set to the default values as in cairo_pattern_create_for_surface(). +The resulting pattern can be queried with cairo_get_source() so +that these attributes can be modified if desired, (eg. to create a +repeating pattern with cairo_pattern_set_extend()). + +Parameters + + + + + + +cr +a cairo context + +surface +a surface to be used to set the source pattern + +x +User-space X coordinate for surface origin + +y +User-space Y coordinate for surface origin + + +Since: 1.0 + +cairo_get_source () +cairo_get_source +cairo_pattern_t * +cairo_get_source (cairo_t *cr); +Gets the current source pattern for cr +. + +Parameters + + + + + + +cr +a cairo context + + + +Returns + the current source pattern. This object is owned by +cairo. To keep a reference to it, you must call +cairo_pattern_reference(). +Since: 1.0 + +cairo_set_antialias () +cairo_set_antialias +void +cairo_set_antialias (cairo_t *cr, + cairo_antialias_t antialias); +Set the antialiasing mode of the rasterizer used for drawing shapes. +This value is a hint, and a particular backend may or may not support +a particular value. At the current time, no backend supports +CAIRO_ANTIALIAS_SUBPIXEL when drawing shapes. +Note that this option does not affect text rendering, instead see +cairo_font_options_set_antialias(). + +Parameters + + + + + + +cr +a cairo_t + +antialias +the new antialiasing mode + + +Since: 1.0 + +cairo_get_antialias () +cairo_get_antialias +cairo_antialias_t +cairo_get_antialias (cairo_t *cr); +Gets the current shape antialiasing mode, as set by +cairo_set_antialias(). + +Parameters + + + + + + +cr +a cairo context + + + +Returns + the current shape antialiasing mode. +Since: 1.0 + +cairo_set_dash () +cairo_set_dash +void +cairo_set_dash (cairo_t *cr, + const double *dashes, + int num_dashes, + double offset); +Sets the dash pattern to be used by cairo_stroke(). A dash pattern +is specified by dashes +, an array of positive values. Each value +provides the length of alternate "on" and "off" portions of the +stroke. The offset + specifies an offset into the pattern at which +the stroke begins. +Each "on" segment will have caps applied as if the segment were a +separate sub-path. In particular, it is valid to use an "on" length +of 0.0 with CAIRO_LINE_CAP_ROUND or CAIRO_LINE_CAP_SQUARE in order +to distributed dots or squares along a path. +Note: The length values are in user-space units as evaluated at the +time of stroking. This is not necessarily the same as the user +space at the time of cairo_set_dash(). +If num_dashes + is 0 dashing is disabled. +If num_dashes + is 1 a symmetric pattern is assumed with alternating +on and off portions of the size specified by the single value in +dashes +. +If any value in dashes + is negative, or if all values are 0, then +cr + will be put into an error state with a status of +CAIRO_STATUS_INVALID_DASH. + +Parameters + + + + + + +cr +a cairo context + +dashes +an array specifying alternate lengths of on and off stroke portions + +num_dashes +the length of the dashes array + +offset +an offset into the dash pattern at which the stroke should start + + +Since: 1.0 + +cairo_get_dash_count () +cairo_get_dash_count +int +cairo_get_dash_count (cairo_t *cr); +This function returns the length of the dash array in cr + (0 if dashing +is not currently in effect). +See also cairo_set_dash() and cairo_get_dash(). + +Parameters + + + + + + +cr +a cairo_t + + + +Returns + the length of the dash array, or 0 if no dash array set. +Since: 1.4 + +cairo_get_dash () +cairo_get_dash +void +cairo_get_dash (cairo_t *cr, + double *dashes, + double *offset); +Gets the current dash array. If not NULL, dashes + should be big +enough to hold at least the number of values returned by +cairo_get_dash_count(). + +Parameters + + + + + + +cr +a cairo_t + +dashes +return value for the dash array, or NULL + +offset +return value for the current dash offset, or NULL + + +Since: 1.4 + +cairo_set_fill_rule () +cairo_set_fill_rule +void +cairo_set_fill_rule (cairo_t *cr, + cairo_fill_rule_t fill_rule); +Set the current fill rule within the cairo context. The fill rule +is used to determine which regions are inside or outside a complex +(potentially self-intersecting) path. The current fill rule affects +both cairo_fill() and cairo_clip(). See cairo_fill_rule_t for details +on the semantics of each available fill rule. +The default fill rule is CAIRO_FILL_RULE_WINDING. + +Parameters + + + + + + +cr +a cairo_t + +fill_rule +a fill rule, specified as a cairo_fill_rule_t + + +Since: 1.0 + +cairo_get_fill_rule () +cairo_get_fill_rule +cairo_fill_rule_t +cairo_get_fill_rule (cairo_t *cr); +Gets the current fill rule, as set by cairo_set_fill_rule(). + +Parameters + + + + + + +cr +a cairo context + + + +Returns + the current fill rule. +Since: 1.0 + +cairo_set_line_cap () +cairo_set_line_cap +void +cairo_set_line_cap (cairo_t *cr, + cairo_line_cap_t line_cap); +Sets the current line cap style within the cairo context. See +cairo_line_cap_t for details about how the available line cap +styles are drawn. +As with the other stroke parameters, the current line cap style is +examined by cairo_stroke(), cairo_stroke_extents(), and +cairo_stroke_to_path(), but does not have any effect during path +construction. +The default line cap style is CAIRO_LINE_CAP_BUTT. + +Parameters + + + + + + +cr +a cairo context + +line_cap +a line cap style + + +Since: 1.0 + +cairo_get_line_cap () +cairo_get_line_cap +cairo_line_cap_t +cairo_get_line_cap (cairo_t *cr); +Gets the current line cap style, as set by cairo_set_line_cap(). + +Parameters + + + + + + +cr +a cairo context + + + +Returns + the current line cap style. +Since: 1.0 + +cairo_set_line_join () +cairo_set_line_join +void +cairo_set_line_join (cairo_t *cr, + cairo_line_join_t line_join); +Sets the current line join style within the cairo context. See +cairo_line_join_t for details about how the available line join +styles are drawn. +As with the other stroke parameters, the current line join style is +examined by cairo_stroke(), cairo_stroke_extents(), and +cairo_stroke_to_path(), but does not have any effect during path +construction. +The default line join style is CAIRO_LINE_JOIN_MITER. + +Parameters + + + + + + +cr +a cairo context + +line_join +a line join style + + +Since: 1.0 + +cairo_get_line_join () +cairo_get_line_join +cairo_line_join_t +cairo_get_line_join (cairo_t *cr); +Gets the current line join style, as set by cairo_set_line_join(). + +Parameters + + + + + + +cr +a cairo context + + + +Returns + the current line join style. +Since: 1.0 + +cairo_set_line_width () +cairo_set_line_width +void +cairo_set_line_width (cairo_t *cr, + double width); +Sets the current line width within the cairo context. The line +width value specifies the diameter of a pen that is circular in +user space, (though device-space pen may be an ellipse in general +due to scaling/shear/rotation of the CTM). +Note: When the description above refers to user space and CTM it +refers to the user space and CTM in effect at the time of the +stroking operation, not the user space and CTM in effect at the +time of the call to cairo_set_line_width(). The simplest usage +makes both of these spaces identical. That is, if there is no +change to the CTM between a call to cairo_set_line_width() and the +stroking operation, then one can just pass user-space values to +cairo_set_line_width() and ignore this note. +As with the other stroke parameters, the current line width is +examined by cairo_stroke(), cairo_stroke_extents(), and +cairo_stroke_to_path(), but does not have any effect during path +construction. +The default line width value is 2.0. + +Parameters + + + + + + +cr +a cairo_t + +width +a line width + + +Since: 1.0 + +cairo_get_line_width () +cairo_get_line_width +double +cairo_get_line_width (cairo_t *cr); +This function returns the current line width value exactly as set by +cairo_set_line_width(). Note that the value is unchanged even if +the CTM has changed between the calls to cairo_set_line_width() and +cairo_get_line_width(). + +Parameters + + + + + + +cr +a cairo context + + + +Returns + the current line width. +Since: 1.0 + +cairo_set_miter_limit () +cairo_set_miter_limit +void +cairo_set_miter_limit (cairo_t *cr, + double limit); +Sets the current miter limit within the cairo context. +If the current line join style is set to CAIRO_LINE_JOIN_MITER +(see cairo_set_line_join()), the miter limit is used to determine +whether the lines should be joined with a bevel instead of a miter. +Cairo divides the length of the miter by the line width. +If the result is greater than the miter limit, the style is +converted to a bevel. +As with the other stroke parameters, the current line miter limit is +examined by cairo_stroke(), cairo_stroke_extents(), and +cairo_stroke_to_path(), but does not have any effect during path +construction. +The default miter limit value is 10.0, which will convert joins +with interior angles less than 11 degrees to bevels instead of +miters. For reference, a miter limit of 2.0 makes the miter cutoff +at 60 degrees, and a miter limit of 1.414 makes the cutoff at 90 +degrees. +A miter limit for a desired angle can be computed as: miter limit = +1/sin(angle/2) + +Parameters + + + + + + +cr +a cairo context + +limit +miter limit to set + + +Since: 1.0 + +cairo_get_miter_limit () +cairo_get_miter_limit +double +cairo_get_miter_limit (cairo_t *cr); +Gets the current miter limit, as set by cairo_set_miter_limit(). + +Parameters + + + + + + +cr +a cairo context + + + +Returns + the current miter limit. +Since: 1.0 + +cairo_set_operator () +cairo_set_operator +void +cairo_set_operator (cairo_t *cr, + cairo_operator_t op); +Sets the compositing operator to be used for all drawing +operations. See cairo_operator_t for details on the semantics of +each available compositing operator. +The default operator is CAIRO_OPERATOR_OVER. + +Parameters + + + + + + +cr +a cairo_t + +op +a compositing operator, specified as a cairo_operator_t + + +Since: 1.0 + +cairo_get_operator () +cairo_get_operator +cairo_operator_t +cairo_get_operator (cairo_t *cr); +Gets the current compositing operator for a cairo context. + +Parameters + + + + + + +cr +a cairo context + + + +Returns + the current compositing operator. +Since: 1.0 + +cairo_set_tolerance () +cairo_set_tolerance +void +cairo_set_tolerance (cairo_t *cr, + double tolerance); +Sets the tolerance used when converting paths into trapezoids. +Curved segments of the path will be subdivided until the maximum +deviation between the original path and the polygonal approximation +is less than tolerance +. The default value is 0.1. A larger +value will give better performance, a smaller value, better +appearance. (Reducing the value from the default value of 0.1 +is unlikely to improve appearance significantly.) The accuracy of paths +within Cairo is limited by the precision of its internal arithmetic, and +the prescribed tolerance + is restricted to the smallest +representable internal value. + +Parameters + + + + + + +cr +a cairo_t + +tolerance +the tolerance, in device units (typically pixels) + + +Since: 1.0 + +cairo_get_tolerance () +cairo_get_tolerance +double +cairo_get_tolerance (cairo_t *cr); +Gets the current tolerance value, as set by cairo_set_tolerance(). + +Parameters + + + + + + +cr +a cairo context + + + +Returns + the current tolerance value. +Since: 1.0 + +cairo_clip () +cairo_clip +void +cairo_clip (cairo_t *cr); +Establishes a new clip region by intersecting the current clip +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 +context. +The current clip region affects all drawing operations by +effectively masking out any changes to the surface that are outside +the current clip region. +Calling cairo_clip() can only make the clip region smaller, never +larger. But the current clip is part of the graphics state, so a +temporary restriction of the clip region can be achieved by +calling cairo_clip() within a cairo_save()/cairo_restore() +pair. The only other means of increasing the size of the clip +region is cairo_reset_clip(). + +Parameters + + + + + + +cr +a cairo context + + +Since: 1.0 + +cairo_clip_preserve () +cairo_clip_preserve +void +cairo_clip_preserve (cairo_t *cr); +Establishes a new clip region by intersecting the current clip +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 +the cairo context. +The current clip region affects all drawing operations by +effectively masking out any changes to the surface that are outside +the current clip region. +Calling cairo_clip_preserve() can only make the clip region smaller, never +larger. But the current clip is part of the graphics state, so a +temporary restriction of the clip region can be achieved by +calling cairo_clip_preserve() within a cairo_save()/cairo_restore() +pair. The only other means of increasing the size of the clip +region is cairo_reset_clip(). + +Parameters + + + + + + +cr +a cairo context + + +Since: 1.0 + +cairo_clip_extents () +cairo_clip_extents +void +cairo_clip_extents (cairo_t *cr, + double *x1, + double *y1, + double *x2, + double *y2); +Computes a bounding box in user coordinates covering the area inside the +current clip. + +Parameters + + + + + + +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 + + +Since: 1.4 + +cairo_in_clip () +cairo_in_clip +cairo_bool_t +cairo_in_clip (cairo_t *cr, + double x, + double y); +Tests whether the given point is inside the area that would be +visible through the current clip, i.e. the area that would be filled by +a cairo_paint() operation. +See cairo_clip(), and cairo_clip_preserve(). + +Parameters + + + + + + +cr +a cairo context + +x +X coordinate of the point to test + +y +Y coordinate of the point to test + + + +Returns + A non-zero value if the point is inside, or zero if +outside. +Since: 1.10 + +cairo_reset_clip () +cairo_reset_clip +void +cairo_reset_clip (cairo_t *cr); +Reset the current clip region to its original, unrestricted +state. That is, set the clip region to an infinitely large shape +containing the target surface. Equivalently, if infinity is too +hard to grasp, one can imagine the clip region being reset to the +exact bounds of the target surface. +Note that code meant to be reusable should not call +cairo_reset_clip() as it will cause results unexpected by +higher-level code which calls cairo_clip(). Consider using +cairo_save() and cairo_restore() around cairo_clip() as a more +robust means of temporarily restricting the clip region. + +Parameters + + + + + + +cr +a cairo context + + +Since: 1.0 + +cairo_rectangle_list_destroy () +cairo_rectangle_list_destroy +void +cairo_rectangle_list_destroy (cairo_rectangle_list_t *rectangle_list); +Unconditionally frees rectangle_list + and all associated +references. After this call, the rectangle_list + pointer must not +be dereferenced. + +Parameters + + + + + + +rectangle_list +a rectangle list, as obtained from cairo_copy_clip_rectangle_list() + + +Since: 1.4 + +cairo_copy_clip_rectangle_list () +cairo_copy_clip_rectangle_list +cairo_rectangle_list_t * +cairo_copy_clip_rectangle_list (cairo_t *cr); +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 +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. + +Parameters + + + + + + +cr +a cairo context + + + +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 + +cairo_fill () +cairo_fill +void +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). After cairo_fill(), the current path will be cleared from +the cairo context. See cairo_set_fill_rule() and +cairo_fill_preserve(). + +Parameters + + + + + + +cr +a cairo context + + +Since: 1.0 + +cairo_fill_preserve () +cairo_fill_preserve +void +cairo_fill_preserve (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 +path within the cairo context. +See cairo_set_fill_rule() and cairo_fill(). + +Parameters + + + + + + +cr +a cairo context + + +Since: 1.0 + +cairo_fill_extents () +cairo_fill_extents +void +cairo_fill_extents (cairo_t *cr, + double *x1, + double *y1, + double *x2, + double *y2); +Computes a bounding box in user coordinates covering the area that +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 with no inked area, (such as a +simple line segment). +Note that cairo_fill_extents() must necessarily do more work to +compute the precise inked areas in light of the fill rule, so +cairo_path_extents() may be more desirable for sake of performance +if the non-inked path extents are desired. +See cairo_fill(), cairo_set_fill_rule() and cairo_fill_preserve(). + +Parameters + + + + + + +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 + + +Since: 1.0 + +cairo_in_fill () +cairo_in_fill +cairo_bool_t +cairo_in_fill (cairo_t *cr, + double x, + double y); +Tests whether the given point is inside the area that would be +affected by a cairo_fill() operation given the current path and +filling parameters. Surface dimensions and clipping are not taken +into account. +See cairo_fill(), cairo_set_fill_rule() and cairo_fill_preserve(). + +Parameters + + + + + + +cr +a cairo context + +x +X coordinate of the point to test + +y +Y coordinate of the point to test + + + +Returns + A non-zero value if the point is inside, or zero if +outside. +Since: 1.0 + +cairo_mask () +cairo_mask +void +cairo_mask (cairo_t *cr, + cairo_pattern_t *pattern); +A drawing operator that paints the current source +using the alpha channel of pattern + as a mask. (Opaque +areas of pattern + are painted with the source, transparent +areas are not painted.) + +Parameters + + + + + + +cr +a cairo context + +pattern +a cairo_pattern_t + + +Since: 1.0 + +cairo_mask_surface () +cairo_mask_surface +void +cairo_mask_surface (cairo_t *cr, + cairo_surface_t *surface, + double surface_x, + double surface_y); +A drawing operator that paints the current source +using the alpha channel of surface + as a mask. (Opaque +areas of surface + are painted with the source, transparent +areas are not painted.) + +Parameters + + + + + + +cr +a cairo context + +surface +a cairo_surface_t + +surface_x +X coordinate at which to place the origin of surface + + +surface_y +Y coordinate at which to place the origin of surface + + + +Since: 1.0 + +cairo_paint () +cairo_paint +void +cairo_paint (cairo_t *cr); +A drawing operator that paints the current source everywhere within +the current clip region. + +Parameters + + + + + + +cr +a cairo context + + +Since: 1.0 + +cairo_paint_with_alpha () +cairo_paint_with_alpha +void +cairo_paint_with_alpha (cairo_t *cr, + double alpha); +A drawing operator that paints the current source everywhere within +the current clip region using a mask of constant alpha value +alpha +. The effect is similar to cairo_paint(), but the drawing +is faded out using the alpha value. + +Parameters + + + + + + +cr +a cairo context + +alpha +alpha value, between 0 (transparent) and 1 (opaque) + + +Since: 1.0 + +cairo_stroke () +cairo_stroke +void +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. After +cairo_stroke(), the current path will be cleared from the cairo +context. See cairo_set_line_width(), cairo_set_line_join(), +cairo_set_line_cap(), cairo_set_dash(), and +cairo_stroke_preserve(). +Note: Degenerate segments and sub-paths are treated specially and +provide a useful result. These can result in two different +situations: + + +Zero-length "on" segments set in cairo_set_dash(). If the cap +style is CAIRO_LINE_CAP_ROUND or CAIRO_LINE_CAP_SQUARE then these +segments will be drawn as circular dots or squares respectively. In +the case of CAIRO_LINE_CAP_SQUARE, the orientation of the squares +is determined by the direction of the underlying path. + + +A sub-path created by cairo_move_to() followed by either a +cairo_close_path() or one or more calls to cairo_line_to() to the +same coordinate as the cairo_move_to(). If the cap style is +CAIRO_LINE_CAP_ROUND then these sub-paths will be drawn as circular +dots. Note that in the case of CAIRO_LINE_CAP_SQUARE a degenerate +sub-path will not be drawn at all, (since the correct orientation +is indeterminate). + + +In no case will a cap style of CAIRO_LINE_CAP_BUTT cause anything +to be drawn in the case of either degenerate segments or sub-paths. + +Parameters + + + + + + +cr +a cairo context + + +Since: 1.0 + +cairo_stroke_preserve () +cairo_stroke_preserve +void +cairo_stroke_preserve (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 context. +See cairo_set_line_width(), cairo_set_line_join(), +cairo_set_line_cap(), cairo_set_dash(), and +cairo_stroke_preserve(). + +Parameters + + + + + + +cr +a cairo context + + +Since: 1.0 + +cairo_stroke_extents () +cairo_stroke_extents +void +cairo_stroke_extents (cairo_t *cr, + double *x1, + double *y1, + double *x2, + double *y2); +Computes a bounding box in user coordinates covering the area that +would be affected, (the "inked" area), by a cairo_stroke() +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. +Note that cairo_stroke_extents() must necessarily do more work to +compute the precise inked areas in light of the stroke parameters, +so cairo_path_extents() may be more desirable for sake of +performance if non-inked path extents are desired. +See cairo_stroke(), cairo_set_line_width(), cairo_set_line_join(), +cairo_set_line_cap(), cairo_set_dash(), and +cairo_stroke_preserve(). + +Parameters + + + + + + +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 + + +Since: 1.0 + +cairo_in_stroke () +cairo_in_stroke +cairo_bool_t +cairo_in_stroke (cairo_t *cr, + double x, + double y); +Tests whether the given point is inside the area that would be +affected by a cairo_stroke() operation given the current path and +stroking parameters. Surface dimensions and clipping are not taken +into account. +See cairo_stroke(), cairo_set_line_width(), cairo_set_line_join(), +cairo_set_line_cap(), cairo_set_dash(), and +cairo_stroke_preserve(). + +Parameters + + + + + + +cr +a cairo context + +x +X coordinate of the point to test + +y +Y coordinate of the point to test + + + +Returns + A non-zero value if the point is inside, or zero if +outside. +Since: 1.0 + +cairo_copy_page () +cairo_copy_page +void +cairo_copy_page (cairo_t *cr); +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 +for the next page too. Use cairo_show_page() if you want to get an +empty page after the emission. +This is a convenience function that simply calls +cairo_surface_copy_page() on cr +'s target. + +Parameters + + + + + + +cr +a cairo context + + +Since: 1.0 + +cairo_show_page () +cairo_show_page +void +cairo_show_page (cairo_t *cr); +Emits and clears the current page for backends that support multiple +pages. Use cairo_copy_page() if you don't want to clear the page. +This is a convenience function that simply calls +cairo_surface_show_page() on cr +'s target. + +Parameters + + + + + + +cr +a cairo context + + +Since: 1.0 + +cairo_get_reference_count () +cairo_get_reference_count +unsigned int +cairo_get_reference_count (cairo_t *cr); +Returns the current reference count of cr +. + +Parameters + + + + + + +cr +a cairo_t + + + +Returns + the current reference count of cr +. If the +object is a nil object, 0 will be returned. +Since: 1.4 + +cairo_set_user_data () +cairo_set_user_data +cairo_status_t +cairo_set_user_data (cairo_t *cr, + const cairo_user_data_key_t *key, + void *user_data, + cairo_destroy_func_t destroy); +Attach user data to cr +. To remove user data from a surface, +call this function with the key that was used to set it and NULL +for data +. + +Parameters + + + + + + +cr +a cairo_t + +key +the address of a cairo_user_data_key_t to attach the user data to + +user_data +the user data to attach to the cairo_t + +destroy +a cairo_destroy_func_t which will be called when the +cairo_t is destroyed or when new user data is attached using the +same key. + + + +Returns + CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY if a +slot could not be allocated for the user data. +Since: 1.4 + +cairo_get_user_data () +cairo_get_user_data +void * +cairo_get_user_data (cairo_t *cr, + const cairo_user_data_key_t *key); +Return user data previously attached to cr + using the specified +key. If no user data has been attached with the given key this +function returns NULL. + +Parameters + + + + + + +cr +a cairo_t + +key +the address of the cairo_user_data_key_t the user data was +attached to + + + +Returns + the user data previously attached or NULL. +Since: 1.4 + + + +Types and Values + +cairo_t +cairo_t +typedef struct _cairo cairo_t; + +A cairo_t contains the current state of the rendering device, +including coordinates of yet to be drawn shapes. +Cairo contexts, as cairo_t objects are named, are central to +cairo and all drawing with cairo is always done to a cairo_t +object. +Memory management of cairo_t is done with +cairo_reference() and cairo_destroy(). +Since: 1.0 + +enum cairo_antialias_t +cairo_antialias_t +Specifies the type of antialiasing to do when rendering text or shapes. +As it is not necessarily clear from the above what advantages a particular +antialias method provides, since 1.12, there is also a set of hints: +CAIRO_ANTIALIAS_FAST +: Allow the backend to degrade raster quality for speed +CAIRO_ANTIALIAS_GOOD +: A balance between speed and quality +CAIRO_ANTIALIAS_BEST +: A high-fidelity, but potentially slow, raster mode +These make no guarantee on how the backend will perform its rasterisation +(if it even rasterises!), nor that they have any differing effect other +than to enable some form of antialiasing. In the case of glyph rendering, +CAIRO_ANTIALIAS_FAST + and CAIRO_ANTIALIAS_GOOD + will be mapped to +CAIRO_ANTIALIAS_GRAY +, with CAIRO_ANTALIAS_BEST + being equivalent to +CAIRO_ANTIALIAS_SUBPIXEL +. +The interpretation of CAIRO_ANTIALIAS_DEFAULT + is left entirely up to +the backend, typically this will be similar to CAIRO_ANTIALIAS_GOOD +. + +Members + + + + + + +CAIRO_ANTIALIAS_DEFAULT +Use the default antialiasing for + the subsystem and target device, since 1.0 + + + +CAIRO_ANTIALIAS_NONE +Use a bilevel alpha mask, since 1.0 + + + +CAIRO_ANTIALIAS_GRAY +Perform single-color antialiasing (using + shades of gray for black text on a white background, for example), since 1.0 + + + +CAIRO_ANTIALIAS_SUBPIXEL +Perform antialiasing by taking + advantage of the order of subpixel elements on devices + such as LCD panels, since 1.0 + + + +CAIRO_ANTIALIAS_FAST +Hint that the backend should perform some +antialiasing but prefer speed over quality, since 1.12 + + + +CAIRO_ANTIALIAS_GOOD +The backend should balance quality against +performance, since 1.12 + + + +CAIRO_ANTIALIAS_BEST +Hint that the backend should render at the highest +quality, sacrificing speed if necessary, since 1.12 + + + + +Since: 1.0 + +enum cairo_fill_rule_t +cairo_fill_rule_t +cairo_fill_rule_t is used to select how paths are filled. For both +fill rules, whether or not a point is included in the fill is +determined by taking a ray from that point to infinity and looking +at intersections with the path. The ray can be in any direction, +as long as it doesn't pass through the end point of a segment +or have a tricky intersection such as intersecting tangent to the path. +(Note that filling is not actually implemented in this way. This +is just a description of the rule that is applied.) +The default fill rule is CAIRO_FILL_RULE_WINDING. +New entries may be added in future versions. + +Members + + + + + + +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 +from the perspective of looking along the ray from the starting +point.) If the total count is non-zero, the point will be filled. (Since 1.0) + + + +CAIRO_FILL_RULE_EVEN_ODD +Counts the total number of +intersections, without regard to the orientation of the contour. If +the total number of intersections is odd, the point will be +filled. (Since 1.0) + + + + +Since: 1.0 + +enum cairo_line_cap_t +cairo_line_cap_t +Specifies how to render the endpoints of the path when stroking. +The default line cap style is CAIRO_LINE_CAP_BUTT. + +Members + + + + + + +CAIRO_LINE_CAP_BUTT +start(stop) the line exactly at the start(end) point (Since 1.0) + + + +CAIRO_LINE_CAP_ROUND +use a round ending, the center of the circle is the end point (Since 1.0) + + + +CAIRO_LINE_CAP_SQUARE +use squared ending, the center of the square is the end point (Since 1.0) + + + + +Since: 1.0 + +enum cairo_line_join_t +cairo_line_join_t +Specifies how to render the junction of two lines when stroking. +The default line join style is CAIRO_LINE_JOIN_MITER. + +Members + + + + + + +CAIRO_LINE_JOIN_MITER +use a sharp (angled) corner, see +cairo_set_miter_limit() (Since 1.0) + + + +CAIRO_LINE_JOIN_ROUND +use a rounded join, the center of the circle is the +joint point (Since 1.0) + + + +CAIRO_LINE_JOIN_BEVEL +use a cut-off join, the join is cut off at half +the line width from the joint point (Since 1.0) + + + + +Since: 1.0 + +enum cairo_operator_t +cairo_operator_t +cairo_operator_t is used to set the compositing operator for all cairo +drawing operations. +The default operator is CAIRO_OPERATOR_OVER. +The operators marked as unbounded 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 +https://cairographics.org/operators/. + +Members + + + + + + +CAIRO_OPERATOR_CLEAR +clear destination layer (bounded) (Since 1.0) + + + +CAIRO_OPERATOR_SOURCE +replace destination layer (bounded) (Since 1.0) + + + +CAIRO_OPERATOR_OVER +draw source layer on top of destination layer +(bounded) (Since 1.0) + + + +CAIRO_OPERATOR_IN +draw source where there was destination content +(unbounded) (Since 1.0) + + + +CAIRO_OPERATOR_OUT +draw source where there was no destination +content (unbounded) (Since 1.0) + + + +CAIRO_OPERATOR_ATOP +draw source on top of destination content and +only there (Since 1.0) + + + +CAIRO_OPERATOR_DEST +ignore the source (Since 1.0) + + + +CAIRO_OPERATOR_DEST_OVER +draw destination on top of source (Since 1.0) + + + +CAIRO_OPERATOR_DEST_IN +leave destination only where there was +source content (unbounded) (Since 1.0) + + + +CAIRO_OPERATOR_DEST_OUT +leave destination only where there was no +source content (Since 1.0) + + + +CAIRO_OPERATOR_DEST_ATOP +leave destination on top of source content +and only there (unbounded) (Since 1.0) + + + +CAIRO_OPERATOR_XOR +source and destination are shown where there is only +one of them (Since 1.0) + + + +CAIRO_OPERATOR_ADD +source and destination layers are accumulated (Since 1.0) + + + +CAIRO_OPERATOR_SATURATE +like over, but assuming source and dest are +disjoint geometries (Since 1.0) + + + +CAIRO_OPERATOR_MULTIPLY +source and destination layers are multiplied. +This causes the result to be at least as dark as the darker inputs. (Since 1.10) + + + +CAIRO_OPERATOR_SCREEN +source and destination are complemented and +multiplied. This causes the result to be at least as light as the lighter +inputs. (Since 1.10) + + + +CAIRO_OPERATOR_OVERLAY +multiplies or screens, depending on the +lightness of the destination color. (Since 1.10) + + + +CAIRO_OPERATOR_DARKEN +replaces the destination with the source if it +is darker, otherwise keeps the source. (Since 1.10) + + + +CAIRO_OPERATOR_LIGHTEN +replaces the destination with the source if it +is lighter, otherwise keeps the source. (Since 1.10) + + + +CAIRO_OPERATOR_COLOR_DODGE +brightens the destination color to reflect +the source color. (Since 1.10) + + + +CAIRO_OPERATOR_COLOR_BURN +darkens the destination color to reflect +the source color. (Since 1.10) + + + +CAIRO_OPERATOR_HARD_LIGHT +Multiplies or screens, dependent on source +color. (Since 1.10) + + + +CAIRO_OPERATOR_SOFT_LIGHT +Darkens or lightens, dependent on source +color. (Since 1.10) + + + +CAIRO_OPERATOR_DIFFERENCE +Takes the difference of the source and +destination color. (Since 1.10) + + + +CAIRO_OPERATOR_EXCLUSION +Produces an effect similar to difference, but +with lower contrast. (Since 1.10) + + + +CAIRO_OPERATOR_HSL_HUE +Creates a color with the hue of the source +and the saturation and luminosity of the target. (Since 1.10) + + + +CAIRO_OPERATOR_HSL_SATURATION +Creates a color with the saturation +of the source and the hue and luminosity of the target. Painting with +this mode onto a gray area produces no change. (Since 1.10) + + + +CAIRO_OPERATOR_HSL_COLOR +Creates a color with the hue and saturation +of the source and the luminosity of the target. This preserves the gray +levels of the target and is useful for coloring monochrome images or +tinting color images. (Since 1.10) + + + +CAIRO_OPERATOR_HSL_LUMINOSITY +Creates a color with the luminosity of +the source and the hue and saturation of the target. This produces an +inverse effect to CAIRO_OPERATOR_HSL_COLOR +. (Since 1.10) + + + + +Since: 1.0 + +cairo_rectangle_t +cairo_rectangle_t +typedef struct { + double x, y, width, height; +} cairo_rectangle_t; + +A data structure for holding a rectangle. + +Members + + + + + + +double x; +X coordinate of the left side of the rectangle + + +double y; +Y coordinate of the the top side of the rectangle + + +double width; +width of the rectangle + + +double height; +height of the rectangle + + + + +Since: 1.4 + +cairo_rectangle_list_t +cairo_rectangle_list_t +typedef struct { + cairo_status_t status; + cairo_rectangle_t *rectangles; + int num_rectangles; +} cairo_rectangle_list_t; + +A data structure for holding a dynamically allocated +array of rectangles. + +Members + + + + + + +cairo_status_t status; +Error status of the rectangle list + + +cairo_rectangle_t *rectangles; +Array containing the rectangles + + +int num_rectangles; +Number of rectangles in this list + + + + +Since: 1.4 + + + +See Also +cairo_surface_t + + + + -- cgit v1.2.1