summaryrefslogtreecommitdiff
path: root/libs/cairo-1.16.0/doc/public/html
diff options
context:
space:
mode:
Diffstat (limited to 'libs/cairo-1.16.0/doc/public/html')
-rw-r--r--libs/cairo-1.16.0/doc/public/html/bindings-errors.html121
-rw-r--r--libs/cairo-1.16.0/doc/public/html/bindings-fonts.html52
-rw-r--r--libs/cairo-1.16.0/doc/public/html/bindings-memory.html122
-rw-r--r--libs/cairo-1.16.0/doc/public/html/bindings-overloading.html120
-rw-r--r--libs/cairo-1.16.0/doc/public/html/bindings-path.html116
-rw-r--r--libs/cairo-1.16.0/doc/public/html/bindings-patterns.html74
-rw-r--r--libs/cairo-1.16.0/doc/public/html/bindings-return-values.html119
-rw-r--r--libs/cairo-1.16.0/doc/public/html/bindings-streams.html91
-rw-r--r--libs/cairo-1.16.0/doc/public/html/bindings-surfaces.html92
-rw-r--r--libs/cairo-1.16.0/doc/public/html/cairo-Error-handling.html486
-rw-r--r--libs/cairo-1.16.0/doc/public/html/cairo-FreeType-Fonts.html553
-rw-r--r--libs/cairo-1.16.0/doc/public/html/cairo-Image-Surfaces.html583
-rw-r--r--libs/cairo-1.16.0/doc/public/html/cairo-PDF-Surfaces.html829
-rw-r--r--libs/cairo-1.16.0/doc/public/html/cairo-PNG-Support.html413
-rw-r--r--libs/cairo-1.16.0/doc/public/html/cairo-Paths.html1550
-rw-r--r--libs/cairo-1.16.0/doc/public/html/cairo-PostScript-Surfaces.html749
-rw-r--r--libs/cairo-1.16.0/doc/public/html/cairo-Quartz-(CGFont)-Fonts.html163
-rw-r--r--libs/cairo-1.16.0/doc/public/html/cairo-Quartz-Surfaces.html249
-rw-r--r--libs/cairo-1.16.0/doc/public/html/cairo-Raster-Sources.html794
-rw-r--r--libs/cairo-1.16.0/doc/public/html/cairo-Recording-Surfaces.html279
-rw-r--r--libs/cairo-1.16.0/doc/public/html/cairo-Regions.html1133
-rw-r--r--libs/cairo-1.16.0/doc/public/html/cairo-SVG-Surfaces.html576
-rw-r--r--libs/cairo-1.16.0/doc/public/html/cairo-Script-Surfaces.html490
-rw-r--r--libs/cairo-1.16.0/doc/public/html/cairo-Tags-and-Links.html505
-rw-r--r--libs/cairo-1.16.0/doc/public/html/cairo-Transformations.html563
-rw-r--r--libs/cairo-1.16.0/doc/public/html/cairo-Types.html209
-rw-r--r--libs/cairo-1.16.0/doc/public/html/cairo-User-Fonts.html827
-rw-r--r--libs/cairo-1.16.0/doc/public/html/cairo-Version-Information.html377
-rw-r--r--libs/cairo-1.16.0/doc/public/html/cairo-Win32-Fonts.html436
-rw-r--r--libs/cairo-1.16.0/doc/public/html/cairo-Win32-Surfaces.html413
-rw-r--r--libs/cairo-1.16.0/doc/public/html/cairo-XCB-Surfaces.html658
-rw-r--r--libs/cairo-1.16.0/doc/public/html/cairo-XLib-Surfaces.html713
-rw-r--r--libs/cairo-1.16.0/doc/public/html/cairo-XLib-XRender-Backend.html208
-rw-r--r--libs/cairo-1.16.0/doc/public/html/cairo-cairo-device-t.html821
-rw-r--r--libs/cairo-1.16.0/doc/public/html/cairo-cairo-font-face-t.html476
-rw-r--r--libs/cairo-1.16.0/doc/public/html/cairo-cairo-font-options-t.html941
-rw-r--r--libs/cairo-1.16.0/doc/public/html/cairo-cairo-matrix-t.html779
-rw-r--r--libs/cairo-1.16.0/doc/public/html/cairo-cairo-pattern-t.html2710
-rw-r--r--libs/cairo-1.16.0/doc/public/html/cairo-cairo-scaled-font-t.html1301
-rw-r--r--libs/cairo-1.16.0/doc/public/html/cairo-cairo-surface-t.html2130
-rw-r--r--libs/cairo-1.16.0/doc/public/html/cairo-cairo-t.html3488
-rw-r--r--libs/cairo-1.16.0/doc/public/html/cairo-drawing.html55
-rw-r--r--libs/cairo-1.16.0/doc/public/html/cairo-fonts.html52
-rw-r--r--libs/cairo-1.16.0/doc/public/html/cairo-support.html43
-rw-r--r--libs/cairo-1.16.0/doc/public/html/cairo-surfaces.html73
-rw-r--r--libs/cairo-1.16.0/doc/public/html/cairo-text.html1480
-rw-r--r--libs/cairo-1.16.0/doc/public/html/cairo.devhelp2829
-rw-r--r--libs/cairo-1.16.0/doc/public/html/home.pngbin0 -> 169 bytes
-rw-r--r--libs/cairo-1.16.0/doc/public/html/index-1.10.html176
-rw-r--r--libs/cairo-1.16.0/doc/public/html/index-1.12.html192
-rw-r--r--libs/cairo-1.16.0/doc/public/html/index-1.14.html56
-rw-r--r--libs/cairo-1.16.0/doc/public/html/index-1.16.html96
-rw-r--r--libs/cairo-1.16.0/doc/public/html/index-1.2.html178
-rw-r--r--libs/cairo-1.16.0/doc/public/html/index-1.4.html122
-rw-r--r--libs/cairo-1.16.0/doc/public/html/index-1.6.html106
-rw-r--r--libs/cairo-1.16.0/doc/public/html/index-1.8.html127
-rw-r--r--libs/cairo-1.16.0/doc/public/html/index-all.html1163
-rw-r--r--libs/cairo-1.16.0/doc/public/html/index.html161
-rw-r--r--libs/cairo-1.16.0/doc/public/html/language-bindings.html72
-rw-r--r--libs/cairo-1.16.0/doc/public/html/left-insensitive.pngbin0 -> 334 bytes
-rw-r--r--libs/cairo-1.16.0/doc/public/html/left.pngbin0 -> 185 bytes
-rw-r--r--libs/cairo-1.16.0/doc/public/html/right-insensitive.pngbin0 -> 233 bytes
-rw-r--r--libs/cairo-1.16.0/doc/public/html/right.pngbin0 -> 184 bytes
-rw-r--r--libs/cairo-1.16.0/doc/public/html/style.css479
-rw-r--r--libs/cairo-1.16.0/doc/public/html/up-insensitive.pngbin0 -> 288 bytes
-rw-r--r--libs/cairo-1.16.0/doc/public/html/up.pngbin0 -> 186 bytes
66 files changed, 32769 insertions, 0 deletions
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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Error handling: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="language-bindings.html" title="Appendix A. Creating a language binding for cairo">
+<link rel="prev" href="bindings-streams.html" title="Streams and File I/O">
+<link rel="next" href="bindings-patterns.html" title="Patterns">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="language-bindings.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="bindings-streams.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="bindings-patterns.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="sect1">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bindings-errors"></a>Error handling</h2></div></div></div>
+<p>
+ The error handling approach in C for Cairo has multiple
+ elements:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+ 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 <a class="link" href="cairo-cairo-t.html#cairo-status" title="cairo_status ()"><code class="function">status()</code></a>.
+ </p></li>
+<li class="listitem">
+<p>
+ Constructors, rather than
+ returning <code class="constant">NULL</code> on out-of-memory failure,
+ return a special singleton object on which all
+ operations do nothing. Retrieving the status of the
+ singleton object returns <code class="constant">CAIRO_STATUS_NO_MEMORY</code>
+ </p>
+<p class="remark"><em><span class="remark">
+ Is this going to apply to
+ <span class="type">cairo_surface_t</span> as well?
+ </span></em></p>
+<p class="remark"><em><span class="remark">
+ What about cairo_copy_path_data()? It's probably going to
+ have to return <code class="constant">NULL</code>.
+ </span></em></p>
+</li>
+<li class="listitem"><p>
+ Errors propagate from object to object. Setting a pattern
+ in an out-of-memory state as the source of a
+ <span class="type">cairo_t</span> puts the type into an error state.
+ </p></li>
+</ul></div>
+<p class="remark"><em><span class="remark">Much of the above is not yet implemented at the time of
+ this writing</span></em></p>
+<p>
+ 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.
+ </p>
+<p>
+ 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:
+ </p>
+<pre class="programlisting">
+/* 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
+</pre>
+<p>
+ If we look at these, the
+ <code class="constant">CAIRO_STATUS_NO_MEMORY</code>
+ 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 <code class="constant">CAIRO_STATUS_READ_ERROR</code>,
+ and <code class="constant">CAIRO_STATUS_WRITE_ERROR</code> can occur
+ only in very specific places. (In fact, as described
+ in <a class="xref" href="bindings-streams.html" title="Streams and File I/O">the section called “Streams and File I/O”</a>, 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.
+ </p>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Fonts: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="language-bindings.html" title="Appendix A. Creating a language binding for cairo">
+<link rel="prev" href="bindings-surfaces.html" title="Surfaces">
+<link rel="next" href="bindings-path.html" title="cairo_path_t">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="language-bindings.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="bindings-surfaces.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="bindings-path.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="sect1">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bindings-fonts"></a>Fonts</h2></div></div></div>
+<p>
+ Fonts are once more an area where there is a hierarchy of types:
+ </p>
+<pre class="programlisting">
+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
+</pre>
+<p>
+ 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.
+ </p>
+<p>
+ The <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-set-user-data" title="cairo_font_face_set_user_data ()"><code class="function">cairo_font_face_set_user_data()</code></a>,
+ and <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-get-user-data" title="cairo_font_face_get_user_data ()"><code class="function">cairo_font_face_get_user_data()</code></a>
+ methods are provided for use in language bindings, and should
+ not be directly exposed to applications.
+ </p>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Memory management: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="language-bindings.html" title="Appendix A. Creating a language binding for cairo">
+<link rel="prev" href="language-bindings.html" title="Appendix A. Creating a language binding for cairo">
+<link rel="next" href="bindings-return-values.html" title="Multiple return values">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="language-bindings.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="language-bindings.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="bindings-return-values.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="sect1">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bindings-memory"></a>Memory management</h2></div></div></div>
+<p>
+ The objects in cairo can roughly be divided into two types:
+ reference-counted, opaque types like
+ <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a>
+ and plain structures like
+ <a class="link" href="cairo-text.html#cairo-glyph-t" title="cairo_glyph_t"><span class="type">cairo_glyph_t</span></a>.
+ <a class="link" href="cairo-Paths.html#cairo-path-t" title="cairo_path_t"><span class="type">cairo_path_t</span></a>
+ and
+ <a class="link" href="cairo-Paths.html#cairo-path-data-t" title="union cairo_path_data_t"><span class="type">cairo_path_data_t</span></a>
+ are special cases and are treated separately in this appendix.
+ </p>
+<p>
+ Refcounted opaque types all have a
+ <code class="function">..._reference()</code>
+ function to increase the refcount by one and a
+ <code class="function">..._destroy()</code> 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:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+ 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 <em class="firstterm">pin table</em> (a hash
+ table that goes from cairo object to language object).
+ For <span class="type">cairo_surface_t</span> you can use also
+ <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-set-user-data" title="cairo_surface_set_user_data ()"><code class="function">cairo_surface_set_user_data()</code></a>
+ instead of a separate pin table.
+ </p></li>
+<li class="listitem">
+<p>
+ Derivation from the language object doesn't work because
+ you can lose the language object while keeping the Cairo
+ object. Code like:
+ </p>
+<pre class="programlisting">
+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();
+</pre>
+<p>
+ Can result in <code class="varname">surface</code> containing an
+ <code class="classname">ImageSurface</code> not a <code class="classname">MySurface</code>.
+ This is not easily fixable without creating memory leaks,
+ and it's probably best to simply forbid deriving from the
+ language objects.
+ </p>
+</li>
+</ul></div>
+<p>
+ When a plain structure is used as a return value from cairo,
+ this is done by passing it as a “out parameter”.
+ </p>
+<pre class="programlisting">
+cairo_font_extents_t extents;
+
+cairo_font_extents (cr, &amp;extents);</pre>
+<p>
+ In a language binding, this should typically be treated
+ as a return value:
+ </p>
+<pre class="programlisting">
+FontExtents extents = cr.fontExtents ();</pre>
+<p>
+ 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.
+ </p>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Overloading and optional arguments: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="language-bindings.html" title="Appendix A. Creating a language binding for cairo">
+<link rel="prev" href="bindings-return-values.html" title="Multiple return values">
+<link rel="next" href="bindings-streams.html" title="Streams and File I/O">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="language-bindings.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="bindings-return-values.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="bindings-streams.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="sect1">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bindings-overloading"></a>Overloading and optional arguments</h2></div></div></div>
+<p>
+ 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.
+ </p>
+<p>
+ 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
+ <a class="link" href="cairo-cairo-t.html#cairo-set-source-rgb" title="cairo_set_source_rgb ()"><code class="function">cairo_set_source_rgb()</code></a>
+ an overload of <code class="function">cairo_set_source()</code>, but future plans to add
+ <code class="function">cairo_set_source_rgb_premultiplied()</code>,
+ which will also take three doubles make this a bad idea. For
+ this reason, only the following pairs of functions should
+ be combined via overloading
+ </p>
+<pre class="programlisting">
+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);
+ </pre>
+<p>
+ Note that there are cases where all constructors for a type
+ aren't overloaded together. For example
+ <a class="link" href="cairo-PNG-Support.html#cairo-image-surface-create-from-png" title="cairo_image_surface_create_from_png ()"><code class="function">cairo_image_surface_create_from_png()</code></a>
+ should <span class="emphasis"><em>not</em></span> be overloaded together with
+ <a class="link" href="cairo-Image-Surfaces.html#cairo-image-surface-create" title="cairo_image_surface_create ()"><code class="function">cairo_image_surface_create()</code></a>.
+ In such cases, the remaining constructors will typically need to
+ be bound as static methods. In Java, for example, we might have:
+ </p>
+<pre class="programlisting">
+Surface surface1 = ImageSurface(Format.RGB24, 100, 100);
+Surface surface2 = ImageSurface.createFromPNG("camera.png");</pre>
+<p>
+ Some other overloads that add combinations not found in C may be
+ convenient for users for language bindings that provide
+ <span class="type">cairo_point_t</span> and <span class="type">cairo_rectangle_t</span>
+ types, for example:
+ </p>
+<pre class="programlisting">
+void
+cairo_move_to (cairo_t *cr,
+ cairo_point_t *point);
+void
+cairo_rectangle (cairo_t *cr,
+ cairo_rectangle_t *rectangle);
+ </pre>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>cairo_path_t: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="language-bindings.html" title="Appendix A. Creating a language binding for cairo">
+<link rel="prev" href="bindings-fonts.html" title="Fonts">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="language-bindings.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="bindings-fonts.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><img src="right-insensitive.png" width="16" height="16" border="0"></td>
+</tr></table>
+<div class="sect1">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bindings-path"></a>cairo_path_t</h2></div></div></div>
+<p>
+ The <a class="link" href="cairo-Paths.html#cairo-path-t" title="cairo_path_t"><span class="type">cairo_path_t</span></a> type is one
+ area in which most language bindings will differ significantly
+ from the C API. The C API for <span class="type">cairo_path_t</span> 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 <span class="type">cairo_path_t</span> 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:
+ </p>
+<pre class="programlisting">
+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);
+ </pre>
+<p>
+ 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:
+ </p>
+<pre class="programlisting">
+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);
+ }
+}</pre>
+<p>
+ And then in a hypothetical C++ binding:
+ </p>
+<pre class="programlisting">
+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);
+ }
+}</pre>
+<p>
+ And then finally in a Python binding:
+ </p>
+<pre class="programlisting">
+for element in cr.copy_path():
+ if element.getType == cairo.PATH_ELEMENT_MOVE_TO:
+ (x, y) = element.getPoint(0)
+ doMoveTo (x, y);</pre>
+<p>
+ 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.
+ </p>
+<p>
+ You should not present an API for mutating or for creating new
+ <span class="type">cairo_path_t</span> objects. In the future, these
+ guidelines may be extended to present an API for creating a
+ <span class="type">cairo_path_t</span> from scratch for use with
+ <a class="link" href="cairo-Paths.html#cairo-append-path" title="cairo_append_path ()"><code class="function">cairo_append_path()</code></a>
+ but the current expectation is that <code class="function">cairo_append_path()</code> will
+ mostly be used with paths from
+ <a class="link" href="cairo-Paths.html#cairo-append-path" title="cairo_append_path ()"><code class="function">cairo_copy_path()</code></a>.
+ </p>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Patterns: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="language-bindings.html" title="Appendix A. Creating a language binding for cairo">
+<link rel="prev" href="bindings-errors.html" title="Error handling">
+<link rel="next" href="bindings-surfaces.html" title="Surfaces">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="language-bindings.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="bindings-errors.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="bindings-surfaces.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="sect1">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bindings-patterns"></a>Patterns</h2></div></div></div>
+<p>
+ The cairo C API allows for creating a number of different types
+ of patterns. All of these different types of patterns map to
+ <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a>
+ 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.)
+ </p>
+<pre class="programlisting">
+cairo_pattern_t
+ <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-set-matrix" title="cairo_pattern_set_matrix ()"><code class="function">cairo_pattern_set_matrix()</code></a>
+ <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-get-matrix" title="cairo_pattern_get_matrix ()"><code class="function">cairo_pattern_get_matrix()</code></a>
+ cairo_solid_pattern_t (<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-create-rgb" title="cairo_pattern_create_rgb ()"><code class="function">cairo_pattern_create_rgb()</code></a> and <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-create-rgba" title="cairo_pattern_create_rgba ()"><code class="function">cairo_pattern_create_rgba()</code></a>)
+ cairo_surface_pattern_t (<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-create-for-surface" title="cairo_pattern_create_for_surface ()"><code class="function">cairo_pattern_create_for_surface()</code></a>)
+ <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-set-extend" title="cairo_pattern_set_extend ()"><code class="function">cairo_pattern_set_extend()</code></a>
+ <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-get-extend" title="cairo_pattern_get_extend ()"><code class="function">cairo_pattern_get_extend()</code></a>
+ <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-set-filter" title="cairo_pattern_set_filter ()"><code class="function">cairo_pattern_set_filter()</code></a>
+ <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-get-filter" title="cairo_pattern_get_filter ()"><code class="function">cairo_pattern_get_filter()</code></a>
+ cairo_gradient_t
+ <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-add-color-stop-rgb" title="cairo_pattern_add_color_stop_rgb ()"><code class="function">cairo_pattern_add_color_stop_rgb()</code></a>
+ <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-add-color-stop-rgba" title="cairo_pattern_add_color_stop_rgba ()"><code class="function">cairo_pattern_add_color_stop_rgba()</code></a>
+ cairo_linear_gradient_t (<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-create-linear" title="cairo_pattern_create_linear ()"><code class="function">cairo_pattern_create_linear()</code></a>)
+ cairo_radial_gradient_t (<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-create-radial" title="cairo_pattern_create_radial ()"><code class="function">cairo_pattern_create_radial()</code></a>)
+ cairo_mesh_t (<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-create-mesh" title="cairo_pattern_create_mesh ()"><code class="function">cairo_pattern_create_mesh()</code></a>)
+ <a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-begin-patch" title="cairo_mesh_pattern_begin_patch ()"><code class="function">cairo_mesh_pattern_begin_patch()</code></a>
+ <a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-end-patch" title="cairo_mesh_pattern_end_patch ()"><code class="function">cairo_mesh_pattern_end_patch()</code></a>
+ <a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-move-to" title="cairo_mesh_pattern_move_to ()"><code class="function">cairo_mesh_pattern_move_to()</code></a>
+ <a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-line-to" title="cairo_mesh_pattern_line_to ()"><code class="function">cairo_mesh_pattern_line_to()</code></a>
+ <a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-curve-to" title="cairo_mesh_pattern_curve_to ()"><code class="function">cairo_mesh_pattern_curve_to()</code></a>
+ <a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-set-control-point" title="cairo_mesh_pattern_set_control_point ()"><code class="function">cairo_mesh_pattern_set_control_point()</code></a>
+ <a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-set-corner-color-rgb" title="cairo_mesh_pattern_set_corner_color_rgb ()"><code class="function">cairo_mesh_pattern_set_corner_color_rgb()</code></a>
+ <a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-set-corner-color-rgba" title="cairo_mesh_pattern_set_corner_color_rgba ()"><code class="function">cairo_mesh_pattern_set_corner_color_rgba()</code></a>
+ <a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-get-patch-count" title="cairo_mesh_pattern_get_patch_count ()"><code class="function">cairo_mesh_pattern_get_patch_count()</code></a>
+ <a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-get-path" title="cairo_mesh_pattern_get_path ()"><code class="function">cairo_mesh_pattern_get_path()</code></a>
+ <a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-get-control-point" title="cairo_mesh_pattern_get_control_point ()"><code class="function">cairo_mesh_pattern_get_control_point()</code></a>
+ <a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-get-corner-color-rgba" title="cairo_mesh_pattern_get_corner_color_rgba ()"><code class="function">cairo_mesh_pattern_get_corner_color_rgba()</code></a>
+ </pre>
+<p>
+ </p>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Multiple return values: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="language-bindings.html" title="Appendix A. Creating a language binding for cairo">
+<link rel="prev" href="bindings-memory.html" title="Memory management">
+<link rel="next" href="bindings-overloading.html" title="Overloading and optional arguments">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="language-bindings.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="bindings-memory.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="bindings-overloading.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="sect1">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bindings-return-values"></a>Multiple return values</h2></div></div></div>
+<p>
+ There are a number of functions in the cairo API that have
+ multiple <em class="firstterm">out parameters</em> or
+ <em class="firstterm">in-out parameters</em>. In some languages
+ these can be translated into multiple return values. In Python,
+ what is:
+ </p>
+<pre class="programlisting">
+cairo_user_to_device (cr, &amp;x, &amp;y);</pre>
+<p>
+ can by mapped to:
+ </p>
+<pre class="programlisting">
+(x, y) = cr.user_to_device (cr, x, y);</pre>
+<p>
+ 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
+ </p>
+<pre class="programlisting">
+typedef struct _cairo_point cairo_point_t;
+struct _cairo_point {
+ double x;
+ double y;
+}</pre>
+<p>
+ 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.
+ </p>
+<pre class="programlisting">
+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);
+ </pre>
+<p>
+ 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:
+ </p>
+<pre class="programlisting">
+typedef struct _cairo_rectangle cairo_rectangle_t;
+struct _cairo_rectangle {
+ double x;
+ double y;
+ double width;
+ double height;
+}</pre>
+<p>
+ 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.
+ </p>
+<p class="remark"><em><span class="remark">
+ Q: Would it make sense here to define a standard
+ <code class="function">cairo_rectangle_round()</code> method
+ that language bindings should map?
+ </span></em></p>
+<pre class="programlisting">
+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);
+ </pre>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Streams and File I/O: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="language-bindings.html" title="Appendix A. Creating a language binding for cairo">
+<link rel="prev" href="bindings-overloading.html" title="Overloading and optional arguments">
+<link rel="next" href="bindings-errors.html" title="Error handling">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="language-bindings.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="bindings-overloading.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="bindings-errors.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="sect1">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bindings-streams"></a>Streams and File I/O</h2></div></div></div>
+<p>
+ 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:
+ </p>
+<pre class="programlisting">
+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);</pre>
+<p>
+ 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:
+ </p>
+<pre class="programlisting">
+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;
+</pre>
+<p>
+ 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
+ <code class="methodname">createFromPNG()</code> 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
+ <em class="parameter"><code>closure</code></em>, and then rethrow it once
+ the function returns.
+ </p>
+<p class="remark"><em><span class="remark">
+ I'm not sure how to handle this for
+ <a class="link" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-create-for-stream" title="cairo_pdf_surface_create_for_stream ()"><code class="function">cairo_pdf_surface_create_for_stream()</code></a>.
+ Other than keep a “exception to rethrow” thread-specific
+ variable
+ that is checked after <span class="emphasis"><em>every</em></span> call to a Cairo
+ function.
+ </span></em></p>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Surfaces: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="language-bindings.html" title="Appendix A. Creating a language binding for cairo">
+<link rel="prev" href="bindings-patterns.html" title="Patterns">
+<link rel="next" href="bindings-fonts.html" title="Fonts">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="language-bindings.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="bindings-patterns.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="bindings-fonts.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="sect1">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bindings-surfaces"></a>Surfaces</h2></div></div></div>
+<p>
+ Like patterns, surfaces, which use only the
+ <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a>
+ type in the C API should be broken up into a hierarchy of types
+ in a language binding.
+ </p>
+<pre class="programlisting">
+cairo_surface_t
+ cairo_image_surface_t
+ cairo_atsui_surface_t
+ cairo_win32_surface_t
+ cairo_xlib_surface_t
+ cairo_beos_surface_t
+ </pre>
+<p>
+ 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 <span class="type">Display</span> * in
+ that language.
+ </p>
+<p>
+ 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 <a class="ulink" href="http://www.gtk.org/" target="_top">GTK+</a> widget
+ toolkit. In such a situation, the higher level toolkit provides
+ ways to get references to platform specific surfaces.
+ </p>
+<p>
+ The <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-set-user-data" title="cairo_surface_set_user_data ()"><code class="function">cairo_surface_set_user_data()</code></a>,
+ and <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-get-user-data" title="cairo_surface_get_user_data ()"><code class="function">cairo_surface_get_user_data()</code></a>
+ methods are provided for use in language bindings, and should
+ not be directly exposed to applications. One example of the use
+ of these functions in a language binding is creating a binding for:
+ </p>
+<pre class="programlisting">
+cairo_surface_t *
+<a class="link" href="cairo-Image-Surfaces.html#cairo-image-surface-create-for-data" title="cairo_image_surface_create_for_data ()"><code class="function">cairo_image_surface_create_for_data</code></a> (unsigned char *data,
+ cairo_format_t format,
+ int width,
+ int height,
+ int stride);
+</pre>
+<p>
+ The memory block passed in for <em class="parameter"><code>data</code></em> 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 <em class="parameter"><code>destroy</code></em>
+ argument to <code class="function">cairo_surface_set_user_data()</code>.
+ </p>
+<p class="remark"><em><span class="remark">
+ Some languages may not have a suitable “pointer to a block of
+ data” type to pass in for <em class="parameter"><code>data</code></em>. 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?
+ </span></em></p>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Error handling: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="cairo-support.html" title="Utilities">
+<link rel="prev" href="cairo-cairo-matrix-t.html" title="cairo_matrix_t">
+<link rel="next" href="cairo-Version-Information.html" title="Version Information">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+ <a href="#cairo-Error-handling.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="cairo-support.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="cairo-cairo-matrix-t.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="cairo-Version-Information.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="cairo-Error-handling"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="cairo-Error-handling.top_of_page"></a>Error handling</span></h2>
+<p>Error handling — Decoding cairo's status</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="cairo-Error-handling.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">const <span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Error-handling.html#cairo-status-to-string" title="cairo_status_to_string ()">cairo_status_to_string</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Error-handling.html#cairo-debug-reset-static-data" title="cairo_debug_reset_static_data ()">cairo_debug_reset_static_data</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-Error-handling.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t">cairo_status_t</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-Error-handling.description"></a><h2>Description</h2>
+<p>Cairo uses a single status type to represent all kinds of errors. A status
+value of <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> represents no error and has an integer value
+of zero. All other status values represent an error.</p>
+<p>Cairo's error handling is designed to be easy to use and safe. All major
+cairo objects <em class="firstterm">retain</em> an error status internally which
+can be queried anytime by the users using cairo*_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.</p>
+</div>
+<div class="refsect1">
+<a name="cairo-Error-handling.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="cairo-status-to-string"></a><h3>cairo_status_to_string ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> *
+cairo_status_to_string (<em class="parameter"><code><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="type">cairo_status_t</span></a> status</code></em>);</pre>
+<p>Provides a human-readable description of a <a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="type">cairo_status_t</span></a>.</p>
+<div class="refsect3">
+<a name="cairo-status-to-string.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>status</p></td>
+<td class="parameter_description"><p>a cairo status</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-status-to-string.returns"></a><h4>Returns</h4>
+<p> a string representation of the status</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-debug-reset-static-data"></a><h3>cairo_debug_reset_static_data ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_debug_reset_static_data (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>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.</p>
+<p>This function is intended to be useful when using memory-checking
+tools such as valgrind. When valgrind's memcheck analyzes a
+cairo-using program without a call to <a class="link" href="cairo-Error-handling.html#cairo-debug-reset-static-data" title="cairo_debug_reset_static_data ()"><code class="function">cairo_debug_reset_static_data()</code></a>,
+it will report all data reachable via cairo's static objects as
+"still reachable". Calling <a class="link" href="cairo-Error-handling.html#cairo-debug-reset-static-data" title="cairo_debug_reset_static_data ()"><code class="function">cairo_debug_reset_static_data()</code></a> just prior
+to program termination will make it easier to get squeaky clean
+reports from valgrind.</p>
+<p>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).</p>
+<p class="since">Since: 1.0</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-Error-handling.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="cairo-status-t"></a><h3>enum cairo_status_t</h3>
+<p><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="type">cairo_status_t</span></a> is used to indicate errors that can occur when
+using Cairo. In some cases it is returned directly by functions.
+but when using <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a>, the last error, if any, is stored in
+the context and can be retrieved with <a class="link" href="cairo-cairo-t.html#cairo-status" title="cairo_status ()"><code class="function">cairo_status()</code></a>.</p>
+<p>New entries may be added in future versions. Use <a class="link" href="cairo-Error-handling.html#cairo-status-to-string" title="cairo_status_to_string ()"><code class="function">cairo_status_to_string()</code></a>
+to get a human-readable representation of an error message.</p>
+<div class="refsect3">
+<a name="cairo-status-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-SUCCESS:CAPS"></a>CAIRO_STATUS_SUCCESS</p></td>
+<td class="enum_member_description">
+<p>no error has occurred (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-NO-MEMORY:CAPS"></a>CAIRO_STATUS_NO_MEMORY</p></td>
+<td class="enum_member_description">
+<p>out of memory (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-INVALID-RESTORE:CAPS"></a>CAIRO_STATUS_INVALID_RESTORE</p></td>
+<td class="enum_member_description">
+<p>cairo_restore() called without matching <a class="link" href="cairo-cairo-t.html#cairo-save" title="cairo_save ()"><code class="function">cairo_save()</code></a> (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-INVALID-POP-GROUP:CAPS"></a>CAIRO_STATUS_INVALID_POP_GROUP</p></td>
+<td class="enum_member_description">
+<p>no saved group to pop, i.e. <a class="link" href="cairo-cairo-t.html#cairo-pop-group" title="cairo_pop_group ()"><code class="function">cairo_pop_group()</code></a> without matching <a class="link" href="cairo-cairo-t.html#cairo-push-group" title="cairo_push_group ()"><code class="function">cairo_push_group()</code></a> (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-NO-CURRENT-POINT:CAPS"></a>CAIRO_STATUS_NO_CURRENT_POINT</p></td>
+<td class="enum_member_description">
+<p>no current point defined (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-INVALID-MATRIX:CAPS"></a>CAIRO_STATUS_INVALID_MATRIX</p></td>
+<td class="enum_member_description">
+<p>invalid matrix (not invertible) (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-INVALID-STATUS:CAPS"></a>CAIRO_STATUS_INVALID_STATUS</p></td>
+<td class="enum_member_description">
+<p>invalid value for an input <a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="type">cairo_status_t</span></a> (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-NULL-POINTER:CAPS"></a>CAIRO_STATUS_NULL_POINTER</p></td>
+<td class="enum_member_description">
+<p><a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> pointer (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-INVALID-STRING:CAPS"></a>CAIRO_STATUS_INVALID_STRING</p></td>
+<td class="enum_member_description">
+<p>input string not valid UTF-8 (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-INVALID-PATH-DATA:CAPS"></a>CAIRO_STATUS_INVALID_PATH_DATA</p></td>
+<td class="enum_member_description">
+<p>input path data not valid (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-READ-ERROR:CAPS"></a>CAIRO_STATUS_READ_ERROR</p></td>
+<td class="enum_member_description">
+<p>error while reading from input stream (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-WRITE-ERROR:CAPS"></a>CAIRO_STATUS_WRITE_ERROR</p></td>
+<td class="enum_member_description">
+<p>error while writing to output stream (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-SURFACE-FINISHED:CAPS"></a>CAIRO_STATUS_SURFACE_FINISHED</p></td>
+<td class="enum_member_description">
+<p>target surface has been finished (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-SURFACE-TYPE-MISMATCH:CAPS"></a>CAIRO_STATUS_SURFACE_TYPE_MISMATCH</p></td>
+<td class="enum_member_description">
+<p>the surface type is not appropriate for the operation (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS"></a>CAIRO_STATUS_PATTERN_TYPE_MISMATCH</p></td>
+<td class="enum_member_description">
+<p>the pattern type is not appropriate for the operation (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-INVALID-CONTENT:CAPS"></a>CAIRO_STATUS_INVALID_CONTENT</p></td>
+<td class="enum_member_description">
+<p>invalid value for an input <a class="link" href="cairo-cairo-surface-t.html#cairo-content-t" title="enum cairo_content_t"><span class="type">cairo_content_t</span></a> (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-INVALID-FORMAT:CAPS"></a>CAIRO_STATUS_INVALID_FORMAT</p></td>
+<td class="enum_member_description">
+<p>invalid value for an input <a class="link" href="cairo-Image-Surfaces.html#cairo-format-t" title="enum cairo_format_t"><span class="type">cairo_format_t</span></a> (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-INVALID-VISUAL:CAPS"></a>CAIRO_STATUS_INVALID_VISUAL</p></td>
+<td class="enum_member_description">
+<p>invalid value for an input Visual* (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-FILE-NOT-FOUND:CAPS"></a>CAIRO_STATUS_FILE_NOT_FOUND</p></td>
+<td class="enum_member_description">
+<p>file not found (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-INVALID-DASH:CAPS"></a>CAIRO_STATUS_INVALID_DASH</p></td>
+<td class="enum_member_description">
+<p>invalid value for a dash setting (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-INVALID-DSC-COMMENT:CAPS"></a>CAIRO_STATUS_INVALID_DSC_COMMENT</p></td>
+<td class="enum_member_description">
+<p>invalid value for a DSC comment (Since 1.2)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-INVALID-INDEX:CAPS"></a>CAIRO_STATUS_INVALID_INDEX</p></td>
+<td class="enum_member_description">
+<p>invalid index passed to getter (Since 1.4)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-CLIP-NOT-REPRESENTABLE:CAPS"></a>CAIRO_STATUS_CLIP_NOT_REPRESENTABLE</p></td>
+<td class="enum_member_description">
+<p>clip region not representable in desired format (Since 1.4)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-TEMP-FILE-ERROR:CAPS"></a>CAIRO_STATUS_TEMP_FILE_ERROR</p></td>
+<td class="enum_member_description">
+<p>error creating or writing to a temporary file (Since 1.6)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-INVALID-STRIDE:CAPS"></a>CAIRO_STATUS_INVALID_STRIDE</p></td>
+<td class="enum_member_description">
+<p>invalid value for stride (Since 1.6)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-FONT-TYPE-MISMATCH:CAPS"></a>CAIRO_STATUS_FONT_TYPE_MISMATCH</p></td>
+<td class="enum_member_description">
+<p>the font type is not appropriate for the operation (Since 1.8)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-USER-FONT-IMMUTABLE:CAPS"></a>CAIRO_STATUS_USER_FONT_IMMUTABLE</p></td>
+<td class="enum_member_description">
+<p>the user-font is immutable (Since 1.8)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-USER-FONT-ERROR:CAPS"></a>CAIRO_STATUS_USER_FONT_ERROR</p></td>
+<td class="enum_member_description">
+<p>error occurred in a user-font callback function (Since 1.8)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-NEGATIVE-COUNT:CAPS"></a>CAIRO_STATUS_NEGATIVE_COUNT</p></td>
+<td class="enum_member_description">
+<p>negative number used where it is not allowed (Since 1.8)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-INVALID-CLUSTERS:CAPS"></a>CAIRO_STATUS_INVALID_CLUSTERS</p></td>
+<td class="enum_member_description">
+<p>input clusters do not represent the accompanying text and glyph array (Since 1.8)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-INVALID-SLANT:CAPS"></a>CAIRO_STATUS_INVALID_SLANT</p></td>
+<td class="enum_member_description">
+<p>invalid value for an input <a class="link" href="cairo-text.html#cairo-font-slant-t" title="enum cairo_font_slant_t"><span class="type">cairo_font_slant_t</span></a> (Since 1.8)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-INVALID-WEIGHT:CAPS"></a>CAIRO_STATUS_INVALID_WEIGHT</p></td>
+<td class="enum_member_description">
+<p>invalid value for an input <a class="link" href="cairo-text.html#cairo-font-weight-t" title="enum cairo_font_weight_t"><span class="type">cairo_font_weight_t</span></a> (Since 1.8)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-INVALID-SIZE:CAPS"></a>CAIRO_STATUS_INVALID_SIZE</p></td>
+<td class="enum_member_description">
+<p>invalid value (typically too big) for the size of the input (surface, pattern, etc.) (Since 1.10)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-USER-FONT-NOT-IMPLEMENTED:CAPS"></a>CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED</p></td>
+<td class="enum_member_description">
+<p>user-font method not implemented (Since 1.10)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-DEVICE-TYPE-MISMATCH:CAPS"></a>CAIRO_STATUS_DEVICE_TYPE_MISMATCH</p></td>
+<td class="enum_member_description">
+<p>the device type is not appropriate for the operation (Since 1.10)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-DEVICE-ERROR:CAPS"></a>CAIRO_STATUS_DEVICE_ERROR</p></td>
+<td class="enum_member_description">
+<p>an operation to the device caused an unspecified error (Since 1.10)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-INVALID-MESH-CONSTRUCTION:CAPS"></a>CAIRO_STATUS_INVALID_MESH_CONSTRUCTION</p></td>
+<td class="enum_member_description">
+<p>a mesh pattern
+ construction operation was used outside of a
+ <a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-begin-patch" title="cairo_mesh_pattern_begin_patch ()"><code class="function">cairo_mesh_pattern_begin_patch()</code></a>/<a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-end-patch" title="cairo_mesh_pattern_end_patch ()"><code class="function">cairo_mesh_pattern_end_patch()</code></a>
+ pair (Since 1.12)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-DEVICE-FINISHED:CAPS"></a>CAIRO_STATUS_DEVICE_FINISHED</p></td>
+<td class="enum_member_description">
+<p>target device has been finished (Since 1.12)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-JBIG2-GLOBAL-MISSING:CAPS"></a>CAIRO_STATUS_JBIG2_GLOBAL_MISSING</p></td>
+<td class="enum_member_description">
+<p><a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL-ID:CAPS" title="CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID"><code class="literal">CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID</code></a> has been used on at least one image
+ but no image provided <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL:CAPS" title="CAIRO_MIME_TYPE_JBIG2_GLOBAL"><code class="literal">CAIRO_MIME_TYPE_JBIG2_GLOBAL</code></a> (Since 1.14)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-PNG-ERROR:CAPS"></a>CAIRO_STATUS_PNG_ERROR</p></td>
+<td class="enum_member_description">
+<p>error occurred in libpng while reading from or writing to a PNG file (Since 1.16)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-FREETYPE-ERROR:CAPS"></a>CAIRO_STATUS_FREETYPE_ERROR</p></td>
+<td class="enum_member_description">
+<p>error occurred in libfreetype (Since 1.16)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-WIN32-GDI-ERROR:CAPS"></a>CAIRO_STATUS_WIN32_GDI_ERROR</p></td>
+<td class="enum_member_description">
+<p>error occurred in the Windows Graphics Device Interface (Since 1.16)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-TAG-ERROR:CAPS"></a>CAIRO_STATUS_TAG_ERROR</p></td>
+<td class="enum_member_description">
+<p>invalid tag name, attributes, or nesting (Since 1.16)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-STATUS-LAST-STATUS:CAPS"></a>CAIRO_STATUS_LAST_STATUS</p></td>
+<td class="enum_member_description">
+<p>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)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-Error-handling.see-also"></a><h2>See Also</h2>
+<p>cairo_status(), <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-status" title="cairo_surface_status ()"><code class="function">cairo_surface_status()</code></a>, <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-status" title="cairo_pattern_status ()"><code class="function">cairo_pattern_status()</code></a>,
+ <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-status" title="cairo_font_face_status ()"><code class="function">cairo_font_face_status()</code></a>, <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-status" title="cairo_scaled_font_status ()"><code class="function">cairo_scaled_font_status()</code></a>,
+ <a class="link" href="cairo-Regions.html#cairo-region-status" title="cairo_region_status ()"><code class="function">cairo_region_status()</code></a></p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>FreeType Fonts: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="cairo-fonts.html" title="Fonts">
+<link rel="prev" href="cairo-cairo-font-options-t.html" title="cairo_font_options_t">
+<link rel="next" href="cairo-Win32-Fonts.html" title="Win32 Fonts">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+ <a href="#cairo-FreeType-Fonts.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="cairo-fonts.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="cairo-cairo-font-options-t.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="cairo-Win32-Fonts.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="cairo-FreeType-Fonts"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="cairo-FreeType-Fonts.top_of_page"></a>FreeType Fonts</span></h2>
+<p>FreeType Fonts — Font support for FreeType</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="cairo-FreeType-Fonts.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="returnvalue">cairo_font_face_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-FreeType-Fonts.html#cairo-ft-font-face-create-for-ft-face" title="cairo_ft_font_face_create_for_ft_face ()">cairo_ft_font_face_create_for_ft_face</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="returnvalue">cairo_font_face_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-FreeType-Fonts.html#cairo-ft-font-face-create-for-pattern" title="cairo_ft_font_face_create_for_pattern ()">cairo_ft_font_face_create_for_pattern</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-FreeType-Fonts.html#cairo-ft-font-options-substitute" title="cairo_ft_font_options_substitute ()">cairo_ft_font_options_substitute</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">FT_Face</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-FreeType-Fonts.html#cairo-ft-scaled-font-lock-face" title="cairo_ft_scaled_font_lock_face ()">cairo_ft_scaled_font_lock_face</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-FreeType-Fonts.html#cairo-ft-scaled-font-unlock-face" title="cairo_ft_scaled_font_unlock_face ()">cairo_ft_scaled_font_unlock_face</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">unsigned <span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-FreeType-Fonts.html#cairo-ft-font-face-get-synthesize" title="cairo_ft_font_face_get_synthesize ()">cairo_ft_font_face_get_synthesize</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-FreeType-Fonts.html#cairo-ft-font-face-set-synthesize" title="cairo_ft_font_face_set_synthesize ()">cairo_ft_font_face_set_synthesize</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-FreeType-Fonts.html#cairo-ft-font-face-unset-synthesize" title="cairo_ft_font_face_unset_synthesize ()">cairo_ft_font_face_unset_synthesize</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-FreeType-Fonts.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="cairo-FreeType-Fonts.html#CAIRO-HAS-FT-FONT:CAPS" title="CAIRO_HAS_FT_FONT">CAIRO_HAS_FT_FONT</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="cairo-FreeType-Fonts.html#CAIRO-HAS-FC-FONT:CAPS" title="CAIRO_HAS_FC_FONT">CAIRO_HAS_FC_FONT</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="cairo-FreeType-Fonts.html#cairo-ft-synthesize-t" title="enum cairo_ft_synthesize_t">cairo_ft_synthesize_t</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-FreeType-Fonts.description"></a><h2>Description</h2>
+<p>The FreeType font backend is primarily used to render text on GNU/Linux
+systems, but can be used on other platforms too.</p>
+</div>
+<div class="refsect1">
+<a name="cairo-FreeType-Fonts.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="cairo-ft-font-face-create-for-ft-face"></a><h3>cairo_ft_font_face_create_for_ft_face ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="returnvalue">cairo_font_face_t</span></a> *
+cairo_ft_font_face_create_for_ft_face (<em class="parameter"><code><span class="type">FT_Face</span> face</code></em>,
+ <em class="parameter"><code><span class="type">int</span> load_flags</code></em>);</pre>
+<p>Creates a new font face for the FreeType font backend from a
+pre-opened FreeType face. This font can then be used with
+<a class="link" href="cairo-text.html#cairo-set-font-face" title="cairo_set_font_face ()"><code class="function">cairo_set_font_face()</code></a> or <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-create" title="cairo_scaled_font_create ()"><code class="function">cairo_scaled_font_create()</code></a>. The
+<a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> returned from <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-create" title="cairo_scaled_font_create ()"><code class="function">cairo_scaled_font_create()</code></a> is
+also for the FreeType backend and can be used with functions such
+as <a class="link" href="cairo-FreeType-Fonts.html#cairo-ft-scaled-font-lock-face" title="cairo_ft_scaled_font_lock_face ()"><code class="function">cairo_ft_scaled_font_lock_face()</code></a>. 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 <code class="function">FT_Done_Face()</code> before the last reference to the
+<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> has been dropped.</p>
+<p>As an example, below is how one might correctly couple the lifetime of
+the FreeType face object to the <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a>.</p>
+<div class="informalexample">
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+ <tbody>
+ <tr>
+ <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8
+9
+10</pre></td>
+ <td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">static const</span> cairo_user_data_key_t key<span class="gtkdoc opt">;</span>
+
+font_face <span class="gtkdoc opt">=</span> <span class="function"><a href="cairo-FreeType-Fonts.html#cairo-ft-font-face-create-for-ft-face">cairo_ft_font_face_create_for_ft_face</a></span> <span class="gtkdoc opt">(</span>ft_face<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">);</span>
+status <span class="gtkdoc opt">=</span> <span class="function"><a href="cairo-cairo-font-face-t.html#cairo-font-face-set-user-data">cairo_font_face_set_user_data</a></span> <span class="gtkdoc opt">(</span>font_face<span class="gtkdoc opt">, &amp;</span>key<span class="gtkdoc opt">,</span>
+ ft_face<span class="gtkdoc opt">, (</span>cairo_destroy_func_t<span class="gtkdoc opt">)</span> FT_Done_Face<span class="gtkdoc opt">);</span>
+<span class="keyword">if</span> <span class="gtkdoc opt">(</span>status<span class="gtkdoc opt">) {</span>
+ <span class="function"><a href="cairo-cairo-font-face-t.html#cairo-font-face-destroy">cairo_font_face_destroy</a></span> <span class="gtkdoc opt">(</span>font_face<span class="gtkdoc opt">);</span>
+ <span class="function">FT_Done_Face</span> <span class="gtkdoc opt">(</span>ft_face<span class="gtkdoc opt">);</span>
+ <span class="keyword">return</span> ERROR<span class="gtkdoc opt">;</span>
+<span class="gtkdoc opt">}</span></pre></td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+
+<div class="refsect3">
+<a name="cairo-ft-font-face-create-for-ft-face.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>face</p></td>
+<td class="parameter_description"><p>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
+<a class="link" href="cairo-Types.html#cairo-destroy-func-t" title="cairo_destroy_func_t ()"><span class="type">cairo_destroy_func_t</span></a> to <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-set-user-data" title="cairo_font_face_set_user_data ()"><code class="function">cairo_font_face_set_user_data()</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>load_flags</p></td>
+<td class="parameter_description"><p>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 <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a> passed
+to <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-create" title="cairo_scaled_font_create ()"><code class="function">cairo_scaled_font_create()</code></a>, so only a few values such
+as <code class="literal">FT_LOAD_VERTICAL_LAYOUT</code>, and <code class="literal">FT_LOAD_FORCE_AUTOHINT</code>
+are useful. You should not pass any of the flags affecting
+the load target, such as <code class="literal">FT_LOAD_TARGET_LIGHT</code>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-ft-font-face-create-for-ft-face.returns"></a><h4>Returns</h4>
+<p> a newly created <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a>. Free with
+<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-destroy" title="cairo_font_face_destroy ()"><code class="function">cairo_font_face_destroy()</code></a> when you are done using it.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-ft-font-face-create-for-pattern"></a><h3>cairo_ft_font_face_create_for_pattern ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="returnvalue">cairo_font_face_t</span></a> *
+cairo_ft_font_face_create_for_pattern (<em class="parameter"><code><span class="type">FcPattern</span> *pattern</code></em>);</pre>
+<p>Creates a new font face for the FreeType font backend based on a
+fontconfig pattern. This font can then be used with
+<a class="link" href="cairo-text.html#cairo-set-font-face" title="cairo_set_font_face ()"><code class="function">cairo_set_font_face()</code></a> or <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-create" title="cairo_scaled_font_create ()"><code class="function">cairo_scaled_font_create()</code></a>. The
+<a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> returned from <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-create" title="cairo_scaled_font_create ()"><code class="function">cairo_scaled_font_create()</code></a> is
+also for the FreeType backend and can be used with functions such
+as <a class="link" href="cairo-FreeType-Fonts.html#cairo-ft-scaled-font-lock-face" title="cairo_ft_scaled_font_lock_face ()"><code class="function">cairo_ft_scaled_font_lock_face()</code></a>.</p>
+<p>Font rendering options are represented both here and when you
+call <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-create" title="cairo_scaled_font_create ()"><code class="function">cairo_scaled_font_create()</code></a>. Font options that have a representation
+in a <span class="type">FcPattern</span> must be passed in here; to modify <span class="type">FcPattern</span>
+appropriately to reflect the options in a <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a>, call
+<a class="link" href="cairo-FreeType-Fonts.html#cairo-ft-font-options-substitute" title="cairo_ft_font_options_substitute ()"><code class="function">cairo_ft_font_options_substitute()</code></a>.</p>
+<p>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 <em class="parameter"><code>pattern</code></em>
+
+are used to load a font face from file.</p>
+<p>If both steps from the previous paragraph fails, <em class="parameter"><code>pattern</code></em>
+ will be passed
+to FcConfigSubstitute, FcDefaultSubstitute, and finally FcFontMatch,
+and the resulting font pattern is used.</p>
+<p>If the FC_FT_FACE element of <em class="parameter"><code>pattern</code></em>
+ is set, the user is responsible
+for making sure that the referenced FT_Face remains valid for the life
+time of the returned <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a>. See
+<a class="link" href="cairo-FreeType-Fonts.html#cairo-ft-font-face-create-for-ft-face" title="cairo_ft_font_face_create_for_ft_face ()"><code class="function">cairo_ft_font_face_create_for_ft_face()</code></a> for an example of how to couple
+the life time of the FT_Face to that of the cairo font-face.</p>
+<div class="refsect3">
+<a name="cairo-ft-font-face-create-for-pattern.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>A fontconfig pattern. Cairo makes a copy of the pattern
+if it needs to. You are free to modify or free <em class="parameter"><code>pattern</code></em>
+after this call.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-ft-font-face-create-for-pattern.returns"></a><h4>Returns</h4>
+<p> a newly created <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a>. Free with
+<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-destroy" title="cairo_font_face_destroy ()"><code class="function">cairo_font_face_destroy()</code></a> when you are done using it.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-ft-font-options-substitute"></a><h3>cairo_ft_font_options_substitute ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_ft_font_options_substitute (<em class="parameter"><code>const <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a> *options</code></em>,
+ <em class="parameter"><code><span class="type">FcPattern</span> *pattern</code></em>);</pre>
+<p>Add options to a <span class="type">FcPattern</span> based on a <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a> font
+options object. Options that are already in the pattern, are not overridden,
+so you should call this function after calling <code class="function">FcConfigSubstitute()</code> (the
+user's settings should override options based on the surface type), but
+before calling <code class="function">FcDefaultSubstitute()</code>.</p>
+<div class="refsect3">
+<a name="cairo-ft-font-options-substitute.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>options</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a> object</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>an existing <span class="type">FcPattern</span></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-ft-scaled-font-lock-face"></a><h3>cairo_ft_scaled_font_lock_face ()</h3>
+<pre class="programlisting"><span class="returnvalue">FT_Face</span>
+cairo_ft_scaled_font_lock_face (<em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> *scaled_font</code></em>);</pre>
+<p>cairo_ft_scaled_font_lock_face() gets the <span class="type">FT_Face</span> 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 <a class="link" href="cairo-FreeType-Fonts.html#cairo-ft-scaled-font-unlock-face" title="cairo_ft_scaled_font_unlock_face ()"><code class="function">cairo_ft_scaled_font_unlock_face()</code></a>
+when you are done using it. Since the <span class="type">FT_Face</span> object can be
+shared between multiple <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> objects, you must not
+lock any other font objects until you unlock this one. A count is
+kept of the number of times <a class="link" href="cairo-FreeType-Fonts.html#cairo-ft-scaled-font-lock-face" title="cairo_ft_scaled_font_lock_face ()"><code class="function">cairo_ft_scaled_font_lock_face()</code></a> is
+called. <a class="link" href="cairo-FreeType-Fonts.html#cairo-ft-scaled-font-unlock-face" title="cairo_ft_scaled_font_unlock_face ()"><code class="function">cairo_ft_scaled_font_unlock_face()</code></a> must be called the same number
+of times.</p>
+<p>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).</p>
+<div class="refsect3">
+<a name="cairo-ft-scaled-font-lock-face.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>scaled_font</p></td>
+<td class="parameter_description"><p>A <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> from the FreeType font backend. Such an
+object can be created by calling <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-create" title="cairo_scaled_font_create ()"><code class="function">cairo_scaled_font_create()</code></a> on a
+FreeType backend font face (see <a class="link" href="cairo-FreeType-Fonts.html#cairo-ft-font-face-create-for-pattern" title="cairo_ft_font_face_create_for_pattern ()"><code class="function">cairo_ft_font_face_create_for_pattern()</code></a>,
+<a class="link" href="cairo-FreeType-Fonts.html#cairo-ft-font-face-create-for-ft-face" title="cairo_ft_font_face_create_for_ft_face ()"><code class="function">cairo_ft_font_face_create_for_ft_face()</code></a>).</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-ft-scaled-font-lock-face.returns"></a><h4>Returns</h4>
+<p> The <span class="type">FT_Face</span> object for <em class="parameter"><code>font</code></em>
+, scaled appropriately,
+or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>scaled_font</code></em>
+is in an error state (see
+<a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-status" title="cairo_scaled_font_status ()"><code class="function">cairo_scaled_font_status()</code></a>) or there is insufficient memory.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-ft-scaled-font-unlock-face"></a><h3>cairo_ft_scaled_font_unlock_face ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_ft_scaled_font_unlock_face (<em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> *scaled_font</code></em>);</pre>
+<p>Releases a face obtained with <a class="link" href="cairo-FreeType-Fonts.html#cairo-ft-scaled-font-lock-face" title="cairo_ft_scaled_font_lock_face ()"><code class="function">cairo_ft_scaled_font_lock_face()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-ft-scaled-font-unlock-face.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>scaled_font</p></td>
+<td class="parameter_description"><p>A <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> from the FreeType font backend. Such an
+object can be created by calling <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-create" title="cairo_scaled_font_create ()"><code class="function">cairo_scaled_font_create()</code></a> on a
+FreeType backend font face (see <a class="link" href="cairo-FreeType-Fonts.html#cairo-ft-font-face-create-for-pattern" title="cairo_ft_font_face_create_for_pattern ()"><code class="function">cairo_ft_font_face_create_for_pattern()</code></a>,
+<a class="link" href="cairo-FreeType-Fonts.html#cairo-ft-font-face-create-for-ft-face" title="cairo_ft_font_face_create_for_ft_face ()"><code class="function">cairo_ft_font_face_create_for_ft_face()</code></a>).</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-ft-font-face-get-synthesize"></a><h3>cairo_ft_font_face_get_synthesize ()</h3>
+<pre class="programlisting">unsigned <span class="returnvalue">int</span>
+cairo_ft_font_face_get_synthesize (<em class="parameter"><code><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> *font_face</code></em>);</pre>
+<p>See <a class="link" href="cairo-FreeType-Fonts.html#cairo-ft-synthesize-t" title="enum cairo_ft_synthesize_t"><span class="type">cairo_ft_synthesize_t</span></a>.</p>
+<div class="refsect3">
+<a name="cairo-ft-font-face-get-synthesize.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>font_face</p></td>
+<td class="parameter_description"><p>The <span class="type">cairo_ft_font_face_t</span> object to query</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-ft-font-face-get-synthesize.returns"></a><h4>Returns</h4>
+<p> the current set of synthesis options.</p>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-ft-font-face-set-synthesize"></a><h3>cairo_ft_font_face_set_synthesize ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_ft_font_face_set_synthesize (<em class="parameter"><code><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> *font_face</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> synth_flags</code></em>);</pre>
+<p>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 <a class="link" href="cairo-FreeType-Fonts.html#cairo-ft-synthesize-t" title="enum cairo_ft_synthesize_t"><span class="type">cairo_ft_synthesize_t</span></a>.</p>
+<div class="refsect3">
+<a name="cairo-ft-font-face-set-synthesize.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>font_face</p></td>
+<td class="parameter_description"><p>The <span class="type">cairo_ft_font_face_t</span> object to modify</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>synth_flags</p></td>
+<td class="parameter_description"><p>the set of synthesis options to enable</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-ft-font-face-unset-synthesize"></a><h3>cairo_ft_font_face_unset_synthesize ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_ft_font_face_unset_synthesize (<em class="parameter"><code><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> *font_face</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> synth_flags</code></em>);</pre>
+<p>See <a class="link" href="cairo-FreeType-Fonts.html#cairo-ft-font-face-set-synthesize" title="cairo_ft_font_face_set_synthesize ()"><code class="function">cairo_ft_font_face_set_synthesize()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-ft-font-face-unset-synthesize.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>font_face</p></td>
+<td class="parameter_description"><p>The <span class="type">cairo_ft_font_face_t</span> object to modify</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>synth_flags</p></td>
+<td class="parameter_description"><p>the set of synthesis options to disable</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-FreeType-Fonts.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="CAIRO-HAS-FT-FONT:CAPS"></a><h3>CAIRO_HAS_FT_FONT</h3>
+<pre class="programlisting">#define CAIRO_HAS_FT_FONT 1
+</pre>
+<p>Defined if the FreeType font backend is available.
+This macro can be used to conditionally compile backend-specific code.</p>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="CAIRO-HAS-FC-FONT:CAPS"></a><h3>CAIRO_HAS_FC_FONT</h3>
+<pre class="programlisting">#define CAIRO_HAS_FC_FONT 1
+</pre>
+<p>Defined if the Fontconfig-specific functions of the FreeType font backend
+are available.
+This macro can be used to conditionally compile backend-specific code.</p>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-ft-synthesize-t"></a><h3>enum cairo_ft_synthesize_t</h3>
+<p>A set of synthesis options to control how FreeType renders the glyphs
+for a particular font face.</p>
+<p>Individual synthesis features of a <span class="type">cairo_ft_font_face_t</span> can be set
+using <a class="link" href="cairo-FreeType-Fonts.html#cairo-ft-font-face-set-synthesize" title="cairo_ft_font_face_set_synthesize ()"><code class="function">cairo_ft_font_face_set_synthesize()</code></a>, or disabled using
+<a class="link" href="cairo-FreeType-Fonts.html#cairo-ft-font-face-unset-synthesize" title="cairo_ft_font_face_unset_synthesize ()"><code class="function">cairo_ft_font_face_unset_synthesize()</code></a>. The currently enabled set of
+synthesis options can be queried with <a class="link" href="cairo-FreeType-Fonts.html#cairo-ft-font-face-get-synthesize" title="cairo_ft_font_face_get_synthesize ()"><code class="function">cairo_ft_font_face_get_synthesize()</code></a>.</p>
+<p>Note: that when synthesizing glyphs, the font metrics returned will only
+be estimates.</p>
+<div class="refsect3">
+<a name="cairo-ft-synthesize-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-FT-SYNTHESIZE-BOLD:CAPS"></a>CAIRO_FT_SYNTHESIZE_BOLD</p></td>
+<td class="enum_member_description">
+<p>Embolden the glyphs (redraw with a pixel offset)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-FT-SYNTHESIZE-OBLIQUE:CAPS"></a>CAIRO_FT_SYNTHESIZE_OBLIQUE</p></td>
+<td class="enum_member_description">
+<p>Slant the glyph outline by 12 degrees to the
+right.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-FreeType-Fonts.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a></p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Image Surfaces: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="cairo-surfaces.html" title="Surfaces">
+<link rel="prev" href="cairo-cairo-surface-t.html" title="cairo_surface_t">
+<link rel="next" href="cairo-PDF-Surfaces.html" title="PDF Surfaces">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+ <a href="#cairo-Image-Surfaces.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="cairo-surfaces.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="cairo-cairo-surface-t.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="cairo-PDF-Surfaces.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="cairo-Image-Surfaces"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="cairo-Image-Surfaces.top_of_page"></a>Image Surfaces</span></h2>
+<p>Image Surfaces — Rendering to memory buffers</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="cairo-Image-Surfaces.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Image-Surfaces.html#cairo-format-stride-for-width" title="cairo_format_stride_for_width ()">cairo_format_stride_for_width</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Image-Surfaces.html#cairo-image-surface-create" title="cairo_image_surface_create ()">cairo_image_surface_create</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Image-Surfaces.html#cairo-image-surface-create-for-data" title="cairo_image_surface_create_for_data ()">cairo_image_surface_create_for_data</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">unsigned <span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Image-Surfaces.html#cairo-image-surface-get-data" title="cairo_image_surface_get_data ()">cairo_image_surface_get_data</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Image-Surfaces.html#cairo-format-t" title="enum cairo_format_t"><span class="returnvalue">cairo_format_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Image-Surfaces.html#cairo-image-surface-get-format" title="cairo_image_surface_get_format ()">cairo_image_surface_get_format</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Image-Surfaces.html#cairo-image-surface-get-width" title="cairo_image_surface_get_width ()">cairo_image_surface_get_width</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Image-Surfaces.html#cairo-image-surface-get-height" title="cairo_image_surface_get_height ()">cairo_image_surface_get_height</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Image-Surfaces.html#cairo-image-surface-get-stride" title="cairo_image_surface_get_stride ()">cairo_image_surface_get_stride</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-Image-Surfaces.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="cairo-Image-Surfaces.html#CAIRO-HAS-IMAGE-SURFACE:CAPS" title="CAIRO_HAS_IMAGE_SURFACE">CAIRO_HAS_IMAGE_SURFACE</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="cairo-Image-Surfaces.html#cairo-format-t" title="enum cairo_format_t">cairo_format_t</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-Image-Surfaces.description"></a><h2>Description</h2>
+<p>Image surfaces provide the ability to render to memory buffers
+either allocated by cairo or by the calling code. The supported
+image formats are those defined in <a class="link" href="cairo-Image-Surfaces.html#cairo-format-t" title="enum cairo_format_t"><span class="type">cairo_format_t</span></a>.</p>
+</div>
+<div class="refsect1">
+<a name="cairo-Image-Surfaces.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="cairo-format-stride-for-width"></a><h3>cairo_format_stride_for_width ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+cairo_format_stride_for_width (<em class="parameter"><code><a class="link" href="cairo-Image-Surfaces.html#cairo-format-t" title="enum cairo_format_t"><span class="type">cairo_format_t</span></a> format</code></em>,
+ <em class="parameter"><code><span class="type">int</span> width</code></em>);</pre>
+<p>This function provides a stride value that will respect all
+alignment requirements of the accelerated image-rendering code
+within cairo. Typical usage will be of the form:</p>
+<div class="informalexample">
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+ <tbody>
+ <tr>
+ <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8
+9</pre></td>
+ <td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">int</span> stride<span class="gtkdoc opt">;</span>
+<span class="gtkdoc kwb">unsigned char</span> <span class="gtkdoc opt">*</span>data<span class="gtkdoc opt">;</span>
+cairo_surface_t <span class="gtkdoc opt">*</span>surface<span class="gtkdoc opt">;</span>
+
+stride <span class="gtkdoc opt">=</span> <span class="function"><a href="cairo-Image-Surfaces.html#cairo-format-stride-for-width">cairo_format_stride_for_width</a></span> <span class="gtkdoc opt">(</span>format<span class="gtkdoc opt">,</span> width<span class="gtkdoc opt">);</span>
+data <span class="gtkdoc opt">=</span> <span class="function">malloc</span> <span class="gtkdoc opt">(</span>stride <span class="gtkdoc opt">*</span> height<span class="gtkdoc opt">);</span>
+surface <span class="gtkdoc opt">=</span> <span class="function"><a href="cairo-Image-Surfaces.html#cairo-image-surface-create-for-data">cairo_image_surface_create_for_data</a></span> <span class="gtkdoc opt">(</span>data<span class="gtkdoc opt">,</span> format<span class="gtkdoc opt">,</span>
+ width<span class="gtkdoc opt">,</span> height<span class="gtkdoc opt">,</span>
+ stride<span class="gtkdoc opt">);</span></pre></td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+
+<div class="refsect3">
+<a name="cairo-format-stride-for-width.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>A <a class="link" href="cairo-Image-Surfaces.html#cairo-format-t" title="enum cairo_format_t"><span class="type">cairo_format_t</span></a> value</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>width</p></td>
+<td class="parameter_description"><p>The desired width of an image surface to be created.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-format-stride-for-width.returns"></a><h4>Returns</h4>
+<p> the appropriate stride to use given the desired
+format and width, or -1 if either the format is invalid or the width
+too large.</p>
+</div>
+<p class="since">Since: 1.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-image-surface-create"></a><h3>cairo_image_surface_create ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+cairo_image_surface_create (<em class="parameter"><code><a class="link" href="cairo-Image-Surfaces.html#cairo-format-t" title="enum cairo_format_t"><span class="type">cairo_format_t</span></a> format</code></em>,
+ <em class="parameter"><code><span class="type">int</span> width</code></em>,
+ <em class="parameter"><code><span class="type">int</span> height</code></em>);</pre>
+<p>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).</p>
+<div class="refsect3">
+<a name="cairo-image-surface-create.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>format of pixels in the surface to create</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>width</p></td>
+<td class="parameter_description"><p>width of the surface, in pixels</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>height</p></td>
+<td class="parameter_description"><p>height of the surface, in pixels</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-image-surface-create.returns"></a><h4>Returns</h4>
+<p> a pointer to the newly created surface. The caller
+owns the surface and should call <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-destroy" title="cairo_surface_destroy ()"><code class="function">cairo_surface_destroy()</code></a> when done
+with it.</p>
+<p>This function always returns a valid pointer, but it will return a
+pointer to a "nil" surface if an error such as out of memory
+occurs. You can use <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-status" title="cairo_surface_status ()"><code class="function">cairo_surface_status()</code></a> to check for this.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-image-surface-create-for-data"></a><h3>cairo_image_surface_create_for_data ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+cairo_image_surface_create_for_data (<em class="parameter"><code>unsigned <span class="type">char</span> *data</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-Image-Surfaces.html#cairo-format-t" title="enum cairo_format_t"><span class="type">cairo_format_t</span></a> format</code></em>,
+ <em class="parameter"><code><span class="type">int</span> width</code></em>,
+ <em class="parameter"><code><span class="type">int</span> height</code></em>,
+ <em class="parameter"><code><span class="type">int</span> stride</code></em>);</pre>
+<p>Creates an image surface for the provided pixel data. The output
+buffer must be kept around until the <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> is destroyed
+or <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-finish" title="cairo_surface_finish ()"><code class="function">cairo_surface_finish()</code></a> is called on the surface. The initial
+contents of <em class="parameter"><code>data</code></em>
+ will be used as the initial image contents; you
+must explicitly clear the buffer, using, for example,
+<a class="link" href="cairo-Paths.html#cairo-rectangle" title="cairo_rectangle ()"><code class="function">cairo_rectangle()</code></a> and <a class="link" href="cairo-cairo-t.html#cairo-fill" title="cairo_fill ()"><code class="function">cairo_fill()</code></a> if you want it cleared.</p>
+<p>Note that the stride may be larger than
+width*bytes_per_pixel to provide proper alignment for each pixel
+and row. This alignment is required to allow high-performance rendering
+within cairo. The correct way to obtain a legal stride value is to
+call <a class="link" href="cairo-Image-Surfaces.html#cairo-format-stride-for-width" title="cairo_format_stride_for_width ()"><code class="function">cairo_format_stride_for_width()</code></a> with the desired format and
+maximum image width value, and then use the resulting stride value
+to allocate the data and to create the image surface. See
+<a class="link" href="cairo-Image-Surfaces.html#cairo-format-stride-for-width" title="cairo_format_stride_for_width ()"><code class="function">cairo_format_stride_for_width()</code></a> for example code.</p>
+<div class="refsect3">
+<a name="cairo-image-surface-create-for-data.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>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).</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>the format of pixels in the buffer</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>width</p></td>
+<td class="parameter_description"><p>the width of the image to be stored in the buffer</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>height</p></td>
+<td class="parameter_description"><p>the height of the image to be stored in the buffer</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>stride</p></td>
+<td class="parameter_description"><p>the number of bytes between the start of rows in the
+buffer as allocated. This value should always be computed by
+<a class="link" href="cairo-Image-Surfaces.html#cairo-format-stride-for-width" title="cairo_format_stride_for_width ()"><code class="function">cairo_format_stride_for_width()</code></a> before allocating the data
+buffer.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-image-surface-create-for-data.returns"></a><h4>Returns</h4>
+<p> a pointer to the newly created surface. The caller
+owns the surface and should call <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-destroy" title="cairo_surface_destroy ()"><code class="function">cairo_surface_destroy()</code></a> when done
+with it.</p>
+<p>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
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-INVALID-STRIDE:CAPS"><code class="literal">CAIRO_STATUS_INVALID_STRIDE</code></a>. You can use
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-status" title="cairo_surface_status ()"><code class="function">cairo_surface_status()</code></a> to check for this.</p>
+<p>See <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-set-user-data" title="cairo_surface_set_user_data ()"><code class="function">cairo_surface_set_user_data()</code></a> for a means of attaching a
+destroy-notification fallback to the surface if necessary.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-image-surface-get-data"></a><h3>cairo_image_surface_get_data ()</h3>
+<pre class="programlisting">unsigned <span class="returnvalue">char</span> *
+cairo_image_surface_get_data (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
+<p>Get a pointer to the data of the image surface, for direct
+inspection or modification.</p>
+<p>A call to <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-flush" title="cairo_surface_flush ()"><code class="function">cairo_surface_flush()</code></a> is required before accessing the
+pixel data to ensure that all pending drawing operations are
+finished. A call to <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-mark-dirty" title="cairo_surface_mark_dirty ()"><code class="function">cairo_surface_mark_dirty()</code></a> is required after
+the data is modified.</p>
+<div class="refsect3">
+<a name="cairo-image-surface-get-data.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <span class="type">cairo_image_surface_t</span></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-image-surface-get-data.returns"></a><h4>Returns</h4>
+<p> a pointer to the image data of this surface or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+if <em class="parameter"><code>surface</code></em>
+is not an image surface, or if <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-finish" title="cairo_surface_finish ()"><code class="function">cairo_surface_finish()</code></a>
+has been called.</p>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-image-surface-get-format"></a><h3>cairo_image_surface_get_format ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Image-Surfaces.html#cairo-format-t" title="enum cairo_format_t"><span class="returnvalue">cairo_format_t</span></a>
+cairo_image_surface_get_format (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
+<p>Get the format of the surface.</p>
+<div class="refsect3">
+<a name="cairo-image-surface-get-format.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <span class="type">cairo_image_surface_t</span></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-image-surface-get-format.returns"></a><h4>Returns</h4>
+<p> the format of the surface</p>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-image-surface-get-width"></a><h3>cairo_image_surface_get_width ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+cairo_image_surface_get_width (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
+<p>Get the width of the image surface in pixels.</p>
+<div class="refsect3">
+<a name="cairo-image-surface-get-width.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <span class="type">cairo_image_surface_t</span></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-image-surface-get-width.returns"></a><h4>Returns</h4>
+<p> the width of the surface in pixels.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-image-surface-get-height"></a><h3>cairo_image_surface_get_height ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+cairo_image_surface_get_height (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
+<p>Get the height of the image surface in pixels.</p>
+<div class="refsect3">
+<a name="cairo-image-surface-get-height.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <span class="type">cairo_image_surface_t</span></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-image-surface-get-height.returns"></a><h4>Returns</h4>
+<p> the height of the surface in pixels.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-image-surface-get-stride"></a><h3>cairo_image_surface_get_stride ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+cairo_image_surface_get_stride (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
+<p>Get the stride of the image surface in bytes</p>
+<div class="refsect3">
+<a name="cairo-image-surface-get-stride.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <span class="type">cairo_image_surface_t</span></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-image-surface-get-stride.returns"></a><h4>Returns</h4>
+<p> the stride of the image surface in bytes (or 0 if
+<em class="parameter"><code>surface</code></em>
+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.</p>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-Image-Surfaces.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="CAIRO-HAS-IMAGE-SURFACE:CAPS"></a><h3>CAIRO_HAS_IMAGE_SURFACE</h3>
+<pre class="programlisting">#define CAIRO_HAS_IMAGE_SURFACE 1
+</pre>
+<p>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.</p>
+<p class="since">Since: 1.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-format-t"></a><h3>enum cairo_format_t</h3>
+<p><a class="link" href="cairo-Image-Surfaces.html#cairo-format-t" title="enum cairo_format_t"><span class="type">cairo_format_t</span></a> is used to identify the memory format of
+image data.</p>
+<p>New entries may be added in future versions.</p>
+<div class="refsect3">
+<a name="cairo-format-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-FORMAT-INVALID:CAPS"></a>CAIRO_FORMAT_INVALID</p></td>
+<td class="enum_member_description">
+<p>no such format exists or is supported.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-FORMAT-ARGB32:CAPS"></a>CAIRO_FORMAT_ARGB32</p></td>
+<td class="enum_member_description">
+<p>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)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-FORMAT-RGB24:CAPS"></a>CAIRO_FORMAT_RGB24</p></td>
+<td class="enum_member_description">
+<p>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)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-FORMAT-A8:CAPS"></a>CAIRO_FORMAT_A8</p></td>
+<td class="enum_member_description">
+<p>each pixel is a 8-bit quantity holding
+ an alpha value. (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-FORMAT-A1:CAPS"></a>CAIRO_FORMAT_A1</p></td>
+<td class="enum_member_description">
+<p>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)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-FORMAT-RGB16-565:CAPS"></a>CAIRO_FORMAT_RGB16_565</p></td>
+<td class="enum_member_description">
+<p>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)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-FORMAT-RGB30:CAPS"></a>CAIRO_FORMAT_RGB30</p></td>
+<td class="enum_member_description">
+<p>like RGB24 but with 10bpc. (Since 1.12)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-Image-Surfaces.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>PDF Surfaces: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="cairo-surfaces.html" title="Surfaces">
+<link rel="prev" href="cairo-Image-Surfaces.html" title="Image Surfaces">
+<link rel="next" href="cairo-PNG-Support.html" title="PNG Support">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+ <a href="#cairo-PDF-Surfaces.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="cairo-surfaces.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="cairo-Image-Surfaces.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="cairo-PNG-Support.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="cairo-PDF-Surfaces"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="cairo-PDF-Surfaces.top_of_page"></a>PDF Surfaces</span></h2>
+<p>PDF Surfaces — Rendering PDF documents</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="cairo-PDF-Surfaces.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-create" title="cairo_pdf_surface_create ()">cairo_pdf_surface_create</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-create-for-stream" title="cairo_pdf_surface_create_for_stream ()">cairo_pdf_surface_create_for_stream</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-restrict-to-version" title="cairo_pdf_surface_restrict_to_version ()">cairo_pdf_surface_restrict_to_version</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-PDF-Surfaces.html#cairo-pdf-get-versions" title="cairo_pdf_get_versions ()">cairo_pdf_get_versions</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">const <span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-PDF-Surfaces.html#cairo-pdf-version-to-string" title="cairo_pdf_version_to_string ()">cairo_pdf_version_to_string</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-set-size" title="cairo_pdf_surface_set_size ()">cairo_pdf_surface_set_size</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-add-outline" title="cairo_pdf_surface_add_outline ()">cairo_pdf_surface_add_outline</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-set-metadata" title="cairo_pdf_surface_set_metadata ()">cairo_pdf_surface_set_metadata</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-set-page-label" title="cairo_pdf_surface_set_page_label ()">cairo_pdf_surface_set_page_label</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-set-thumbnail-size" title="cairo_pdf_surface_set_thumbnail_size ()">cairo_pdf_surface_set_thumbnail_size</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-PDF-Surfaces.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="cairo-PDF-Surfaces.html#CAIRO-HAS-PDF-SURFACE:CAPS" title="CAIRO_HAS_PDF_SURFACE">CAIRO_HAS_PDF_SURFACE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="cairo-PDF-Surfaces.html#CAIRO-PDF-OUTLINE-ROOT:CAPS" title="CAIRO_PDF_OUTLINE_ROOT">CAIRO_PDF_OUTLINE_ROOT</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="cairo-PDF-Surfaces.html#cairo-pdf-outline-flags-t" title="enum cairo_pdf_outline_flags_t">cairo_pdf_outline_flags_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="cairo-PDF-Surfaces.html#cairo-pdf-metadata-t" title="enum cairo_pdf_metadata_t">cairo_pdf_metadata_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="cairo-PDF-Surfaces.html#cairo-pdf-version-t" title="enum cairo_pdf_version_t">cairo_pdf_version_t</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-PDF-Surfaces.description"></a><h2>Description</h2>
+<p>The PDF surface is used to render cairo graphics to Adobe
+PDF files and is a multi-page vector surface backend.</p>
+<p>The following mime types are supported: <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JPEG:CAPS" title="CAIRO_MIME_TYPE_JPEG"><code class="literal">CAIRO_MIME_TYPE_JPEG</code></a>,
+<a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JP2:CAPS" title="CAIRO_MIME_TYPE_JP2"><code class="literal">CAIRO_MIME_TYPE_JP2</code></a>, <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-UNIQUE-ID:CAPS" title="CAIRO_MIME_TYPE_UNIQUE_ID"><code class="literal">CAIRO_MIME_TYPE_UNIQUE_ID</code></a>,
+<a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2:CAPS" title="CAIRO_MIME_TYPE_JBIG2"><code class="literal">CAIRO_MIME_TYPE_JBIG2</code></a>, <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL:CAPS" title="CAIRO_MIME_TYPE_JBIG2_GLOBAL"><code class="literal">CAIRO_MIME_TYPE_JBIG2_GLOBAL</code></a>,
+<a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL-ID:CAPS" title="CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID"><code class="literal">CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID</code></a>,
+<a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX:CAPS" title="CAIRO_MIME_TYPE_CCITT_FAX"><code class="literal">CAIRO_MIME_TYPE_CCITT_FAX</code></a>, <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS" title="CAIRO_MIME_TYPE_CCITT_FAX_PARAMS"><code class="literal">CAIRO_MIME_TYPE_CCITT_FAX_PARAMS</code></a>.</p>
+<div class="refsect2">
+<a name="id-1.5.5.5.4"></a><h3>JBIG2 Images</h3>
+<p>JBIG2 data in PDF must be in the embedded format as described in
+ISO/IEC 11544. Image specific JBIG2 data must be in
+<a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2:CAPS" title="CAIRO_MIME_TYPE_JBIG2"><code class="literal">CAIRO_MIME_TYPE_JBIG2</code></a>. Any global segments in the JBIG2 data
+(segments with page association field set to 0) must be in
+<a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL:CAPS" title="CAIRO_MIME_TYPE_JBIG2_GLOBAL"><code class="literal">CAIRO_MIME_TYPE_JBIG2_GLOBAL</code></a>. The global data may be shared by
+multiple images. All images sharing the same global data must set
+<a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL-ID:CAPS" title="CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID"><code class="literal">CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID</code></a> to a unique identifier. At least
+one of the images must provide the global data using
+<a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL:CAPS" title="CAIRO_MIME_TYPE_JBIG2_GLOBAL"><code class="literal">CAIRO_MIME_TYPE_JBIG2_GLOBAL</code></a>. The global data will only be
+embedded once and shared by all JBIG2 images with the same
+<a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL-ID:CAPS" title="CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID"><code class="literal">CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID</code></a>.</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="ccitt"></a><h3>CCITT Fax Images</h3>
+<p>The <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX:CAPS" title="CAIRO_MIME_TYPE_CCITT_FAX"><code class="literal">CAIRO_MIME_TYPE_CCITT_FAX</code></a> mime data requires a number of decoding
+parameters These parameters are specified using <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS" title="CAIRO_MIME_TYPE_CCITT_FAX_PARAMS"><code class="literal">CAIRO_MIME_TYPE_CCITT_FAX_PARAMS</code></a>.</p>
+<p><a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS" title="CAIRO_MIME_TYPE_CCITT_FAX_PARAMS"><code class="literal">CAIRO_MIME_TYPE_CCITT_FAX_PARAMS</code></a> mime data must contain a string of the form
+"param1=value1 param2=value2 ...".</p>
+<p><em class="parameter"><code>Columns</code></em>
+: [required] An integer specifying the width of the image in pixels.</p>
+<p><em class="parameter"><code>Rows</code></em>
+: [required] An integer specifying the height of the image in scan lines.</p>
+<p><em class="parameter"><code>K</code></em>
+: [optional] An integer identifying the encoding scheme used. &lt; 0
+is 2 dimensional Group 4, = 0 is Group3 1 dimensional, &gt; 0 is mixed 1
+and 2 dimensional encoding. Default is 0.</p>
+<p><em class="parameter"><code>EndOfLine</code></em>
+: [optional] If true end-of-line bit patterns are present. Default is false.</p>
+<p><em class="parameter"><code>EncodedByteAlign</code></em>
+: [optional] If true the end of line is padded
+with 0 bits so the next line begins on a byte boundary. Default is false.</p>
+<p><em class="parameter"><code>EndOfBlock</code></em>
+: [optional] If true the data contains an end-of-block pattern. Default is true.</p>
+<p><em class="parameter"><code>BlackIs1</code></em>
+: [optional] If true 1 bits are black pixels. Default is false.</p>
+<p><em class="parameter"><code>DamagedRowsBeforeError</code></em>
+: [optional] An integer specifying the
+number of damages rows tolerated before an error occurs. Default is 0.</p>
+<p>Boolean values may be "true" or "false", or 1 or 0.</p>
+<p>These parameters are the same as the CCITTFaxDecode parameters in the
+<a class="ulink" href="https://www.adobe.com/products/postscript/pdfs/PLRM.pdf" target="_top">PostScript Language Reference</a>
+and <a class="ulink" href="https://www.adobe.com/content/dam/Adobe/en/devnet/pdf/pdfs/PDF32000_2008.pdf" target="_top">Portable Document Format (PDF)</a>.
+Refer to these documents for further details.</p>
+<p>An example <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS" title="CAIRO_MIME_TYPE_CCITT_FAX_PARAMS"><code class="literal">CAIRO_MIME_TYPE_CCITT_FAX_PARAMS</code></a> string is:</p>
+<pre class="programlisting">
+"Columns=10230 Rows=40000 K=1 EndOfLine=true EncodedByteAlign=1 BlackIs1=false"
+</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-PDF-Surfaces.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="cairo-pdf-surface-create"></a><h3>cairo_pdf_surface_create ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+cairo_pdf_surface_create (<em class="parameter"><code>const <span class="type">char</span> *filename</code></em>,
+ <em class="parameter"><code><span class="type">double</span> width_in_points</code></em>,
+ <em class="parameter"><code><span class="type">double</span> height_in_points</code></em>);</pre>
+<p>Creates a PDF surface of the specified size in points to be written
+to <em class="parameter"><code>filename</code></em>
+.</p>
+<div class="refsect3">
+<a name="cairo-pdf-surface-create.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>filename</p></td>
+<td class="parameter_description"><p>a filename for the PDF output (must be writable), <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> 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.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>width_in_points</p></td>
+<td class="parameter_description"><p>width of the surface, in points (1 point == 1/72.0 inch)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>height_in_points</p></td>
+<td class="parameter_description"><p>height of the surface, in points (1 point == 1/72.0 inch)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-pdf-surface-create.returns"></a><h4>Returns</h4>
+<p> a pointer to the newly created surface. The caller
+owns the surface and should call <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-destroy" title="cairo_surface_destroy ()"><code class="function">cairo_surface_destroy()</code></a> when done
+with it.</p>
+<p>This function always returns a valid pointer, but it will return a
+pointer to a "nil" surface if an error such as out of memory
+occurs. You can use <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-status" title="cairo_surface_status ()"><code class="function">cairo_surface_status()</code></a> to check for this.</p>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-pdf-surface-create-for-stream"></a><h3>cairo_pdf_surface_create_for_stream ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+cairo_pdf_surface_create_for_stream (<em class="parameter"><code><a class="link" href="cairo-PNG-Support.html#cairo-write-func-t" title="cairo_write_func_t ()"><span class="type">cairo_write_func_t</span></a> write_func</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *closure</code></em>,
+ <em class="parameter"><code><span class="type">double</span> width_in_points</code></em>,
+ <em class="parameter"><code><span class="type">double</span> height_in_points</code></em>);</pre>
+<p>Creates a PDF surface of the specified size in points to be written
+incrementally to the stream represented by <em class="parameter"><code>write_func</code></em>
+ and <em class="parameter"><code>closure</code></em>
+.</p>
+<div class="refsect3">
+<a name="cairo-pdf-surface-create-for-stream.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>write_func</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-PNG-Support.html#cairo-write-func-t" title="cairo_write_func_t ()"><span class="type">cairo_write_func_t</span></a> to accept the output data, may be <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+to indicate a no-op <em class="parameter"><code>write_func</code></em>
+. With a no-op <em class="parameter"><code>write_func</code></em>
+,
+the surface may be queried or used as a source without
+generating any temporary files.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>closure</p></td>
+<td class="parameter_description"><p>the closure argument for <em class="parameter"><code>write_func</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>width_in_points</p></td>
+<td class="parameter_description"><p>width of the surface, in points (1 point == 1/72.0 inch)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>height_in_points</p></td>
+<td class="parameter_description"><p>height of the surface, in points (1 point == 1/72.0 inch)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-pdf-surface-create-for-stream.returns"></a><h4>Returns</h4>
+<p> a pointer to the newly created surface. The caller
+owns the surface and should call <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-destroy" title="cairo_surface_destroy ()"><code class="function">cairo_surface_destroy()</code></a> when done
+with it.</p>
+<p>This function always returns a valid pointer, but it will return a
+pointer to a "nil" surface if an error such as out of memory
+occurs. You can use <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-status" title="cairo_surface_status ()"><code class="function">cairo_surface_status()</code></a> to check for this.</p>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-pdf-surface-restrict-to-version"></a><h3>cairo_pdf_surface_restrict_to_version ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_pdf_surface_restrict_to_version (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-PDF-Surfaces.html#cairo-pdf-version-t" title="enum cairo_pdf_version_t"><span class="type">cairo_pdf_version_t</span></a> version</code></em>);</pre>
+<p>Restricts the generated PDF file to <em class="parameter"><code>version</code></em>
+. See <a class="link" href="cairo-PDF-Surfaces.html#cairo-pdf-get-versions" title="cairo_pdf_get_versions ()"><code class="function">cairo_pdf_get_versions()</code></a>
+for a list of available version values that can be used here.</p>
+<p>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.</p>
+<div class="refsect3">
+<a name="cairo-pdf-surface-restrict-to-version.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a PDF <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>version</p></td>
+<td class="parameter_description"><p>PDF version</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-pdf-get-versions"></a><h3>cairo_pdf_get_versions ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_pdf_get_versions (<em class="parameter"><code><a class="link" href="cairo-PDF-Surfaces.html#cairo-pdf-version-t" title="enum cairo_pdf_version_t"><span class="type">cairo_pdf_version_t</span></a> const **versions</code></em>,
+ <em class="parameter"><code><span class="type">int</span> *num_versions</code></em>);</pre>
+<p>Used to retrieve the list of supported versions. See
+<a class="link" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-restrict-to-version" title="cairo_pdf_surface_restrict_to_version ()"><code class="function">cairo_pdf_surface_restrict_to_version()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-pdf-get-versions.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>versions</p></td>
+<td class="parameter_description"><p>supported version list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>num_versions</p></td>
+<td class="parameter_description"><p>list length</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-pdf-version-to-string"></a><h3>cairo_pdf_version_to_string ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> *
+cairo_pdf_version_to_string (<em class="parameter"><code><a class="link" href="cairo-PDF-Surfaces.html#cairo-pdf-version-t" title="enum cairo_pdf_version_t"><span class="type">cairo_pdf_version_t</span></a> version</code></em>);</pre>
+<p>Get the string representation of the given <em class="parameter"><code>version</code></em>
+ id. This function
+will return <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>version</code></em>
+ isn't valid. See <a class="link" href="cairo-PDF-Surfaces.html#cairo-pdf-get-versions" title="cairo_pdf_get_versions ()"><code class="function">cairo_pdf_get_versions()</code></a>
+for a way to get the list of valid version ids.</p>
+<div class="refsect3">
+<a name="cairo-pdf-version-to-string.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>version</p></td>
+<td class="parameter_description"><p>a version id</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-pdf-version-to-string.returns"></a><h4>Returns</h4>
+<p> the string associated to given version.</p>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-pdf-surface-set-size"></a><h3>cairo_pdf_surface_set_size ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_pdf_surface_set_size (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
+ <em class="parameter"><code><span class="type">double</span> width_in_points</code></em>,
+ <em class="parameter"><code><span class="type">double</span> height_in_points</code></em>);</pre>
+<p>Changes the size of a PDF surface for the current (and
+subsequent) pages.</p>
+<p>This function should only be called before any drawing operations
+have been performed on the current page. The simplest way to do
+this is to call this function immediately after creating the
+surface or immediately after completing a page with either
+<a class="link" href="cairo-cairo-t.html#cairo-show-page" title="cairo_show_page ()"><code class="function">cairo_show_page()</code></a> or <a class="link" href="cairo-cairo-t.html#cairo-copy-page" title="cairo_copy_page ()"><code class="function">cairo_copy_page()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-pdf-surface-set-size.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a PDF <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>width_in_points</p></td>
+<td class="parameter_description"><p>new surface width, in points (1 point == 1/72.0 inch)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>height_in_points</p></td>
+<td class="parameter_description"><p>new surface height, in points (1 point == 1/72.0 inch)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-pdf-surface-add-outline"></a><h3>cairo_pdf_surface_add_outline ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+cairo_pdf_surface_add_outline (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
+ <em class="parameter"><code><span class="type">int</span> parent_id</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *utf8</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *link_attribs</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-PDF-Surfaces.html#cairo-pdf-outline-flags-t" title="enum cairo_pdf_outline_flags_t"><span class="type">cairo_pdf_outline_flags_t</span></a> flags</code></em>);</pre>
+<p>Add an item to the document outline hierarchy with the name <em class="parameter"><code>utf8</code></em>
+
+that links to the location specified by <em class="parameter"><code>link_attribs</code></em>
+. Link
+attributes have the same keys and values as the <a class="link" href="cairo-Tags-and-Links.html#link" title="Link Tags">Link Tag</a>,
+excluding the "rect" attribute. The item will be a child of the
+item with id <em class="parameter"><code>parent_id</code></em>
+. Use <a class="link" href="cairo-PDF-Surfaces.html#CAIRO-PDF-OUTLINE-ROOT:CAPS" title="CAIRO_PDF_OUTLINE_ROOT"><code class="literal">CAIRO_PDF_OUTLINE_ROOT</code></a> as the parent
+id of top level items.</p>
+<div class="refsect3">
+<a name="cairo-pdf-surface-add-outline.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a PDF <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>parent_id</p></td>
+<td class="parameter_description"><p>the id of the parent item or <a class="link" href="cairo-PDF-Surfaces.html#CAIRO-PDF-OUTLINE-ROOT:CAPS" title="CAIRO_PDF_OUTLINE_ROOT"><code class="literal">CAIRO_PDF_OUTLINE_ROOT</code></a> if this is a top level item.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>utf8</p></td>
+<td class="parameter_description"><p>the name of the outline</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>link_attribs</p></td>
+<td class="parameter_description"><p>the link attributes specifying where this outline links to</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>outline item flags</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-pdf-surface-add-outline.returns"></a><h4>Returns</h4>
+<p> the id for the added item.</p>
+</div>
+<p class="since">Since: 1.16</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-pdf-surface-set-metadata"></a><h3>cairo_pdf_surface_set_metadata ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_pdf_surface_set_metadata (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-PDF-Surfaces.html#cairo-pdf-metadata-t" title="enum cairo_pdf_metadata_t"><span class="type">cairo_pdf_metadata_t</span></a> metadata</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *utf8</code></em>);</pre>
+<p>Set document metadata. The <a class="link" href="cairo-PDF-Surfaces.html#CAIRO-PDF-METADATA-CREATE-DATE:CAPS"><code class="literal">CAIRO_PDF_METADATA_CREATE_DATE</code></a> and
+<a class="link" href="cairo-PDF-Surfaces.html#CAIRO-PDF-METADATA-MOD-DATE:CAPS"><code class="literal">CAIRO_PDF_METADATA_MOD_DATE</code></a> 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.</p>
+<p>For example:</p>
+<div class="informalexample">
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+ <tbody>
+ <tr>
+ <td class="listing_lines" align="right"><pre>1
+2</pre></td>
+ <td class="listing_code"><pre class="programlisting"><span class="function"><a href="cairo-PDF-Surfaces.html#cairo-pdf-surface-set-metadata">cairo_pdf_surface_set_metadata</a></span> <span class="gtkdoc opt">(</span>surface<span class="gtkdoc opt">,</span> CAIRO_PDF_METADATA_TITLE<span class="gtkdoc opt">,</span> <span class="string">&quot;My Document&quot;</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-PDF-Surfaces.html#cairo-pdf-surface-set-metadata">cairo_pdf_surface_set_metadata</a></span> <span class="gtkdoc opt">(</span>surface<span class="gtkdoc opt">,</span> CAIRO_PDF_METADATA_CREATE_DATE<span class="gtkdoc opt">,</span> <span class="string">&quot;2015-12-31T23:59+02:00&quot;</span><span class="gtkdoc opt">);</span></pre></td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+
+<div class="refsect3">
+<a name="cairo-pdf-surface-set-metadata.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a PDF <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>metadata</p></td>
+<td class="parameter_description"><p>The metadata item to set.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>utf8</p></td>
+<td class="parameter_description"><p>metadata value</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.16</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-pdf-surface-set-page-label"></a><h3>cairo_pdf_surface_set_page_label ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_pdf_surface_set_page_label (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *utf8</code></em>);</pre>
+<p>Set page label for the current page.</p>
+<div class="refsect3">
+<a name="cairo-pdf-surface-set-page-label.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a PDF <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>utf8</p></td>
+<td class="parameter_description"><p>The page label.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.16</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-pdf-surface-set-thumbnail-size"></a><h3>cairo_pdf_surface_set_thumbnail_size ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_pdf_surface_set_thumbnail_size (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
+ <em class="parameter"><code><span class="type">int</span> width</code></em>,
+ <em class="parameter"><code><span class="type">int</span> height</code></em>);</pre>
+<p>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.</p>
+<div class="refsect3">
+<a name="cairo-pdf-surface-set-thumbnail-size.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a PDF <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>width</p></td>
+<td class="parameter_description"><p>Thumbnail width.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>height</p></td>
+<td class="parameter_description"><p>Thumbnail height</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.16</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-PDF-Surfaces.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="CAIRO-HAS-PDF-SURFACE:CAPS"></a><h3>CAIRO_HAS_PDF_SURFACE</h3>
+<pre class="programlisting">#define CAIRO_HAS_PDF_SURFACE 1
+</pre>
+<p>Defined if the PDF surface backend is available.
+This macro can be used to conditionally compile backend-specific code.</p>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="CAIRO-PDF-OUTLINE-ROOT:CAPS"></a><h3>CAIRO_PDF_OUTLINE_ROOT</h3>
+<pre class="programlisting">#define CAIRO_PDF_OUTLINE_ROOT 0
+</pre>
+<p>The root outline item in <a class="link" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-add-outline" title="cairo_pdf_surface_add_outline ()"><code class="function">cairo_pdf_surface_add_outline()</code></a>.</p>
+<p class="since">Since: 1.16</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-pdf-outline-flags-t"></a><h3>enum cairo_pdf_outline_flags_t</h3>
+<p><a class="link" href="cairo-PDF-Surfaces.html#cairo-pdf-outline-flags-t" title="enum cairo_pdf_outline_flags_t"><span class="type">cairo_pdf_outline_flags_t</span></a> is used by the
+<a class="link" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-add-outline" title="cairo_pdf_surface_add_outline ()"><code class="function">cairo_pdf_surface_add_outline()</code></a> function specify the attributes of
+an outline item. These flags may be bitwise-or'd to produce any
+combination of flags.</p>
+<div class="refsect3">
+<a name="cairo-pdf-outline-flags-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-PDF-OUTLINE-FLAG-OPEN:CAPS"></a>CAIRO_PDF_OUTLINE_FLAG_OPEN</p></td>
+<td class="enum_member_description">
+<p>The outline item defaults to open in the PDF viewer (Since 1.16)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-PDF-OUTLINE-FLAG-BOLD:CAPS"></a>CAIRO_PDF_OUTLINE_FLAG_BOLD</p></td>
+<td class="enum_member_description">
+<p>The outline item is displayed by the viewer in bold text (Since 1.16)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-PDF-OUTLINE-FLAG-ITALIC:CAPS"></a>CAIRO_PDF_OUTLINE_FLAG_ITALIC</p></td>
+<td class="enum_member_description">
+<p>The outline item is displayed by the viewer in italic text (Since 1.16)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.16</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-pdf-metadata-t"></a><h3>enum cairo_pdf_metadata_t</h3>
+<p><a class="link" href="cairo-PDF-Surfaces.html#cairo-pdf-metadata-t" title="enum cairo_pdf_metadata_t"><span class="type">cairo_pdf_metadata_t</span></a> is used by the
+<a class="link" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-set-metadata" title="cairo_pdf_surface_set_metadata ()"><code class="function">cairo_pdf_surface_set_metadata()</code></a> function specify the metadata to set.</p>
+<div class="refsect3">
+<a name="cairo-pdf-metadata-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-PDF-METADATA-TITLE:CAPS"></a>CAIRO_PDF_METADATA_TITLE</p></td>
+<td class="enum_member_description">
+<p>The document title (Since 1.16)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-PDF-METADATA-AUTHOR:CAPS"></a>CAIRO_PDF_METADATA_AUTHOR</p></td>
+<td class="enum_member_description">
+<p>The document author (Since 1.16)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-PDF-METADATA-SUBJECT:CAPS"></a>CAIRO_PDF_METADATA_SUBJECT</p></td>
+<td class="enum_member_description">
+<p>The document subject (Since 1.16)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-PDF-METADATA-KEYWORDS:CAPS"></a>CAIRO_PDF_METADATA_KEYWORDS</p></td>
+<td class="enum_member_description">
+<p>The document keywords (Since 1.16)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-PDF-METADATA-CREATOR:CAPS"></a>CAIRO_PDF_METADATA_CREATOR</p></td>
+<td class="enum_member_description">
+<p>The document creator (Since 1.16)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-PDF-METADATA-CREATE-DATE:CAPS"></a>CAIRO_PDF_METADATA_CREATE_DATE</p></td>
+<td class="enum_member_description">
+<p>The document creation date (Since 1.16)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-PDF-METADATA-MOD-DATE:CAPS"></a>CAIRO_PDF_METADATA_MOD_DATE</p></td>
+<td class="enum_member_description">
+<p>The document modification date (Since 1.16)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.16</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-pdf-version-t"></a><h3>enum cairo_pdf_version_t</h3>
+<p><a class="link" href="cairo-PDF-Surfaces.html#cairo-pdf-version-t" title="enum cairo_pdf_version_t"><span class="type">cairo_pdf_version_t</span></a> is used to describe the version number of the PDF
+specification that a generated PDF file will conform to.</p>
+<div class="refsect3">
+<a name="cairo-pdf-version-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-PDF-VERSION-1-4:CAPS"></a>CAIRO_PDF_VERSION_1_4</p></td>
+<td class="enum_member_description">
+<p>The version 1.4 of the PDF specification. (Since 1.10)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-PDF-VERSION-1-5:CAPS"></a>CAIRO_PDF_VERSION_1_5</p></td>
+<td class="enum_member_description">
+<p>The version 1.5 of the PDF specification. (Since 1.10)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-PDF-Surfaces.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>PNG Support: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="cairo-surfaces.html" title="Surfaces">
+<link rel="prev" href="cairo-PDF-Surfaces.html" title="PDF Surfaces">
+<link rel="next" href="cairo-PostScript-Surfaces.html" title="PostScript Surfaces">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+ <a href="#cairo-PNG-Support.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="cairo-surfaces.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="cairo-PDF-Surfaces.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="cairo-PostScript-Surfaces.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="cairo-PNG-Support"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="cairo-PNG-Support.top_of_page"></a>PNG Support</span></h2>
+<p>PNG Support — Reading and writing PNG images</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="cairo-PNG-Support.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-PNG-Support.html#cairo-image-surface-create-from-png" title="cairo_image_surface_create_from_png ()">cairo_image_surface_create_from_png</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="cairo-PNG-Support.html#cairo-read-func-t" title="cairo_read_func_t ()">*cairo_read_func_t</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-PNG-Support.html#cairo-image-surface-create-from-png-stream" title="cairo_image_surface_create_from_png_stream ()">cairo_image_surface_create_from_png_stream</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-PNG-Support.html#cairo-surface-write-to-png" title="cairo_surface_write_to_png ()">cairo_surface_write_to_png</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="cairo-PNG-Support.html#cairo-write-func-t" title="cairo_write_func_t ()">*cairo_write_func_t</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-PNG-Support.html#cairo-surface-write-to-png-stream" title="cairo_surface_write_to_png_stream ()">cairo_surface_write_to_png_stream</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-PNG-Support.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="cairo-PNG-Support.html#CAIRO-HAS-PNG-FUNCTIONS:CAPS" title="CAIRO_HAS_PNG_FUNCTIONS">CAIRO_HAS_PNG_FUNCTIONS</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-PNG-Support.description"></a><h2>Description</h2>
+<p>The PNG functions allow reading PNG images into image surfaces, and writing
+any surface to a PNG file.</p>
+<p>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
+<a class="link" href="cairo-Image-Surfaces.html#cairo-image-surface-get-data" title="cairo_image_surface_get_data ()"><code class="function">cairo_image_surface_get_data()</code></a> or a backend-specific access
+function, and process it with another library, e.g. gdk-pixbuf or
+libpng.</p>
+</div>
+<div class="refsect1">
+<a name="cairo-PNG-Support.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="cairo-image-surface-create-from-png"></a><h3>cairo_image_surface_create_from_png ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+cairo_image_surface_create_from_png (<em class="parameter"><code>const <span class="type">char</span> *filename</code></em>);</pre>
+<p>Creates a new image surface and initializes the contents to the
+given PNG file.</p>
+<div class="refsect3">
+<a name="cairo-image-surface-create-from-png.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>filename</p></td>
+<td class="parameter_description"><p>name of PNG file to load. On Windows this filename
+is encoded in UTF-8.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-image-surface-create-from-png.returns"></a><h4>Returns</h4>
+<p> a new <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> 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:</p>
+<p><a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a>
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-FILE-NOT-FOUND:CAPS"><code class="literal">CAIRO_STATUS_FILE_NOT_FOUND</code></a>
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-READ-ERROR:CAPS"><code class="literal">CAIRO_STATUS_READ_ERROR</code></a>
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-PNG-ERROR:CAPS"><code class="literal">CAIRO_STATUS_PNG_ERROR</code></a></p>
+<p>Alternatively, you can allow errors to propagate through the drawing
+operations and check the status on the context upon completion
+using <a class="link" href="cairo-cairo-t.html#cairo-status" title="cairo_status ()"><code class="function">cairo_status()</code></a>.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-read-func-t"></a><h3>cairo_read_func_t ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+<span class="c_punctuation">(</span>*cairo_read_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">void</span> *closure</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">char</span> *data</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> length</code></em>);</pre>
+<p><a class="link" href="cairo-PNG-Support.html#cairo-read-func-t" title="cairo_read_func_t ()"><span class="type">cairo_read_func_t</span></a> is the type of function which is called when a
+backend needs to read data from an 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
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> if all the data was successfully read,
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-READ-ERROR:CAPS"><code class="literal">CAIRO_STATUS_READ_ERROR</code></a> otherwise.</p>
+<div class="refsect3">
+<a name="cairo-read-func-t.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>closure</p></td>
+<td class="parameter_description"><p>the input closure</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>the buffer into which to read the data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>length</p></td>
+<td class="parameter_description"><p>the amount of data to read</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-read-func-t.returns"></a><h4>Returns</h4>
+<p> the status code of the read operation</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-image-surface-create-from-png-stream"></a><h3>cairo_image_surface_create_from_png_stream ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+cairo_image_surface_create_from_png_stream
+ (<em class="parameter"><code><a class="link" href="cairo-PNG-Support.html#cairo-read-func-t" title="cairo_read_func_t ()"><span class="type">cairo_read_func_t</span></a> read_func</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *closure</code></em>);</pre>
+<p>Creates a new image surface from PNG data read incrementally
+via the <em class="parameter"><code>read_func</code></em>
+ function.</p>
+<div class="refsect3">
+<a name="cairo-image-surface-create-from-png-stream.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>read_func</p></td>
+<td class="parameter_description"><p>function called to read the data of the file</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>closure</p></td>
+<td class="parameter_description"><p>data to pass to <em class="parameter"><code>read_func</code></em>
+.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-image-surface-create-from-png-stream.returns"></a><h4>Returns</h4>
+<p> a new <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> 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:</p>
+<p><a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a>
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-READ-ERROR:CAPS"><code class="literal">CAIRO_STATUS_READ_ERROR</code></a>
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-PNG-ERROR:CAPS"><code class="literal">CAIRO_STATUS_PNG_ERROR</code></a></p>
+<p>Alternatively, you can allow errors to propagate through the drawing
+operations and check the status on the context upon completion
+using <a class="link" href="cairo-cairo-t.html#cairo-status" title="cairo_status ()"><code class="function">cairo_status()</code></a>.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-surface-write-to-png"></a><h3>cairo_surface_write_to_png ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+cairo_surface_write_to_png (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *filename</code></em>);</pre>
+<p>Writes the contents of <em class="parameter"><code>surface</code></em>
+ to a new file <em class="parameter"><code>filename</code></em>
+ as a PNG
+image.</p>
+<div class="refsect3">
+<a name="cairo-surface-write-to-png.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> with pixel contents</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>filename</p></td>
+<td class="parameter_description"><p>the name of a file to write to; on Windows this filename
+is encoded in UTF-8.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-surface-write-to-png.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> if the PNG file was written
+successfully. Otherwise, <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a> if memory could not
+be allocated for the operation or
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SURFACE-TYPE-MISMATCH:CAPS"><code class="literal">CAIRO_STATUS_SURFACE_TYPE_MISMATCH</code></a> if the surface does not have
+pixel contents, or <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-WRITE-ERROR:CAPS"><code class="literal">CAIRO_STATUS_WRITE_ERROR</code></a> if an I/O error occurs
+while attempting to write the file, or <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-PNG-ERROR:CAPS"><code class="literal">CAIRO_STATUS_PNG_ERROR</code></a> if libpng
+returned an error.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-write-func-t"></a><h3>cairo_write_func_t ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+<span class="c_punctuation">(</span>*cairo_write_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">void</span> *closure</code></em>,
+ <em class="parameter"><code>const unsigned <span class="type">char</span> *data</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> length</code></em>);</pre>
+<p><a class="link" href="cairo-PNG-Support.html#cairo-write-func-t" title="cairo_write_func_t ()"><span class="type">cairo_write_func_t</span></a> 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
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> if all the data was successfully written,
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-WRITE-ERROR:CAPS"><code class="literal">CAIRO_STATUS_WRITE_ERROR</code></a> otherwise.</p>
+<div class="refsect3">
+<a name="cairo-write-func-t.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>closure</p></td>
+<td class="parameter_description"><p>the output closure</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>the buffer containing the data to write</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>length</p></td>
+<td class="parameter_description"><p>the amount of data to write</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-write-func-t.returns"></a><h4>Returns</h4>
+<p> the status code of the write operation</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-surface-write-to-png-stream"></a><h3>cairo_surface_write_to_png_stream ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+cairo_surface_write_to_png_stream (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-PNG-Support.html#cairo-write-func-t" title="cairo_write_func_t ()"><span class="type">cairo_write_func_t</span></a> write_func</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *closure</code></em>);</pre>
+<p>Writes the image surface to the write function.</p>
+<div class="refsect3">
+<a name="cairo-surface-write-to-png-stream.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> with pixel contents</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>write_func</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-PNG-Support.html#cairo-write-func-t" title="cairo_write_func_t ()"><span class="type">cairo_write_func_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>closure</p></td>
+<td class="parameter_description"><p>closure data for the write function</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-surface-write-to-png-stream.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> if the PNG file was written
+successfully. Otherwise, <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a> is returned if
+memory could not be allocated for the operation,
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SURFACE-TYPE-MISMATCH:CAPS"><code class="literal">CAIRO_STATUS_SURFACE_TYPE_MISMATCH</code></a> if the surface does not have
+pixel contents, or <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-PNG-ERROR:CAPS"><code class="literal">CAIRO_STATUS_PNG_ERROR</code></a> if libpng
+returned an error.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-PNG-Support.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="CAIRO-HAS-PNG-FUNCTIONS:CAPS"></a><h3>CAIRO_HAS_PNG_FUNCTIONS</h3>
+<pre class="programlisting">#define CAIRO_HAS_PNG_FUNCTIONS 1
+</pre>
+<p>Defined if the PNG functions are available.
+This macro can be used to conditionally compile code using the cairo
+PNG functions.</p>
+<p class="since">Since: 1.0</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-PNG-Support.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Paths: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="cairo-drawing.html" title="Drawing">
+<link rel="prev" href="cairo-cairo-t.html" title="cairo_t">
+<link rel="next" href="cairo-cairo-pattern-t.html" title="cairo_pattern_t">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+ <a href="#cairo-Paths.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="cairo-drawing.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="cairo-cairo-t.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="cairo-cairo-pattern-t.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="cairo-Paths"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="cairo-Paths.top_of_page"></a>Paths</span></h2>
+<p>Paths — Creating paths and manipulating path data</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="cairo-Paths.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Paths.html#cairo-path-t" title="cairo_path_t"><span class="returnvalue">cairo_path_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Paths.html#cairo-copy-path" title="cairo_copy_path ()">cairo_copy_path</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Paths.html#cairo-path-t" title="cairo_path_t"><span class="returnvalue">cairo_path_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Paths.html#cairo-copy-path-flat" title="cairo_copy_path_flat ()">cairo_copy_path_flat</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Paths.html#cairo-path-destroy" title="cairo_path_destroy ()">cairo_path_destroy</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Paths.html#cairo-append-path" title="cairo_append_path ()">cairo_append_path</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Types.html#cairo-bool-t" title="cairo_bool_t"><span class="returnvalue">cairo_bool_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Paths.html#cairo-has-current-point" title="cairo_has_current_point ()">cairo_has_current_point</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Paths.html#cairo-get-current-point" title="cairo_get_current_point ()">cairo_get_current_point</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Paths.html#cairo-new-path" title="cairo_new_path ()">cairo_new_path</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Paths.html#cairo-new-sub-path" title="cairo_new_sub_path ()">cairo_new_sub_path</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Paths.html#cairo-close-path" title="cairo_close_path ()">cairo_close_path</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Paths.html#cairo-arc" title="cairo_arc ()">cairo_arc</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Paths.html#cairo-arc-negative" title="cairo_arc_negative ()">cairo_arc_negative</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Paths.html#cairo-curve-to" title="cairo_curve_to ()">cairo_curve_to</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Paths.html#cairo-line-to" title="cairo_line_to ()">cairo_line_to</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Paths.html#cairo-move-to" title="cairo_move_to ()">cairo_move_to</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Paths.html#cairo-rectangle" title="cairo_rectangle ()">cairo_rectangle</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Paths.html#cairo-glyph-path" title="cairo_glyph_path ()">cairo_glyph_path</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Paths.html#cairo-text-path" title="cairo_text_path ()">cairo_text_path</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Paths.html#cairo-rel-curve-to" title="cairo_rel_curve_to ()">cairo_rel_curve_to</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Paths.html#cairo-rel-line-to" title="cairo_rel_line_to ()">cairo_rel_line_to</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Paths.html#cairo-rel-move-to" title="cairo_rel_move_to ()">cairo_rel_move_to</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Paths.html#cairo-path-extents" title="cairo_path_extents ()">cairo_path_extents</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-Paths.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="cairo-Paths.html#cairo-path-t" title="cairo_path_t">cairo_path_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">union</td>
+<td class="function_name"><a class="link" href="cairo-Paths.html#cairo-path-data-t" title="union cairo_path_data_t">cairo_path_data_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="cairo-Paths.html#cairo-path-data-type-t" title="enum cairo_path_data_type_t">cairo_path_data_type_t</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-Paths.description"></a><h2>Description</h2>
+<p>Paths are the most basic drawing tools and are primarily used to implicitly
+generate simple masks.</p>
+</div>
+<div class="refsect1">
+<a name="cairo-Paths.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="cairo-copy-path"></a><h3>cairo_copy_path ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Paths.html#cairo-path-t" title="cairo_path_t"><span class="returnvalue">cairo_path_t</span></a> *
+cairo_copy_path (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>Creates a copy of the current path and returns it to the user as a
+<a class="link" href="cairo-Paths.html#cairo-path-t" title="cairo_path_t"><span class="type">cairo_path_t</span></a>. See <a class="link" href="cairo-Paths.html#cairo-path-data-t" title="union cairo_path_data_t"><span class="type">cairo_path_data_t</span></a> for hints on how to iterate
+over the returned data structure.</p>
+<p>This function will always return a valid pointer, but the result
+will have no data (<code class="literal">data==<a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></code> and
+<code class="literal">num_data==0</code>), if either of the following
+conditions hold:</p>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem">If there is insufficient memory to copy the path. In this
+ case <code class="literal">path-&gt;status</code> will be set to
+ <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a>.</li>
+<li class="listitem">If <em class="parameter"><code>cr</code></em> is already in an error state. In this case
+ <code class="literal">path-&gt;status</code> will contain the same status that
+ would be returned by <a class="link" href="cairo-cairo-t.html#cairo-status" title="cairo_status ()"><code class="function">cairo_status()</code></a>.</li>
+</ol></div>
+<div class="refsect3">
+<a name="cairo-copy-path.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-copy-path.returns"></a><h4>Returns</h4>
+<p> the copy of the current path. The caller owns the
+returned object and should call <a class="link" href="cairo-Paths.html#cairo-path-destroy" title="cairo_path_destroy ()"><code class="function">cairo_path_destroy()</code></a> when finished
+with it.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-copy-path-flat"></a><h3>cairo_copy_path_flat ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Paths.html#cairo-path-t" title="cairo_path_t"><span class="returnvalue">cairo_path_t</span></a> *
+cairo_copy_path_flat (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>Gets a flattened copy of the current path and returns it to the
+user as a <a class="link" href="cairo-Paths.html#cairo-path-t" title="cairo_path_t"><span class="type">cairo_path_t</span></a>. See <a class="link" href="cairo-Paths.html#cairo-path-data-t" title="union cairo_path_data_t"><span class="type">cairo_path_data_t</span></a> for hints on
+how to iterate over the returned data structure.</p>
+<p>This function is like <a class="link" href="cairo-Paths.html#cairo-copy-path" title="cairo_copy_path ()"><code class="function">cairo_copy_path()</code></a> 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 <a class="link" href="cairo-Paths.html#CAIRO-PATH-CURVE-TO:CAPS"><code class="literal">CAIRO_PATH_CURVE_TO</code></a> which will instead be replaced by a
+series of <a class="link" href="cairo-Paths.html#CAIRO-PATH-LINE-TO:CAPS"><code class="literal">CAIRO_PATH_LINE_TO</code></a> elements.</p>
+<p>This function will always return a valid pointer, but the result
+will have no data (<code class="literal">data==<a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></code> and
+<code class="literal">num_data==0</code>), if either of the following
+conditions hold:</p>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem">If there is insufficient memory to copy the path. In this
+ case <code class="literal">path-&gt;status</code> will be set to
+ <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a>.</li>
+<li class="listitem">If <em class="parameter"><code>cr</code></em> is already in an error state. In this case
+ <code class="literal">path-&gt;status</code> will contain the same status that
+ would be returned by <a class="link" href="cairo-cairo-t.html#cairo-status" title="cairo_status ()"><code class="function">cairo_status()</code></a>.</li>
+</ol></div>
+<div class="refsect3">
+<a name="cairo-copy-path-flat.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-copy-path-flat.returns"></a><h4>Returns</h4>
+<p> the copy of the current path. The caller owns the
+returned object and should call <a class="link" href="cairo-Paths.html#cairo-path-destroy" title="cairo_path_destroy ()"><code class="function">cairo_path_destroy()</code></a> when finished
+with it.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-path-destroy"></a><h3>cairo_path_destroy ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_path_destroy (<em class="parameter"><code><a class="link" href="cairo-Paths.html#cairo-path-t" title="cairo_path_t"><span class="type">cairo_path_t</span></a> *path</code></em>);</pre>
+<p>Immediately releases all memory associated with <em class="parameter"><code>path</code></em>
+. After a call
+to <a class="link" href="cairo-Paths.html#cairo-path-destroy" title="cairo_path_destroy ()"><code class="function">cairo_path_destroy()</code></a> the <em class="parameter"><code>path</code></em>
+ pointer is no longer valid and
+should not be used further.</p>
+<p>Note: <a class="link" href="cairo-Paths.html#cairo-path-destroy" title="cairo_path_destroy ()"><code class="function">cairo_path_destroy()</code></a> should only be called with a
+pointer to a <a class="link" href="cairo-Paths.html#cairo-path-t" title="cairo_path_t"><span class="type">cairo_path_t</span></a> returned by a cairo function. Any path
+that is created manually (ie. outside of cairo) should be destroyed
+manually as well.</p>
+<div class="refsect3">
+<a name="cairo-path-destroy.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>path</p></td>
+<td class="parameter_description"><p>a path previously returned by either <a class="link" href="cairo-Paths.html#cairo-copy-path" title="cairo_copy_path ()"><code class="function">cairo_copy_path()</code></a> or
+<a class="link" href="cairo-Paths.html#cairo-copy-path-flat" title="cairo_copy_path_flat ()"><code class="function">cairo_copy_path_flat()</code></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-append-path"></a><h3>cairo_append_path ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_append_path (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-Paths.html#cairo-path-t" title="cairo_path_t"><span class="type">cairo_path_t</span></a> *path</code></em>);</pre>
+<p>Append the <em class="parameter"><code>path</code></em>
+ onto the current path. The <em class="parameter"><code>path</code></em>
+ may be either the
+return value from one of <a class="link" href="cairo-Paths.html#cairo-copy-path" title="cairo_copy_path ()"><code class="function">cairo_copy_path()</code></a> or
+<a class="link" href="cairo-Paths.html#cairo-copy-path-flat" title="cairo_copy_path_flat ()"><code class="function">cairo_copy_path_flat()</code></a> or it may be constructed manually. See
+<a class="link" href="cairo-Paths.html#cairo-path-t" title="cairo_path_t"><span class="type">cairo_path_t</span></a> for details on how the path data structure should be
+initialized, and note that <code class="literal">path-&gt;status</code> must be
+initialized to <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-append-path.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>path</p></td>
+<td class="parameter_description"><p>path to be appended</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-has-current-point"></a><h3>cairo_has_current_point ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Types.html#cairo-bool-t" title="cairo_bool_t"><span class="returnvalue">cairo_bool_t</span></a>
+cairo_has_current_point (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>Returns whether a current point is defined on the current path.
+See <a class="link" href="cairo-Paths.html#cairo-get-current-point" title="cairo_get_current_point ()"><code class="function">cairo_get_current_point()</code></a> for details on the current point.</p>
+<div class="refsect3">
+<a name="cairo-has-current-point.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-has-current-point.returns"></a><h4>Returns</h4>
+<p> whether a current point is defined.</p>
+</div>
+<p class="since">Since: 1.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-get-current-point"></a><h3>cairo_get_current_point ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_get_current_point (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *x</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *y</code></em>);</pre>
+<p>Gets the current point of the current path, which is
+conceptually the final point reached by the path so far.</p>
+<p>The current point is returned in the user-space coordinate
+system. If there is no defined current point or if <em class="parameter"><code>cr</code></em>
+ is in an
+error status, <em class="parameter"><code>x</code></em>
+ and <em class="parameter"><code>y</code></em>
+ will both be set to 0.0. It is possible to
+check this in advance with <a class="link" href="cairo-Paths.html#cairo-has-current-point" title="cairo_has_current_point ()"><code class="function">cairo_has_current_point()</code></a>.</p>
+<p>Most path construction functions alter the current point. See the
+following for details on how they affect the current point:
+<a class="link" href="cairo-Paths.html#cairo-new-path" title="cairo_new_path ()"><code class="function">cairo_new_path()</code></a>, <a class="link" href="cairo-Paths.html#cairo-new-sub-path" title="cairo_new_sub_path ()"><code class="function">cairo_new_sub_path()</code></a>,
+<a class="link" href="cairo-Paths.html#cairo-append-path" title="cairo_append_path ()"><code class="function">cairo_append_path()</code></a>, <a class="link" href="cairo-Paths.html#cairo-close-path" title="cairo_close_path ()"><code class="function">cairo_close_path()</code></a>,
+<a class="link" href="cairo-Paths.html#cairo-move-to" title="cairo_move_to ()"><code class="function">cairo_move_to()</code></a>, <a class="link" href="cairo-Paths.html#cairo-line-to" title="cairo_line_to ()"><code class="function">cairo_line_to()</code></a>, <a class="link" href="cairo-Paths.html#cairo-curve-to" title="cairo_curve_to ()"><code class="function">cairo_curve_to()</code></a>,
+<a class="link" href="cairo-Paths.html#cairo-rel-move-to" title="cairo_rel_move_to ()"><code class="function">cairo_rel_move_to()</code></a>, <a class="link" href="cairo-Paths.html#cairo-rel-line-to" title="cairo_rel_line_to ()"><code class="function">cairo_rel_line_to()</code></a>, <a class="link" href="cairo-Paths.html#cairo-rel-curve-to" title="cairo_rel_curve_to ()"><code class="function">cairo_rel_curve_to()</code></a>,
+<a class="link" href="cairo-Paths.html#cairo-arc" title="cairo_arc ()"><code class="function">cairo_arc()</code></a>, <a class="link" href="cairo-Paths.html#cairo-arc-negative" title="cairo_arc_negative ()"><code class="function">cairo_arc_negative()</code></a>, <a class="link" href="cairo-Paths.html#cairo-rectangle" title="cairo_rectangle ()"><code class="function">cairo_rectangle()</code></a>,
+<a class="link" href="cairo-Paths.html#cairo-text-path" title="cairo_text_path ()"><code class="function">cairo_text_path()</code></a>, <a class="link" href="cairo-Paths.html#cairo-glyph-path" title="cairo_glyph_path ()"><code class="function">cairo_glyph_path()</code></a>, <code class="function">cairo_stroke_to_path()</code>.</p>
+<p>Some functions use and alter the current point but do not
+otherwise change current path:
+<a class="link" href="cairo-text.html#cairo-show-text" title="cairo_show_text ()"><code class="function">cairo_show_text()</code></a>.</p>
+<p>Some functions unset the current path and as a result, current point:
+<a class="link" href="cairo-cairo-t.html#cairo-fill" title="cairo_fill ()"><code class="function">cairo_fill()</code></a>, <a class="link" href="cairo-cairo-t.html#cairo-stroke" title="cairo_stroke ()"><code class="function">cairo_stroke()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-get-current-point.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>return value for X coordinate of the current point</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>return value for Y coordinate of the current point</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-new-path"></a><h3>cairo_new_path ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_new_path (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>Clears the current path. After this call there will be no path and
+no current point.</p>
+<div class="refsect3">
+<a name="cairo-new-path.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-new-sub-path"></a><h3>cairo_new_sub_path ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_new_sub_path (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>Begin a new sub-path. Note that the existing path is not
+affected. After this call there will be no current point.</p>
+<p>In many cases, this call is not needed since new sub-paths are
+frequently started with <a class="link" href="cairo-Paths.html#cairo-move-to" title="cairo_move_to ()"><code class="function">cairo_move_to()</code></a>.</p>
+<p>A call to <a class="link" href="cairo-Paths.html#cairo-new-sub-path" title="cairo_new_sub_path ()"><code class="function">cairo_new_sub_path()</code></a> is particularly useful when
+beginning a new sub-path with one of the <a class="link" href="cairo-Paths.html#cairo-arc" title="cairo_arc ()"><code class="function">cairo_arc()</code></a> calls. This
+makes things easier as it is no longer necessary to manually
+compute the arc's initial coordinates for a call to
+<a class="link" href="cairo-Paths.html#cairo-move-to" title="cairo_move_to ()"><code class="function">cairo_move_to()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-new-sub-path.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-close-path"></a><h3>cairo_close_path ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_close_path (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>Adds a line segment to the path from the current point to the
+beginning of the current sub-path, (the most recent point passed to
+<a class="link" href="cairo-Paths.html#cairo-move-to" title="cairo_move_to ()"><code class="function">cairo_move_to()</code></a>), and closes this sub-path. After this call the
+current point will be at the joined endpoint of the sub-path.</p>
+<p>The behavior of <a class="link" href="cairo-Paths.html#cairo-close-path" title="cairo_close_path ()"><code class="function">cairo_close_path()</code></a> is distinct from simply calling
+<a class="link" href="cairo-Paths.html#cairo-line-to" title="cairo_line_to ()"><code class="function">cairo_line_to()</code></a> 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.</p>
+<p>If there is no current point before the call to <a class="link" href="cairo-Paths.html#cairo-close-path" title="cairo_close_path ()"><code class="function">cairo_close_path()</code></a>,
+this function will have no effect.</p>
+<p>Note: As of cairo version 1.2.4 any call to <a class="link" href="cairo-Paths.html#cairo-close-path" title="cairo_close_path ()"><code class="function">cairo_close_path()</code></a> will
+place an explicit MOVE_TO element into the path immediately after
+the CLOSE_PATH element, (which can be seen in <a class="link" href="cairo-Paths.html#cairo-copy-path" title="cairo_copy_path ()"><code class="function">cairo_copy_path()</code></a> 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.</p>
+<div class="refsect3">
+<a name="cairo-close-path.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-arc"></a><h3>cairo_arc ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_arc (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><span class="type">double</span> xc</code></em>,
+ <em class="parameter"><code><span class="type">double</span> yc</code></em>,
+ <em class="parameter"><code><span class="type">double</span> radius</code></em>,
+ <em class="parameter"><code><span class="type">double</span> angle1</code></em>,
+ <em class="parameter"><code><span class="type">double</span> angle2</code></em>);</pre>
+<p>Adds a circular arc of the given <em class="parameter"><code>radius</code></em>
+ to the current path. The
+arc is centered at (<em class="parameter"><code>xc</code></em>
+, <em class="parameter"><code>yc</code></em>
+), begins at <em class="parameter"><code>angle1</code></em>
+ and proceeds in
+the direction of increasing angles to end at <em class="parameter"><code>angle2</code></em>
+. If <em class="parameter"><code>angle2</code></em>
+ is
+less than <em class="parameter"><code>angle1</code></em>
+ it will be progressively increased by
+<code class="literal">2*M_PI</code> until it is greater than <em class="parameter"><code>angle1</code></em>
+.</p>
+<p>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 <a class="link" href="cairo-Paths.html#cairo-new-sub-path" title="cairo_new_sub_path ()"><code class="function">cairo_new_sub_path()</code></a> before calling <a class="link" href="cairo-Paths.html#cairo-arc" title="cairo_arc ()"><code class="function">cairo_arc()</code></a>.</p>
+<p>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
+<code class="literal">M_PI/2.0</code> 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.</p>
+<p>(To convert from degrees to radians, use <code class="literal">degrees * (M_PI /
+180.)</code>.)</p>
+<p>This function gives the arc in the direction of increasing angles;
+see <a class="link" href="cairo-Paths.html#cairo-arc-negative" title="cairo_arc_negative ()"><code class="function">cairo_arc_negative()</code></a> to get the arc in the direction of
+decreasing angles.</p>
+<p>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 <em class="parameter"><code>x</code></em>
+, <em class="parameter"><code>y</code></em>
+, <em class="parameter"><code>width</code></em>
+, <em class="parameter"><code>height</code></em>
+:</p>
+<div class="informalexample">
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+ <tbody>
+ <tr>
+ <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5</pre></td>
+ <td class="listing_code"><pre class="programlisting"><span class="function"><a href="cairo-cairo-t.html#cairo-save">cairo_save</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-Transformations.html#cairo-translate">cairo_translate</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> x <span class="gtkdoc opt">+</span> width <span class="gtkdoc opt">/</span> <span class="number">2</span><span class="gtkdoc opt">.,</span> y <span class="gtkdoc opt">+</span> height <span class="gtkdoc opt">/</span> <span class="number">2</span><span class="gtkdoc opt">.);</span>
+<span class="function"><a href="cairo-Transformations.html#cairo-scale">cairo_scale</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> width <span class="gtkdoc opt">/</span> <span class="number">2</span><span class="gtkdoc opt">.,</span> height <span class="gtkdoc opt">/</span> <span class="number">2</span><span class="gtkdoc opt">.);</span>
+<span class="function"><a href="cairo-Paths.html#cairo-arc">cairo_arc</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">.,</span> <span class="number">0</span><span class="gtkdoc opt">.,</span> <span class="number">1</span><span class="gtkdoc opt">.,</span> <span class="number">0</span><span class="gtkdoc opt">.,</span> <span class="number">2</span> <span class="gtkdoc opt">*</span> M_PI<span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-cairo-t.html#cairo-restore">cairo_restore</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">);</span></pre></td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+
+<div class="refsect3">
+<a name="cairo-arc.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>xc</p></td>
+<td class="parameter_description"><p>X position of the center of the arc</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>yc</p></td>
+<td class="parameter_description"><p>Y position of the center of the arc</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>radius</p></td>
+<td class="parameter_description"><p>the radius of the arc</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>angle1</p></td>
+<td class="parameter_description"><p>the start angle, in radians</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>angle2</p></td>
+<td class="parameter_description"><p>the end angle, in radians</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-arc-negative"></a><h3>cairo_arc_negative ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_arc_negative (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><span class="type">double</span> xc</code></em>,
+ <em class="parameter"><code><span class="type">double</span> yc</code></em>,
+ <em class="parameter"><code><span class="type">double</span> radius</code></em>,
+ <em class="parameter"><code><span class="type">double</span> angle1</code></em>,
+ <em class="parameter"><code><span class="type">double</span> angle2</code></em>);</pre>
+<p>Adds a circular arc of the given <em class="parameter"><code>radius</code></em>
+ to the current path. The
+arc is centered at (<em class="parameter"><code>xc</code></em>
+, <em class="parameter"><code>yc</code></em>
+), begins at <em class="parameter"><code>angle1</code></em>
+ and proceeds in
+the direction of decreasing angles to end at <em class="parameter"><code>angle2</code></em>
+. If <em class="parameter"><code>angle2</code></em>
+ is
+greater than <em class="parameter"><code>angle1</code></em>
+ it will be progressively decreased by
+<code class="literal">2*M_PI</code> until it is less than <em class="parameter"><code>angle1</code></em>
+.</p>
+<p>See <a class="link" href="cairo-Paths.html#cairo-arc" title="cairo_arc ()"><code class="function">cairo_arc()</code></a> for more details. This function differs only in the
+direction of the arc between the two angles.</p>
+<div class="refsect3">
+<a name="cairo-arc-negative.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>xc</p></td>
+<td class="parameter_description"><p>X position of the center of the arc</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>yc</p></td>
+<td class="parameter_description"><p>Y position of the center of the arc</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>radius</p></td>
+<td class="parameter_description"><p>the radius of the arc</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>angle1</p></td>
+<td class="parameter_description"><p>the start angle, in radians</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>angle2</p></td>
+<td class="parameter_description"><p>the end angle, in radians</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-curve-to"></a><h3>cairo_curve_to ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_curve_to (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><span class="type">double</span> x1</code></em>,
+ <em class="parameter"><code><span class="type">double</span> y1</code></em>,
+ <em class="parameter"><code><span class="type">double</span> x2</code></em>,
+ <em class="parameter"><code><span class="type">double</span> y2</code></em>,
+ <em class="parameter"><code><span class="type">double</span> x3</code></em>,
+ <em class="parameter"><code><span class="type">double</span> y3</code></em>);</pre>
+<p>Adds a cubic Bézier spline to the path from the current point to
+position (<em class="parameter"><code>x3</code></em>
+, <em class="parameter"><code>y3</code></em>
+) in user-space coordinates, using (<em class="parameter"><code>x1</code></em>
+, <em class="parameter"><code>y1</code></em>
+) and
+(<em class="parameter"><code>x2</code></em>
+, <em class="parameter"><code>y2</code></em>
+) as the control points. After this call the current point
+will be (<em class="parameter"><code>x3</code></em>
+, <em class="parameter"><code>y3</code></em>
+).</p>
+<p>If there is no current point before the call to <a class="link" href="cairo-Paths.html#cairo-curve-to" title="cairo_curve_to ()"><code class="function">cairo_curve_to()</code></a>
+this function will behave as if preceded by a call to
+cairo_move_to(<em class="parameter"><code>cr</code></em>
+, <em class="parameter"><code>x1</code></em>
+, <em class="parameter"><code>y1</code></em>
+).</p>
+<div class="refsect3">
+<a name="cairo-curve-to.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x1</p></td>
+<td class="parameter_description"><p>the X coordinate of the first control point</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y1</p></td>
+<td class="parameter_description"><p>the Y coordinate of the first control point</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x2</p></td>
+<td class="parameter_description"><p>the X coordinate of the second control point</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y2</p></td>
+<td class="parameter_description"><p>the Y coordinate of the second control point</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x3</p></td>
+<td class="parameter_description"><p>the X coordinate of the end of the curve</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y3</p></td>
+<td class="parameter_description"><p>the Y coordinate of the end of the curve</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-line-to"></a><h3>cairo_line_to ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_line_to (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><span class="type">double</span> x</code></em>,
+ <em class="parameter"><code><span class="type">double</span> y</code></em>);</pre>
+<p>Adds a line to the path from the current point to position (<em class="parameter"><code>x</code></em>
+, <em class="parameter"><code>y</code></em>
+)
+in user-space coordinates. After this call the current point
+will be (<em class="parameter"><code>x</code></em>
+, <em class="parameter"><code>y</code></em>
+).</p>
+<p>If there is no current point before the call to <a class="link" href="cairo-Paths.html#cairo-line-to" title="cairo_line_to ()"><code class="function">cairo_line_to()</code></a>
+this function will behave as cairo_move_to(<em class="parameter"><code>cr</code></em>
+, <em class="parameter"><code>x</code></em>
+, <em class="parameter"><code>y</code></em>
+).</p>
+<div class="refsect3">
+<a name="cairo-line-to.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>the X coordinate of the end of the new line</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>the Y coordinate of the end of the new line</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-move-to"></a><h3>cairo_move_to ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_move_to (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><span class="type">double</span> x</code></em>,
+ <em class="parameter"><code><span class="type">double</span> y</code></em>);</pre>
+<p>Begin a new sub-path. After this call the current point will be (<em class="parameter"><code>x</code></em>
+,
+<em class="parameter"><code>y</code></em>
+).</p>
+<div class="refsect3">
+<a name="cairo-move-to.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>the X coordinate of the new position</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>the Y coordinate of the new position</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-rectangle"></a><h3>cairo_rectangle ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_rectangle (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><span class="type">double</span> x</code></em>,
+ <em class="parameter"><code><span class="type">double</span> y</code></em>,
+ <em class="parameter"><code><span class="type">double</span> width</code></em>,
+ <em class="parameter"><code><span class="type">double</span> height</code></em>);</pre>
+<p>Adds a closed sub-path rectangle of the given size to the current
+path at position (<em class="parameter"><code>x</code></em>
+, <em class="parameter"><code>y</code></em>
+) in user-space coordinates.</p>
+<p>This function is logically equivalent to:</p>
+<div class="informalexample">
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+ <tbody>
+ <tr>
+ <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5</pre></td>
+ <td class="listing_code"><pre class="programlisting"><span class="function"><a href="cairo-Paths.html#cairo-move-to">cairo_move_to</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> x<span class="gtkdoc opt">,</span> y<span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-Paths.html#cairo-rel-line-to">cairo_rel_line_to</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> width<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-Paths.html#cairo-rel-line-to">cairo_rel_line_to</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span> height<span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-Paths.html#cairo-rel-line-to">cairo_rel_line_to</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">, -</span>width<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-Paths.html#cairo-close-path">cairo_close_path</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">);</span></pre></td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+
+<div class="refsect3">
+<a name="cairo-rectangle.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>the X coordinate of the top left corner of the rectangle</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>the Y coordinate to the top left corner of the rectangle</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>width</p></td>
+<td class="parameter_description"><p>the width of the rectangle</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>height</p></td>
+<td class="parameter_description"><p>the height of the rectangle</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-glyph-path"></a><h3>cairo_glyph_path ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_glyph_path (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-text.html#cairo-glyph-t" title="cairo_glyph_t"><span class="type">cairo_glyph_t</span></a> *glyphs</code></em>,
+ <em class="parameter"><code><span class="type">int</span> num_glyphs</code></em>);</pre>
+<p>Adds closed paths for the glyphs to the current path. The generated
+path if filled, achieves an effect similar to that of
+<a class="link" href="cairo-text.html#cairo-show-glyphs" title="cairo_show_glyphs ()"><code class="function">cairo_show_glyphs()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-glyph-path.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>glyphs</p></td>
+<td class="parameter_description"><p>array of glyphs to show</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>num_glyphs</p></td>
+<td class="parameter_description"><p>number of glyphs to show</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-text-path"></a><h3>cairo_text_path ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_text_path (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *utf8</code></em>);</pre>
+<p>Adds closed paths for text to the current path. The generated
+path if filled, achieves an effect similar to that of
+<a class="link" href="cairo-text.html#cairo-show-text" title="cairo_show_text ()"><code class="function">cairo_show_text()</code></a>.</p>
+<p>Text conversion and positioning is done similar to <a class="link" href="cairo-text.html#cairo-show-text" title="cairo_show_text ()"><code class="function">cairo_show_text()</code></a>.</p>
+<p>Like <a class="link" href="cairo-text.html#cairo-show-text" title="cairo_show_text ()"><code class="function">cairo_show_text()</code></a>, 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 <a class="link" href="cairo-Paths.html#cairo-text-path" title="cairo_text_path ()"><code class="function">cairo_text_path()</code></a>
+without having to set current point in between.</p>
+<p>Note: The <a class="link" href="cairo-Paths.html#cairo-text-path" title="cairo_text_path ()"><code class="function">cairo_text_path()</code></a> function call is part of what the cairo
+designers call the "toy" text API. It is convenient for short demos
+and simple programs, but it is not expected to be adequate for
+serious text-using applications. See <a class="link" href="cairo-Paths.html#cairo-glyph-path" title="cairo_glyph_path ()"><code class="function">cairo_glyph_path()</code></a> for the
+"real" text path API in cairo.</p>
+<div class="refsect3">
+<a name="cairo-text-path.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>utf8</p></td>
+<td class="parameter_description"><p>a NUL-terminated string of text encoded in UTF-8, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-rel-curve-to"></a><h3>cairo_rel_curve_to ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_rel_curve_to (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><span class="type">double</span> dx1</code></em>,
+ <em class="parameter"><code><span class="type">double</span> dy1</code></em>,
+ <em class="parameter"><code><span class="type">double</span> dx2</code></em>,
+ <em class="parameter"><code><span class="type">double</span> dy2</code></em>,
+ <em class="parameter"><code><span class="type">double</span> dx3</code></em>,
+ <em class="parameter"><code><span class="type">double</span> dy3</code></em>);</pre>
+<p>Relative-coordinate version of <a class="link" href="cairo-Paths.html#cairo-curve-to" title="cairo_curve_to ()"><code class="function">cairo_curve_to()</code></a>. 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 (<em class="parameter"><code>dx3</code></em>
+, <em class="parameter"><code>dy3</code></em>
+), using points offset by (<em class="parameter"><code>dx1</code></em>
+, <em class="parameter"><code>dy1</code></em>
+) and
+(<em class="parameter"><code>dx2</code></em>
+, <em class="parameter"><code>dy2</code></em>
+) as the control points. After this call the current
+point will be offset by (<em class="parameter"><code>dx3</code></em>
+, <em class="parameter"><code>dy3</code></em>
+).</p>
+<p>Given a current point of (x, y), cairo_rel_curve_to(<em class="parameter"><code>cr</code></em>
+, <em class="parameter"><code>dx1</code></em>
+,
+<em class="parameter"><code>dy1</code></em>
+, <em class="parameter"><code>dx2</code></em>
+, <em class="parameter"><code>dy2</code></em>
+, <em class="parameter"><code>dx3</code></em>
+, <em class="parameter"><code>dy3</code></em>
+) is logically equivalent to
+cairo_curve_to(<em class="parameter"><code>cr</code></em>
+, x+<em class="parameter"><code>dx1</code></em>
+, y+<em class="parameter"><code>dy1</code></em>
+, x+<em class="parameter"><code>dx2</code></em>
+, y+<em class="parameter"><code>dy2</code></em>
+, x+<em class="parameter"><code>dx3</code></em>
+, y+<em class="parameter"><code>dy3</code></em>
+).</p>
+<p>It is an error to call this function with no current point. Doing
+so will cause <em class="parameter"><code>cr</code></em>
+ to shutdown with a status of
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-NO-CURRENT-POINT:CAPS"><code class="literal">CAIRO_STATUS_NO_CURRENT_POINT</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-rel-curve-to.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dx1</p></td>
+<td class="parameter_description"><p>the X offset to the first control point</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dy1</p></td>
+<td class="parameter_description"><p>the Y offset to the first control point</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dx2</p></td>
+<td class="parameter_description"><p>the X offset to the second control point</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dy2</p></td>
+<td class="parameter_description"><p>the Y offset to the second control point</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dx3</p></td>
+<td class="parameter_description"><p>the X offset to the end of the curve</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dy3</p></td>
+<td class="parameter_description"><p>the Y offset to the end of the curve</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-rel-line-to"></a><h3>cairo_rel_line_to ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_rel_line_to (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><span class="type">double</span> dx</code></em>,
+ <em class="parameter"><code><span class="type">double</span> dy</code></em>);</pre>
+<p>Relative-coordinate version of <a class="link" href="cairo-Paths.html#cairo-line-to" title="cairo_line_to ()"><code class="function">cairo_line_to()</code></a>. Adds a line to the
+path from the current point to a point that is offset from the
+current point by (<em class="parameter"><code>dx</code></em>
+, <em class="parameter"><code>dy</code></em>
+) in user space. After this call the
+current point will be offset by (<em class="parameter"><code>dx</code></em>
+, <em class="parameter"><code>dy</code></em>
+).</p>
+<p>Given a current point of (x, y), cairo_rel_line_to(<em class="parameter"><code>cr</code></em>
+, <em class="parameter"><code>dx</code></em>
+, <em class="parameter"><code>dy</code></em>
+)
+is logically equivalent to cairo_line_to(<em class="parameter"><code>cr</code></em>
+, x + <em class="parameter"><code>dx</code></em>
+, y + <em class="parameter"><code>dy</code></em>
+).</p>
+<p>It is an error to call this function with no current point. Doing
+so will cause <em class="parameter"><code>cr</code></em>
+ to shutdown with a status of
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-NO-CURRENT-POINT:CAPS"><code class="literal">CAIRO_STATUS_NO_CURRENT_POINT</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-rel-line-to.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dx</p></td>
+<td class="parameter_description"><p>the X offset to the end of the new line</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dy</p></td>
+<td class="parameter_description"><p>the Y offset to the end of the new line</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-rel-move-to"></a><h3>cairo_rel_move_to ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_rel_move_to (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><span class="type">double</span> dx</code></em>,
+ <em class="parameter"><code><span class="type">double</span> dy</code></em>);</pre>
+<p>Begin a new sub-path. After this call the current point will offset
+by (<em class="parameter"><code>x</code></em>
+, <em class="parameter"><code>y</code></em>
+).</p>
+<p>Given a current point of (x, y), cairo_rel_move_to(<em class="parameter"><code>cr</code></em>
+, <em class="parameter"><code>dx</code></em>
+, <em class="parameter"><code>dy</code></em>
+)
+is logically equivalent to cairo_move_to(<em class="parameter"><code>cr</code></em>
+, x + <em class="parameter"><code>dx</code></em>
+, y + <em class="parameter"><code>dy</code></em>
+).</p>
+<p>It is an error to call this function with no current point. Doing
+so will cause <em class="parameter"><code>cr</code></em>
+ to shutdown with a status of
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-NO-CURRENT-POINT:CAPS"><code class="literal">CAIRO_STATUS_NO_CURRENT_POINT</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-rel-move-to.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dx</p></td>
+<td class="parameter_description"><p>the X offset</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dy</p></td>
+<td class="parameter_description"><p>the Y offset</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-path-extents"></a><h3>cairo_path_extents ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_path_extents (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *x1</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *y1</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *x2</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *y2</code></em>);</pre>
+<p>Computes a bounding box in user-space coordinates covering the
+points on the current path. If the current path is empty, returns
+an empty rectangle ((0,0), (0,0)). Stroke parameters, fill rule,
+surface dimensions and clipping are not taken into account.</p>
+<p>Contrast with <a class="link" href="cairo-cairo-t.html#cairo-fill-extents" title="cairo_fill_extents ()"><code class="function">cairo_fill_extents()</code></a> and <a class="link" href="cairo-cairo-t.html#cairo-stroke-extents" title="cairo_stroke_extents ()"><code class="function">cairo_stroke_extents()</code></a> which
+return the extents of only the area that would be "inked" by
+the corresponding drawing operations.</p>
+<p>The result of <a class="link" href="cairo-Paths.html#cairo-path-extents" title="cairo_path_extents ()"><code class="function">cairo_path_extents()</code></a> is defined as equivalent to the
+limit of <a class="link" href="cairo-cairo-t.html#cairo-stroke-extents" title="cairo_stroke_extents ()"><code class="function">cairo_stroke_extents()</code></a> with <a class="link" href="cairo-cairo-t.html#CAIRO-LINE-CAP-ROUND:CAPS"><code class="literal">CAIRO_LINE_CAP_ROUND</code></a> as the
+line width approaches 0.0, (but never reaching the empty-rectangle
+returned by <a class="link" href="cairo-cairo-t.html#cairo-stroke-extents" title="cairo_stroke_extents ()"><code class="function">cairo_stroke_extents()</code></a> for a line width of 0.0).</p>
+<p>Specifically, this means that zero-area sub-paths such as
+<a class="link" href="cairo-Paths.html#cairo-move-to" title="cairo_move_to ()"><code class="function">cairo_move_to()</code></a>;<a class="link" href="cairo-Paths.html#cairo-line-to" title="cairo_line_to ()"><code class="function">cairo_line_to()</code></a> segments, (even degenerate cases
+where the coordinates to both calls are identical), will be
+considered as contributing to the extents. However, a lone
+<a class="link" href="cairo-Paths.html#cairo-move-to" title="cairo_move_to ()"><code class="function">cairo_move_to()</code></a> will not contribute to the results of
+<a class="link" href="cairo-Paths.html#cairo-path-extents" title="cairo_path_extents ()"><code class="function">cairo_path_extents()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-path-extents.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x1</p></td>
+<td class="parameter_description"><p>left of the resulting extents</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y1</p></td>
+<td class="parameter_description"><p>top of the resulting extents</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x2</p></td>
+<td class="parameter_description"><p>right of the resulting extents</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y2</p></td>
+<td class="parameter_description"><p>bottom of the resulting extents</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.6</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-Paths.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="cairo-path-t"></a><h3>cairo_path_t</h3>
+<pre class="programlisting">typedef struct {
+ cairo_status_t status;
+ cairo_path_data_t *data;
+ int num_data;
+} cairo_path_t;
+</pre>
+<p>A data structure for holding a path. This data structure serves as
+the return value for <a class="link" href="cairo-Paths.html#cairo-copy-path" title="cairo_copy_path ()"><code class="function">cairo_copy_path()</code></a> and
+<a class="link" href="cairo-Paths.html#cairo-copy-path-flat" title="cairo_copy_path_flat ()"><code class="function">cairo_copy_path_flat()</code></a> as well the input value for
+<a class="link" href="cairo-Paths.html#cairo-append-path" title="cairo_append_path ()"><code class="function">cairo_append_path()</code></a>.</p>
+<p>See <a class="link" href="cairo-Paths.html#cairo-path-data-t" title="union cairo_path_data_t"><span class="type">cairo_path_data_t</span></a> for hints on how to iterate over the
+actual data within the path.</p>
+<p>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 <a class="link" href="cairo-Paths.html#cairo-path-data-type-t" title="enum cairo_path_data_type_t"><span class="type">cairo_path_data_type_t</span></a>), since the data
+includes both headers and coordinates for each portion.</p>
+<div class="refsect3">
+<a name="cairo-path-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="type">cairo_status_t</span></a> <em class="structfield"><code><a name="cairo-path-t.status"></a>status</code></em>;</p></td>
+<td class="struct_member_description"><p>the current error status</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="cairo-Paths.html#cairo-path-data-t" title="union cairo_path_data_t"><span class="type">cairo_path_data_t</span></a> *<em class="structfield"><code><a name="cairo-path-t.data"></a>data</code></em>;</p></td>
+<td class="struct_member_description"><p>the elements in the path</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><span class="type">int</span> <em class="structfield"><code><a name="cairo-path-t.num-data"></a>num_data</code></em>;</p></td>
+<td class="struct_member_description"><p>the number of elements in the data array</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-path-data-t"></a><h3>union cairo_path_data_t</h3>
+<p><a class="link" href="cairo-Paths.html#cairo-path-data-t" title="union cairo_path_data_t"><span class="type">cairo_path_data_t</span></a> is used to represent the path data inside a
+<a class="link" href="cairo-Paths.html#cairo-path-t" title="cairo_path_t"><span class="type">cairo_path_t</span></a>.</p>
+<p>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
+<a class="link" href="cairo-Paths.html#cairo-path-data-t" title="union cairo_path_data_t"><span class="type">cairo_path_data_t</span></a>, which is a union of headers and points.</p>
+<p>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:</p>
+<pre class="programlisting">
+ %CAIRO_PATH_MOVE_TO: 1 point
+ %CAIRO_PATH_LINE_TO: 1 point
+ %CAIRO_PATH_CURVE_TO: 3 points
+ %CAIRO_PATH_CLOSE_PATH: 0 points
+</pre>
+<p>The semantics and ordering of the coordinate values are consistent
+with <a class="link" href="cairo-Paths.html#cairo-move-to" title="cairo_move_to ()"><code class="function">cairo_move_to()</code></a>, <a class="link" href="cairo-Paths.html#cairo-line-to" title="cairo_line_to ()"><code class="function">cairo_line_to()</code></a>, <a class="link" href="cairo-Paths.html#cairo-curve-to" title="cairo_curve_to ()"><code class="function">cairo_curve_to()</code></a>, and
+<a class="link" href="cairo-Paths.html#cairo-close-path" title="cairo_close_path ()"><code class="function">cairo_close_path()</code></a>.</p>
+<p>Here is sample code for iterating through a <a class="link" href="cairo-Paths.html#cairo-path-t" title="cairo_path_t"><span class="type">cairo_path_t</span></a>:</p>
+<div class="informalexample">
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+ <tbody>
+ <tr>
+ <td class="listing_lines" align="right"><pre>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</pre></td>
+ <td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">int</span> i<span class="gtkdoc opt">;</span>
+cairo_path_t <span class="gtkdoc opt">*</span>path<span class="gtkdoc opt">;</span>
+cairo_path_data_t <span class="gtkdoc opt">*</span>data<span class="gtkdoc opt">;</span>
+path <span class="gtkdoc opt">=</span> <span class="function"><a href="cairo-Paths.html#cairo-copy-path">cairo_copy_path</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">);</span>
+<span class="keyword">for</span> <span class="gtkdoc opt">(</span>i<span class="gtkdoc opt">=</span><span class="number">0</span><span class="gtkdoc opt">;</span> i <span class="gtkdoc opt">&lt;</span> path<span class="gtkdoc opt">-&gt;</span>num_data<span class="gtkdoc opt">;</span> i <span class="gtkdoc opt">+=</span> path<span class="gtkdoc opt">-&gt;</span>data<span class="gtkdoc opt">[</span>i<span class="gtkdoc opt">].</span>header<span class="gtkdoc opt">.</span>length<span class="gtkdoc opt">) {</span>
+ data <span class="gtkdoc opt">= &amp;</span>path<span class="gtkdoc opt">-&gt;</span>data<span class="gtkdoc opt">[</span>i<span class="gtkdoc opt">];</span>
+ <span class="keyword">switch</span> <span class="gtkdoc opt">(</span>data<span class="gtkdoc opt">-&gt;</span>header<span class="gtkdoc opt">.</span>type<span class="gtkdoc opt">) {</span>
+ <span class="keyword">case</span> CAIRO_PATH_MOVE_TO<span class="gtkdoc opt">:</span>
+ <span class="function">do_move_to_things</span> <span class="gtkdoc opt">(</span>data<span class="gtkdoc opt">[</span><span class="number">1</span><span class="gtkdoc opt">].</span>point<span class="gtkdoc opt">.</span>x<span class="gtkdoc opt">,</span> data<span class="gtkdoc opt">[</span><span class="number">1</span><span class="gtkdoc opt">].</span>point<span class="gtkdoc opt">.</span>y<span class="gtkdoc opt">);</span>
+ <span class="keyword">break</span><span class="gtkdoc opt">;</span>
+ <span class="keyword">case</span> CAIRO_PATH_LINE_TO<span class="gtkdoc opt">:</span>
+ <span class="function">do_line_to_things</span> <span class="gtkdoc opt">(</span>data<span class="gtkdoc opt">[</span><span class="number">1</span><span class="gtkdoc opt">].</span>point<span class="gtkdoc opt">.</span>x<span class="gtkdoc opt">,</span> data<span class="gtkdoc opt">[</span><span class="number">1</span><span class="gtkdoc opt">].</span>point<span class="gtkdoc opt">.</span>y<span class="gtkdoc opt">);</span>
+ <span class="keyword">break</span><span class="gtkdoc opt">;</span>
+ <span class="keyword">case</span> CAIRO_PATH_CURVE_TO<span class="gtkdoc opt">:</span>
+ <span class="function">do_curve_to_things</span> <span class="gtkdoc opt">(</span>data<span class="gtkdoc opt">[</span><span class="number">1</span><span class="gtkdoc opt">].</span>point<span class="gtkdoc opt">.</span>x<span class="gtkdoc opt">,</span> data<span class="gtkdoc opt">[</span><span class="number">1</span><span class="gtkdoc opt">].</span>point<span class="gtkdoc opt">.</span>y<span class="gtkdoc opt">,</span>
+ data<span class="gtkdoc opt">[</span><span class="number">2</span><span class="gtkdoc opt">].</span>point<span class="gtkdoc opt">.</span>x<span class="gtkdoc opt">,</span> data<span class="gtkdoc opt">[</span><span class="number">2</span><span class="gtkdoc opt">].</span>point<span class="gtkdoc opt">.</span>y<span class="gtkdoc opt">,</span>
+ data<span class="gtkdoc opt">[</span><span class="number">3</span><span class="gtkdoc opt">].</span>point<span class="gtkdoc opt">.</span>x<span class="gtkdoc opt">,</span> data<span class="gtkdoc opt">[</span><span class="number">3</span><span class="gtkdoc opt">].</span>point<span class="gtkdoc opt">.</span>y<span class="gtkdoc opt">);</span>
+ <span class="keyword">break</span><span class="gtkdoc opt">;</span>
+ <span class="keyword">case</span> CAIRO_PATH_CLOSE_PATH<span class="gtkdoc opt">:</span>
+ <span class="function">do_close_path_things</span> <span class="gtkdoc opt">();</span>
+ <span class="keyword">break</span><span class="gtkdoc opt">;</span>
+ <span class="gtkdoc opt">}</span>
+<span class="gtkdoc opt">}</span>
+<span class="function"><a href="cairo-Paths.html#cairo-path-destroy">cairo_path_destroy</a></span> <span class="gtkdoc opt">(</span>path<span class="gtkdoc opt">);</span></pre></td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+
+<p>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 <code class="literal">data-&gt;header.length</code> to
+iterate over the path data, instead of hardcoding the number of
+elements for each element type.</p>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-path-data-type-t"></a><h3>enum cairo_path_data_type_t</h3>
+<p><a class="link" href="cairo-Paths.html#cairo-path-data-t" title="union cairo_path_data_t"><span class="type">cairo_path_data_t</span></a> is used to describe the type of one portion
+of a path when represented as a <a class="link" href="cairo-Paths.html#cairo-path-t" title="cairo_path_t"><span class="type">cairo_path_t</span></a>.
+See <a class="link" href="cairo-Paths.html#cairo-path-data-t" title="union cairo_path_data_t"><span class="type">cairo_path_data_t</span></a> for details.</p>
+<div class="refsect3">
+<a name="cairo-path-data-type-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-PATH-MOVE-TO:CAPS"></a>CAIRO_PATH_MOVE_TO</p></td>
+<td class="enum_member_description">
+<p>A move-to operation, since 1.0</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-PATH-LINE-TO:CAPS"></a>CAIRO_PATH_LINE_TO</p></td>
+<td class="enum_member_description">
+<p>A line-to operation, since 1.0</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-PATH-CURVE-TO:CAPS"></a>CAIRO_PATH_CURVE_TO</p></td>
+<td class="enum_member_description">
+<p>A curve-to operation, since 1.0</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-PATH-CLOSE-PATH:CAPS"></a>CAIRO_PATH_CLOSE_PATH</p></td>
+<td class="enum_member_description">
+<p>A close-path operation, since 1.0</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>PostScript Surfaces: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="cairo-surfaces.html" title="Surfaces">
+<link rel="prev" href="cairo-PNG-Support.html" title="PNG Support">
+<link rel="next" href="cairo-Recording-Surfaces.html" title="Recording Surfaces">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+ <a href="#cairo-PostScript-Surfaces.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="cairo-surfaces.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="cairo-PNG-Support.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="cairo-Recording-Surfaces.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="cairo-PostScript-Surfaces"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="cairo-PostScript-Surfaces.top_of_page"></a>PostScript Surfaces</span></h2>
+<p>PostScript Surfaces — Rendering PostScript documents</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="cairo-PostScript-Surfaces.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-create" title="cairo_ps_surface_create ()">cairo_ps_surface_create</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-create-for-stream" title="cairo_ps_surface_create_for_stream ()">cairo_ps_surface_create_for_stream</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-restrict-to-level" title="cairo_ps_surface_restrict_to_level ()">cairo_ps_surface_restrict_to_level</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-get-levels" title="cairo_ps_get_levels ()">cairo_ps_get_levels</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">const <span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-level-to-string" title="cairo_ps_level_to_string ()">cairo_ps_level_to_string</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-set-eps" title="cairo_ps_surface_set_eps ()">cairo_ps_surface_set_eps</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Types.html#cairo-bool-t" title="cairo_bool_t"><span class="returnvalue">cairo_bool_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-get-eps" title="cairo_ps_surface_get_eps ()">cairo_ps_surface_get_eps</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-set-size" title="cairo_ps_surface_set_size ()">cairo_ps_surface_set_size</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-begin-setup" title="cairo_ps_surface_dsc_begin_setup ()">cairo_ps_surface_dsc_begin_setup</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-begin-page-setup" title="cairo_ps_surface_dsc_begin_page_setup ()">cairo_ps_surface_dsc_begin_page_setup</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-comment" title="cairo_ps_surface_dsc_comment ()">cairo_ps_surface_dsc_comment</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-PostScript-Surfaces.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="cairo-PostScript-Surfaces.html#CAIRO-HAS-PS-SURFACE:CAPS" title="CAIRO_HAS_PS_SURFACE">CAIRO_HAS_PS_SURFACE</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-level-t" title="enum cairo_ps_level_t">cairo_ps_level_t</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-PostScript-Surfaces.description"></a><h2>Description</h2>
+<p>The PostScript surface is used to render cairo graphics to Adobe
+PostScript files and is a multi-page vector surface backend.</p>
+<p>The following mime types are supported: <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JPEG:CAPS" title="CAIRO_MIME_TYPE_JPEG"><code class="literal">CAIRO_MIME_TYPE_JPEG</code></a>,
+<a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-UNIQUE-ID:CAPS" title="CAIRO_MIME_TYPE_UNIQUE_ID"><code class="literal">CAIRO_MIME_TYPE_UNIQUE_ID</code></a>,
+<a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX:CAPS" title="CAIRO_MIME_TYPE_CCITT_FAX"><code class="literal">CAIRO_MIME_TYPE_CCITT_FAX</code></a>, <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS" title="CAIRO_MIME_TYPE_CCITT_FAX_PARAMS"><code class="literal">CAIRO_MIME_TYPE_CCITT_FAX_PARAMS</code></a>,
+<a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX:CAPS" title="CAIRO_MIME_TYPE_CCITT_FAX"><code class="literal">CAIRO_MIME_TYPE_CCITT_FAX</code></a>, <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS" title="CAIRO_MIME_TYPE_CCITT_FAX_PARAMS"><code class="literal">CAIRO_MIME_TYPE_CCITT_FAX_PARAMS</code></a>,
+<a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-EPS:CAPS" title="CAIRO_MIME_TYPE_EPS"><code class="literal">CAIRO_MIME_TYPE_EPS</code></a>, <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-EPS-PARAMS:CAPS" title="CAIRO_MIME_TYPE_EPS_PARAMS"><code class="literal">CAIRO_MIME_TYPE_EPS_PARAMS</code></a>.</p>
+<p>Source surfaces used by the PostScript surface that have a
+<a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-UNIQUE-ID:CAPS" title="CAIRO_MIME_TYPE_UNIQUE_ID"><code class="literal">CAIRO_MIME_TYPE_UNIQUE_ID</code></a> mime type will be stored in PostScript
+printer memory for the duration of the print
+job. <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-UNIQUE-ID:CAPS" title="CAIRO_MIME_TYPE_UNIQUE_ID"><code class="literal">CAIRO_MIME_TYPE_UNIQUE_ID</code></a> should only be used for small
+frequently used sources.</p>
+<p>The <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX:CAPS" title="CAIRO_MIME_TYPE_CCITT_FAX"><code class="literal">CAIRO_MIME_TYPE_CCITT_FAX</code></a> and <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS" title="CAIRO_MIME_TYPE_CCITT_FAX_PARAMS"><code class="literal">CAIRO_MIME_TYPE_CCITT_FAX_PARAMS</code></a> mime types
+are documented in <a class="link" href="cairo-PDF-Surfaces.html#ccitt" title="CCITT Fax Images">CCITT Fax Images</a>.</p>
+<div class="refsect2">
+<a name="eps"></a><h3>Embedding EPS files</h3>
+<p>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.</p>
+<p>The <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-EPS:CAPS" title="CAIRO_MIME_TYPE_EPS"><code class="literal">CAIRO_MIME_TYPE_EPS</code></a> mime type requires the
+<a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-EPS-PARAMS:CAPS" title="CAIRO_MIME_TYPE_EPS_PARAMS"><code class="literal">CAIRO_MIME_TYPE_EPS_PARAMS</code></a> mime data to also be provided in order
+to specify the embeddding parameters. <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-EPS-PARAMS:CAPS" title="CAIRO_MIME_TYPE_EPS_PARAMS"><code class="literal">CAIRO_MIME_TYPE_EPS_PARAMS</code></a>
+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
+%%<code class="literal">BoundingBox</code> data in the EPS file.</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-PostScript-Surfaces.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="cairo-ps-surface-create"></a><h3>cairo_ps_surface_create ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+cairo_ps_surface_create (<em class="parameter"><code>const <span class="type">char</span> *filename</code></em>,
+ <em class="parameter"><code><span class="type">double</span> width_in_points</code></em>,
+ <em class="parameter"><code><span class="type">double</span> height_in_points</code></em>);</pre>
+<p>Creates a PostScript surface of the specified size in points to be
+written to <em class="parameter"><code>filename</code></em>
+. See <a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-create-for-stream" title="cairo_ps_surface_create_for_stream ()"><code class="function">cairo_ps_surface_create_for_stream()</code></a> for
+a more flexible mechanism for handling the PostScript output than
+simply writing it to a named file.</p>
+<p>Note that the size of individual pages of the PostScript output can
+vary. See <a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-set-size" title="cairo_ps_surface_set_size ()"><code class="function">cairo_ps_surface_set_size()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-ps-surface-create.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>filename</p></td>
+<td class="parameter_description"><p>a filename for the PS output (must be writable), <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> 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.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>width_in_points</p></td>
+<td class="parameter_description"><p>width of the surface, in points (1 point == 1/72.0 inch)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>height_in_points</p></td>
+<td class="parameter_description"><p>height of the surface, in points (1 point == 1/72.0 inch)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-ps-surface-create.returns"></a><h4>Returns</h4>
+<p> a pointer to the newly created surface. The caller
+owns the surface and should call <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-destroy" title="cairo_surface_destroy ()"><code class="function">cairo_surface_destroy()</code></a> when done
+with it.</p>
+<p>This function always returns a valid pointer, but it will return a
+pointer to a "nil" surface if an error such as out of memory
+occurs. You can use <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-status" title="cairo_surface_status ()"><code class="function">cairo_surface_status()</code></a> to check for this.</p>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-ps-surface-create-for-stream"></a><h3>cairo_ps_surface_create_for_stream ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+cairo_ps_surface_create_for_stream (<em class="parameter"><code><a class="link" href="cairo-PNG-Support.html#cairo-write-func-t" title="cairo_write_func_t ()"><span class="type">cairo_write_func_t</span></a> write_func</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *closure</code></em>,
+ <em class="parameter"><code><span class="type">double</span> width_in_points</code></em>,
+ <em class="parameter"><code><span class="type">double</span> height_in_points</code></em>);</pre>
+<p>Creates a PostScript surface of the specified size in points to be
+written incrementally to the stream represented by <em class="parameter"><code>write_func</code></em>
+ and
+<em class="parameter"><code>closure</code></em>
+. See <a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-create" title="cairo_ps_surface_create ()"><code class="function">cairo_ps_surface_create()</code></a> for a more convenient way
+to simply direct the PostScript output to a named file.</p>
+<p>Note that the size of individual pages of the PostScript
+output can vary. See <a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-set-size" title="cairo_ps_surface_set_size ()"><code class="function">cairo_ps_surface_set_size()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-ps-surface-create-for-stream.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>write_func</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-PNG-Support.html#cairo-write-func-t" title="cairo_write_func_t ()"><span class="type">cairo_write_func_t</span></a> to accept the output data, may be <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+to indicate a no-op <em class="parameter"><code>write_func</code></em>
+. With a no-op <em class="parameter"><code>write_func</code></em>
+,
+the surface may be queried or used as a source without
+generating any temporary files.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>closure</p></td>
+<td class="parameter_description"><p>the closure argument for <em class="parameter"><code>write_func</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>width_in_points</p></td>
+<td class="parameter_description"><p>width of the surface, in points (1 point == 1/72.0 inch)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>height_in_points</p></td>
+<td class="parameter_description"><p>height of the surface, in points (1 point == 1/72.0 inch)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-ps-surface-create-for-stream.returns"></a><h4>Returns</h4>
+<p> a pointer to the newly created surface. The caller
+owns the surface and should call <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-destroy" title="cairo_surface_destroy ()"><code class="function">cairo_surface_destroy()</code></a> when done
+with it.</p>
+<p>This function always returns a valid pointer, but it will return a
+pointer to a "nil" surface if an error such as out of memory
+occurs. You can use <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-status" title="cairo_surface_status ()"><code class="function">cairo_surface_status()</code></a> to check for this.</p>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-ps-surface-restrict-to-level"></a><h3>cairo_ps_surface_restrict_to_level ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_ps_surface_restrict_to_level (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-level-t" title="enum cairo_ps_level_t"><span class="type">cairo_ps_level_t</span></a> level</code></em>);</pre>
+<p>Restricts the generated PostSript file to <em class="parameter"><code>level</code></em>
+. See
+<a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-get-levels" title="cairo_ps_get_levels ()"><code class="function">cairo_ps_get_levels()</code></a> for a list of available level values that
+can be used here.</p>
+<p>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.</p>
+<div class="refsect3">
+<a name="cairo-ps-surface-restrict-to-level.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a PostScript <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>level</p></td>
+<td class="parameter_description"><p>PostScript level</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-ps-get-levels"></a><h3>cairo_ps_get_levels ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_ps_get_levels (<em class="parameter"><code><a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-level-t" title="enum cairo_ps_level_t"><span class="type">cairo_ps_level_t</span></a> const **levels</code></em>,
+ <em class="parameter"><code><span class="type">int</span> *num_levels</code></em>);</pre>
+<p>Used to retrieve the list of supported levels. See
+<a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-restrict-to-level" title="cairo_ps_surface_restrict_to_level ()"><code class="function">cairo_ps_surface_restrict_to_level()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-ps-get-levels.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>levels</p></td>
+<td class="parameter_description"><p>supported level list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>num_levels</p></td>
+<td class="parameter_description"><p>list length</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-ps-level-to-string"></a><h3>cairo_ps_level_to_string ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> *
+cairo_ps_level_to_string (<em class="parameter"><code><a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-level-t" title="enum cairo_ps_level_t"><span class="type">cairo_ps_level_t</span></a> level</code></em>);</pre>
+<p>Get the string representation of the given <em class="parameter"><code>level</code></em>
+ id. This function
+will return <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>level</code></em>
+ id isn't valid. See <a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-get-levels" title="cairo_ps_get_levels ()"><code class="function">cairo_ps_get_levels()</code></a>
+for a way to get the list of valid level ids.</p>
+<div class="refsect3">
+<a name="cairo-ps-level-to-string.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>level</p></td>
+<td class="parameter_description"><p>a level id</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-ps-level-to-string.returns"></a><h4>Returns</h4>
+<p> the string associated to given level.</p>
+</div>
+<p class="since">Since: 1.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-ps-surface-set-eps"></a><h3>cairo_ps_surface_set_eps ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_ps_surface_set_eps (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-Types.html#cairo-bool-t" title="cairo_bool_t"><span class="type">cairo_bool_t</span></a> eps</code></em>);</pre>
+<p>If <em class="parameter"><code>eps</code></em>
+ is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, the PostScript surface will output Encapsulated
+PostScript.</p>
+<p>This function should only be called before any drawing operations
+have been performed on the current page. The simplest way to do
+this is to call this function immediately after creating the
+surface. An Encapsulated PostScript file should never contain more
+than one page.</p>
+<div class="refsect3">
+<a name="cairo-ps-surface-set-eps.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a PostScript <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>eps</p></td>
+<td class="parameter_description"><p><a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> to output EPS format PostScript</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-ps-surface-get-eps"></a><h3>cairo_ps_surface_get_eps ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Types.html#cairo-bool-t" title="cairo_bool_t"><span class="returnvalue">cairo_bool_t</span></a>
+cairo_ps_surface_get_eps (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
+<p>Check whether the PostScript surface will output Encapsulated PostScript.</p>
+<div class="refsect3">
+<a name="cairo-ps-surface-get-eps.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a PostScript <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-ps-surface-get-eps.returns"></a><h4>Returns</h4>
+<p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the surface will output Encapsulated PostScript.</p>
+</div>
+<p class="since">Since: 1.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-ps-surface-set-size"></a><h3>cairo_ps_surface_set_size ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_ps_surface_set_size (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
+ <em class="parameter"><code><span class="type">double</span> width_in_points</code></em>,
+ <em class="parameter"><code><span class="type">double</span> height_in_points</code></em>);</pre>
+<p>Changes the size of a PostScript surface for the current (and
+subsequent) pages.</p>
+<p>This function should only be called before any drawing operations
+have been performed on the current page. The simplest way to do
+this is to call this function immediately after creating the
+surface or immediately after completing a page with either
+<a class="link" href="cairo-cairo-t.html#cairo-show-page" title="cairo_show_page ()"><code class="function">cairo_show_page()</code></a> or <a class="link" href="cairo-cairo-t.html#cairo-copy-page" title="cairo_copy_page ()"><code class="function">cairo_copy_page()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-ps-surface-set-size.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a PostScript <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>width_in_points</p></td>
+<td class="parameter_description"><p>new surface width, in points (1 point == 1/72.0 inch)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>height_in_points</p></td>
+<td class="parameter_description"><p>new surface height, in points (1 point == 1/72.0 inch)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-ps-surface-dsc-begin-setup"></a><h3>cairo_ps_surface_dsc_begin_setup ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_ps_surface_dsc_begin_setup (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
+<p>This function indicates that subsequent calls to
+<a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-comment" title="cairo_ps_surface_dsc_comment ()"><code class="function">cairo_ps_surface_dsc_comment()</code></a> should direct comments to the Setup
+section of the PostScript output.</p>
+<p>This function should be called at most once per surface, and must
+be called before any call to <a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-begin-page-setup" title="cairo_ps_surface_dsc_begin_page_setup ()"><code class="function">cairo_ps_surface_dsc_begin_page_setup()</code></a>
+and before any drawing is performed to the surface.</p>
+<p>See <a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-comment" title="cairo_ps_surface_dsc_comment ()"><code class="function">cairo_ps_surface_dsc_comment()</code></a> for more details.</p>
+<div class="refsect3">
+<a name="cairo-ps-surface-dsc-begin-setup.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a PostScript <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-ps-surface-dsc-begin-page-setup"></a><h3>cairo_ps_surface_dsc_begin_page_setup ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_ps_surface_dsc_begin_page_setup (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
+<p>This function indicates that subsequent calls to
+<a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-comment" title="cairo_ps_surface_dsc_comment ()"><code class="function">cairo_ps_surface_dsc_comment()</code></a> should direct comments to the
+PageSetup section of the PostScript output.</p>
+<p>This function call is only needed for the first page of a
+surface. It should be called after any call to
+<a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-begin-setup" title="cairo_ps_surface_dsc_begin_setup ()"><code class="function">cairo_ps_surface_dsc_begin_setup()</code></a> and before any drawing is
+performed to the surface.</p>
+<p>See <a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-comment" title="cairo_ps_surface_dsc_comment ()"><code class="function">cairo_ps_surface_dsc_comment()</code></a> for more details.</p>
+<div class="refsect3">
+<a name="cairo-ps-surface-dsc-begin-page-setup.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a PostScript <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-ps-surface-dsc-comment"></a><h3>cairo_ps_surface_dsc_comment ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_ps_surface_dsc_comment (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *comment</code></em>);</pre>
+<p>Emit a comment into the PostScript output for the given surface.</p>
+<p>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.</p>
+<p>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 <em class="parameter"><code>surface</code></em>
+ into an error state. But
+beyond these two conditions, this function will not enforce
+conformance of the comment with any particular specification.</p>
+<p>The comment string should not have a trailing newline.</p>
+<p>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.</p>
+<p>For comments to appear in the header section, this function should
+be called after the surface is created, but before a call to
+<a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-begin-setup" title="cairo_ps_surface_dsc_begin_setup ()"><code class="function">cairo_ps_surface_dsc_begin_setup()</code></a>.</p>
+<p>For comments to appear in the Setup section, this function should
+be called after a call to <a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-begin-setup" title="cairo_ps_surface_dsc_begin_setup ()"><code class="function">cairo_ps_surface_dsc_begin_setup()</code></a> but
+before a call to <a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-begin-page-setup" title="cairo_ps_surface_dsc_begin_page_setup ()"><code class="function">cairo_ps_surface_dsc_begin_page_setup()</code></a>.</p>
+<p>For comments to appear in the PageSetup section, this function
+should be called after a call to
+<a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-begin-page-setup" title="cairo_ps_surface_dsc_begin_page_setup ()"><code class="function">cairo_ps_surface_dsc_begin_page_setup()</code></a>.</p>
+<p>Note that it is only necessary to call
+<a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-begin-page-setup" title="cairo_ps_surface_dsc_begin_page_setup ()"><code class="function">cairo_ps_surface_dsc_begin_page_setup()</code></a> for the first page of any
+surface. After a call to <a class="link" href="cairo-cairo-t.html#cairo-show-page" title="cairo_show_page ()"><code class="function">cairo_show_page()</code></a> or <a class="link" href="cairo-cairo-t.html#cairo-copy-page" title="cairo_copy_page ()"><code class="function">cairo_copy_page()</code></a>
+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.</p>
+<p>As a final note, cairo automatically generates several comments on
+its own. As such, applications must not manually generate any of
+the following comments:</p>
+<p>Header section: %!PS-Adobe-3.0, %%Creator, %%CreationDate, %%Pages,
+%%BoundingBox, %%DocumentData, %%LanguageLevel, %%EndComments.</p>
+<p>Setup section: %%BeginSetup, %%EndSetup</p>
+<p>PageSetup section: %%BeginPageSetup, %%PageBoundingBox, %%EndPageSetup.</p>
+<p>Other sections: %%BeginProlog, %%EndProlog, %%Page, %%Trailer, %%EOF</p>
+<p>Here is an example sequence showing how this function might be used:</p>
+<div class="informalexample">
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+ <tbody>
+ <tr>
+ <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18</pre></td>
+ <td class="listing_code"><pre class="programlisting">cairo_surface_t <span class="gtkdoc opt">*</span>surface <span class="gtkdoc opt">=</span> <span class="function"><a href="cairo-PostScript-Surfaces.html#cairo-ps-surface-create">cairo_ps_surface_create</a></span> <span class="gtkdoc opt">(</span>filename<span class="gtkdoc opt">,</span> width<span class="gtkdoc opt">,</span> height<span class="gtkdoc opt">);</span>
+<span class="gtkdoc opt">...</span>
+<span class="function"><a href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-comment">cairo_ps_surface_dsc_comment</a></span> <span class="gtkdoc opt">(</span>surface<span class="gtkdoc opt">,</span> <span class="string">&quot;%%Title: My excellent document&quot;</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-comment">cairo_ps_surface_dsc_comment</a></span> <span class="gtkdoc opt">(</span>surface<span class="gtkdoc opt">,</span> <span class="string">&quot;%%Copyright: Copyright (C) 2006 Cairo Lover&quot;</span><span class="gtkdoc opt">)</span>
+<span class="gtkdoc opt">...</span>
+<span class="function"><a href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-begin-setup">cairo_ps_surface_dsc_begin_setup</a></span> <span class="gtkdoc opt">(</span>surface<span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-comment">cairo_ps_surface_dsc_comment</a></span> <span class="gtkdoc opt">(</span>surface<span class="gtkdoc opt">,</span> <span class="string">&quot;%%IncludeFeature: *MediaColor White&quot;</span><span class="gtkdoc opt">);</span>
+<span class="gtkdoc opt">...</span>
+<span class="function"><a href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-begin-page-setup">cairo_ps_surface_dsc_begin_page_setup</a></span> <span class="gtkdoc opt">(</span>surface<span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-comment">cairo_ps_surface_dsc_comment</a></span> <span class="gtkdoc opt">(</span>surface<span class="gtkdoc opt">,</span> <span class="string">&quot;%%IncludeFeature: *PageSize A3&quot;</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-comment">cairo_ps_surface_dsc_comment</a></span> <span class="gtkdoc opt">(</span>surface<span class="gtkdoc opt">,</span> <span class="string">&quot;%%IncludeFeature: *InputSlot LargeCapacity&quot;</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-comment">cairo_ps_surface_dsc_comment</a></span> <span class="gtkdoc opt">(</span>surface<span class="gtkdoc opt">,</span> <span class="string">&quot;%%IncludeFeature: *MediaType Glossy&quot;</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-comment">cairo_ps_surface_dsc_comment</a></span> <span class="gtkdoc opt">(</span>surface<span class="gtkdoc opt">,</span> <span class="string">&quot;%%IncludeFeature: *MediaColor Blue&quot;</span><span class="gtkdoc opt">);</span>
+<span class="gtkdoc opt">...</span> draw to first page here <span class="gtkdoc opt">..</span>
+<span class="function"><a href="cairo-cairo-t.html#cairo-show-page">cairo_show_page</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">);</span>
+<span class="gtkdoc opt">...</span>
+<span class="function"><a href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-comment">cairo_ps_surface_dsc_comment</a></span> <span class="gtkdoc opt">(</span>surface<span class="gtkdoc opt">,</span> <span class="string">&quot;%%IncludeFeature: *PageSize A5&quot;</span><span class="gtkdoc opt">);</span>
+<span class="gtkdoc opt">...</span></pre></td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+
+<div class="refsect3">
+<a name="cairo-ps-surface-dsc-comment.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a PostScript <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>comment</p></td>
+<td class="parameter_description"><p>a comment string to be emitted into the PostScript output</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-PostScript-Surfaces.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="CAIRO-HAS-PS-SURFACE:CAPS"></a><h3>CAIRO_HAS_PS_SURFACE</h3>
+<pre class="programlisting">#define CAIRO_HAS_PS_SURFACE 1
+</pre>
+<p>Defined if the PostScript surface backend is available.
+This macro can be used to conditionally compile backend-specific code.</p>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-ps-level-t"></a><h3>enum cairo_ps_level_t</h3>
+<p><a class="link" href="cairo-PostScript-Surfaces.html#cairo-ps-level-t" title="enum cairo_ps_level_t"><span class="type">cairo_ps_level_t</span></a> is used to describe the language level of the
+PostScript Language Reference that a generated PostScript file will
+conform to.</p>
+<div class="refsect3">
+<a name="cairo-ps-level-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-PS-LEVEL-2:CAPS"></a>CAIRO_PS_LEVEL_2</p></td>
+<td class="enum_member_description">
+<p>The language level 2 of the PostScript specification. (Since 1.6)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-PS-LEVEL-3:CAPS"></a>CAIRO_PS_LEVEL_3</p></td>
+<td class="enum_member_description">
+<p>The language level 3 of the PostScript specification. (Since 1.6)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.6</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-PostScript-Surfaces.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Quartz (CGFont) Fonts: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="cairo-fonts.html" title="Fonts">
+<link rel="prev" href="cairo-Win32-Fonts.html" title="Win32 Fonts">
+<link rel="next" href="cairo-User-Fonts.html" title="User Fonts">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+ <a href="#cairo-Quartz-(CGFont)-Fonts.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="cairo-fonts.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="cairo-Win32-Fonts.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="cairo-User-Fonts.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="cairo-Quartz-(CGFont)-Fonts"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="cairo-Quartz-(CGFont)-Fonts.top_of_page"></a>Quartz (CGFont) Fonts</span></h2>
+<p>Quartz (CGFont) Fonts — Font support via CGFont on OS X</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="cairo-Quartz-(CGFont)-Fonts.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="returnvalue">cairo_font_face_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Quartz-(CGFont)-Fonts.html#cairo-quartz-font-face-create-for-cgfont" title="cairo_quartz_font_face_create_for_cgfont ()">cairo_quartz_font_face_create_for_cgfont</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="returnvalue">cairo_font_face_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Quartz-(CGFont)-Fonts.html#cairo-quartz-font-face-create-for-atsu-font-id" title="cairo_quartz_font_face_create_for_atsu_font_id ()">cairo_quartz_font_face_create_for_atsu_font_id</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-Quartz-(CGFont)-Fonts.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="cairo-Quartz-(CGFont)-Fonts.html#CAIRO-HAS-QUARTZ-FONT:CAPS" title="CAIRO_HAS_QUARTZ_FONT">CAIRO_HAS_QUARTZ_FONT</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-Quartz-(CGFont)-Fonts.description"></a><h2>Description</h2>
+<p>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.</p>
+</div>
+<div class="refsect1">
+<a name="cairo-Quartz-(CGFont)-Fonts.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="cairo-quartz-font-face-create-for-cgfont"></a><h3>cairo_quartz_font_face_create_for_cgfont ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="returnvalue">cairo_font_face_t</span></a> *
+cairo_quartz_font_face_create_for_cgfont
+ (<em class="parameter"><code><span class="type">CGFontRef</span> font</code></em>);</pre>
+<p>Creates a new font for the Quartz font backend based on a
+<span class="type">CGFontRef</span>. This font can then be used with
+<a class="link" href="cairo-text.html#cairo-set-font-face" title="cairo_set_font_face ()"><code class="function">cairo_set_font_face()</code></a> or <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-create" title="cairo_scaled_font_create ()"><code class="function">cairo_scaled_font_create()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-quartz-font-face-create-for-cgfont.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>font</p></td>
+<td class="parameter_description"><p>a <span class="type">CGFontRef</span> obtained through a method external to cairo.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-quartz-font-face-create-for-cgfont.returns"></a><h4>Returns</h4>
+<p> a newly created <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a>. Free with
+<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-destroy" title="cairo_font_face_destroy ()"><code class="function">cairo_font_face_destroy()</code></a> when you are done using it.</p>
+</div>
+<p class="since">Since: 1.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-quartz-font-face-create-for-atsu-font-id"></a><h3>cairo_quartz_font_face_create_for_atsu_font_id ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="returnvalue">cairo_font_face_t</span></a> *
+cairo_quartz_font_face_create_for_atsu_font_id
+ (<em class="parameter"><code><span class="type">ATSUFontID</span> font_id</code></em>);</pre>
+<p>Creates a new font for the Quartz font backend based on an
+<span class="type">ATSUFontID</span>. This font can then be used with
+<a class="link" href="cairo-text.html#cairo-set-font-face" title="cairo_set_font_face ()"><code class="function">cairo_set_font_face()</code></a> or <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-create" title="cairo_scaled_font_create ()"><code class="function">cairo_scaled_font_create()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-quartz-font-face-create-for-atsu-font-id.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>font_id</p></td>
+<td class="parameter_description"><p>an ATSUFontID for the font.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-quartz-font-face-create-for-atsu-font-id.returns"></a><h4>Returns</h4>
+<p> a newly created <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a>. Free with
+<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-destroy" title="cairo_font_face_destroy ()"><code class="function">cairo_font_face_destroy()</code></a> when you are done using it.</p>
+</div>
+<p class="since">Since: 1.6</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-Quartz-(CGFont)-Fonts.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="CAIRO-HAS-QUARTZ-FONT:CAPS"></a><h3>CAIRO_HAS_QUARTZ_FONT</h3>
+<pre class="programlisting">#define CAIRO_HAS_QUARTZ_FONT 1
+</pre>
+<p>Defined if the Quartz font backend is available.
+This macro can be used to conditionally compile backend-specific code.</p>
+<p class="since">Since: 1.6</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-Quartz-(CGFont)-Fonts.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a></p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Quartz Surfaces: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="cairo-surfaces.html" title="Surfaces">
+<link rel="prev" href="cairo-SVG-Surfaces.html" title="SVG Surfaces">
+<link rel="next" href="cairo-XCB-Surfaces.html" title="XCB Surfaces">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+ <a href="#cairo-Quartz-Surfaces.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="cairo-surfaces.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="cairo-SVG-Surfaces.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="cairo-XCB-Surfaces.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="cairo-Quartz-Surfaces"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="cairo-Quartz-Surfaces.top_of_page"></a>Quartz Surfaces</span></h2>
+<p>Quartz Surfaces — Rendering to Quartz surfaces</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="cairo-Quartz-Surfaces.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Quartz-Surfaces.html#cairo-quartz-surface-create" title="cairo_quartz_surface_create ()">cairo_quartz_surface_create</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Quartz-Surfaces.html#cairo-quartz-surface-create-for-cg-context" title="cairo_quartz_surface_create_for_cg_context ()">cairo_quartz_surface_create_for_cg_context</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">CGContextRef</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Quartz-Surfaces.html#cairo-quartz-surface-get-cg-context" title="cairo_quartz_surface_get_cg_context ()">cairo_quartz_surface_get_cg_context</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-Quartz-Surfaces.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="cairo-Quartz-Surfaces.html#CAIRO-HAS-QUARTZ-SURFACE:CAPS" title="CAIRO_HAS_QUARTZ_SURFACE">CAIRO_HAS_QUARTZ_SURFACE</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-Quartz-Surfaces.description"></a><h2>Description</h2>
+<p>The Quartz surface is used to render cairo graphics targeting the
+Apple OS X Quartz rendering system.</p>
+</div>
+<div class="refsect1">
+<a name="cairo-Quartz-Surfaces.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="cairo-quartz-surface-create"></a><h3>cairo_quartz_surface_create ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+cairo_quartz_surface_create (<em class="parameter"><code><a class="link" href="cairo-Image-Surfaces.html#cairo-format-t" title="enum cairo_format_t"><span class="type">cairo_format_t</span></a> format</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> width</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> height</code></em>);</pre>
+<p>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.</p>
+<div class="refsect3">
+<a name="cairo-quartz-surface-create.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>format of pixels in the surface to create</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>width</p></td>
+<td class="parameter_description"><p>width of the surface, in pixels</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>height</p></td>
+<td class="parameter_description"><p>height of the surface, in pixels</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-quartz-surface-create.returns"></a><h4>Returns</h4>
+<p> the newly created surface.</p>
+</div>
+<p class="since">Since: 1.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-quartz-surface-create-for-cg-context"></a><h3>cairo_quartz_surface_create_for_cg_context ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+cairo_quartz_surface_create_for_cg_context
+ (<em class="parameter"><code><span class="type">CGContextRef</span> cgContext</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> width</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> height</code></em>);</pre>
+<p>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:</p>
+<div class="informalexample">
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+ <tbody>
+ <tr>
+ <td class="listing_lines" align="right"><pre>1
+2</pre></td>
+ <td class="listing_code"><pre class="programlisting"><span class="function">CGContextTranslateCTM</span> <span class="gtkdoc opt">(</span>cgContext<span class="gtkdoc opt">,</span> <span class="number">0.0</span><span class="gtkdoc opt">,</span> height<span class="gtkdoc opt">);</span>
+<span class="function">CGContextScaleCTM</span> <span class="gtkdoc opt">(</span>cgContext<span class="gtkdoc opt">,</span> <span class="number">1.0</span><span class="gtkdoc opt">, -</span><span class="number">1.0</span><span class="gtkdoc opt">);</span></pre></td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+
+<p>All Cairo operations are implemented in terms of Quartz operations,
+as long as Quartz-compatible elements are used (such as Quartz fonts).</p>
+<div class="refsect3">
+<a name="cairo-quartz-surface-create-for-cg-context.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cgContext</p></td>
+<td class="parameter_description"><p>the existing CGContext for which to create the surface</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>width</p></td>
+<td class="parameter_description"><p>width of the surface, in pixels</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>height</p></td>
+<td class="parameter_description"><p>height of the surface, in pixels</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-quartz-surface-create-for-cg-context.returns"></a><h4>Returns</h4>
+<p> the newly created Cairo surface.</p>
+</div>
+<p class="since">Since: 1.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-quartz-surface-get-cg-context"></a><h3>cairo_quartz_surface_get_cg_context ()</h3>
+<pre class="programlisting"><span class="returnvalue">CGContextRef</span>
+cairo_quartz_surface_get_cg_context (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
+<p>Returns the CGContextRef that the given Quartz surface is backed
+by.</p>
+<p>A call to <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-flush" title="cairo_surface_flush ()"><code class="function">cairo_surface_flush()</code></a> 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 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-mark-dirty" title="cairo_surface_mark_dirty ()"><code class="function">cairo_surface_mark_dirty()</code></a> is required
+after the state or the content of the CGContextRef has been
+modified.</p>
+<div class="refsect3">
+<a name="cairo-quartz-surface-get-cg-context.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>the Cairo Quartz surface</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-quartz-surface-get-cg-context.returns"></a><h4>Returns</h4>
+<p> the CGContextRef for the given surface.</p>
+</div>
+<p class="since">Since: 1.6</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-Quartz-Surfaces.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="CAIRO-HAS-QUARTZ-SURFACE:CAPS"></a><h3>CAIRO_HAS_QUARTZ_SURFACE</h3>
+<pre class="programlisting">#define CAIRO_HAS_QUARTZ_SURFACE 1
+</pre>
+<p>Defined if the Quartz surface backend is available.
+This macro can be used to conditionally compile backend-specific code.</p>
+<p class="since">Since: 1.6</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-Quartz-Surfaces.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Raster Sources: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="cairo-drawing.html" title="Drawing">
+<link rel="prev" href="cairo-text.html" title="text">
+<link rel="next" href="cairo-Tags-and-Links.html" title="Tags and Links">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+ <a href="#cairo-Raster-Sources.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="cairo-drawing.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="cairo-text.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="cairo-Tags-and-Links.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="cairo-Raster-Sources"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="cairo-Raster-Sources.top_of_page"></a>Raster Sources</span></h2>
+<p>Raster Sources — Supplying arbitrary image data</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="cairo-Raster-Sources.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="returnvalue">cairo_pattern_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Raster-Sources.html#cairo-pattern-create-raster-source" title="cairo_pattern_create_raster_source ()">cairo_pattern_create_raster_source</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-set-callback-data" title="cairo_raster_source_pattern_set_callback_data ()">cairo_raster_source_pattern_set_callback_data</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-get-callback-data" title="cairo_raster_source_pattern_get_callback_data ()">cairo_raster_source_pattern_get_callback_data</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-set-acquire" title="cairo_raster_source_pattern_set_acquire ()">cairo_raster_source_pattern_set_acquire</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-get-acquire" title="cairo_raster_source_pattern_get_acquire ()">cairo_raster_source_pattern_get_acquire</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-set-snapshot" title="cairo_raster_source_pattern_set_snapshot ()">cairo_raster_source_pattern_set_snapshot</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Raster-Sources.html#cairo-raster-source-snapshot-func-t" title="cairo_raster_source_snapshot_func_t ()"><span class="returnvalue">cairo_raster_source_snapshot_func_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-get-snapshot" title="cairo_raster_source_pattern_get_snapshot ()">cairo_raster_source_pattern_get_snapshot</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-set-copy" title="cairo_raster_source_pattern_set_copy ()">cairo_raster_source_pattern_set_copy</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Raster-Sources.html#cairo-raster-source-copy-func-t" title="cairo_raster_source_copy_func_t ()"><span class="returnvalue">cairo_raster_source_copy_func_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-get-copy" title="cairo_raster_source_pattern_get_copy ()">cairo_raster_source_pattern_get_copy</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-set-finish" title="cairo_raster_source_pattern_set_finish ()">cairo_raster_source_pattern_set_finish</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Raster-Sources.html#cairo-raster-source-finish-func-t" title="cairo_raster_source_finish_func_t ()"><span class="returnvalue">cairo_raster_source_finish_func_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-get-finish" title="cairo_raster_source_pattern_get_finish ()">cairo_raster_source_pattern_get_finish</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a>
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="cairo-Raster-Sources.html#cairo-raster-source-acquire-func-t" title="cairo_raster_source_acquire_func_t ()">*cairo_raster_source_acquire_func_t</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="cairo-Raster-Sources.html#cairo-raster-source-release-func-t" title="cairo_raster_source_release_func_t ()">*cairo_raster_source_release_func_t</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="cairo-Raster-Sources.html#cairo-raster-source-snapshot-func-t" title="cairo_raster_source_snapshot_func_t ()">*cairo_raster_source_snapshot_func_t</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="cairo-Raster-Sources.html#cairo-raster-source-copy-func-t" title="cairo_raster_source_copy_func_t ()">*cairo_raster_source_copy_func_t</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="cairo-Raster-Sources.html#cairo-raster-source-finish-func-t" title="cairo_raster_source_finish_func_t ()">*cairo_raster_source_finish_func_t</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-Raster-Sources.description"></a><h2>Description</h2>
+<p>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.</p>
+<p>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.</p>
+</div>
+<div class="refsect1">
+<a name="cairo-Raster-Sources.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="cairo-pattern-create-raster-source"></a><h3>cairo_pattern_create_raster_source ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="returnvalue">cairo_pattern_t</span></a> *
+cairo_pattern_create_raster_source (<em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-content-t" title="enum cairo_content_t"><span class="type">cairo_content_t</span></a> content</code></em>,
+ <em class="parameter"><code><span class="type">int</span> width</code></em>,
+ <em class="parameter"><code><span class="type">int</span> height</code></em>);</pre>
+<p>Creates a new user pattern for providing pixel data.</p>
+<p>Use the setter functions to associate callbacks with the returned
+pattern. The only mandatory callback is acquire.</p>
+<div class="refsect3">
+<a name="cairo-pattern-create-raster-source.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>the user data to be passed to all callbacks</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>content</p></td>
+<td class="parameter_description"><p>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.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>width</p></td>
+<td class="parameter_description"><p>maximum size of the sample area</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>height</p></td>
+<td class="parameter_description"><p>maximum size of the sample area</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-pattern-create-raster-source.returns"></a><h4>Returns</h4>
+<p> a newly created <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a>. Free with
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-destroy" title="cairo_pattern_destroy ()"><code class="function">cairo_pattern_destroy()</code></a> when you are done using it.</p>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-raster-source-pattern-set-callback-data"></a><h3>cairo_raster_source_pattern_set_callback_data ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_raster_source_pattern_set_callback_data
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *data</code></em>);</pre>
+<p>Updates the user data that is provided to all callbacks.</p>
+<div class="refsect3">
+<a name="cairo-raster-source-pattern-set-callback-data.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>the pattern to update</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>the user data to be passed to all callbacks</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-raster-source-pattern-get-callback-data"></a><h3>cairo_raster_source_pattern_get_callback_data ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> *
+cairo_raster_source_pattern_get_callback_data
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>);</pre>
+<p>Queries the current user data.</p>
+<div class="refsect3">
+<a name="cairo-raster-source-pattern-get-callback-data.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>the pattern to update</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-raster-source-pattern-get-callback-data.returns"></a><h4>Returns</h4>
+<p> the current user-data passed to each callback</p>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-raster-source-pattern-set-acquire"></a><h3>cairo_raster_source_pattern_set_acquire ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_raster_source_pattern_set_acquire
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-Raster-Sources.html#cairo-raster-source-acquire-func-t" title="cairo_raster_source_acquire_func_t ()"><span class="type">cairo_raster_source_acquire_func_t</span></a> acquire</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-Raster-Sources.html#cairo-raster-source-release-func-t" title="cairo_raster_source_release_func_t ()"><span class="type">cairo_raster_source_release_func_t</span></a> release</code></em>);</pre>
+<p>Specifies the callbacks used to generate the image surface for a rendering
+operation (acquire) and the function used to cleanup that surface afterwards.</p>
+<p>The <em class="parameter"><code>acquire</code></em>
+ callback should create a surface (preferably an image
+surface created to match the target using
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-create-similar-image" title="cairo_surface_create_similar_image ()"><code class="function">cairo_surface_create_similar_image()</code></a>) 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 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-set-device-offset" title="cairo_surface_set_device_offset ()"><code class="function">cairo_surface_set_device_offset()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-raster-source-pattern-set-acquire.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>the pattern to update</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>acquire</p></td>
+<td class="parameter_description"><p>acquire callback</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>release</p></td>
+<td class="parameter_description"><p>release callback</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-raster-source-pattern-get-acquire"></a><h3>cairo_raster_source_pattern_get_acquire ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_raster_source_pattern_get_acquire
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-Raster-Sources.html#cairo-raster-source-acquire-func-t" title="cairo_raster_source_acquire_func_t ()"><span class="type">cairo_raster_source_acquire_func_t</span></a> *acquire</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-Raster-Sources.html#cairo-raster-source-release-func-t" title="cairo_raster_source_release_func_t ()"><span class="type">cairo_raster_source_release_func_t</span></a> *release</code></em>);</pre>
+<p>Queries the current acquire and release callbacks.</p>
+<div class="refsect3">
+<a name="cairo-raster-source-pattern-get-acquire.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>the pattern to query</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>acquire</p></td>
+<td class="parameter_description"><p>return value for the current acquire callback</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>release</p></td>
+<td class="parameter_description"><p>return value for the current release callback</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-raster-source-pattern-set-snapshot"></a><h3>cairo_raster_source_pattern_set_snapshot ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_raster_source_pattern_set_snapshot
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-Raster-Sources.html#cairo-raster-source-snapshot-func-t" title="cairo_raster_source_snapshot_func_t ()"><span class="type">cairo_raster_source_snapshot_func_t</span></a> snapshot</code></em>);</pre>
+<p>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.</p>
+<div class="refsect3">
+<a name="cairo-raster-source-pattern-set-snapshot.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>the pattern to update</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>snapshot</p></td>
+<td class="parameter_description"><p>snapshot callback</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-raster-source-pattern-get-snapshot"></a><h3>cairo_raster_source_pattern_get_snapshot ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Raster-Sources.html#cairo-raster-source-snapshot-func-t" title="cairo_raster_source_snapshot_func_t ()"><span class="returnvalue">cairo_raster_source_snapshot_func_t</span></a>
+cairo_raster_source_pattern_get_snapshot
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>);</pre>
+<p>Queries the current snapshot callback.</p>
+<div class="refsect3">
+<a name="cairo-raster-source-pattern-get-snapshot.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>the pattern to query</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-raster-source-pattern-get-snapshot.returns"></a><h4>Returns</h4>
+<p> the current snapshot callback</p>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-raster-source-pattern-set-copy"></a><h3>cairo_raster_source_pattern_set_copy ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_raster_source_pattern_set_copy (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-Raster-Sources.html#cairo-raster-source-copy-func-t" title="cairo_raster_source_copy_func_t ()"><span class="type">cairo_raster_source_copy_func_t</span></a> copy</code></em>);</pre>
+<p>Updates the copy callback which is used whenever a temporary copy of the
+pattern is taken.</p>
+<div class="refsect3">
+<a name="cairo-raster-source-pattern-set-copy.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>the pattern to update</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>copy</p></td>
+<td class="parameter_description"><p>the copy callback</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-raster-source-pattern-get-copy"></a><h3>cairo_raster_source_pattern_get_copy ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Raster-Sources.html#cairo-raster-source-copy-func-t" title="cairo_raster_source_copy_func_t ()"><span class="returnvalue">cairo_raster_source_copy_func_t</span></a>
+cairo_raster_source_pattern_get_copy (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>);</pre>
+<p>Queries the current copy callback.</p>
+<div class="refsect3">
+<a name="cairo-raster-source-pattern-get-copy.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>the pattern to query</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-raster-source-pattern-get-copy.returns"></a><h4>Returns</h4>
+<p> the current copy callback</p>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-raster-source-pattern-set-finish"></a><h3>cairo_raster_source_pattern_set_finish ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_raster_source_pattern_set_finish
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-Raster-Sources.html#cairo-raster-source-finish-func-t" title="cairo_raster_source_finish_func_t ()"><span class="type">cairo_raster_source_finish_func_t</span></a> finish</code></em>);</pre>
+<p>Updates the finish callback which is used whenever a pattern (or a copy
+thereof) will no longer be used.</p>
+<div class="refsect3">
+<a name="cairo-raster-source-pattern-set-finish.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>the pattern to update</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>finish</p></td>
+<td class="parameter_description"><p>the finish callback</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-raster-source-pattern-get-finish"></a><h3>cairo_raster_source_pattern_get_finish ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Raster-Sources.html#cairo-raster-source-finish-func-t" title="cairo_raster_source_finish_func_t ()"><span class="returnvalue">cairo_raster_source_finish_func_t</span></a>
+cairo_raster_source_pattern_get_finish
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>);</pre>
+<p>Queries the current finish callback.</p>
+<div class="refsect3">
+<a name="cairo-raster-source-pattern-get-finish.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>the pattern to query</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-raster-source-pattern-get-finish.returns"></a><h4>Returns</h4>
+<p> the current finish callback</p>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-raster-source-acquire-func-t"></a><h3>cairo_raster_source_acquire_func_t ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a>
+<span class="c_punctuation">(</span>*cairo_raster_source_acquire_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *callback_data</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *target</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-Types.html#cairo-rectangle-int-t" title="cairo_rectangle_int_t"><span class="type">cairo_rectangle_int_t</span></a> *extents</code></em>);</pre>
+<p><a class="link" href="cairo-Raster-Sources.html#cairo-raster-source-acquire-func-t" title="cairo_raster_source_acquire_func_t ()"><span class="type">cairo_raster_source_acquire_func_t</span></a> 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 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-create-similar-image" title="cairo_surface_create_similar_image ()"><code class="function">cairo_surface_create_similar_image()</code></a> 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
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-set-device-offset" title="cairo_surface_set_device_offset ()"><code class="function">cairo_surface_set_device_offset()</code></a> to specify the top-left corner of the
+sample data (along with width and height of the surface).</p>
+<div class="refsect3">
+<a name="cairo-raster-source-acquire-func-t.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>the pattern being rendered from</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>callback_data</p></td>
+<td class="parameter_description"><p>the user data supplied during creation</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>target</p></td>
+<td class="parameter_description"><p>the rendering target surface</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>extents</p></td>
+<td class="parameter_description"><p>rectangular region of interest in pixels in sample space</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-raster-source-acquire-func-t.returns"></a><h4>Returns</h4>
+<p> a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-raster-source-release-func-t"></a><h3>cairo_raster_source_release_func_t ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+<span class="c_punctuation">(</span>*cairo_raster_source_release_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *callback_data</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
+<p><a class="link" href="cairo-Raster-Sources.html#cairo-raster-source-release-func-t" title="cairo_raster_source_release_func_t ()"><span class="type">cairo_raster_source_release_func_t</span></a> 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.</p>
+<div class="refsect3">
+<a name="cairo-raster-source-release-func-t.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>the pattern being rendered from</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>callback_data</p></td>
+<td class="parameter_description"><p>the user data supplied during creation</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>the surface created during acquire</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-raster-source-snapshot-func-t"></a><h3>cairo_raster_source_snapshot_func_t ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+<span class="c_punctuation">(</span>*cairo_raster_source_snapshot_func_t<span class="c_punctuation">)</span>
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *callback_data</code></em>);</pre>
+<p><a class="link" href="cairo-Raster-Sources.html#cairo-raster-source-snapshot-func-t" title="cairo_raster_source_snapshot_func_t ()"><span class="type">cairo_raster_source_snapshot_func_t</span></a> 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.</p>
+<div class="refsect3">
+<a name="cairo-raster-source-snapshot-func-t.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>the pattern being rendered from</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>callback_data</p></td>
+<td class="parameter_description"><p>the user data supplied during creation</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-raster-source-snapshot-func-t.returns"></a><h4>Returns</h4>
+<p> CAIRO_STATUS_SUCCESS on success, or one of the
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="type">cairo_status_t</span></a> error codes for failure.</p>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-raster-source-copy-func-t"></a><h3>cairo_raster_source_copy_func_t ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+<span class="c_punctuation">(</span>*cairo_raster_source_copy_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *callback_data</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *other</code></em>);</pre>
+<p><a class="link" href="cairo-Raster-Sources.html#cairo-raster-source-copy-func-t" title="cairo_raster_source_copy_func_t ()"><span class="type">cairo_raster_source_copy_func_t</span></a> is the type of function which is
+called when the pattern gets copied as a normal part of rendering.</p>
+<div class="refsect3">
+<a name="cairo-raster-source-copy-func-t.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>the <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> that was copied to</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>callback_data</p></td>
+<td class="parameter_description"><p>the user data supplied during creation</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>other</p></td>
+<td class="parameter_description"><p>the <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> being used as the source for the copy</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-raster-source-copy-func-t.returns"></a><h4>Returns</h4>
+<p> CAIRO_STATUS_SUCCESS on success, or one of the
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="type">cairo_status_t</span></a> error codes for failure.</p>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-raster-source-finish-func-t"></a><h3>cairo_raster_source_finish_func_t ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+<span class="c_punctuation">(</span>*cairo_raster_source_finish_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *callback_data</code></em>);</pre>
+<p><a class="link" href="cairo-Raster-Sources.html#cairo-raster-source-finish-func-t" title="cairo_raster_source_finish_func_t ()"><span class="type">cairo_raster_source_finish_func_t</span></a> is the type of function which is
+called when the pattern (or a copy thereof) is no longer required.</p>
+<div class="refsect3">
+<a name="cairo-raster-source-finish-func-t.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>the pattern being rendered from</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>callback_data</p></td>
+<td class="parameter_description"><p>the user data supplied during creation</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-Raster-Sources.other_details"></a><h2>Types and Values</h2>
+</div>
+<div class="refsect1">
+<a name="cairo-Raster-Sources.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a></p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Recording Surfaces: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="cairo-surfaces.html" title="Surfaces">
+<link rel="prev" href="cairo-PostScript-Surfaces.html" title="PostScript Surfaces">
+<link rel="next" href="cairo-Win32-Surfaces.html" title="Win32 Surfaces">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+ <a href="#cairo-Recording-Surfaces.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="cairo-surfaces.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="cairo-PostScript-Surfaces.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="cairo-Win32-Surfaces.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="cairo-Recording-Surfaces"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="cairo-Recording-Surfaces.top_of_page"></a>Recording Surfaces</span></h2>
+<p>Recording Surfaces — Records all drawing operations</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="cairo-Recording-Surfaces.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Recording-Surfaces.html#cairo-recording-surface-create" title="cairo_recording_surface_create ()">cairo_recording_surface_create</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Recording-Surfaces.html#cairo-recording-surface-ink-extents" title="cairo_recording_surface_ink_extents ()">cairo_recording_surface_ink_extents</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Types.html#cairo-bool-t" title="cairo_bool_t"><span class="returnvalue">cairo_bool_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Recording-Surfaces.html#cairo-recording-surface-get-extents" title="cairo_recording_surface_get_extents ()">cairo_recording_surface_get_extents</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-Recording-Surfaces.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="cairo-Recording-Surfaces.html#CAIRO-HAS-RECORDING-SURFACE:CAPS" title="CAIRO_HAS_RECORDING_SURFACE">CAIRO_HAS_RECORDING_SURFACE</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-Recording-Surfaces.description"></a><h2>Description</h2>
+<p>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.</p>
+<p>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:</p>
+<div class="informalexample">
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+ <tbody>
+ <tr>
+ <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6</pre></td>
+ <td class="listing_code"><pre class="programlisting">cairo_t <span class="gtkdoc opt">*</span>cr<span class="gtkdoc opt">;</span>
+
+cr <span class="gtkdoc opt">=</span> <span class="function"><a href="cairo-cairo-t.html#cairo-create">cairo_create</a></span> <span class="gtkdoc opt">(</span>target<span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-cairo-t.html#cairo-set-source-surface">cairo_set_source_surface</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> recording_surface<span class="gtkdoc opt">,</span> <span class="number">0.0</span><span class="gtkdoc opt">,</span> <span class="number">0.0</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-cairo-t.html#cairo-paint">cairo_paint</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-cairo-t.html#cairo-destroy">cairo_destroy</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">);</span></pre></td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+
+<p>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.</p>
+<p>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.</p>
+</div>
+<div class="refsect1">
+<a name="cairo-Recording-Surfaces.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="cairo-recording-surface-create"></a><h3>cairo_recording_surface_create ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+cairo_recording_surface_create (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-content-t" title="enum cairo_content_t"><span class="type">cairo_content_t</span></a> content</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-cairo-t.html#cairo-rectangle-t" title="cairo_rectangle_t"><span class="type">cairo_rectangle_t</span></a> *extents</code></em>);</pre>
+<p>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.</p>
+<p>The recording phase of the recording surface is careful to snapshot all
+necessary objects (paths, patterns, etc.), in order to achieve
+accurate replay.</p>
+<div class="refsect3">
+<a name="cairo-recording-surface-create.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>content</p></td>
+<td class="parameter_description"><p>the content of the recording surface</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>extents</p></td>
+<td class="parameter_description"><p>the extents to record in pixels, can be <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to record
+unbounded operations.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-recording-surface-create.returns"></a><h4>Returns</h4>
+<p> a pointer to the newly created surface. The caller
+owns the surface and should call <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-destroy" title="cairo_surface_destroy ()"><code class="function">cairo_surface_destroy()</code></a> when done
+with it.</p>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-recording-surface-ink-extents"></a><h3>cairo_recording_surface_ink_extents ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_recording_surface_ink_extents (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *x0</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *y0</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *width</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *height</code></em>);</pre>
+<p>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.</p>
+<div class="refsect3">
+<a name="cairo-recording-surface-ink-extents.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <span class="type">cairo_recording_surface_t</span></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x0</p></td>
+<td class="parameter_description"><p>the x-coordinate of the top-left of the ink bounding box</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y0</p></td>
+<td class="parameter_description"><p>the y-coordinate of the top-left of the ink bounding box</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>width</p></td>
+<td class="parameter_description"><p>the width of the ink bounding box</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>height</p></td>
+<td class="parameter_description"><p>the height of the ink bounding box</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-recording-surface-get-extents"></a><h3>cairo_recording_surface_get_extents ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Types.html#cairo-bool-t" title="cairo_bool_t"><span class="returnvalue">cairo_bool_t</span></a>
+cairo_recording_surface_get_extents (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-rectangle-t" title="cairo_rectangle_t"><span class="type">cairo_rectangle_t</span></a> *extents</code></em>);</pre>
+<p>Get the extents of the recording-surface.</p>
+<div class="refsect3">
+<a name="cairo-recording-surface-get-extents.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <span class="type">cairo_recording_surface_t</span></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>extents</p></td>
+<td class="parameter_description"><p>the <a class="link" href="cairo-cairo-t.html#cairo-rectangle-t" title="cairo_rectangle_t"><span class="type">cairo_rectangle_t</span></a> to be assigned the extents</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-recording-surface-get-extents.returns"></a><h4>Returns</h4>
+<p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the surface is bounded, of recording type, and
+not in an error state, otherwise <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a></p>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-Recording-Surfaces.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="CAIRO-HAS-RECORDING-SURFACE:CAPS"></a><h3>CAIRO_HAS_RECORDING_SURFACE</h3>
+<pre class="programlisting">#define CAIRO_HAS_RECORDING_SURFACE 1
+</pre>
+<p>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.</p>
+<p class="since">Since: 1.10</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-Recording-Surfaces.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Regions: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="cairo-drawing.html" title="Drawing">
+<link rel="prev" href="cairo-cairo-pattern-t.html" title="cairo_pattern_t">
+<link rel="next" href="cairo-Transformations.html" title="Transformations">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+ <a href="#cairo-Regions.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="cairo-drawing.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="cairo-cairo-pattern-t.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="cairo-Transformations.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="cairo-Regions"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="cairo-Regions.top_of_page"></a>Regions</span></h2>
+<p>Regions — Representing a pixel-aligned area</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="cairo-Regions.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="returnvalue">cairo_region_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Regions.html#cairo-region-create" title="cairo_region_create ()">cairo_region_create</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="returnvalue">cairo_region_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Regions.html#cairo-region-create-rectangle" title="cairo_region_create_rectangle ()">cairo_region_create_rectangle</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="returnvalue">cairo_region_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Regions.html#cairo-region-create-rectangles" title="cairo_region_create_rectangles ()">cairo_region_create_rectangles</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="returnvalue">cairo_region_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Regions.html#cairo-region-copy" title="cairo_region_copy ()">cairo_region_copy</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="returnvalue">cairo_region_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Regions.html#cairo-region-reference" title="cairo_region_reference ()">cairo_region_reference</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Regions.html#cairo-region-destroy" title="cairo_region_destroy ()">cairo_region_destroy</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Regions.html#cairo-region-status" title="cairo_region_status ()">cairo_region_status</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Regions.html#cairo-region-get-extents" title="cairo_region_get_extents ()">cairo_region_get_extents</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Regions.html#cairo-region-num-rectangles" title="cairo_region_num_rectangles ()">cairo_region_num_rectangles</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Regions.html#cairo-region-get-rectangle" title="cairo_region_get_rectangle ()">cairo_region_get_rectangle</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Types.html#cairo-bool-t" title="cairo_bool_t"><span class="returnvalue">cairo_bool_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Regions.html#cairo-region-is-empty" title="cairo_region_is_empty ()">cairo_region_is_empty</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Types.html#cairo-bool-t" title="cairo_bool_t"><span class="returnvalue">cairo_bool_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Regions.html#cairo-region-contains-point" title="cairo_region_contains_point ()">cairo_region_contains_point</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Regions.html#cairo-region-overlap-t" title="enum cairo_region_overlap_t"><span class="returnvalue">cairo_region_overlap_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Regions.html#cairo-region-contains-rectangle" title="cairo_region_contains_rectangle ()">cairo_region_contains_rectangle</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Types.html#cairo-bool-t" title="cairo_bool_t"><span class="returnvalue">cairo_bool_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Regions.html#cairo-region-equal" title="cairo_region_equal ()">cairo_region_equal</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Regions.html#cairo-region-translate" title="cairo_region_translate ()">cairo_region_translate</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Regions.html#cairo-region-intersect" title="cairo_region_intersect ()">cairo_region_intersect</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Regions.html#cairo-region-intersect-rectangle" title="cairo_region_intersect_rectangle ()">cairo_region_intersect_rectangle</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Regions.html#cairo-region-subtract" title="cairo_region_subtract ()">cairo_region_subtract</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Regions.html#cairo-region-subtract-rectangle" title="cairo_region_subtract_rectangle ()">cairo_region_subtract_rectangle</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Regions.html#cairo-region-union" title="cairo_region_union ()">cairo_region_union</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Regions.html#cairo-region-union-rectangle" title="cairo_region_union_rectangle ()">cairo_region_union_rectangle</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Regions.html#cairo-region-xor" title="cairo_region_xor ()">cairo_region_xor</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Regions.html#cairo-region-xor-rectangle" title="cairo_region_xor_rectangle ()">cairo_region_xor_rectangle</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-Regions.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t">cairo_region_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="cairo-Regions.html#cairo-region-overlap-t" title="enum cairo_region_overlap_t">cairo_region_overlap_t</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-Regions.description"></a><h2>Description</h2>
+<p>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.</p>
+</div>
+<div class="refsect1">
+<a name="cairo-Regions.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="cairo-region-create"></a><h3>cairo_region_create ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="returnvalue">cairo_region_t</span></a> *
+cairo_region_create (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>Allocates a new empty region object.</p>
+<div class="refsect3">
+<a name="cairo-region-create.returns"></a><h4>Returns</h4>
+<p> A newly allocated <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a>. Free with
+<a class="link" href="cairo-Regions.html#cairo-region-destroy" title="cairo_region_destroy ()"><code class="function">cairo_region_destroy()</code></a>. 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 <a class="link" href="cairo-Regions.html#cairo-region-status" title="cairo_region_status ()"><code class="function">cairo_region_status()</code></a>.</p>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-region-create-rectangle"></a><h3>cairo_region_create_rectangle ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="returnvalue">cairo_region_t</span></a> *
+cairo_region_create_rectangle (<em class="parameter"><code>const <a class="link" href="cairo-Types.html#cairo-rectangle-int-t" title="cairo_rectangle_int_t"><span class="type">cairo_rectangle_int_t</span></a> *rectangle</code></em>);</pre>
+<p>Allocates a new region object containing <em class="parameter"><code>rectangle</code></em>
+.</p>
+<div class="refsect3">
+<a name="cairo-region-create-rectangle.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>rectangle</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-Types.html#cairo-rectangle-int-t" title="cairo_rectangle_int_t"><span class="type">cairo_rectangle_int_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-region-create-rectangle.returns"></a><h4>Returns</h4>
+<p> A newly allocated <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a>. Free with
+<a class="link" href="cairo-Regions.html#cairo-region-destroy" title="cairo_region_destroy ()"><code class="function">cairo_region_destroy()</code></a>. 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 <a class="link" href="cairo-Regions.html#cairo-region-status" title="cairo_region_status ()"><code class="function">cairo_region_status()</code></a>.</p>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-region-create-rectangles"></a><h3>cairo_region_create_rectangles ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="returnvalue">cairo_region_t</span></a> *
+cairo_region_create_rectangles (<em class="parameter"><code>const <a class="link" href="cairo-Types.html#cairo-rectangle-int-t" title="cairo_rectangle_int_t"><span class="type">cairo_rectangle_int_t</span></a> *rects</code></em>,
+ <em class="parameter"><code><span class="type">int</span> count</code></em>);</pre>
+<p>Allocates a new region object containing the union of all given <em class="parameter"><code>rects</code></em>
+.</p>
+<div class="refsect3">
+<a name="cairo-region-create-rectangles.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>rects</p></td>
+<td class="parameter_description"><p>an array of <em class="parameter"><code>count</code></em>
+rectangles</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>count</p></td>
+<td class="parameter_description"><p>number of rectangles</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-region-create-rectangles.returns"></a><h4>Returns</h4>
+<p> A newly allocated <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a>. Free with
+<a class="link" href="cairo-Regions.html#cairo-region-destroy" title="cairo_region_destroy ()"><code class="function">cairo_region_destroy()</code></a>. 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 <a class="link" href="cairo-Regions.html#cairo-region-status" title="cairo_region_status ()"><code class="function">cairo_region_status()</code></a>.</p>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-region-copy"></a><h3>cairo_region_copy ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="returnvalue">cairo_region_t</span></a> *
+cairo_region_copy (<em class="parameter"><code>const <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a> *original</code></em>);</pre>
+<p>Allocates a new region object copying the area from <em class="parameter"><code>original</code></em>
+.</p>
+<div class="refsect3">
+<a name="cairo-region-copy.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>original</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-region-copy.returns"></a><h4>Returns</h4>
+<p> A newly allocated <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a>. Free with
+<a class="link" href="cairo-Regions.html#cairo-region-destroy" title="cairo_region_destroy ()"><code class="function">cairo_region_destroy()</code></a>. 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 <a class="link" href="cairo-Regions.html#cairo-region-status" title="cairo_region_status ()"><code class="function">cairo_region_status()</code></a>.</p>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-region-reference"></a><h3>cairo_region_reference ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="returnvalue">cairo_region_t</span></a> *
+cairo_region_reference (<em class="parameter"><code><a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a> *region</code></em>);</pre>
+<p>Increases the reference count on <em class="parameter"><code>region</code></em>
+ by one. This prevents
+<em class="parameter"><code>region</code></em>
+ from being destroyed until a matching call to
+<a class="link" href="cairo-Regions.html#cairo-region-destroy" title="cairo_region_destroy ()"><code class="function">cairo_region_destroy()</code></a> is made.</p>
+<div class="refsect3">
+<a name="cairo-region-reference.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>region</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-region-reference.returns"></a><h4>Returns</h4>
+<p> the referenced <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a>.</p>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-region-destroy"></a><h3>cairo_region_destroy ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_region_destroy (<em class="parameter"><code><a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a> *region</code></em>);</pre>
+<p>Destroys a <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a> object created with
+<a class="link" href="cairo-Regions.html#cairo-region-create" title="cairo_region_create ()"><code class="function">cairo_region_create()</code></a>, <a class="link" href="cairo-Regions.html#cairo-region-copy" title="cairo_region_copy ()"><code class="function">cairo_region_copy()</code></a>, or
+or <a class="link" href="cairo-Regions.html#cairo-region-create-rectangle" title="cairo_region_create_rectangle ()"><code class="function">cairo_region_create_rectangle()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-region-destroy.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>region</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-region-status"></a><h3>cairo_region_status ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+cairo_region_status (<em class="parameter"><code>const <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a> *region</code></em>);</pre>
+<p>Checks whether an error has previous occurred for this
+region object.</p>
+<div class="refsect3">
+<a name="cairo-region-status.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>region</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-region-status.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> or <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a></p>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-region-get-extents"></a><h3>cairo_region_get_extents ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_region_get_extents (<em class="parameter"><code>const <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a> *region</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-Types.html#cairo-rectangle-int-t" title="cairo_rectangle_int_t"><span class="type">cairo_rectangle_int_t</span></a> *extents</code></em>);</pre>
+<p>Gets the bounding rectangle of <em class="parameter"><code>region</code></em>
+ as a <a class="link" href="cairo-Types.html#cairo-rectangle-int-t" title="cairo_rectangle_int_t"><span class="type">cairo_rectangle_int_t</span></a></p>
+<div class="refsect3">
+<a name="cairo-region-get-extents.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>region</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>extents</p></td>
+<td class="parameter_description"><p>rectangle into which to store the extents</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-region-num-rectangles"></a><h3>cairo_region_num_rectangles ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+cairo_region_num_rectangles (<em class="parameter"><code>const <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a> *region</code></em>);</pre>
+<p>Returns the number of rectangles contained in <em class="parameter"><code>region</code></em>
+.</p>
+<div class="refsect3">
+<a name="cairo-region-num-rectangles.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>region</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-region-num-rectangles.returns"></a><h4>Returns</h4>
+<p> The number of rectangles contained in <em class="parameter"><code>region</code></em>
+.</p>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-region-get-rectangle"></a><h3>cairo_region_get_rectangle ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_region_get_rectangle (<em class="parameter"><code>const <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a> *region</code></em>,
+ <em class="parameter"><code><span class="type">int</span> nth</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-Types.html#cairo-rectangle-int-t" title="cairo_rectangle_int_t"><span class="type">cairo_rectangle_int_t</span></a> *rectangle</code></em>);</pre>
+<p>Stores the <em class="parameter"><code>nth</code></em>
+ rectangle from the region in <em class="parameter"><code>rectangle</code></em>
+.</p>
+<div class="refsect3">
+<a name="cairo-region-get-rectangle.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>region</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>nth</p></td>
+<td class="parameter_description"><p>a number indicating which rectangle should be returned</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>rectangle</p></td>
+<td class="parameter_description"><p>return location for a <a class="link" href="cairo-Types.html#cairo-rectangle-int-t" title="cairo_rectangle_int_t"><span class="type">cairo_rectangle_int_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-region-is-empty"></a><h3>cairo_region_is_empty ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Types.html#cairo-bool-t" title="cairo_bool_t"><span class="returnvalue">cairo_bool_t</span></a>
+cairo_region_is_empty (<em class="parameter"><code>const <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a> *region</code></em>);</pre>
+<p>Checks whether <em class="parameter"><code>region</code></em>
+ is empty.</p>
+<div class="refsect3">
+<a name="cairo-region-is-empty.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>region</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-region-is-empty.returns"></a><h4>Returns</h4>
+<p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>region</code></em>
+is empty, <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if it isn't.</p>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-region-contains-point"></a><h3>cairo_region_contains_point ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Types.html#cairo-bool-t" title="cairo_bool_t"><span class="returnvalue">cairo_bool_t</span></a>
+cairo_region_contains_point (<em class="parameter"><code>const <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a> *region</code></em>,
+ <em class="parameter"><code><span class="type">int</span> x</code></em>,
+ <em class="parameter"><code><span class="type">int</span> y</code></em>);</pre>
+<p>Checks whether (<em class="parameter"><code>x</code></em>
+, <em class="parameter"><code>y</code></em>
+) is contained in <em class="parameter"><code>region</code></em>
+.</p>
+<div class="refsect3">
+<a name="cairo-region-contains-point.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>region</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>the x coordinate of a point</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>the y coordinate of a point</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-region-contains-point.returns"></a><h4>Returns</h4>
+<p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if (<em class="parameter"><code>x</code></em>
+, <em class="parameter"><code>y</code></em>
+) is contained in <em class="parameter"><code>region</code></em>
+, <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if it is not.</p>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-region-contains-rectangle"></a><h3>cairo_region_contains_rectangle ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Regions.html#cairo-region-overlap-t" title="enum cairo_region_overlap_t"><span class="returnvalue">cairo_region_overlap_t</span></a>
+cairo_region_contains_rectangle (<em class="parameter"><code>const <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a> *region</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-Types.html#cairo-rectangle-int-t" title="cairo_rectangle_int_t"><span class="type">cairo_rectangle_int_t</span></a> *rectangle</code></em>);</pre>
+<p>Checks whether <em class="parameter"><code>rectangle</code></em>
+ is inside, outside or partially contained
+in <em class="parameter"><code>region</code></em>
+</p>
+<div class="refsect3">
+<a name="cairo-region-contains-rectangle.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>region</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>rectangle</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-Types.html#cairo-rectangle-int-t" title="cairo_rectangle_int_t"><span class="type">cairo_rectangle_int_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-region-contains-rectangle.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="cairo-Regions.html#CAIRO-REGION-OVERLAP-IN:CAPS"><code class="literal">CAIRO_REGION_OVERLAP_IN</code></a> if <em class="parameter"><code>rectangle</code></em>
+is entirely inside <em class="parameter"><code>region</code></em>
+,
+<a class="link" href="cairo-Regions.html#CAIRO-REGION-OVERLAP-OUT:CAPS"><code class="literal">CAIRO_REGION_OVERLAP_OUT</code></a> if <em class="parameter"><code>rectangle</code></em>
+is entirely outside <em class="parameter"><code>region</code></em>
+, or
+<a class="link" href="cairo-Regions.html#CAIRO-REGION-OVERLAP-PART:CAPS"><code class="literal">CAIRO_REGION_OVERLAP_PART</code></a> if <em class="parameter"><code>rectangle</code></em>
+is partially inside and partially outside <em class="parameter"><code>region</code></em>
+.</p>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-region-equal"></a><h3>cairo_region_equal ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Types.html#cairo-bool-t" title="cairo_bool_t"><span class="returnvalue">cairo_bool_t</span></a>
+cairo_region_equal (<em class="parameter"><code>const <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a> *a</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a> *b</code></em>);</pre>
+<p>Compares whether region_a is equivalent to region_b. <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> as an argument
+is equal to itself, but not to any non-<a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> region.</p>
+<div class="refsect3">
+<a name="cairo-region-equal.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>a</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a> or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>b</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a> or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-region-equal.returns"></a><h4>Returns</h4>
+<p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if both regions contained the same coverage,
+<a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if it is not or any region is in an error status.</p>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-region-translate"></a><h3>cairo_region_translate ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_region_translate (<em class="parameter"><code><a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a> *region</code></em>,
+ <em class="parameter"><code><span class="type">int</span> dx</code></em>,
+ <em class="parameter"><code><span class="type">int</span> dy</code></em>);</pre>
+<p>Translates <em class="parameter"><code>region</code></em>
+ by (<em class="parameter"><code>dx</code></em>
+, <em class="parameter"><code>dy</code></em>
+).</p>
+<div class="refsect3">
+<a name="cairo-region-translate.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>region</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dx</p></td>
+<td class="parameter_description"><p>Amount to translate in the x direction</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dy</p></td>
+<td class="parameter_description"><p>Amount to translate in the y direction</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-region-intersect"></a><h3>cairo_region_intersect ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+cairo_region_intersect (<em class="parameter"><code><a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a> *dst</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a> *other</code></em>);</pre>
+<p>Computes the intersection of <em class="parameter"><code>dst</code></em>
+ with <em class="parameter"><code>other</code></em>
+ and places the result in <em class="parameter"><code>dst</code></em>
+</p>
+<div class="refsect3">
+<a name="cairo-region-intersect.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>dst</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>other</p></td>
+<td class="parameter_description"><p>another <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-region-intersect.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> or <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a></p>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-region-intersect-rectangle"></a><h3>cairo_region_intersect_rectangle ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+cairo_region_intersect_rectangle (<em class="parameter"><code><a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a> *dst</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-Types.html#cairo-rectangle-int-t" title="cairo_rectangle_int_t"><span class="type">cairo_rectangle_int_t</span></a> *rectangle</code></em>);</pre>
+<p>Computes the intersection of <em class="parameter"><code>dst</code></em>
+ with <em class="parameter"><code>rectangle</code></em>
+ and places the
+result in <em class="parameter"><code>dst</code></em>
+</p>
+<div class="refsect3">
+<a name="cairo-region-intersect-rectangle.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>dst</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>rectangle</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-Types.html#cairo-rectangle-int-t" title="cairo_rectangle_int_t"><span class="type">cairo_rectangle_int_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-region-intersect-rectangle.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> or <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a></p>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-region-subtract"></a><h3>cairo_region_subtract ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+cairo_region_subtract (<em class="parameter"><code><a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a> *dst</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a> *other</code></em>);</pre>
+<p>Subtracts <em class="parameter"><code>other</code></em>
+ from <em class="parameter"><code>dst</code></em>
+ and places the result in <em class="parameter"><code>dst</code></em>
+</p>
+<div class="refsect3">
+<a name="cairo-region-subtract.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>dst</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>other</p></td>
+<td class="parameter_description"><p>another <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-region-subtract.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> or <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a></p>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-region-subtract-rectangle"></a><h3>cairo_region_subtract_rectangle ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+cairo_region_subtract_rectangle (<em class="parameter"><code><a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a> *dst</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-Types.html#cairo-rectangle-int-t" title="cairo_rectangle_int_t"><span class="type">cairo_rectangle_int_t</span></a> *rectangle</code></em>);</pre>
+<p>Subtracts <em class="parameter"><code>rectangle</code></em>
+ from <em class="parameter"><code>dst</code></em>
+ and places the result in <em class="parameter"><code>dst</code></em>
+</p>
+<div class="refsect3">
+<a name="cairo-region-subtract-rectangle.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>dst</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>rectangle</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-Types.html#cairo-rectangle-int-t" title="cairo_rectangle_int_t"><span class="type">cairo_rectangle_int_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-region-subtract-rectangle.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> or <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a></p>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-region-union"></a><h3>cairo_region_union ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+cairo_region_union (<em class="parameter"><code><a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a> *dst</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a> *other</code></em>);</pre>
+<p>Computes the union of <em class="parameter"><code>dst</code></em>
+ with <em class="parameter"><code>other</code></em>
+ and places the result in <em class="parameter"><code>dst</code></em>
+</p>
+<div class="refsect3">
+<a name="cairo-region-union.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>dst</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>other</p></td>
+<td class="parameter_description"><p>another <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-region-union.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> or <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a></p>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-region-union-rectangle"></a><h3>cairo_region_union_rectangle ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+cairo_region_union_rectangle (<em class="parameter"><code><a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a> *dst</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-Types.html#cairo-rectangle-int-t" title="cairo_rectangle_int_t"><span class="type">cairo_rectangle_int_t</span></a> *rectangle</code></em>);</pre>
+<p>Computes the union of <em class="parameter"><code>dst</code></em>
+ with <em class="parameter"><code>rectangle</code></em>
+ and places the result in <em class="parameter"><code>dst</code></em>
+.</p>
+<div class="refsect3">
+<a name="cairo-region-union-rectangle.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>dst</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>rectangle</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-Types.html#cairo-rectangle-int-t" title="cairo_rectangle_int_t"><span class="type">cairo_rectangle_int_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-region-union-rectangle.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> or <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a></p>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-region-xor"></a><h3>cairo_region_xor ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+cairo_region_xor (<em class="parameter"><code><a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a> *dst</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a> *other</code></em>);</pre>
+<p>Computes the exclusive difference of <em class="parameter"><code>dst</code></em>
+ with <em class="parameter"><code>other</code></em>
+ and places the
+result in <em class="parameter"><code>dst</code></em>
+. That is, <em class="parameter"><code>dst</code></em>
+ will be set to contain all areas that
+are either in <em class="parameter"><code>dst</code></em>
+ or in <em class="parameter"><code>other</code></em>
+, but not in both.</p>
+<div class="refsect3">
+<a name="cairo-region-xor.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>dst</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>other</p></td>
+<td class="parameter_description"><p>another <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-region-xor.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> or <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a></p>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-region-xor-rectangle"></a><h3>cairo_region_xor_rectangle ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+cairo_region_xor_rectangle (<em class="parameter"><code><a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a> *dst</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-Types.html#cairo-rectangle-int-t" title="cairo_rectangle_int_t"><span class="type">cairo_rectangle_int_t</span></a> *rectangle</code></em>);</pre>
+<p>Computes the exclusive difference of <em class="parameter"><code>dst</code></em>
+ with <em class="parameter"><code>rectangle</code></em>
+ and places the
+result in <em class="parameter"><code>dst</code></em>
+. That is, <em class="parameter"><code>dst</code></em>
+ will be set to contain all areas that are
+either in <em class="parameter"><code>dst</code></em>
+ or in <em class="parameter"><code>rectangle</code></em>
+, but not in both.</p>
+<div class="refsect3">
+<a name="cairo-region-xor-rectangle.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>dst</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>rectangle</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-Types.html#cairo-rectangle-int-t" title="cairo_rectangle_int_t"><span class="type">cairo_rectangle_int_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-region-xor-rectangle.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> or <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a></p>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-Regions.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="cairo-region-t"></a><h3>cairo_region_t</h3>
+<pre class="programlisting">typedef struct _cairo_region cairo_region_t;
+</pre>
+<p>A <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a> represents a set of integer-aligned rectangles.</p>
+<p>It allows set-theoretical operations like <a class="link" href="cairo-Regions.html#cairo-region-union" title="cairo_region_union ()"><code class="function">cairo_region_union()</code></a> and
+<a class="link" href="cairo-Regions.html#cairo-region-intersect" title="cairo_region_intersect ()"><code class="function">cairo_region_intersect()</code></a> to be performed on them.</p>
+<p>Memory management of <a class="link" href="cairo-Regions.html#cairo-region-t" title="cairo_region_t"><span class="type">cairo_region_t</span></a> is done with
+<a class="link" href="cairo-Regions.html#cairo-region-reference" title="cairo_region_reference ()"><code class="function">cairo_region_reference()</code></a> and <a class="link" href="cairo-Regions.html#cairo-region-destroy" title="cairo_region_destroy ()"><code class="function">cairo_region_destroy()</code></a>.</p>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-region-overlap-t"></a><h3>enum cairo_region_overlap_t</h3>
+<p>Used as the return value for <a class="link" href="cairo-Regions.html#cairo-region-contains-rectangle" title="cairo_region_contains_rectangle ()"><code class="function">cairo_region_contains_rectangle()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-region-overlap-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-REGION-OVERLAP-IN:CAPS"></a>CAIRO_REGION_OVERLAP_IN</p></td>
+<td class="enum_member_description">
+<p>The contents are entirely inside the region. (Since 1.10)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-REGION-OVERLAP-OUT:CAPS"></a>CAIRO_REGION_OVERLAP_OUT</p></td>
+<td class="enum_member_description">
+<p>The contents are entirely outside the region. (Since 1.10)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-REGION-OVERLAP-PART:CAPS"></a>CAIRO_REGION_OVERLAP_PART</p></td>
+<td class="enum_member_description">
+<p>The contents are partially inside and
+ partially outside the region. (Since 1.10)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SVG Surfaces: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="cairo-surfaces.html" title="Surfaces">
+<link rel="prev" href="cairo-Win32-Surfaces.html" title="Win32 Surfaces">
+<link rel="next" href="cairo-Quartz-Surfaces.html" title="Quartz Surfaces">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+ <a href="#cairo-SVG-Surfaces.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="cairo-surfaces.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="cairo-Win32-Surfaces.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="cairo-Quartz-Surfaces.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="cairo-SVG-Surfaces"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="cairo-SVG-Surfaces.top_of_page"></a>SVG Surfaces</span></h2>
+<p>SVG Surfaces — Rendering SVG documents</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="cairo-SVG-Surfaces.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-SVG-Surfaces.html#cairo-svg-surface-create" title="cairo_svg_surface_create ()">cairo_svg_surface_create</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-SVG-Surfaces.html#cairo-svg-surface-create-for-stream" title="cairo_svg_surface_create_for_stream ()">cairo_svg_surface_create_for_stream</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-SVG-Surfaces.html#cairo-svg-unit-t" title="enum cairo_svg_unit_t"><span class="returnvalue">cairo_svg_unit_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-SVG-Surfaces.html#cairo-svg-surface-get-document-unit" title="cairo_svg_surface_get_document_unit ()">cairo_svg_surface_get_document_unit</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-SVG-Surfaces.html#cairo-svg-surface-set-document-unit" title="cairo_svg_surface_set_document_unit ()">cairo_svg_surface_set_document_unit</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-SVG-Surfaces.html#cairo-svg-surface-restrict-to-version" title="cairo_svg_surface_restrict_to_version ()">cairo_svg_surface_restrict_to_version</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-SVG-Surfaces.html#cairo-svg-get-versions" title="cairo_svg_get_versions ()">cairo_svg_get_versions</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">const <span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-SVG-Surfaces.html#cairo-svg-version-to-string" title="cairo_svg_version_to_string ()">cairo_svg_version_to_string</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-SVG-Surfaces.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="cairo-SVG-Surfaces.html#CAIRO-HAS-SVG-SURFACE:CAPS" title="CAIRO_HAS_SVG_SURFACE">CAIRO_HAS_SVG_SURFACE</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="cairo-SVG-Surfaces.html#cairo-svg-version-t" title="enum cairo_svg_version_t">cairo_svg_version_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="cairo-SVG-Surfaces.html#cairo-svg-unit-t" title="enum cairo_svg_unit_t">cairo_svg_unit_t</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-SVG-Surfaces.description"></a><h2>Description</h2>
+<p>The SVG surface is used to render cairo graphics to
+SVG files and is a multi-page vector surface backend.</p>
+</div>
+<div class="refsect1">
+<a name="cairo-SVG-Surfaces.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="cairo-svg-surface-create"></a><h3>cairo_svg_surface_create ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+cairo_svg_surface_create (<em class="parameter"><code>const <span class="type">char</span> *filename</code></em>,
+ <em class="parameter"><code><span class="type">double</span> width_in_points</code></em>,
+ <em class="parameter"><code><span class="type">double</span> height_in_points</code></em>);</pre>
+<p>Creates a SVG surface of the specified size in points to be written
+to <em class="parameter"><code>filename</code></em>
+.</p>
+<p>The SVG surface backend recognizes the following MIME types for the
+data attached to a surface (see <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-set-mime-data" title="cairo_surface_set_mime_data ()"><code class="function">cairo_surface_set_mime_data()</code></a>) when
+it is used as a source pattern for drawing on this surface:
+<a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JPEG:CAPS" title="CAIRO_MIME_TYPE_JPEG"><code class="literal">CAIRO_MIME_TYPE_JPEG</code></a>, <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-PNG:CAPS" title="CAIRO_MIME_TYPE_PNG"><code class="literal">CAIRO_MIME_TYPE_PNG</code></a>,
+<a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-URI:CAPS" title="CAIRO_MIME_TYPE_URI"><code class="literal">CAIRO_MIME_TYPE_URI</code></a>. 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.</p>
+<p>The unofficial MIME type <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-URI:CAPS" title="CAIRO_MIME_TYPE_URI"><code class="literal">CAIRO_MIME_TYPE_URI</code></a> is examined
+first. If present, the URI is emitted as is: assuring the
+correctness of URI is left to the client code.</p>
+<p>If <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-URI:CAPS" title="CAIRO_MIME_TYPE_URI"><code class="literal">CAIRO_MIME_TYPE_URI</code></a> is not present, but <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JPEG:CAPS" title="CAIRO_MIME_TYPE_JPEG"><code class="literal">CAIRO_MIME_TYPE_JPEG</code></a>
+or <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-PNG:CAPS" title="CAIRO_MIME_TYPE_PNG"><code class="literal">CAIRO_MIME_TYPE_PNG</code></a> is specified, the corresponding data is
+Base64-encoded and emitted.</p>
+<p>If <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-UNIQUE-ID:CAPS" title="CAIRO_MIME_TYPE_UNIQUE_ID"><code class="literal">CAIRO_MIME_TYPE_UNIQUE_ID</code></a> is present, all surfaces with the same
+unique identifier will only be embedded once.</p>
+<div class="refsect3">
+<a name="cairo-svg-surface-create.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>filename</p></td>
+<td class="parameter_description"><p>a filename for the SVG output (must be writable), <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> 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.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>width_in_points</p></td>
+<td class="parameter_description"><p>width of the surface, in points (1 point == 1/72.0 inch)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>height_in_points</p></td>
+<td class="parameter_description"><p>height of the surface, in points (1 point == 1/72.0 inch)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-svg-surface-create.returns"></a><h4>Returns</h4>
+<p> a pointer to the newly created surface. The caller
+owns the surface and should call <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-destroy" title="cairo_surface_destroy ()"><code class="function">cairo_surface_destroy()</code></a> when done
+with it.</p>
+<p>This function always returns a valid pointer, but it will return a
+pointer to a "nil" surface if an error such as out of memory
+occurs. You can use <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-status" title="cairo_surface_status ()"><code class="function">cairo_surface_status()</code></a> to check for this.</p>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-svg-surface-create-for-stream"></a><h3>cairo_svg_surface_create_for_stream ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+cairo_svg_surface_create_for_stream (<em class="parameter"><code><a class="link" href="cairo-PNG-Support.html#cairo-write-func-t" title="cairo_write_func_t ()"><span class="type">cairo_write_func_t</span></a> write_func</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *closure</code></em>,
+ <em class="parameter"><code><span class="type">double</span> width_in_points</code></em>,
+ <em class="parameter"><code><span class="type">double</span> height_in_points</code></em>);</pre>
+<p>Creates a SVG surface of the specified size in points to be written
+incrementally to the stream represented by <em class="parameter"><code>write_func</code></em>
+ and <em class="parameter"><code>closure</code></em>
+.</p>
+<div class="refsect3">
+<a name="cairo-svg-surface-create-for-stream.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>write_func</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-PNG-Support.html#cairo-write-func-t" title="cairo_write_func_t ()"><span class="type">cairo_write_func_t</span></a> to accept the output data, may be <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+to indicate a no-op <em class="parameter"><code>write_func</code></em>
+. With a no-op <em class="parameter"><code>write_func</code></em>
+,
+the surface may be queried or used as a source without
+generating any temporary files.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>closure</p></td>
+<td class="parameter_description"><p>the closure argument for <em class="parameter"><code>write_func</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>width_in_points</p></td>
+<td class="parameter_description"><p>width of the surface, in points (1 point == 1/72.0 inch)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>height_in_points</p></td>
+<td class="parameter_description"><p>height of the surface, in points (1 point == 1/72.0 inch)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-svg-surface-create-for-stream.returns"></a><h4>Returns</h4>
+<p> a pointer to the newly created surface. The caller
+owns the surface and should call <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-destroy" title="cairo_surface_destroy ()"><code class="function">cairo_surface_destroy()</code></a> when done
+with it.</p>
+<p>This function always returns a valid pointer, but it will return a
+pointer to a "nil" surface if an error such as out of memory
+occurs. You can use <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-status" title="cairo_surface_status ()"><code class="function">cairo_surface_status()</code></a> to check for this.</p>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-svg-surface-get-document-unit"></a><h3>cairo_svg_surface_get_document_unit ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-SVG-Surfaces.html#cairo-svg-unit-t" title="enum cairo_svg_unit_t"><span class="returnvalue">cairo_svg_unit_t</span></a>
+cairo_svg_surface_get_document_unit (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
+<p>Get the unit of the SVG surface.</p>
+<p>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.</p>
+<div class="refsect3">
+<a name="cairo-svg-surface-get-document-unit.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a SVG <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-svg-surface-get-document-unit.returns"></a><h4>Returns</h4>
+<p> the SVG unit of the SVG surface.</p>
+</div>
+<p class="since">Since: 1.16</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-svg-surface-set-document-unit"></a><h3>cairo_svg_surface_set_document_unit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_svg_surface_set_document_unit (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-SVG-Surfaces.html#cairo-svg-unit-t" title="enum cairo_svg_unit_t"><span class="type">cairo_svg_unit_t</span></a> unit</code></em>);</pre>
+<p>Use the specified unit for the width and height of the generated SVG file.
+See <a class="link" href="cairo-SVG-Surfaces.html#cairo-svg-unit-t" title="enum cairo_svg_unit_t"><span class="type">cairo_svg_unit_t</span></a> for a list of available unit values that can be used
+here.</p>
+<p>This function can be called at any time before generating the SVG file.</p>
+<p>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.</p>
+<p>The simplest way to do this is to call this function immediately after
+creating the SVG surface.</p>
+<p>Note if this function is never called, the default unit for SVG documents
+generated by cairo will be "pt". This is for historical reasons.</p>
+<div class="refsect3">
+<a name="cairo-svg-surface-set-document-unit.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a SVG <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>unit</p></td>
+<td class="parameter_description"><p>SVG unit</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.16</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-svg-surface-restrict-to-version"></a><h3>cairo_svg_surface_restrict_to_version ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_svg_surface_restrict_to_version (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-SVG-Surfaces.html#cairo-svg-version-t" title="enum cairo_svg_version_t"><span class="type">cairo_svg_version_t</span></a> version</code></em>);</pre>
+<p>Restricts the generated SVG file to <em class="parameter"><code>version</code></em>
+. See <a class="link" href="cairo-SVG-Surfaces.html#cairo-svg-get-versions" title="cairo_svg_get_versions ()"><code class="function">cairo_svg_get_versions()</code></a>
+for a list of available version values that can be used here.</p>
+<p>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.</p>
+<div class="refsect3">
+<a name="cairo-svg-surface-restrict-to-version.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a SVG <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>version</p></td>
+<td class="parameter_description"><p>SVG version</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-svg-get-versions"></a><h3>cairo_svg_get_versions ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_svg_get_versions (<em class="parameter"><code><a class="link" href="cairo-SVG-Surfaces.html#cairo-svg-version-t" title="enum cairo_svg_version_t"><span class="type">cairo_svg_version_t</span></a> const **versions</code></em>,
+ <em class="parameter"><code><span class="type">int</span> *num_versions</code></em>);</pre>
+<p>Used to retrieve the list of supported versions. See
+<a class="link" href="cairo-SVG-Surfaces.html#cairo-svg-surface-restrict-to-version" title="cairo_svg_surface_restrict_to_version ()"><code class="function">cairo_svg_surface_restrict_to_version()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-svg-get-versions.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>versions</p></td>
+<td class="parameter_description"><p>supported version list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>num_versions</p></td>
+<td class="parameter_description"><p>list length</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-svg-version-to-string"></a><h3>cairo_svg_version_to_string ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> *
+cairo_svg_version_to_string (<em class="parameter"><code><a class="link" href="cairo-SVG-Surfaces.html#cairo-svg-version-t" title="enum cairo_svg_version_t"><span class="type">cairo_svg_version_t</span></a> version</code></em>);</pre>
+<p>Get the string representation of the given <em class="parameter"><code>version</code></em>
+ id. This function
+will return <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>version</code></em>
+ isn't valid. See <a class="link" href="cairo-SVG-Surfaces.html#cairo-svg-get-versions" title="cairo_svg_get_versions ()"><code class="function">cairo_svg_get_versions()</code></a>
+for a way to get the list of valid version ids.</p>
+<div class="refsect3">
+<a name="cairo-svg-version-to-string.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>version</p></td>
+<td class="parameter_description"><p>a version id</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-svg-version-to-string.returns"></a><h4>Returns</h4>
+<p> the string associated to given version.</p>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-SVG-Surfaces.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="CAIRO-HAS-SVG-SURFACE:CAPS"></a><h3>CAIRO_HAS_SVG_SURFACE</h3>
+<pre class="programlisting">#define CAIRO_HAS_SVG_SURFACE 1
+</pre>
+<p>Defined if the SVG surface backend is available.
+This macro can be used to conditionally compile backend-specific code.</p>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-svg-version-t"></a><h3>enum cairo_svg_version_t</h3>
+<p><a class="link" href="cairo-SVG-Surfaces.html#cairo-svg-version-t" title="enum cairo_svg_version_t"><span class="type">cairo_svg_version_t</span></a> is used to describe the version number of the SVG
+specification that a generated SVG file will conform to.</p>
+<div class="refsect3">
+<a name="cairo-svg-version-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SVG-VERSION-1-1:CAPS"></a>CAIRO_SVG_VERSION_1_1</p></td>
+<td class="enum_member_description">
+<p>The version 1.1 of the SVG specification. (Since 1.2)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SVG-VERSION-1-2:CAPS"></a>CAIRO_SVG_VERSION_1_2</p></td>
+<td class="enum_member_description">
+<p>The version 1.2 of the SVG specification. (Since 1.2)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-svg-unit-t"></a><h3>enum cairo_svg_unit_t</h3>
+<p><em class="parameter"><code>CAIRO_SVG_UNIT_USER</code></em>
+: 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)
+<em class="parameter"><code>CAIRO_SVG_UNIT_EM</code></em>
+: The size of the element's font. (Since 1.16)
+<em class="parameter"><code>CAIRO_SVG_UNIT_EX</code></em>
+: The x-height of the element’s font. (Since 1.16)
+<em class="parameter"><code>CAIRO_SVG_UNIT_PX</code></em>
+: Pixels (1px = 1/96th of 1in). (Since 1.16)
+<em class="parameter"><code>CAIRO_SVG_UNIT_IN</code></em>
+: Inches (1in = 2.54cm = 96px). (Since 1.16)
+<em class="parameter"><code>CAIRO_SVG_UNIT_CM</code></em>
+: Centimeters (1cm = 96px/2.54). (Since 1.16)
+<em class="parameter"><code>CAIRO_SVG_UNIT_MM</code></em>
+: Millimeters (1mm = 1/10th of 1cm). (Since 1.16)
+<em class="parameter"><code>CAIRO_SVG_UNIT_PT</code></em>
+: Points (1pt = 1/72th of 1in). (Since 1.16)
+<em class="parameter"><code>CAIRO_SVG_UNIT_PC</code></em>
+: Picas (1pc = 1/6th of 1in). (Since 1.16)
+<em class="parameter"><code>CAIRO_SVG_UNIT_PERCENT</code></em>
+: Percent, a value that is some fraction of another
+ reference value. (Since 1.16)</p>
+<p><a class="link" href="cairo-SVG-Surfaces.html#cairo-svg-unit-t" title="enum cairo_svg_unit_t"><span class="type">cairo_svg_unit_t</span></a> is used to describe the units valid for coordinates and
+lengths in the SVG specification.</p>
+<p>See also:
+https://www.w3.org/TR/SVG/coords.html<span class="type">Units</span>
+https://www.w3.org/TR/SVG/types.html<span class="type">DataTypeLength</span>
+https://www.w3.org/TR/css-values-3/<span class="type">lengths</span></p>
+<div class="refsect3">
+<a name="cairo-svg-unit-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SVG-UNIT-USER:CAPS"></a>CAIRO_SVG_UNIT_USER</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SVG-UNIT-EM:CAPS"></a>CAIRO_SVG_UNIT_EM</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SVG-UNIT-EX:CAPS"></a>CAIRO_SVG_UNIT_EX</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SVG-UNIT-PX:CAPS"></a>CAIRO_SVG_UNIT_PX</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SVG-UNIT-IN:CAPS"></a>CAIRO_SVG_UNIT_IN</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SVG-UNIT-CM:CAPS"></a>CAIRO_SVG_UNIT_CM</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SVG-UNIT-MM:CAPS"></a>CAIRO_SVG_UNIT_MM</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SVG-UNIT-PT:CAPS"></a>CAIRO_SVG_UNIT_PT</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SVG-UNIT-PC:CAPS"></a>CAIRO_SVG_UNIT_PC</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SVG-UNIT-PERCENT:CAPS"></a>CAIRO_SVG_UNIT_PERCENT</p></td>
+<td> </td>
+<td> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.16</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-SVG-Surfaces.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Script Surfaces: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="cairo-surfaces.html" title="Surfaces">
+<link rel="prev" href="cairo-XLib-XRender-Backend.html" title="XLib-XRender Backend">
+<link rel="next" href="cairo-support.html" title="Utilities">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+ <a href="#cairo-Script-Surfaces.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="cairo-surfaces.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="cairo-XLib-XRender-Backend.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="cairo-support.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="cairo-Script-Surfaces"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="cairo-Script-Surfaces.top_of_page"></a>Script Surfaces</span></h2>
+<p>Script Surfaces — Rendering to replayable scripts</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="cairo-Script-Surfaces.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="returnvalue">cairo_device_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Script-Surfaces.html#cairo-script-create" title="cairo_script_create ()">cairo_script_create</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="returnvalue">cairo_device_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Script-Surfaces.html#cairo-script-create-for-stream" title="cairo_script_create_for_stream ()">cairo_script_create_for_stream</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Script-Surfaces.html#cairo-script-from-recording-surface" title="cairo_script_from_recording_surface ()">cairo_script_from_recording_surface</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Script-Surfaces.html#cairo-script-mode-t" title="enum cairo_script_mode_t"><span class="returnvalue">cairo_script_mode_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Script-Surfaces.html#cairo-script-get-mode" title="cairo_script_get_mode ()">cairo_script_get_mode</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Script-Surfaces.html#cairo-script-set-mode" title="cairo_script_set_mode ()">cairo_script_set_mode</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Script-Surfaces.html#cairo-script-surface-create" title="cairo_script_surface_create ()">cairo_script_surface_create</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Script-Surfaces.html#cairo-script-surface-create-for-target" title="cairo_script_surface_create_for_target ()">cairo_script_surface_create_for_target</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Script-Surfaces.html#cairo-script-write-comment" title="cairo_script_write_comment ()">cairo_script_write_comment</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-Script-Surfaces.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="cairo-Script-Surfaces.html#CAIRO-HAS-SCRIPT-SURFACE:CAPS" title="CAIRO_HAS_SCRIPT_SURFACE">CAIRO_HAS_SCRIPT_SURFACE</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="cairo-Script-Surfaces.html#cairo-script-mode-t" title="enum cairo_script_mode_t">cairo_script_mode_t</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-Script-Surfaces.description"></a><h2>Description</h2>
+<p>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.</p>
+</div>
+<div class="refsect1">
+<a name="cairo-Script-Surfaces.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="cairo-script-create"></a><h3>cairo_script_create ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="returnvalue">cairo_device_t</span></a> *
+cairo_script_create (<em class="parameter"><code>const <span class="type">char</span> *filename</code></em>);</pre>
+<p>Creates a output device for emitting the script, used when
+creating the individual surfaces.</p>
+<div class="refsect3">
+<a name="cairo-script-create.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>filename</p></td>
+<td class="parameter_description"><p>the name (path) of the file to write the script to</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-script-create.returns"></a><h4>Returns</h4>
+<p> a pointer to the newly created device. The caller
+owns the surface and should call <a class="link" href="cairo-cairo-device-t.html#cairo-device-destroy" title="cairo_device_destroy ()"><code class="function">cairo_device_destroy()</code></a> when done
+with it.</p>
+<p>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 <a class="link" href="cairo-cairo-device-t.html#cairo-device-status" title="cairo_device_status ()"><code class="function">cairo_device_status()</code></a> to check for this.</p>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-script-create-for-stream"></a><h3>cairo_script_create_for_stream ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="returnvalue">cairo_device_t</span></a> *
+cairo_script_create_for_stream (<em class="parameter"><code><a class="link" href="cairo-PNG-Support.html#cairo-write-func-t" title="cairo_write_func_t ()"><span class="type">cairo_write_func_t</span></a> write_func</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *closure</code></em>);</pre>
+<p>Creates a output device for emitting the script, used when
+creating the individual surfaces.</p>
+<div class="refsect3">
+<a name="cairo-script-create-for-stream.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>write_func</p></td>
+<td class="parameter_description"><p>callback function passed the bytes written to the script</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>closure</p></td>
+<td class="parameter_description"><p>user data to be passed to the callback</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-script-create-for-stream.returns"></a><h4>Returns</h4>
+<p> a pointer to the newly created device. The caller
+owns the surface and should call <a class="link" href="cairo-cairo-device-t.html#cairo-device-destroy" title="cairo_device_destroy ()"><code class="function">cairo_device_destroy()</code></a> when done
+with it.</p>
+<p>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 <a class="link" href="cairo-cairo-device-t.html#cairo-device-status" title="cairo_device_status ()"><code class="function">cairo_device_status()</code></a> to check for this.</p>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-script-from-recording-surface"></a><h3>cairo_script_from_recording_surface ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+cairo_script_from_recording_surface (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *script</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *recording_surface</code></em>);</pre>
+<p>Converts the record operations in <em class="parameter"><code>recording_surface</code></em>
+ into a script.</p>
+<div class="refsect3">
+<a name="cairo-script-from-recording-surface.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>script</p></td>
+<td class="parameter_description"><p>the script (output device)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>recording_surface</p></td>
+<td class="parameter_description"><p>the recording surface to replay</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-script-from-recording-surface.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><span class="type">CAIRO_STATUS_SUCCESS</span></a> on successful completion or an error code.</p>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-script-get-mode"></a><h3>cairo_script_get_mode ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Script-Surfaces.html#cairo-script-mode-t" title="enum cairo_script_mode_t"><span class="returnvalue">cairo_script_mode_t</span></a>
+cairo_script_get_mode (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *script</code></em>);</pre>
+<p>Queries the script for its current output mode.</p>
+<div class="refsect3">
+<a name="cairo-script-get-mode.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>script</p></td>
+<td class="parameter_description"><p>The script (output device) to query</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-script-get-mode.returns"></a><h4>Returns</h4>
+<p> the current output mode of the script</p>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-script-set-mode"></a><h3>cairo_script_set_mode ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_script_set_mode (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *script</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-Script-Surfaces.html#cairo-script-mode-t" title="enum cairo_script_mode_t"><span class="type">cairo_script_mode_t</span></a> mode</code></em>);</pre>
+<p>Change the output mode of the script</p>
+<div class="refsect3">
+<a name="cairo-script-set-mode.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>script</p></td>
+<td class="parameter_description"><p>The script (output device)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>mode</p></td>
+<td class="parameter_description"><p>the new mode</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-script-surface-create"></a><h3>cairo_script_surface_create ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+cairo_script_surface_create (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *script</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-content-t" title="enum cairo_content_t"><span class="type">cairo_content_t</span></a> content</code></em>,
+ <em class="parameter"><code><span class="type">double</span> width</code></em>,
+ <em class="parameter"><code><span class="type">double</span> height</code></em>);</pre>
+<p>Create a new surface that will emit its rendering through <em class="parameter"><code>script</code></em>
+</p>
+<div class="refsect3">
+<a name="cairo-script-surface-create.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>script</p></td>
+<td class="parameter_description"><p>the script (output device)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>content</p></td>
+<td class="parameter_description"><p>the content of the surface</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>width</p></td>
+<td class="parameter_description"><p>width in pixels</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>height</p></td>
+<td class="parameter_description"><p>height in pixels</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-script-surface-create.returns"></a><h4>Returns</h4>
+<p> a pointer to the newly created surface. The caller
+owns the surface and should call <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-destroy" title="cairo_surface_destroy ()"><code class="function">cairo_surface_destroy()</code></a> when done
+with it.</p>
+<p>This function always returns a valid pointer, but it will return a
+pointer to a "nil" surface if an error such as out of memory
+occurs. You can use <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-status" title="cairo_surface_status ()"><code class="function">cairo_surface_status()</code></a> to check for this.</p>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-script-surface-create-for-target"></a><h3>cairo_script_surface_create_for_target ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+cairo_script_surface_create_for_target
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *script</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *target</code></em>);</pre>
+<p>Create a pxoy surface that will render to <em class="parameter"><code>target</code></em>
+ and record
+the operations to <em class="parameter"><code>device</code></em>
+.</p>
+<div class="refsect3">
+<a name="cairo-script-surface-create-for-target.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>script</p></td>
+<td class="parameter_description"><p>the script (output device)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>target</p></td>
+<td class="parameter_description"><p>a target surface to wrap</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-script-surface-create-for-target.returns"></a><h4>Returns</h4>
+<p> a pointer to the newly created surface. The caller
+owns the surface and should call <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-destroy" title="cairo_surface_destroy ()"><code class="function">cairo_surface_destroy()</code></a> when done
+with it.</p>
+<p>This function always returns a valid pointer, but it will return a
+pointer to a "nil" surface if an error such as out of memory
+occurs. You can use <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-status" title="cairo_surface_status ()"><code class="function">cairo_surface_status()</code></a> to check for this.</p>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-script-write-comment"></a><h3>cairo_script_write_comment ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_script_write_comment (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *script</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *comment</code></em>,
+ <em class="parameter"><code><span class="type">int</span> len</code></em>);</pre>
+<p>Emit a string verbatim into the script.</p>
+<div class="refsect3">
+<a name="cairo-script-write-comment.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>script</p></td>
+<td class="parameter_description"><p>the script (output device)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>comment</p></td>
+<td class="parameter_description"><p>the string to emit</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>len</p></td>
+<td class="parameter_description"><p>the length of the sting to write, or -1 to use <code class="function">strlen()</code></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-Script-Surfaces.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="CAIRO-HAS-SCRIPT-SURFACE:CAPS"></a><h3>CAIRO_HAS_SCRIPT_SURFACE</h3>
+<pre class="programlisting">#define CAIRO_HAS_SCRIPT_SURFACE 1
+</pre>
+<p>Defined if the script surface backend is available.
+The script surface backend is always built in since 1.12.</p>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-script-mode-t"></a><h3>enum cairo_script_mode_t</h3>
+<p>A set of script output variants.</p>
+<div class="refsect3">
+<a name="cairo-script-mode-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SCRIPT-MODE-ASCII:CAPS"></a>CAIRO_SCRIPT_MODE_ASCII</p></td>
+<td class="enum_member_description">
+<p>the output will be in readable text (default). (Since 1.12)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SCRIPT-MODE-BINARY:CAPS"></a>CAIRO_SCRIPT_MODE_BINARY</p></td>
+<td class="enum_member_description">
+<p>the output will use byte codes. (Since 1.12)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-Script-Surfaces.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Tags and Links: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="cairo-drawing.html" title="Drawing">
+<link rel="prev" href="cairo-Raster-Sources.html" title="Raster Sources">
+<link rel="next" href="cairo-fonts.html" title="Fonts">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+ <a href="#cairo-Tags-and-Links.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="cairo-drawing.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="cairo-Raster-Sources.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="cairo-fonts.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="cairo-Tags-and-Links"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="cairo-Tags-and-Links.top_of_page"></a>Tags and Links</span></h2>
+<p>Tags and Links — Hyperlinks and document structure</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="cairo-Tags-and-Links.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Tags-and-Links.html#cairo-tag-begin" title="cairo_tag_begin ()">cairo_tag_begin</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Tags-and-Links.html#cairo-tag-end" title="cairo_tag_end ()">cairo_tag_end</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-Tags-and-Links.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="cairo-Tags-and-Links.html#CAIRO-TAG-DEST:CAPS" title="CAIRO_TAG_DEST">CAIRO_TAG_DEST</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="cairo-Tags-and-Links.html#CAIRO-TAG-LINK:CAPS" title="CAIRO_TAG_LINK">CAIRO_TAG_LINK</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-Tags-and-Links.description"></a><h2>Description</h2>
+<p>The tag functions provide the ability to specify hyperlinks and
+document logical structure on supported backends. The following tags are supported:</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p><a class="link" href="cairo-Tags-and-Links.html#link" title="Link Tags">Link</a> - Create a hyperlink</p></li>
+<li class="listitem"><p><a class="link" href="cairo-Tags-and-Links.html#dest" title="Destination Tags">Destinations</a> - Create a hyperlink destination</p></li>
+<li class="listitem"><p><a class="link" href="cairo-Tags-and-Links.html#doc-struct" title="Document Structure (PDF)">Document Structure Tags</a> - Create PDF Document Structure</p></li>
+</ul></div>
+<div class="refsect2">
+<a name="link"></a><h3>Link Tags</h3>
+<p>A hyperlink is specified by enclosing the hyperlink text with the <a class="link" href="cairo-Tags-and-Links.html#CAIRO-TAG-LINK:CAPS" title="CAIRO_TAG_LINK"><code class="literal">CAIRO_TAG_LINK</code></a> tag.</p>
+<p>For example:</p>
+<div class="informalexample">
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+ <tbody>
+ <tr>
+ <td class="listing_lines" align="right"><pre>1
+2
+3
+4</pre></td>
+ <td class="listing_code"><pre class="programlisting"><span class="function"><a href="cairo-Tags-and-Links.html#cairo-tag-begin">cairo_tag_begin</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> CAIRO_TAG_LINK<span class="gtkdoc opt">,</span> <span class="string">&quot;uri=&apos;https://cairographics.org&apos;&quot;</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-Paths.html#cairo-move-to">cairo_move_to</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="number">50</span><span class="gtkdoc opt">,</span> <span class="number">50</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-text.html#cairo-show-text">cairo_show_text</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="string">&quot;This is a link to the cairo website.&quot;</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-Tags-and-Links.html#cairo-tag-end">cairo_tag_end</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> CAIRO_TAG_LINK<span class="gtkdoc opt">);</span></pre></td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+
+<p>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.</p>
+<p><em class="parameter"><code>rect</code></em>
+: [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.</p>
+<p>An example of creating a link with user specified clickable region:</p>
+<div class="informalexample">
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+ <tbody>
+ <tr>
+ <td class="listing_lines" align="right"><pre>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</pre></td>
+ <td class="listing_code"><pre class="programlisting">cairo_font_extents_t font_extents<span class="gtkdoc opt">;</span>
+cairo_text_extents_t text1_extents<span class="gtkdoc opt">;</span>
+cairo_text_extents_t text2_extents<span class="gtkdoc opt">;</span>
+<span class="gtkdoc kwb">char</span> attribs<span class="gtkdoc opt">[</span><span class="number">100</span><span class="gtkdoc opt">];</span>
+<span class="gtkdoc kwb">const char</span> <span class="gtkdoc opt">*</span>text1 <span class="gtkdoc opt">=</span> <span class="string">&quot;This link is split&quot;</span><span class="gtkdoc opt">;</span>
+<span class="gtkdoc kwb">const char</span> <span class="gtkdoc opt">*</span>text2 <span class="gtkdoc opt">=</span> <span class="string">&quot;across two lines&quot;</span><span class="gtkdoc opt">;</span>
+
+<span class="function"><a href="cairo-text.html#cairo-font-extents">cairo_font_extents</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">, &amp;</span>font_extents<span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-Paths.html#cairo-move-to">cairo_move_to</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="number">450</span><span class="gtkdoc opt">,</span> <span class="number">50</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-text.html#cairo-text-extents">cairo_text_extents</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> text1<span class="gtkdoc opt">, &amp;</span>text1_extents<span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-Paths.html#cairo-move-to">cairo_move_to</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="number">50</span><span class="gtkdoc opt">,</span> <span class="number">70</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-text.html#cairo-text-extents">cairo_text_extents</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> text2<span class="gtkdoc opt">, &amp;</span>text2_extents<span class="gtkdoc opt">);</span>
+<span class="function">sprintf</span> <span class="gtkdoc opt">(</span>attribs<span class="gtkdoc opt">,</span>
+ <span class="string">&quot;rect=[%f %f %f %f %f %f %f %f] uri=&apos;https://cairographics.org&apos;&quot;</span><span class="gtkdoc opt">,</span>
+ text1_extents<span class="gtkdoc opt">.</span>x_bearing<span class="gtkdoc opt">,</span>
+ text1_extents<span class="gtkdoc opt">.</span>y_bearing<span class="gtkdoc opt">,</span>
+ text1_extents<span class="gtkdoc opt">.</span>width<span class="gtkdoc opt">,</span>
+ text1_extents<span class="gtkdoc opt">.</span>height<span class="gtkdoc opt">,</span>
+ text2_extents<span class="gtkdoc opt">.</span>x_bearing<span class="gtkdoc opt">,</span>
+ text2_extents<span class="gtkdoc opt">.</span>y_bearing<span class="gtkdoc opt">,</span>
+ text2_extents<span class="gtkdoc opt">.</span>width<span class="gtkdoc opt">,</span>
+ text2_extents<span class="gtkdoc opt">.</span>height<span class="gtkdoc opt">);</span>
+
+<span class="function"><a href="cairo-Tags-and-Links.html#cairo-tag-begin">cairo_tag_begin</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> CAIRO_TAG_LINK<span class="gtkdoc opt">,</span> attribs<span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-text.html#cairo-show-text">cairo_show_text</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="string">&quot;This is a link to the cairo website&quot;</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-Paths.html#cairo-move-to">cairo_move_to</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="number">450</span><span class="gtkdoc opt">,</span> <span class="number">50</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-text.html#cairo-show-text">cairo_show_text</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> text1<span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-Paths.html#cairo-move-to">cairo_move_to</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="number">50</span><span class="gtkdoc opt">,</span> <span class="number">70</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-text.html#cairo-show-text">cairo_show_text</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> text2<span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-Tags-and-Links.html#cairo-tag-end">cairo_tag_end</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> CAIRO_TAG_LINK<span class="gtkdoc opt">);</span></pre></td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+
+<p>There are three types of links. Each type has its own attributes as detailed below.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p><a class="link" href="cairo-Tags-and-Links.html#internal-link" title="Internal Links">Internal Links</a> - A link to a location in the same document</p></li>
+<li class="listitem"><p><a class="link" href="cairo-Tags-and-Links.html#uri-link" title="URI Links">URI Links</a> - A link to a Uniform resource identifier</p></li>
+<li class="listitem"><p><a class="link" href="cairo-Tags-and-Links.html#file-link" title="File Links">File Links</a> - A link to a location in another document</p></li>
+</ul></div>
+<div class="refsect3">
+<a name="internal-link"></a><h4>Internal Links</h4>
+<p>An internal link is a link to a location in the same document. The destination
+is specified with either:</p>
+<p><em class="parameter"><code>dest</code></em>
+: a UTF-8 string specifying the destination in the PDF file to link
+to. Destinations are created with the <a class="link" href="cairo-Tags-and-Links.html#CAIRO-TAG-DEST:CAPS" title="CAIRO_TAG_DEST"><code class="literal">CAIRO_TAG_DEST</code></a> tag.</p>
+<p>or the two attributes:</p>
+<p><em class="parameter"><code>page</code></em>
+: An integer specifying the page number in the PDF file to link to.</p>
+<p><em class="parameter"><code>pos</code></em>
+: [optional] An array of two floats specifying the x,y position
+on the page.</p>
+<p>An example of the link attributes to link to a page and x,y position:</p>
+<pre class="programlisting">
+"page=3 pos=[3.1 6.2]"
+</pre>
+</div>
+<div class="refsect3">
+<a name="uri-link"></a><h4>URI Links</h4>
+<p>A URI link is a link to a Uniform Resource Identifier (<a class="ulink" href="http://tools.ietf.org/html/rfc2396" target="_top">RFC 2396</a>).</p>
+<p>A URI is specified with the following attribute:</p>
+<p><em class="parameter"><code>uri</code></em>
+: An ASCII string specifying the URI.</p>
+<p>An example of the link attributes to the cairo website:</p>
+<pre class="programlisting">
+"uri='https://cairographics.org'"
+</pre>
+</div>
+<div class="refsect3">
+<a name="file-link"></a><h4>File Links</h4>
+<p>A file link is a link a location in another PDF file.</p>
+<p>The file attribute (required) specifies the name of the PDF file:</p>
+<p><em class="parameter"><code>file</code></em>
+: File name of PDF file to link to.</p>
+<p>The position is specified by either:</p>
+<p> <em class="parameter"><code>dest</code></em>
+: a UTF-8 string specifying the named destination in the PDF file.</p>
+<p>or</p>
+<p> <em class="parameter"><code>page</code></em>
+: An integer specifying the page number in the PDF file.</p>
+<p> <em class="parameter"><code>pos</code></em>
+: [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).</p>
+<p>An example of the link attributes to PDF file:</p>
+<pre class="programlisting">
+"file='document.pdf' page=16 pos=[25 40]"
+</pre>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="dest"></a><h3>Destination Tags</h3>
+<p>A destination is specified by enclosing the destination drawing
+operations with the <a class="link" href="cairo-Tags-and-Links.html#CAIRO-TAG-DEST:CAPS" title="CAIRO_TAG_DEST"><code class="literal">CAIRO_TAG_DEST</code></a> tag.</p>
+<p><em class="parameter"><code>name</code></em>
+: [required] A UTF-8 string specifying the name of this destination.</p>
+<p><em class="parameter"><code>x</code></em>
+: [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 <a class="link" href="cairo-Tags-and-Links.html#CAIRO-TAG-DEST:CAPS" title="CAIRO_TAG_DEST"><code class="literal">CAIRO_TAG_DEST</code></a> begin/end tags. If
+ no operations are enclosed, the x coordidate is 0.</p>
+<p><em class="parameter"><code>y</code></em>
+: [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 <a class="link" href="cairo-Tags-and-Links.html#CAIRO-TAG-DEST:CAPS" title="CAIRO_TAG_DEST"><code class="literal">CAIRO_TAG_DEST</code></a> begin/end tags. If
+ no operations are enclosed, the y coordidate is 0.</p>
+<p><em class="parameter"><code>internal</code></em>
+: 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 <a class="link" href="cairo-Tags-and-Links.html#file-link" title="File Links">File Links</a>),
+ this attribute must be false. Default is false.</p>
+<div class="informalexample">
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+ <tbody>
+ <tr>
+ <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11</pre></td>
+ <td class="listing_code"><pre class="programlisting"><span class="comment">/* Create a hyperlink */</span>
+<span class="function"><a href="cairo-Tags-and-Links.html#cairo-tag-begin">cairo_tag_begin</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> CAIRO_TAG_LINK<span class="gtkdoc opt">,</span> <span class="string">&quot;dest=&apos;mydest&apos; internal&quot;</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-Paths.html#cairo-move-to">cairo_move_to</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="number">50</span><span class="gtkdoc opt">,</span> <span class="number">50</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-text.html#cairo-show-text">cairo_show_text</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="string">&quot;This is a hyperlink.&quot;</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-Tags-and-Links.html#cairo-tag-end">cairo_tag_end</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> CAIRO_TAG_LINK<span class="gtkdoc opt">);</span>
+
+<span class="comment">/* Create a destination */</span>
+<span class="function"><a href="cairo-Tags-and-Links.html#cairo-tag-begin">cairo_tag_begin</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> CAIRO_TAG_DEST<span class="gtkdoc opt">,</span> <span class="string">&quot;name=&apos;mydest&apos;&quot;</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-Paths.html#cairo-move-to">cairo_move_to</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="number">50</span><span class="gtkdoc opt">,</span> <span class="number">250</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-text.html#cairo-show-text">cairo_show_text</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="string">&quot;This paragraph is the destination of the above link.&quot;</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-Tags-and-Links.html#cairo-tag-end">cairo_tag_end</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> CAIRO_TAG_DEST<span class="gtkdoc opt">);</span></pre></td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+
+</div>
+<hr>
+<div class="refsect2">
+<a name="doc-struct"></a><h3>Document Structure (PDF)</h3>
+<p>The document structure tags provide a means of specifying structural information
+such as headers, paragraphs, tables, and figures. The inclusion of structural information facilitates:</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>Extraction of text and graphics for copy and paste</p></li>
+<li class="listitem"><p>Reflow of text and graphics in the viewer</p></li>
+<li class="listitem"><p>Processing text eg searching and indexing</p></li>
+<li class="listitem"><p>Conversion to other formats</p></li>
+<li class="listitem"><p>Accessability support</p></li>
+</ul></div>
+<p>The list of structure types is specified in section 14.8.4 of the
+<a class="ulink" href="http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/PDF32000_2008.pdf" target="_top">PDF Reference</a>.</p>
+<p>Note the PDF "Link" structure tag is the same as the cairo <a class="link" href="cairo-Tags-and-Links.html#CAIRO-TAG-LINK:CAPS" title="CAIRO_TAG_LINK"><code class="literal">CAIRO_TAG_LINK</code></a> tag.</p>
+<p>The following example creates a document structure for a document containing two section, each with
+a header and a paragraph.</p>
+<div class="informalexample">
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+ <tbody>
+ <tr>
+ <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23</pre></td>
+ <td class="listing_code"><pre class="programlisting"><span class="function"><a href="cairo-Tags-and-Links.html#cairo-tag-begin">cairo_tag_begin</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="string">&quot;Document&quot;</span><span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
+
+<span class="function"><a href="cairo-Tags-and-Links.html#cairo-tag-begin">cairo_tag_begin</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="string">&quot;Sect&quot;</span><span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-Tags-and-Links.html#cairo-tag-begin">cairo_tag_begin</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="string">&quot;H1&quot;</span><span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-text.html#cairo-show-text">cairo_show_text</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="string">&quot;Heading 1&quot;</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-Tags-and-Links.html#cairo-tag-end">cairo_tag_end</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="string">&quot;H1&quot;</span><span class="gtkdoc opt">);</span>
+
+<span class="function"><a href="cairo-Tags-and-Links.html#cairo-tag-begin">cairo_tag_begin</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="string">&quot;P&quot;</span><span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-text.html#cairo-show-text">cairo_show_text</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="string">&quot;Paragraph 1&quot;</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-Tags-and-Links.html#cairo-tag-end">cairo_tag_end</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="string">&quot;P&quot;</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-Tags-and-Links.html#cairo-tag-end">cairo_tag_end</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="string">&quot;Sect&quot;</span><span class="gtkdoc opt">);</span>
+
+<span class="function"><a href="cairo-Tags-and-Links.html#cairo-tag-begin">cairo_tag_begin</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="string">&quot;Sect&quot;</span><span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-Tags-and-Links.html#cairo-tag-begin">cairo_tag_begin</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="string">&quot;H1&quot;</span><span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-text.html#cairo-show-text">cairo_show_text</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="string">&quot;Heading 2&quot;</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-Tags-and-Links.html#cairo-tag-end">cairo_tag_end</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="string">&quot;H1&quot;</span><span class="gtkdoc opt">);</span>
+
+<span class="function"><a href="cairo-Tags-and-Links.html#cairo-tag-begin">cairo_tag_begin</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="string">&quot;P&quot;</span><span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-text.html#cairo-show-text">cairo_show_text</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="string">&quot;Paragraph 2&quot;</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-Tags-and-Links.html#cairo-tag-end">cairo_tag_end</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="string">&quot;P&quot;</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-Tags-and-Links.html#cairo-tag-end">cairo_tag_end</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="string">&quot;Sect&quot;</span><span class="gtkdoc opt">);</span>
+
+<span class="function"><a href="cairo-Tags-and-Links.html#cairo-tag-end">cairo_tag_end</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="string">&quot;Document&quot;</span><span class="gtkdoc opt">);</span></pre></td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-Tags-and-Links.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="cairo-tag-begin"></a><h3>cairo_tag_begin ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_tag_begin (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *tag_name</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *attributes</code></em>);</pre>
+<p>Marks the beginning of the <em class="parameter"><code>tag_name</code></em>
+ structure. Call
+<a class="link" href="cairo-Tags-and-Links.html#cairo-tag-end" title="cairo_tag_end ()"><code class="function">cairo_tag_end()</code></a> with the same <em class="parameter"><code>tag_name</code></em>
+ to mark the end of the
+structure.</p>
+<p>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.</p>
+<p>String values are enclosed in single quotes
+('). Single quotes and backslashes inside the string should be
+escaped with a backslash.</p>
+<p>Boolean values may be set to true by only
+specifying the key. eg the attribute string "key" is the equivalent
+to "key=true".</p>
+<p>Arrays are enclosed in '[]'. eg "rect=[1.2 4.3 2.0 3.0]".</p>
+<p>If no attributes are required, <em class="parameter"><code>attributes</code></em>
+ can be an empty string or NULL.</p>
+<p>See <a class="link" href="cairo-Tags-and-Links.html#cairo-Tags-and-Links.description" title="Description">Tags and Links Description</a>
+for the list of tags and attributes.</p>
+<p>Invalid nesting of tags or invalid attributes will cause <em class="parameter"><code>cr</code></em>
+ to
+shutdown with a status of <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-TAG-ERROR:CAPS"><code class="literal">CAIRO_STATUS_TAG_ERROR</code></a>.</p>
+<p>See <a class="link" href="cairo-Tags-and-Links.html#cairo-tag-end" title="cairo_tag_end ()"><code class="function">cairo_tag_end()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-tag-begin.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>tag_name</p></td>
+<td class="parameter_description"><p>tag name</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>attributes</p></td>
+<td class="parameter_description"><p>tag attributes</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.16</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-tag-end"></a><h3>cairo_tag_end ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_tag_end (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *tag_name</code></em>);</pre>
+<p>Marks the end of the <em class="parameter"><code>tag_name</code></em>
+ structure.</p>
+<p>Invalid nesting of tags will cause <em class="parameter"><code>cr</code></em>
+ to shutdown with a status of
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-TAG-ERROR:CAPS"><code class="literal">CAIRO_STATUS_TAG_ERROR</code></a>.</p>
+<p>See <a class="link" href="cairo-Tags-and-Links.html#cairo-tag-begin" title="cairo_tag_begin ()"><code class="function">cairo_tag_begin()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-tag-end.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>tag_name</p></td>
+<td class="parameter_description"><p>tag name</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.16</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-Tags-and-Links.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="CAIRO-TAG-DEST:CAPS"></a><h3>CAIRO_TAG_DEST</h3>
+<pre class="programlisting">#define CAIRO_TAG_DEST "cairo.dest"
+</pre>
+<p>Create a destination for a hyperlink. Destination tag attributes
+are detailed at Destinations.</p>
+<p class="since">Since: 1.16</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="CAIRO-TAG-LINK:CAPS"></a><h3>CAIRO_TAG_LINK</h3>
+<pre class="programlisting">#define CAIRO_TAG_LINK "Link"
+</pre>
+<p>Create hyperlink. Link tag attributes are detailed at
+Links.</p>
+<p class="since">Since: 1.16</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-Tags-and-Links.see-also"></a><h2>See Also</h2>
+<p><span class="type">cairo_pdf_surface_t</span></p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Transformations: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="cairo-drawing.html" title="Drawing">
+<link rel="prev" href="cairo-Regions.html" title="Regions">
+<link rel="next" href="cairo-text.html" title="text">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+ <a href="#cairo-Transformations.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="cairo-drawing.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="cairo-Regions.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="cairo-text.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="cairo-Transformations"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="cairo-Transformations.top_of_page"></a>Transformations</span></h2>
+<p>Transformations — Manipulating the current transformation matrix</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="cairo-Transformations.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Transformations.html#cairo-translate" title="cairo_translate ()">cairo_translate</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Transformations.html#cairo-scale" title="cairo_scale ()">cairo_scale</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Transformations.html#cairo-rotate" title="cairo_rotate ()">cairo_rotate</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Transformations.html#cairo-transform" title="cairo_transform ()">cairo_transform</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Transformations.html#cairo-set-matrix" title="cairo_set_matrix ()">cairo_set_matrix</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Transformations.html#cairo-get-matrix" title="cairo_get_matrix ()">cairo_get_matrix</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Transformations.html#cairo-identity-matrix" title="cairo_identity_matrix ()">cairo_identity_matrix</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Transformations.html#cairo-user-to-device" title="cairo_user_to_device ()">cairo_user_to_device</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Transformations.html#cairo-user-to-device-distance" title="cairo_user_to_device_distance ()">cairo_user_to_device_distance</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Transformations.html#cairo-device-to-user" title="cairo_device_to_user ()">cairo_device_to_user</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Transformations.html#cairo-device-to-user-distance" title="cairo_device_to_user_distance ()">cairo_device_to_user_distance</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-Transformations.description"></a><h2>Description</h2>
+<p>The current transformation matrix, <em class="firstterm">ctm</em>, is a
+two-dimensional affine transformation that maps all coordinates and other
+drawing instruments from the <em class="firstterm">user space</em> into the
+surface's canonical coordinate system, also known as the <em class="firstterm">device
+space</em>.</p>
+</div>
+<div class="refsect1">
+<a name="cairo-Transformations.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="cairo-translate"></a><h3>cairo_translate ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_translate (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><span class="type">double</span> tx</code></em>,
+ <em class="parameter"><code><span class="type">double</span> ty</code></em>);</pre>
+<p>Modifies the current transformation matrix (CTM) by translating the
+user-space origin by (<em class="parameter"><code>tx</code></em>
+, <em class="parameter"><code>ty</code></em>
+). This offset is interpreted as a
+user-space coordinate according to the CTM in place before the new
+call to <a class="link" href="cairo-Transformations.html#cairo-translate" title="cairo_translate ()"><code class="function">cairo_translate()</code></a>. In other words, the translation of the
+user-space origin takes place after any existing transformation.</p>
+<div class="refsect3">
+<a name="cairo-translate.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>tx</p></td>
+<td class="parameter_description"><p>amount to translate in the X direction</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ty</p></td>
+<td class="parameter_description"><p>amount to translate in the Y direction</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-scale"></a><h3>cairo_scale ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_scale (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><span class="type">double</span> sx</code></em>,
+ <em class="parameter"><code><span class="type">double</span> sy</code></em>);</pre>
+<p>Modifies the current transformation matrix (CTM) by scaling the X
+and Y user-space axes by <em class="parameter"><code>sx</code></em>
+ and <em class="parameter"><code>sy</code></em>
+ respectively. The scaling of
+the axes takes place after any existing transformation of user
+space.</p>
+<div class="refsect3">
+<a name="cairo-scale.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sx</p></td>
+<td class="parameter_description"><p>scale factor for the X dimension</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sy</p></td>
+<td class="parameter_description"><p>scale factor for the Y dimension</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-rotate"></a><h3>cairo_rotate ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_rotate (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><span class="type">double</span> angle</code></em>);</pre>
+<p>Modifies the current transformation matrix (CTM) by rotating the
+user-space axes by <em class="parameter"><code>angle</code></em>
+ 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.</p>
+<div class="refsect3">
+<a name="cairo-rotate.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>angle</p></td>
+<td class="parameter_description"><p>angle (in radians) by which the user-space axes will be
+rotated</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-transform"></a><h3>cairo_transform ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_transform (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a> *matrix</code></em>);</pre>
+<p>Modifies the current transformation matrix (CTM) by applying
+<em class="parameter"><code>matrix</code></em>
+ as an additional transformation. The new transformation of
+user space takes place after any existing transformation.</p>
+<div class="refsect3">
+<a name="cairo-transform.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>matrix</p></td>
+<td class="parameter_description"><p>a transformation to be applied to the user-space axes</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-set-matrix"></a><h3>cairo_set_matrix ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_set_matrix (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a> *matrix</code></em>);</pre>
+<p>Modifies the current transformation matrix (CTM) by setting it
+equal to <em class="parameter"><code>matrix</code></em>
+.</p>
+<div class="refsect3">
+<a name="cairo-set-matrix.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>matrix</p></td>
+<td class="parameter_description"><p>a transformation matrix from user space to device space</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-get-matrix"></a><h3>cairo_get_matrix ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_get_matrix (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a> *matrix</code></em>);</pre>
+<p>Stores the current transformation matrix (CTM) into <em class="parameter"><code>matrix</code></em>
+.</p>
+<div class="refsect3">
+<a name="cairo-get-matrix.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>matrix</p></td>
+<td class="parameter_description"><p>return value for the matrix</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-identity-matrix"></a><h3>cairo_identity_matrix ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_identity_matrix (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>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.</p>
+<div class="refsect3">
+<a name="cairo-identity-matrix.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-user-to-device"></a><h3>cairo_user_to_device ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_user_to_device (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *x</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *y</code></em>);</pre>
+<p>Transform a coordinate from user space to device space by
+multiplying the given point by the current transformation matrix
+(CTM).</p>
+<div class="refsect3">
+<a name="cairo-user-to-device.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>X value of coordinate (in/out parameter)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>Y value of coordinate (in/out parameter)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-user-to-device-distance"></a><h3>cairo_user_to_device_distance ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_user_to_device_distance (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *dx</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *dy</code></em>);</pre>
+<p>Transform a distance vector from user space to device space. This
+function is similar to <a class="link" href="cairo-Transformations.html#cairo-user-to-device" title="cairo_user_to_device ()"><code class="function">cairo_user_to_device()</code></a> except that the
+translation components of the CTM will be ignored when transforming
+(<em class="parameter"><code>dx</code></em>
+,<em class="parameter"><code>dy</code></em>
+).</p>
+<div class="refsect3">
+<a name="cairo-user-to-device-distance.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dx</p></td>
+<td class="parameter_description"><p>X component of a distance vector (in/out parameter)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dy</p></td>
+<td class="parameter_description"><p>Y component of a distance vector (in/out parameter)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-device-to-user"></a><h3>cairo_device_to_user ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_device_to_user (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *x</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *y</code></em>);</pre>
+<p>Transform a coordinate from device space to user space by
+multiplying the given point by the inverse of the current
+transformation matrix (CTM).</p>
+<div class="refsect3">
+<a name="cairo-device-to-user.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>X value of coordinate (in/out parameter)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>Y value of coordinate (in/out parameter)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-device-to-user-distance"></a><h3>cairo_device_to_user_distance ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_device_to_user_distance (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *dx</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *dy</code></em>);</pre>
+<p>Transform a distance vector from device space to user space. This
+function is similar to <a class="link" href="cairo-Transformations.html#cairo-device-to-user" title="cairo_device_to_user ()"><code class="function">cairo_device_to_user()</code></a> except that the
+translation components of the inverse CTM will be ignored when
+transforming (<em class="parameter"><code>dx</code></em>
+,<em class="parameter"><code>dy</code></em>
+).</p>
+<div class="refsect3">
+<a name="cairo-device-to-user-distance.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dx</p></td>
+<td class="parameter_description"><p>X component of a distance vector (in/out parameter)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dy</p></td>
+<td class="parameter_description"><p>Y component of a distance vector (in/out parameter)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-Transformations.other_details"></a><h2>Types and Values</h2>
+</div>
+<div class="refsect1">
+<a name="cairo-Transformations.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a></p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Types: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="cairo-support.html" title="Utilities">
+<link rel="prev" href="cairo-Version-Information.html" title="Version Information">
+<link rel="next" href="index-all.html" title="Index">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+ <a href="#cairo-Types.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="cairo-support.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="cairo-Version-Information.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="index-all.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="cairo-Types"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="cairo-Types.top_of_page"></a>Types</span></h2>
+<p>Types — Generic data types</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="cairo-Types.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody><tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="cairo-Types.html#cairo-destroy-func-t" title="cairo_destroy_func_t ()">*cairo_destroy_func_t</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
+</td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-Types.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="cairo-Types.html#cairo-bool-t" title="cairo_bool_t">cairo_bool_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="cairo-Types.html#cairo-user-data-key-t" title="cairo_user_data_key_t">cairo_user_data_key_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="cairo-Types.html#cairo-rectangle-int-t" title="cairo_rectangle_int_t">cairo_rectangle_int_t</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-Types.description"></a><h2>Description</h2>
+<p>This section lists generic data types used in the cairo API.</p>
+</div>
+<div class="refsect1">
+<a name="cairo-Types.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="cairo-destroy-func-t"></a><h3>cairo_destroy_func_t ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+<span class="c_punctuation">(</span>*cairo_destroy_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">void</span> *data</code></em>);</pre>
+<p><a class="link" href="cairo-Types.html#cairo-destroy-func-t" title="cairo_destroy_func_t ()"><span class="type">cairo_destroy_func_t</span></a> the type of function which is called when a
+data element is destroyed. It is passed the pointer to the data
+element and should free any memory and resources allocated for it.</p>
+<div class="refsect3">
+<a name="cairo-destroy-func-t.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>The data element being destroyed.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-Types.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="cairo-bool-t"></a><h3>cairo_bool_t</h3>
+<pre class="programlisting">typedef int cairo_bool_t;
+</pre>
+<p><a class="link" href="cairo-Types.html#cairo-bool-t" title="cairo_bool_t"><span class="type">cairo_bool_t</span></a> is used for boolean values. Returns of type
+<a class="link" href="cairo-Types.html#cairo-bool-t" title="cairo_bool_t"><span class="type">cairo_bool_t</span></a> will always be either 0 or 1, but testing against
+these values explicitly is not encouraged; just use the
+value as a boolean condition.</p>
+<div class="informalexample">
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+ <tbody>
+ <tr>
+ <td class="listing_lines" align="right"><pre>1
+2
+3</pre></td>
+ <td class="listing_code"><pre class="programlisting"><span class="keyword">if</span> <span class="gtkdoc opt">(</span><span class="function"><a href="cairo-cairo-t.html#cairo-in-stroke">cairo_in_stroke</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> x<span class="gtkdoc opt">,</span> y<span class="gtkdoc opt">)) {</span>
+ <span class="comment">/* do something */</span>
+<span class="gtkdoc opt">}</span></pre></td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-user-data-key-t"></a><h3>cairo_user_data_key_t</h3>
+<pre class="programlisting">typedef struct {
+ int unused;
+} cairo_user_data_key_t;
+</pre>
+<p><a class="link" href="cairo-Types.html#cairo-user-data-key-t" title="cairo_user_data_key_t"><span class="type">cairo_user_data_key_t</span></a> 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 <span class="type">cairo_data_key_t</span> object is used. Typically, you
+would just use the address of a static <span class="type">cairo_data_key_t</span> object.</p>
+<div class="refsect3">
+<a name="cairo-user-data-key-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody><tr>
+<td class="struct_member_name"><p><span class="type">int</span> <em class="structfield"><code><a name="cairo-user-data-key-t.unused"></a>unused</code></em>;</p></td>
+<td class="struct_member_description"><p>not used; ignore.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-rectangle-int-t"></a><h3>cairo_rectangle_int_t</h3>
+<pre class="programlisting">typedef struct {
+ int x, y;
+ int width, height;
+} cairo_rectangle_int_t;
+</pre>
+<p>A data structure for holding a rectangle with integer coordinates.</p>
+<div class="refsect3">
+<a name="cairo-rectangle-int-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><span class="type">int</span> <em class="structfield"><code><a name="cairo-rectangle-int-t.x"></a>x</code></em>;</p></td>
+<td class="struct_member_description"><p>X coordinate of the left side of the rectangle</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><span class="type">int</span> <em class="structfield"><code><a name="cairo-rectangle-int-t.y"></a>y</code></em>;</p></td>
+<td class="struct_member_description"><p>Y coordinate of the the top side of the rectangle</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><span class="type">int</span> <em class="structfield"><code><a name="cairo-rectangle-int-t.width"></a>width</code></em>;</p></td>
+<td class="struct_member_description"><p>width of the rectangle</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><span class="type">int</span> <em class="structfield"><code><a name="cairo-rectangle-int-t.height"></a>height</code></em>;</p></td>
+<td class="struct_member_description"><p>height of the rectangle</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>User Fonts: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="cairo-fonts.html" title="Fonts">
+<link rel="prev" href="cairo-Quartz-(CGFont)-Fonts.html" title="Quartz (CGFont) Fonts">
+<link rel="next" href="cairo-surfaces.html" title="Surfaces">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+ <a href="#cairo-User-Fonts.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="cairo-fonts.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="cairo-Quartz-(CGFont)-Fonts.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="cairo-surfaces.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="cairo-User-Fonts"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="cairo-User-Fonts.top_of_page"></a>User Fonts</span></h2>
+<p>User Fonts — Font support with font data provided by the user</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="cairo-User-Fonts.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-init-func-t" title="cairo_user_scaled_font_init_func_t ()">*cairo_user_scaled_font_init_func_t</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-render-glyph-func-t" title="cairo_user_scaled_font_render_glyph_func_t ()">*cairo_user_scaled_font_render_glyph_func_t</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-text-to-glyphs-func-t" title="cairo_user_scaled_font_text_to_glyphs_func_t ()">*cairo_user_scaled_font_text_to_glyphs_func_t</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-unicode-to-glyph-func-t" title="cairo_user_scaled_font_unicode_to_glyph_func_t ()">*cairo_user_scaled_font_unicode_to_glyph_func_t</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="returnvalue">cairo_font_face_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-User-Fonts.html#cairo-user-font-face-create" title="cairo_user_font_face_create ()">cairo_user_font_face_create</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-User-Fonts.html#cairo-user-font-face-set-init-func" title="cairo_user_font_face_set_init_func ()">cairo_user_font_face_set_init_func</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-init-func-t" title="cairo_user_scaled_font_init_func_t ()"><span class="returnvalue">cairo_user_scaled_font_init_func_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-User-Fonts.html#cairo-user-font-face-get-init-func" title="cairo_user_font_face_get_init_func ()">cairo_user_font_face_get_init_func</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-User-Fonts.html#cairo-user-font-face-set-render-glyph-func" title="cairo_user_font_face_set_render_glyph_func ()">cairo_user_font_face_set_render_glyph_func</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-render-glyph-func-t" title="cairo_user_scaled_font_render_glyph_func_t ()"><span class="returnvalue">cairo_user_scaled_font_render_glyph_func_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-User-Fonts.html#cairo-user-font-face-get-render-glyph-func" title="cairo_user_font_face_get_render_glyph_func ()">cairo_user_font_face_get_render_glyph_func</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-User-Fonts.html#cairo-user-font-face-set-unicode-to-glyph-func" title="cairo_user_font_face_set_unicode_to_glyph_func ()">cairo_user_font_face_set_unicode_to_glyph_func</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-unicode-to-glyph-func-t" title="cairo_user_scaled_font_unicode_to_glyph_func_t ()"><span class="returnvalue">cairo_user_scaled_font_unicode_to_glyph_func_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-User-Fonts.html#cairo-user-font-face-get-unicode-to-glyph-func" title="cairo_user_font_face_get_unicode_to_glyph_func ()">cairo_user_font_face_get_unicode_to_glyph_func</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-User-Fonts.html#cairo-user-font-face-set-text-to-glyphs-func" title="cairo_user_font_face_set_text_to_glyphs_func ()">cairo_user_font_face_set_text_to_glyphs_func</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-text-to-glyphs-func-t" title="cairo_user_scaled_font_text_to_glyphs_func_t ()"><span class="returnvalue">cairo_user_scaled_font_text_to_glyphs_func_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-User-Fonts.html#cairo-user-font-face-get-text-to-glyphs-func" title="cairo_user_font_face_get_text_to_glyphs_func ()">cairo_user_font_face_get_text_to_glyphs_func</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-User-Fonts.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="cairo-User-Fonts.html#CAIRO-HAS-USER-FONT:CAPS" title="CAIRO_HAS_USER_FONT">CAIRO_HAS_USER_FONT</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-User-Fonts.description"></a><h2>Description</h2>
+<p>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.</p>
+</div>
+<div class="refsect1">
+<a name="cairo-User-Fonts.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="cairo-user-scaled-font-init-func-t"></a><h3>cairo_user_scaled_font_init_func_t ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+<span class="c_punctuation">(</span>*cairo_user_scaled_font_init_func_t<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> *scaled_font</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-font-extents-t" title="cairo_font_extents_t"><span class="type">cairo_font_extents_t</span></a> *extents</code></em>);</pre>
+<p><a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-init-func-t" title="cairo_user_scaled_font_init_func_t ()"><span class="type">cairo_user_scaled_font_init_func_t</span></a> is the type of function which is
+called when a scaled-font needs to be created for a user font-face.</p>
+<p>The cairo context <em class="parameter"><code>cr</code></em>
+ 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, <em class="parameter"><code>cr</code></em>
+ is checked
+for any error status.</p>
+<p>The <em class="parameter"><code>extents</code></em>
+ argument is where the user font sets the font extents for
+<em class="parameter"><code>scaled_font</code></em>
+. It is in font space, which means that for most cases its
+ascent and descent members should add to 1.0. <em class="parameter"><code>extents</code></em>
+ 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.</p>
+<p>The callback is optional. If not set, default font extents as described
+in the previous paragraph will be used.</p>
+<p>Note that <em class="parameter"><code>scaled_font</code></em>
+ is not fully initialized at this
+point and trying to use it for text operations in the callback will result
+in deadlock.</p>
+<div class="refsect3">
+<a name="cairo-user-scaled-font-init-func-t.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>scaled_font</p></td>
+<td class="parameter_description"><p>the scaled-font being created</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context, in font space</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>extents</p></td>
+<td class="parameter_description"><p>font extents to fill in, in font space</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-user-scaled-font-init-func-t.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> upon success, or an error status on error.</p>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-user-scaled-font-render-glyph-func-t"></a><h3>cairo_user_scaled_font_render_glyph_func_t ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+<span class="c_punctuation">(</span>*cairo_user_scaled_font_render_glyph_func_t<span class="c_punctuation">)</span>
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> *scaled_font</code></em>,
+ <em class="parameter"><code><span class="type">unsigned long </span> glyph</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-text-extents-t" title="cairo_text_extents_t"><span class="type">cairo_text_extents_t</span></a> *extents</code></em>);</pre>
+<p><a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-render-glyph-func-t" title="cairo_user_scaled_font_render_glyph_func_t ()"><span class="type">cairo_user_scaled_font_render_glyph_func_t</span></a> is the type of function which
+is called when a user scaled-font needs to render a glyph.</p>
+<p>The callback is mandatory, and expected to draw the glyph with code <em class="parameter"><code>glyph</code></em>
+ to
+the cairo context <em class="parameter"><code>cr</code></em>
+. <em class="parameter"><code>cr</code></em>
+ is prepared such that the glyph drawing is done in
+font space. That is, the matrix set on <em class="parameter"><code>cr</code></em>
+ is the scale matrix of <em class="parameter"><code>scaled_font</code></em>
+,
+The <em class="parameter"><code>extents</code></em>
+ argument is where the user font sets the font extents for
+<em class="parameter"><code>scaled_font</code></em>
+. However, if user prefers to draw in user space, they can
+achieve that by changing the matrix on <em class="parameter"><code>cr</code></em>
+. All cairo rendering operations
+to <em class="parameter"><code>cr</code></em>
+ are permitted, however, the result is undefined if any source other
+than the default source on <em class="parameter"><code>cr</code></em>
+ is used. That means, glyph bitmaps should
+be rendered using <a class="link" href="cairo-cairo-t.html#cairo-mask" title="cairo_mask ()"><code class="function">cairo_mask()</code></a> instead of <a class="link" href="cairo-cairo-t.html#cairo-paint" title="cairo_paint ()"><code class="function">cairo_paint()</code></a>.</p>
+<p>Other non-default settings on <em class="parameter"><code>cr</code></em>
+ include a font size of 1.0 (given that
+it is set up to be in font space), and font options corresponding to
+<em class="parameter"><code>scaled_font</code></em>
+.</p>
+<p>The <em class="parameter"><code>extents</code></em>
+ argument is preset to have <code class="literal">x_bearing</code>,
+<code class="literal">width</code>, and <code class="literal">y_advance</code> of zero,
+<code class="literal">y_bearing</code> set to <code class="literal">-font_extents.ascent</code>,
+<code class="literal">height</code> to <code class="literal">font_extents.ascent+font_extents.descent</code>,
+and <code class="literal">x_advance</code> to <code class="literal">font_extents.max_x_advance</code>.
+The only field user needs to set in majority of cases is
+<code class="literal">x_advance</code>.
+If the <code class="literal">width</code> field is zero upon the callback returning
+(which is its preset value), the glyph extents are automatically computed
+based on the drawings done to <em class="parameter"><code>cr</code></em>
+. 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 <em class="parameter"><code>cr</code></em>
+ in the callback.</p>
+<div class="refsect3">
+<a name="cairo-user-scaled-font-render-glyph-func-t.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>scaled_font</p></td>
+<td class="parameter_description"><p>user scaled-font</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>glyph</p></td>
+<td class="parameter_description"><p>glyph code to render</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>cairo context to draw to, in font space</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>extents</p></td>
+<td class="parameter_description"><p>glyph extents to fill in, in font space</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-user-scaled-font-render-glyph-func-t.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> upon success, or
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-USER-FONT-ERROR:CAPS"><code class="literal">CAIRO_STATUS_USER_FONT_ERROR</code></a> or any other error status on error.</p>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-user-scaled-font-text-to-glyphs-func-t"></a><h3>cairo_user_scaled_font_text_to_glyphs_func_t ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+<span class="c_punctuation">(</span>*cairo_user_scaled_font_text_to_glyphs_func_t<span class="c_punctuation">)</span>
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> *scaled_font</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *utf8</code></em>,
+ <em class="parameter"><code><span class="type">int</span> utf8_len</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-text.html#cairo-glyph-t" title="cairo_glyph_t"><span class="type">cairo_glyph_t</span></a> **glyphs</code></em>,
+ <em class="parameter"><code><span class="type">int</span> *num_glyphs</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-text.html#cairo-text-cluster-t" title="cairo_text_cluster_t"><span class="type">cairo_text_cluster_t</span></a> **clusters</code></em>,
+ <em class="parameter"><code><span class="type">int</span> *num_clusters</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-text.html#cairo-text-cluster-flags-t" title="enum cairo_text_cluster_flags_t"><span class="type">cairo_text_cluster_flags_t</span></a> *cluster_flags</code></em>);</pre>
+<p><a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-text-to-glyphs-func-t" title="cairo_user_scaled_font_text_to_glyphs_func_t ()"><span class="type">cairo_user_scaled_font_text_to_glyphs_func_t</span></a> is the type of function which
+is called to convert input text to an array of glyphs. This is used by the
+<a class="link" href="cairo-text.html#cairo-show-text" title="cairo_show_text ()"><code class="function">cairo_show_text()</code></a> operation.</p>
+<p>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 <em class="firstterm">shaping</em> required for scripts like
+Arabic and Indic.</p>
+<p>The <em class="parameter"><code>num_glyphs</code></em>
+ argument is preset to the number of glyph entries available
+in the <em class="parameter"><code>glyphs</code></em>
+ buffer. If the <em class="parameter"><code>glyphs</code></em>
+ buffer is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, the value of
+<em class="parameter"><code>num_glyphs</code></em>
+ 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 <a class="link" href="cairo-text.html#cairo-glyph-allocate" title="cairo_glyph_allocate ()"><code class="function">cairo_glyph_allocate()</code></a> and placed in <em class="parameter"><code>glyphs</code></em>
+. Upon return,
+<em class="parameter"><code>num_glyphs</code></em>
+ should contain the number of generated glyphs. If the value
+<em class="parameter"><code>glyphs</code></em>
+ points at has changed after the call, the caller will free the
+allocated glyph array using <a class="link" href="cairo-text.html#cairo-glyph-free" title="cairo_glyph_free ()"><code class="function">cairo_glyph_free()</code></a>. The caller will also free
+the original value of <em class="parameter"><code>glyphs</code></em>
+, 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.</p>
+<p>If <em class="parameter"><code>clusters</code></em>
+ is not <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, <em class="parameter"><code>num_clusters</code></em>
+ and <em class="parameter"><code>cluster_flags</code></em>
+ are also
+non-<a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, and cluster mapping should be computed. The semantics of how
+cluster array allocation works is similar to the glyph array. That is,
+if <em class="parameter"><code>clusters</code></em>
+ initially points to a non-<a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> value, that array may be used
+as a cluster buffer, and <em class="parameter"><code>num_clusters</code></em>
+ 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 <a class="link" href="cairo-text.html#cairo-text-cluster-allocate" title="cairo_text_cluster_allocate ()"><code class="function">cairo_text_cluster_allocate()</code></a> and placed in <em class="parameter"><code>clusters</code></em>
+. In this case,
+the original value of <em class="parameter"><code>clusters</code></em>
+ will still be freed by the caller. Upon
+return, <em class="parameter"><code>num_clusters</code></em>
+ should contain the number of generated clusters.
+If the value <em class="parameter"><code>clusters</code></em>
+ points at has changed after the call, the caller
+will free the allocated cluster array using <a class="link" href="cairo-text.html#cairo-text-cluster-free" title="cairo_text_cluster_free ()"><code class="function">cairo_text_cluster_free()</code></a>.</p>
+<p>The callback is optional. If <em class="parameter"><code>num_glyphs</code></em>
+ is negative upon
+the callback returning or if the return value
+is <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-USER-FONT-NOT-IMPLEMENTED:CAPS"><code class="literal">CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED</code></a>, the unicode_to_glyph callback
+is tried. See <a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-unicode-to-glyph-func-t" title="cairo_user_scaled_font_unicode_to_glyph_func_t ()"><span class="type">cairo_user_scaled_font_unicode_to_glyph_func_t</span></a>.</p>
+<p>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.</p>
+<div class="refsect3">
+<a name="cairo-user-scaled-font-text-to-glyphs-func-t.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>scaled_font</p></td>
+<td class="parameter_description"><p>the scaled-font being created</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>utf8</p></td>
+<td class="parameter_description"><p>a string of text encoded in UTF-8</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>utf8_len</p></td>
+<td class="parameter_description"><p>length of <em class="parameter"><code>utf8</code></em>
+in bytes</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>glyphs</p></td>
+<td class="parameter_description"><p>pointer to array of glyphs to fill, in font space</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>num_glyphs</p></td>
+<td class="parameter_description"><p>pointer to number of glyphs</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>clusters</p></td>
+<td class="parameter_description"><p>pointer to array of cluster mapping information to fill, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>num_clusters</p></td>
+<td class="parameter_description"><p>pointer to number of clusters</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cluster_flags</p></td>
+<td class="parameter_description"><p>pointer to location to store cluster flags corresponding to the
+output <em class="parameter"><code>clusters</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-user-scaled-font-text-to-glyphs-func-t.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> upon success,
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-USER-FONT-NOT-IMPLEMENTED:CAPS"><code class="literal">CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED</code></a> if fallback options should be tried,
+or <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-USER-FONT-ERROR:CAPS"><code class="literal">CAIRO_STATUS_USER_FONT_ERROR</code></a> or any other error status on error.</p>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-user-scaled-font-unicode-to-glyph-func-t"></a><h3>cairo_user_scaled_font_unicode_to_glyph_func_t ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+<span class="c_punctuation">(</span>*cairo_user_scaled_font_unicode_to_glyph_func_t<span class="c_punctuation">)</span>
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> *scaled_font</code></em>,
+ <em class="parameter"><code><span class="type">unsigned long </span> unicode</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">long</span> *glyph_index</code></em>);</pre>
+<p><a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-unicode-to-glyph-func-t" title="cairo_user_scaled_font_unicode_to_glyph_func_t ()"><span class="type">cairo_user_scaled_font_unicode_to_glyph_func_t</span></a> is the type of function which
+is called to convert an input Unicode character to a single glyph.
+This is used by the <a class="link" href="cairo-text.html#cairo-show-text" title="cairo_show_text ()"><code class="function">cairo_show_text()</code></a> operation.</p>
+<p>This callback is used to provide the same functionality as the
+text_to_glyphs callback does (see <a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-text-to-glyphs-func-t" title="cairo_user_scaled_font_text_to_glyphs_func_t ()"><span class="type">cairo_user_scaled_font_text_to_glyphs_func_t</span></a>)
+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.</p>
+<p>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
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-USER-FONT-NOT-IMPLEMENTED:CAPS"><code class="literal">CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED</code></a>, an identity mapping from Unicode
+code-points to glyph indices is assumed.</p>
+<p>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.</p>
+<div class="refsect3">
+<a name="cairo-user-scaled-font-unicode-to-glyph-func-t.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>scaled_font</p></td>
+<td class="parameter_description"><p>the scaled-font being created</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>unicode</p></td>
+<td class="parameter_description"><p>input unicode character code-point</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>glyph_index</p></td>
+<td class="parameter_description"><p>output glyph index</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-user-scaled-font-unicode-to-glyph-func-t.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> upon success,
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-USER-FONT-NOT-IMPLEMENTED:CAPS"><code class="literal">CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED</code></a> if fallback options should be tried,
+or <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-USER-FONT-ERROR:CAPS"><code class="literal">CAIRO_STATUS_USER_FONT_ERROR</code></a> or any other error status on error.</p>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-user-font-face-create"></a><h3>cairo_user_font_face_create ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="returnvalue">cairo_font_face_t</span></a> *
+cairo_user_font_face_create (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>Creates a new user font-face.</p>
+<p>Use the setter functions to associate callbacks with the returned
+user font. The only mandatory callback is render_glyph.</p>
+<p>After the font-face is created, the user can attach arbitrary data
+(the actual font data) to it using <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-set-user-data" title="cairo_font_face_set_user_data ()"><code class="function">cairo_font_face_set_user_data()</code></a>
+and access it from the user-font callbacks by using
+<a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-font-face" title="cairo_scaled_font_get_font_face ()"><code class="function">cairo_scaled_font_get_font_face()</code></a> followed by
+<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-get-user-data" title="cairo_font_face_get_user_data ()"><code class="function">cairo_font_face_get_user_data()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-user-font-face-create.returns"></a><h4>Returns</h4>
+<p> a newly created <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a>. Free with
+<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-destroy" title="cairo_font_face_destroy ()"><code class="function">cairo_font_face_destroy()</code></a> when you are done using it.</p>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-user-font-face-set-init-func"></a><h3>cairo_user_font_face_set_init_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_user_font_face_set_init_func (<em class="parameter"><code><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> *font_face</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-init-func-t" title="cairo_user_scaled_font_init_func_t ()"><span class="type">cairo_user_scaled_font_init_func_t</span></a> init_func</code></em>);</pre>
+<p>Sets the scaled-font initialization function of a user-font.
+See <a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-init-func-t" title="cairo_user_scaled_font_init_func_t ()"><span class="type">cairo_user_scaled_font_init_func_t</span></a> for details of how the callback
+works.</p>
+<p>The font-face should not be immutable or a <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-USER-FONT-IMMUTABLE:CAPS"><code class="literal">CAIRO_STATUS_USER_FONT_IMMUTABLE</code></a>
+error will occur. A user font-face is immutable as soon as a scaled-font
+is created from it.</p>
+<div class="refsect3">
+<a name="cairo-user-font-face-set-init-func.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>font_face</p></td>
+<td class="parameter_description"><p>A user font face</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>init_func</p></td>
+<td class="parameter_description"><p>The init callback, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-user-font-face-get-init-func"></a><h3>cairo_user_font_face_get_init_func ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-init-func-t" title="cairo_user_scaled_font_init_func_t ()"><span class="returnvalue">cairo_user_scaled_font_init_func_t</span></a>
+cairo_user_font_face_get_init_func (<em class="parameter"><code><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> *font_face</code></em>);</pre>
+<p>Gets the scaled-font initialization function of a user-font.</p>
+<div class="refsect3">
+<a name="cairo-user-font-face-get-init-func.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>font_face</p></td>
+<td class="parameter_description"><p>A user font face</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-user-font-face-get-init-func.returns"></a><h4>Returns</h4>
+<p> The init callback of <em class="parameter"><code>font_face</code></em>
+or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none set or an error has occurred.</p>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-user-font-face-set-render-glyph-func"></a><h3>cairo_user_font_face_set_render_glyph_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_user_font_face_set_render_glyph_func
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> *font_face</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-render-glyph-func-t" title="cairo_user_scaled_font_render_glyph_func_t ()"><span class="type">cairo_user_scaled_font_render_glyph_func_t</span></a> render_glyph_func</code></em>);</pre>
+<p>Sets the glyph rendering function of a user-font.
+See <a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-render-glyph-func-t" title="cairo_user_scaled_font_render_glyph_func_t ()"><span class="type">cairo_user_scaled_font_render_glyph_func_t</span></a> for details of how the callback
+works.</p>
+<p>The font-face should not be immutable or a <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-USER-FONT-IMMUTABLE:CAPS"><code class="literal">CAIRO_STATUS_USER_FONT_IMMUTABLE</code></a>
+error will occur. A user font-face is immutable as soon as a scaled-font
+is created from it.</p>
+<p>The render_glyph callback is the only mandatory callback of a user-font.
+If the callback is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> and a glyph is tried to be rendered using
+<em class="parameter"><code>font_face</code></em>
+, a <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-USER-FONT-ERROR:CAPS"><code class="literal">CAIRO_STATUS_USER_FONT_ERROR</code></a> will occur.</p>
+<div class="refsect3">
+<a name="cairo-user-font-face-set-render-glyph-func.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>font_face</p></td>
+<td class="parameter_description"><p>A user font face</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>render_glyph_func</p></td>
+<td class="parameter_description"><p>The render_glyph callback, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-user-font-face-get-render-glyph-func"></a><h3>cairo_user_font_face_get_render_glyph_func ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-render-glyph-func-t" title="cairo_user_scaled_font_render_glyph_func_t ()"><span class="returnvalue">cairo_user_scaled_font_render_glyph_func_t</span></a>
+cairo_user_font_face_get_render_glyph_func
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> *font_face</code></em>);</pre>
+<p>Gets the glyph rendering function of a user-font.</p>
+<div class="refsect3">
+<a name="cairo-user-font-face-get-render-glyph-func.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>font_face</p></td>
+<td class="parameter_description"><p>A user font face</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-user-font-face-get-render-glyph-func.returns"></a><h4>Returns</h4>
+<p> The render_glyph callback of <em class="parameter"><code>font_face</code></em>
+or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none set or an error has occurred.</p>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-user-font-face-set-unicode-to-glyph-func"></a><h3>cairo_user_font_face_set_unicode_to_glyph_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_user_font_face_set_unicode_to_glyph_func
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> *font_face</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-unicode-to-glyph-func-t" title="cairo_user_scaled_font_unicode_to_glyph_func_t ()"><span class="type">cairo_user_scaled_font_unicode_to_glyph_func_t</span></a> unicode_to_glyph_func</code></em>);</pre>
+<p>Sets the unicode-to-glyph conversion function of a user-font.
+See <a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-unicode-to-glyph-func-t" title="cairo_user_scaled_font_unicode_to_glyph_func_t ()"><span class="type">cairo_user_scaled_font_unicode_to_glyph_func_t</span></a> for details of how the callback
+works.</p>
+<p>The font-face should not be immutable or a <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-USER-FONT-IMMUTABLE:CAPS"><code class="literal">CAIRO_STATUS_USER_FONT_IMMUTABLE</code></a>
+error will occur. A user font-face is immutable as soon as a scaled-font
+is created from it.</p>
+<div class="refsect3">
+<a name="cairo-user-font-face-set-unicode-to-glyph-func.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>font_face</p></td>
+<td class="parameter_description"><p>A user font face</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>unicode_to_glyph_func</p></td>
+<td class="parameter_description"><p>The unicode_to_glyph callback, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-user-font-face-get-unicode-to-glyph-func"></a><h3>cairo_user_font_face_get_unicode_to_glyph_func ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-unicode-to-glyph-func-t" title="cairo_user_scaled_font_unicode_to_glyph_func_t ()"><span class="returnvalue">cairo_user_scaled_font_unicode_to_glyph_func_t</span></a>
+cairo_user_font_face_get_unicode_to_glyph_func
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> *font_face</code></em>);</pre>
+<p>Gets the unicode-to-glyph conversion function of a user-font.</p>
+<div class="refsect3">
+<a name="cairo-user-font-face-get-unicode-to-glyph-func.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>font_face</p></td>
+<td class="parameter_description"><p>A user font face</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-user-font-face-get-unicode-to-glyph-func.returns"></a><h4>Returns</h4>
+<p> The unicode_to_glyph callback of <em class="parameter"><code>font_face</code></em>
+or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none set or an error occurred.</p>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-user-font-face-set-text-to-glyphs-func"></a><h3>cairo_user_font_face_set_text_to_glyphs_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_user_font_face_set_text_to_glyphs_func
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> *font_face</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-text-to-glyphs-func-t" title="cairo_user_scaled_font_text_to_glyphs_func_t ()"><span class="type">cairo_user_scaled_font_text_to_glyphs_func_t</span></a> text_to_glyphs_func</code></em>);</pre>
+<p>Sets th text-to-glyphs conversion function of a user-font.
+See <a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-text-to-glyphs-func-t" title="cairo_user_scaled_font_text_to_glyphs_func_t ()"><span class="type">cairo_user_scaled_font_text_to_glyphs_func_t</span></a> for details of how the callback
+works.</p>
+<p>The font-face should not be immutable or a <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-USER-FONT-IMMUTABLE:CAPS"><code class="literal">CAIRO_STATUS_USER_FONT_IMMUTABLE</code></a>
+error will occur. A user font-face is immutable as soon as a scaled-font
+is created from it.</p>
+<div class="refsect3">
+<a name="cairo-user-font-face-set-text-to-glyphs-func.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>font_face</p></td>
+<td class="parameter_description"><p>A user font face</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>text_to_glyphs_func</p></td>
+<td class="parameter_description"><p>The text_to_glyphs callback, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-user-font-face-get-text-to-glyphs-func"></a><h3>cairo_user_font_face_get_text_to_glyphs_func ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-text-to-glyphs-func-t" title="cairo_user_scaled_font_text_to_glyphs_func_t ()"><span class="returnvalue">cairo_user_scaled_font_text_to_glyphs_func_t</span></a>
+cairo_user_font_face_get_text_to_glyphs_func
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> *font_face</code></em>);</pre>
+<p>Gets the text-to-glyphs conversion function of a user-font.</p>
+<div class="refsect3">
+<a name="cairo-user-font-face-get-text-to-glyphs-func.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>font_face</p></td>
+<td class="parameter_description"><p>A user font face</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-user-font-face-get-text-to-glyphs-func.returns"></a><h4>Returns</h4>
+<p> The text_to_glyphs callback of <em class="parameter"><code>font_face</code></em>
+or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none set or an error occurred.</p>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-User-Fonts.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="CAIRO-HAS-USER-FONT:CAPS"></a><h3>CAIRO_HAS_USER_FONT</h3>
+<pre class="programlisting">#define CAIRO_HAS_USER_FONT 1
+</pre>
+<p>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).</p>
+<p class="since">Since: 1.8</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Version Information: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="cairo-support.html" title="Utilities">
+<link rel="prev" href="cairo-Error-handling.html" title="Error handling">
+<link rel="next" href="cairo-Types.html" title="Types">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+ <a href="#cairo-Version-Information.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="cairo-support.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="cairo-Error-handling.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="cairo-Types.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="cairo-Version-Information"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="cairo-Version-Information.top_of_page"></a>Version Information</span></h2>
+<p>Version Information — Compile-time and run-time version checks.</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="cairo-Version-Information.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="cairo-Version-Information.html#CAIRO-VERSION-ENCODE:CAPS" title="CAIRO_VERSION_ENCODE()">CAIRO_VERSION_ENCODE</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="cairo-Version-Information.html#CAIRO-VERSION-STRINGIZE:CAPS" title="CAIRO_VERSION_STRINGIZE()">CAIRO_VERSION_STRINGIZE</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Version-Information.html#cairo-version" title="cairo_version ()">cairo_version</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">const <span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Version-Information.html#cairo-version-string" title="cairo_version_string ()">cairo_version_string</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-Version-Information.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="cairo-Version-Information.html#CAIRO-VERSION:CAPS" title="CAIRO_VERSION">CAIRO_VERSION</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="cairo-Version-Information.html#CAIRO-VERSION-MAJOR:CAPS" title="CAIRO_VERSION_MAJOR">CAIRO_VERSION_MAJOR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="cairo-Version-Information.html#CAIRO-VERSION-MINOR:CAPS" title="CAIRO_VERSION_MINOR">CAIRO_VERSION_MINOR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="cairo-Version-Information.html#CAIRO-VERSION-MICRO:CAPS" title="CAIRO_VERSION_MICRO">CAIRO_VERSION_MICRO</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="cairo-Version-Information.html#CAIRO-VERSION-STRING:CAPS" title="CAIRO_VERSION_STRING">CAIRO_VERSION_STRING</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-Version-Information.description"></a><h2>Description</h2>
+<p>Cairo has a three-part version number scheme. In this scheme, we use
+even vs. odd numbers to distinguish fixed points in the software
+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).</p>
+<div class="informalexample"><pre class="screen">
+ _____ 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
+</pre></div>
+<p>Here are a few examples of versions that one might see.</p>
+<div class="informalexample"><pre class="screen">
+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)
+</pre></div>
+<div class="refsect2">
+<a name="id-1.6.4.5.6"></a><h3>Compatibility</h3>
+
+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.
+
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.6.4.5.7"></a><h3>Examining the version</h3>
+
+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 <a class="link" href="cairo-Version-Information.html#CAIRO-VERSION-ENCODE:CAPS" title="CAIRO_VERSION_ENCODE()"><code class="function">CAIRO_VERSION_ENCODE()</code></a> to perform the encoding.
+
+<div class="informalexample"><pre class="screen">
+Compile-time
+------------
+<a class="link" href="cairo-Version-Information.html#CAIRO-VERSION-STRING:CAPS" title="CAIRO_VERSION_STRING"><span class="type">CAIRO_VERSION_STRING</span></a> Human-readable
+<a class="link" href="cairo-Version-Information.html#CAIRO-VERSION:CAPS" title="CAIRO_VERSION"><span class="type">CAIRO_VERSION</span></a> Encoded, suitable for comparison
+Run-time
+--------
+<a class="link" href="cairo-Version-Information.html#cairo-version-string" title="cairo_version_string ()"><code class="function">cairo_version_string()</code></a> Human-readable
+<a class="link" href="cairo-Version-Information.html#cairo-version" title="cairo_version ()"><code class="function">cairo_version()</code></a> Encoded, suitable for comparison
+</pre></div>
+
+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:
+
+<div class="informalexample">
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+ <tbody>
+ <tr>
+ <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6</pre></td>
+ <td class="listing_code"><pre class="programlisting"><span class="gtkdoc ppc">##if CAIRO_VERSION &gt;= CAIRO_VERSION_ENCODE(1, 0, 0)</span>
+<span class="function">printf</span> <span class="gtkdoc opt">(</span><span class="string">&quot;Compiling with suitable cairo version: %s</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">, %</span>CAIRO_VERSION_STRING<span class="gtkdoc opt">);</span>
+<span class="gtkdoc ppc">##endif</span>
+
+<span class="keyword">if</span> <span class="gtkdoc opt">(</span><span class="function"><a href="cairo-Version-Information.html#cairo-version">cairo_version</a></span><span class="gtkdoc opt">() &gt;=</span> <span class="function"><a href="cairo-Version-Information.html#CAIRO-VERSION-ENCODE:CAPS">CAIRO_VERSION_ENCODE</a></span><span class="gtkdoc opt">(</span><span class="number">1</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">))</span>
+ <span class="function">printf</span> <span class="gtkdoc opt">(</span><span class="string">&quot;Running with suitable cairo version: %s</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">,</span> <span class="function"><a href="cairo-Version-Information.html#cairo-version-string">cairo_version_string</a></span> <span class="gtkdoc opt">());</span></pre></td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-Version-Information.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="CAIRO-VERSION-ENCODE:CAPS"></a><h3>CAIRO_VERSION_ENCODE()</h3>
+<pre class="programlisting">#define CAIRO_VERSION_ENCODE(major, minor, micro)</pre>
+<p>This macro encodes the given cairo version into an integer. The numbers
+returned by <a class="link" href="cairo-Version-Information.html#CAIRO-VERSION:CAPS" title="CAIRO_VERSION"><code class="literal">CAIRO_VERSION</code></a> and <a class="link" href="cairo-Version-Information.html#cairo-version" title="cairo_version ()"><code class="function">cairo_version()</code></a> 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.</p>
+<div class="refsect3">
+<a name="CAIRO-VERSION-ENCODE.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>major</p></td>
+<td class="parameter_description"><p>the major component of the version number</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>minor</p></td>
+<td class="parameter_description"><p>the minor component of the version number</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>micro</p></td>
+<td class="parameter_description"><p>the micro component of the version number</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="CAIRO-VERSION-ENCODE.returns"></a><h4>Returns</h4>
+<p> the encoded version.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="CAIRO-VERSION-STRINGIZE:CAPS"></a><h3>CAIRO_VERSION_STRINGIZE()</h3>
+<pre class="programlisting">#define CAIRO_VERSION_STRINGIZE(major, minor, micro)</pre>
+<p>This macro encodes the given cairo version into an string. The numbers
+returned by <a class="link" href="cairo-Version-Information.html#CAIRO-VERSION-STRING:CAPS" title="CAIRO_VERSION_STRING"><code class="literal">CAIRO_VERSION_STRING</code></a> and <a class="link" href="cairo-Version-Information.html#cairo-version-string" title="cairo_version_string ()"><code class="function">cairo_version_string()</code></a> are encoded using this macro.
+The parameters to this macro must expand to numerical literals.</p>
+<div class="refsect3">
+<a name="CAIRO-VERSION-STRINGIZE.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>major</p></td>
+<td class="parameter_description"><p>the major component of the version number</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>minor</p></td>
+<td class="parameter_description"><p>the minor component of the version number</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>micro</p></td>
+<td class="parameter_description"><p>the micro component of the version number</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="CAIRO-VERSION-STRINGIZE.returns"></a><h4>Returns</h4>
+<p> a string literal containing the version.</p>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-version"></a><h3>cairo_version ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+cairo_version (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>Returns the version of the cairo library encoded in a single
+integer as per <a class="link" href="cairo-Version-Information.html#CAIRO-VERSION-ENCODE:CAPS" title="CAIRO_VERSION_ENCODE()"><code class="literal">CAIRO_VERSION_ENCODE</code></a>. The encoding ensures that
+later versions compare greater than earlier versions.</p>
+<p>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:</p>
+<div class="informalexample">
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+ <tbody>
+ <tr>
+ <td class="listing_lines" align="right"><pre>1</pre></td>
+ <td class="listing_code"><pre class="programlisting"><span class="keyword">if</span> <span class="gtkdoc opt">(</span><span class="function"><a href="cairo-Version-Information.html#cairo-version">cairo_version</a></span><span class="gtkdoc opt">() &gt;=</span> <span class="function"><a href="cairo-Version-Information.html#CAIRO-VERSION-ENCODE:CAPS">CAIRO_VERSION_ENCODE</a></span><span class="gtkdoc opt">(</span>X<span class="gtkdoc opt">,</span>Y<span class="gtkdoc opt">,</span>Z<span class="gtkdoc opt">)) {...}</span></pre></td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+
+<p>See also <a class="link" href="cairo-Version-Information.html#cairo-version-string" title="cairo_version_string ()"><code class="function">cairo_version_string()</code></a> as well as the compile-time
+equivalents <a class="link" href="cairo-Version-Information.html#CAIRO-VERSION:CAPS" title="CAIRO_VERSION"><code class="literal">CAIRO_VERSION</code></a> and <a class="link" href="cairo-Version-Information.html#CAIRO-VERSION-STRING:CAPS" title="CAIRO_VERSION_STRING"><code class="literal">CAIRO_VERSION_STRING</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-version.returns"></a><h4>Returns</h4>
+<p> the encoded version.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-version-string"></a><h3>cairo_version_string ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> *
+cairo_version_string (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>Returns the version of the cairo library as a human-readable string
+of the form "X.Y.Z".</p>
+<p>See also <a class="link" href="cairo-Version-Information.html#cairo-version" title="cairo_version ()"><code class="function">cairo_version()</code></a> as well as the compile-time equivalents
+<a class="link" href="cairo-Version-Information.html#CAIRO-VERSION-STRING:CAPS" title="CAIRO_VERSION_STRING"><code class="literal">CAIRO_VERSION_STRING</code></a> and <a class="link" href="cairo-Version-Information.html#CAIRO-VERSION:CAPS" title="CAIRO_VERSION"><code class="literal">CAIRO_VERSION</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-version-string.returns"></a><h4>Returns</h4>
+<p> a string containing the version.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-Version-Information.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="CAIRO-VERSION:CAPS"></a><h3>CAIRO_VERSION</h3>
+<pre class="programlisting">#define CAIRO_VERSION</pre>
+<p>The version of cairo available at compile-time, encoded using
+<a class="link" href="cairo-Version-Information.html#CAIRO-VERSION-ENCODE:CAPS" title="CAIRO_VERSION_ENCODE()"><code class="function">CAIRO_VERSION_ENCODE()</code></a>.</p>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="CAIRO-VERSION-MAJOR:CAPS"></a><h3>CAIRO_VERSION_MAJOR</h3>
+<pre class="programlisting">#define CAIRO_VERSION_MAJOR USE_cairo_version_OR_cairo_version_string_INSTEAD
+</pre>
+<p>The major component of the version of cairo available at compile-time.</p>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="CAIRO-VERSION-MINOR:CAPS"></a><h3>CAIRO_VERSION_MINOR</h3>
+<pre class="programlisting">#define CAIRO_VERSION_MINOR USE_cairo_version_OR_cairo_version_string_INSTEAD
+</pre>
+<p>The minor component of the version of cairo available at compile-time.</p>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="CAIRO-VERSION-MICRO:CAPS"></a><h3>CAIRO_VERSION_MICRO</h3>
+<pre class="programlisting">#define CAIRO_VERSION_MICRO USE_cairo_version_OR_cairo_version_string_INSTEAD
+</pre>
+<p>The micro component of the version of cairo available at compile-time.</p>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="CAIRO-VERSION-STRING:CAPS"></a><h3>CAIRO_VERSION_STRING</h3>
+<pre class="programlisting">#define CAIRO_VERSION_STRING</pre>
+<p>A human-readable string literal containing the version of cairo available
+at compile-time, in the form of "X.Y.Z".</p>
+<p class="since">Since: 1.8</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Win32 Fonts: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="cairo-fonts.html" title="Fonts">
+<link rel="prev" href="cairo-FreeType-Fonts.html" title="FreeType Fonts">
+<link rel="next" href="cairo-Quartz-(CGFont)-Fonts.html" title="Quartz (CGFont) Fonts">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+ <a href="#cairo-Win32-Fonts.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="cairo-fonts.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="cairo-FreeType-Fonts.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="cairo-Quartz-(CGFont)-Fonts.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="cairo-Win32-Fonts"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="cairo-Win32-Fonts.top_of_page"></a>Win32 Fonts</span></h2>
+<p>Win32 Fonts — Font support for Microsoft Windows</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="cairo-Win32-Fonts.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="returnvalue">cairo_font_face_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Win32-Fonts.html#cairo-win32-font-face-create-for-logfontw" title="cairo_win32_font_face_create_for_logfontw ()">cairo_win32_font_face_create_for_logfontw</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="returnvalue">cairo_font_face_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Win32-Fonts.html#cairo-win32-font-face-create-for-hfont" title="cairo_win32_font_face_create_for_hfont ()">cairo_win32_font_face_create_for_hfont</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="returnvalue">cairo_font_face_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Win32-Fonts.html#cairo-win32-font-face-create-for-logfontw-hfont" title="cairo_win32_font_face_create_for_logfontw_hfont ()">cairo_win32_font_face_create_for_logfontw_hfont</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Win32-Fonts.html#cairo-win32-scaled-font-select-font" title="cairo_win32_scaled_font_select_font ()">cairo_win32_scaled_font_select_font</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Win32-Fonts.html#cairo-win32-scaled-font-done-font" title="cairo_win32_scaled_font_done_font ()">cairo_win32_scaled_font_done_font</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">double</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Win32-Fonts.html#cairo-win32-scaled-font-get-metrics-factor" title="cairo_win32_scaled_font_get_metrics_factor ()">cairo_win32_scaled_font_get_metrics_factor</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Win32-Fonts.html#cairo-win32-scaled-font-get-logical-to-device" title="cairo_win32_scaled_font_get_logical_to_device ()">cairo_win32_scaled_font_get_logical_to_device</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Win32-Fonts.html#cairo-win32-scaled-font-get-device-to-logical" title="cairo_win32_scaled_font_get_device_to_logical ()">cairo_win32_scaled_font_get_device_to_logical</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-Win32-Fonts.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="cairo-Win32-Fonts.html#CAIRO-HAS-WIN32-FONT:CAPS" title="CAIRO_HAS_WIN32_FONT">CAIRO_HAS_WIN32_FONT</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-Win32-Fonts.description"></a><h2>Description</h2>
+<p>The Microsoft Windows font backend is primarily used to render text on
+Microsoft Windows systems.</p>
+</div>
+<div class="refsect1">
+<a name="cairo-Win32-Fonts.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="cairo-win32-font-face-create-for-logfontw"></a><h3>cairo_win32_font_face_create_for_logfontw ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="returnvalue">cairo_font_face_t</span></a> *
+cairo_win32_font_face_create_for_logfontw
+ (<em class="parameter"><code><span class="type">LOGFONTW</span> *logfont</code></em>);</pre>
+<p>Creates a new font for the Win32 font backend based on a
+<span class="type">LOGFONT</span>. This font can then be used with
+<a class="link" href="cairo-text.html#cairo-set-font-face" title="cairo_set_font_face ()"><code class="function">cairo_set_font_face()</code></a> or <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-create" title="cairo_scaled_font_create ()"><code class="function">cairo_scaled_font_create()</code></a>.
+The <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a>
+returned from <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-create" title="cairo_scaled_font_create ()"><code class="function">cairo_scaled_font_create()</code></a> is also for the Win32 backend
+and can be used with functions such as <a class="link" href="cairo-Win32-Fonts.html#cairo-win32-scaled-font-select-font" title="cairo_win32_scaled_font_select_font ()"><code class="function">cairo_win32_scaled_font_select_font()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-win32-font-face-create-for-logfontw.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>logfont</p></td>
+<td class="parameter_description"><p>A <span class="type">LOGFONTW</span> structure specifying the font to use.
+The lfHeight, lfWidth, lfOrientation and lfEscapement
+fields of this structure are ignored.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-win32-font-face-create-for-logfontw.returns"></a><h4>Returns</h4>
+<p> a newly created <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a>. Free with
+<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-destroy" title="cairo_font_face_destroy ()"><code class="function">cairo_font_face_destroy()</code></a> when you are done using it.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-win32-font-face-create-for-hfont"></a><h3>cairo_win32_font_face_create_for_hfont ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="returnvalue">cairo_font_face_t</span></a> *
+cairo_win32_font_face_create_for_hfont
+ (<em class="parameter"><code><span class="type">HFONT</span> font</code></em>);</pre>
+<p>Creates a new font for the Win32 font backend based on a
+<span class="type">HFONT</span>. This font can then be used with
+<a class="link" href="cairo-text.html#cairo-set-font-face" title="cairo_set_font_face ()"><code class="function">cairo_set_font_face()</code></a> or <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-create" title="cairo_scaled_font_create ()"><code class="function">cairo_scaled_font_create()</code></a>.
+The <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a>
+returned from <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-create" title="cairo_scaled_font_create ()"><code class="function">cairo_scaled_font_create()</code></a> is also for the Win32 backend
+and can be used with functions such as <a class="link" href="cairo-Win32-Fonts.html#cairo-win32-scaled-font-select-font" title="cairo_win32_scaled_font_select_font ()"><code class="function">cairo_win32_scaled_font_select_font()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-win32-font-face-create-for-hfont.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>font</p></td>
+<td class="parameter_description"><p>An <span class="type">HFONT</span> structure specifying the font to use.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-win32-font-face-create-for-hfont.returns"></a><h4>Returns</h4>
+<p> a newly created <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a>. Free with
+<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-destroy" title="cairo_font_face_destroy ()"><code class="function">cairo_font_face_destroy()</code></a> when you are done using it.</p>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-win32-font-face-create-for-logfontw-hfont"></a><h3>cairo_win32_font_face_create_for_logfontw_hfont ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="returnvalue">cairo_font_face_t</span></a> *
+cairo_win32_font_face_create_for_logfontw_hfont
+ (<em class="parameter"><code><span class="type">LOGFONTW</span> *logfont</code></em>,
+ <em class="parameter"><code><span class="type">HFONT</span> font</code></em>);</pre>
+<p>Creates a new font for the Win32 font backend based on a
+<span class="type">LOGFONT</span>. This font can then be used with
+<a class="link" href="cairo-text.html#cairo-set-font-face" title="cairo_set_font_face ()"><code class="function">cairo_set_font_face()</code></a> or <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-create" title="cairo_scaled_font_create ()"><code class="function">cairo_scaled_font_create()</code></a>.
+The <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a>
+returned from <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-create" title="cairo_scaled_font_create ()"><code class="function">cairo_scaled_font_create()</code></a> is also for the Win32 backend
+and can be used with functions such as <a class="link" href="cairo-Win32-Fonts.html#cairo-win32-scaled-font-select-font" title="cairo_win32_scaled_font_select_font ()"><code class="function">cairo_win32_scaled_font_select_font()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-win32-font-face-create-for-logfontw-hfont.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>logfont</p></td>
+<td class="parameter_description"><p>A <span class="type">LOGFONTW</span> structure specifying the font to use.
+If <em class="parameter"><code>font</code></em>
+is <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> then the lfHeight, lfWidth, lfOrientation and lfEscapement
+fields of this structure are ignored. Otherwise lfWidth, lfOrientation and
+lfEscapement must be zero.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>font</p></td>
+<td class="parameter_description"><p>An <span class="type">HFONT</span> that can be used when the font matrix is a scale by
+-lfHeight and the CTM is identity.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-win32-font-face-create-for-logfontw-hfont.returns"></a><h4>Returns</h4>
+<p> a newly created <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a>. Free with
+<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-destroy" title="cairo_font_face_destroy ()"><code class="function">cairo_font_face_destroy()</code></a> when you are done using it.</p>
+</div>
+<p class="since">Since: 1.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-win32-scaled-font-select-font"></a><h3>cairo_win32_scaled_font_select_font ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+cairo_win32_scaled_font_select_font (<em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> *scaled_font</code></em>,
+ <em class="parameter"><code><span class="type">HDC</span> hdc</code></em>);</pre>
+<p>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
+<a class="link" href="cairo-Win32-Fonts.html#cairo-win32-scaled-font-done-font" title="cairo_win32_scaled_font_done_font ()"><code class="function">cairo_win32_scaled_font_done_font()</code></a> to release any resources allocated
+by this function.</p>
+<p>See <a class="link" href="cairo-Win32-Fonts.html#cairo-win32-scaled-font-get-metrics-factor" title="cairo_win32_scaled_font_get_metrics_factor ()"><code class="function">cairo_win32_scaled_font_get_metrics_factor()</code></a> for converting logical
+coordinates from the device context to font space.</p>
+<p>Normally, calls to <code class="function">SaveDC()</code> and <code class="function">RestoreDC()</code> would be made around
+the use of this function to preserve the original graphics state.</p>
+<div class="refsect3">
+<a name="cairo-win32-scaled-font-select-font.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>scaled_font</p></td>
+<td class="parameter_description"><p>A <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> from the Win32 font backend. Such an
+object can be created with <a class="link" href="cairo-Win32-Fonts.html#cairo-win32-font-face-create-for-logfontw" title="cairo_win32_font_face_create_for_logfontw ()"><code class="function">cairo_win32_font_face_create_for_logfontw()</code></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>hdc</p></td>
+<td class="parameter_description"><p>a device context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-win32-scaled-font-select-font.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> if the operation succeeded.
+otherwise an error such as <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a> and
+the device context is unchanged.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-win32-scaled-font-done-font"></a><h3>cairo_win32_scaled_font_done_font ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_win32_scaled_font_done_font (<em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> *scaled_font</code></em>);</pre>
+<p>Releases any resources allocated by <a class="link" href="cairo-Win32-Fonts.html#cairo-win32-scaled-font-select-font" title="cairo_win32_scaled_font_select_font ()"><code class="function">cairo_win32_scaled_font_select_font()</code></a></p>
+<div class="refsect3">
+<a name="cairo-win32-scaled-font-done-font.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>scaled_font</p></td>
+<td class="parameter_description"><p>A scaled font from the Win32 font backend.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-win32-scaled-font-get-metrics-factor"></a><h3>cairo_win32_scaled_font_get_metrics_factor ()</h3>
+<pre class="programlisting"><span class="returnvalue">double</span>
+cairo_win32_scaled_font_get_metrics_factor
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> *scaled_font</code></em>);</pre>
+<p>Gets a scale factor between logical coordinates in the coordinate
+space used by <a class="link" href="cairo-Win32-Fonts.html#cairo-win32-scaled-font-select-font" title="cairo_win32_scaled_font_select_font ()"><code class="function">cairo_win32_scaled_font_select_font()</code></a> (that is, the
+coordinate system used by the Windows functions to return metrics) and
+font space coordinates.</p>
+<div class="refsect3">
+<a name="cairo-win32-scaled-font-get-metrics-factor.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>scaled_font</p></td>
+<td class="parameter_description"><p>a scaled font from the Win32 font backend</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-win32-scaled-font-get-metrics-factor.returns"></a><h4>Returns</h4>
+<p> factor to multiply logical units by to get font space
+coordinates.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-win32-scaled-font-get-logical-to-device"></a><h3>cairo_win32_scaled_font_get_logical_to_device ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_win32_scaled_font_get_logical_to_device
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> *scaled_font</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a> *logical_to_device</code></em>);</pre>
+<p>Gets the transformation mapping the logical space used by <em class="parameter"><code>scaled_font</code></em>
+
+to device space.</p>
+<div class="refsect3">
+<a name="cairo-win32-scaled-font-get-logical-to-device.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>scaled_font</p></td>
+<td class="parameter_description"><p>a scaled font from the Win32 font backend</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>logical_to_device</p></td>
+<td class="parameter_description"><p>matrix to return</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-win32-scaled-font-get-device-to-logical"></a><h3>cairo_win32_scaled_font_get_device_to_logical ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_win32_scaled_font_get_device_to_logical
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> *scaled_font</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a> *device_to_logical</code></em>);</pre>
+<p>Gets the transformation mapping device space to the logical space
+used by <em class="parameter"><code>scaled_font</code></em>
+.</p>
+<div class="refsect3">
+<a name="cairo-win32-scaled-font-get-device-to-logical.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>scaled_font</p></td>
+<td class="parameter_description"><p>a scaled font from the Win32 font backend</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>device_to_logical</p></td>
+<td class="parameter_description"><p>matrix to return</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.4</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-Win32-Fonts.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="CAIRO-HAS-WIN32-FONT:CAPS"></a><h3>CAIRO_HAS_WIN32_FONT</h3>
+<pre class="programlisting">#define CAIRO_HAS_WIN32_FONT 1
+</pre>
+<p>Defined if the Microsoft Windows font backend is available.
+This macro can be used to conditionally compile backend-specific code.</p>
+<p class="since">Since: 1.8</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-Win32-Fonts.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a></p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Win32 Surfaces: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="cairo-surfaces.html" title="Surfaces">
+<link rel="prev" href="cairo-Recording-Surfaces.html" title="Recording Surfaces">
+<link rel="next" href="cairo-SVG-Surfaces.html" title="SVG Surfaces">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+ <a href="#cairo-Win32-Surfaces.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="cairo-surfaces.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="cairo-Recording-Surfaces.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="cairo-SVG-Surfaces.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="cairo-Win32-Surfaces"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="cairo-Win32-Surfaces.top_of_page"></a>Win32 Surfaces</span></h2>
+<p>Win32 Surfaces — Microsoft Windows surface support</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="cairo-Win32-Surfaces.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Win32-Surfaces.html#cairo-win32-surface-create" title="cairo_win32_surface_create ()">cairo_win32_surface_create</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Win32-Surfaces.html#cairo-win32-surface-create-with-dib" title="cairo_win32_surface_create_with_dib ()">cairo_win32_surface_create_with_dib</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Win32-Surfaces.html#cairo-win32-surface-create-with-ddb" title="cairo_win32_surface_create_with_ddb ()">cairo_win32_surface_create_with_ddb</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Win32-Surfaces.html#cairo-win32-surface-create-with-format" title="cairo_win32_surface_create_with_format ()">cairo_win32_surface_create_with_format</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Win32-Surfaces.html#cairo-win32-printing-surface-create" title="cairo_win32_printing_surface_create ()">cairo_win32_printing_surface_create</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">HDC</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Win32-Surfaces.html#cairo-win32-surface-get-dc" title="cairo_win32_surface_get_dc ()">cairo_win32_surface_get_dc</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-Win32-Surfaces.html#cairo-win32-surface-get-image" title="cairo_win32_surface_get_image ()">cairo_win32_surface_get_image</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-Win32-Surfaces.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="cairo-Win32-Surfaces.html#CAIRO-HAS-WIN32-SURFACE:CAPS" title="CAIRO_HAS_WIN32_SURFACE">CAIRO_HAS_WIN32_SURFACE</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-Win32-Surfaces.description"></a><h2>Description</h2>
+<p>The Microsoft Windows surface is used to render cairo graphics to
+Microsoft Windows windows, bitmaps, and printing device contexts.</p>
+<p>The surface returned by <a class="link" href="cairo-Win32-Surfaces.html#cairo-win32-printing-surface-create" title="cairo_win32_printing_surface_create ()"><code class="function">cairo_win32_printing_surface_create()</code></a> is of surface
+type <a class="link" href="cairo-cairo-surface-t.html#CAIRO-SURFACE-TYPE-WIN32-PRINTING:CAPS"><code class="literal">CAIRO_SURFACE_TYPE_WIN32_PRINTING</code></a> and is a multi-page vector surface
+type.</p>
+<p>The surface returned by the other win32 constructors is of surface type
+<a class="link" href="cairo-cairo-surface-t.html#CAIRO-SURFACE-TYPE-WIN32:CAPS"><code class="literal">CAIRO_SURFACE_TYPE_WIN32</code></a> and is a raster surface type.</p>
+</div>
+<div class="refsect1">
+<a name="cairo-Win32-Surfaces.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="cairo-win32-surface-create"></a><h3>cairo_win32_surface_create ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+cairo_win32_surface_create (<em class="parameter"><code><span class="type">HDC</span> hdc</code></em>);</pre>
+<p>Creates a cairo surface that targets the given DC. The DC will be
+queried for its initial clip extents, and this will be used as the
+size of the cairo surface. The resulting surface will always be of
+format <a class="link" href="cairo-Image-Surfaces.html#CAIRO-FORMAT-RGB24:CAPS"><code class="literal">CAIRO_FORMAT_RGB24</code></a>; should you need another surface format,
+you will need to create one through
+<a class="link" href="cairo-Win32-Surfaces.html#cairo-win32-surface-create-with-format" title="cairo_win32_surface_create_with_format ()"><code class="function">cairo_win32_surface_create_with_format()</code></a> or
+<a class="link" href="cairo-Win32-Surfaces.html#cairo-win32-surface-create-with-dib" title="cairo_win32_surface_create_with_dib ()"><code class="function">cairo_win32_surface_create_with_dib()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-win32-surface-create.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>hdc</p></td>
+<td class="parameter_description"><p>the DC to create a surface for</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-win32-surface-create.returns"></a><h4>Returns</h4>
+<p> the newly created surface, NULL on failure</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-win32-surface-create-with-dib"></a><h3>cairo_win32_surface_create_with_dib ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+cairo_win32_surface_create_with_dib (<em class="parameter"><code><a class="link" href="cairo-Image-Surfaces.html#cairo-format-t" title="enum cairo_format_t"><span class="type">cairo_format_t</span></a> format</code></em>,
+ <em class="parameter"><code><span class="type">int</span> width</code></em>,
+ <em class="parameter"><code><span class="type">int</span> height</code></em>);</pre>
+<p>Creates a device-independent-bitmap surface not associated with
+any particular existing surface or device context. The created
+bitmap will be uninitialized.</p>
+<div class="refsect3">
+<a name="cairo-win32-surface-create-with-dib.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>format of pixels in the surface to create</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>width</p></td>
+<td class="parameter_description"><p>width of the surface, in pixels</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>height</p></td>
+<td class="parameter_description"><p>height of the surface, in pixels</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-win32-surface-create-with-dib.returns"></a><h4>Returns</h4>
+<p> the newly created surface</p>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-win32-surface-create-with-ddb"></a><h3>cairo_win32_surface_create_with_ddb ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+cairo_win32_surface_create_with_ddb (<em class="parameter"><code><span class="type">HDC</span> hdc</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-Image-Surfaces.html#cairo-format-t" title="enum cairo_format_t"><span class="type">cairo_format_t</span></a> format</code></em>,
+ <em class="parameter"><code><span class="type">int</span> width</code></em>,
+ <em class="parameter"><code><span class="type">int</span> height</code></em>);</pre>
+<p>Creates a device-dependent-bitmap surface not associated with
+any particular existing surface or device context. The created
+bitmap will be uninitialized.</p>
+<div class="refsect3">
+<a name="cairo-win32-surface-create-with-ddb.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>hdc</p></td>
+<td class="parameter_description"><p>a DC compatible with the surface to create</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>format of pixels in the surface to create</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>width</p></td>
+<td class="parameter_description"><p>width of the surface, in pixels</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>height</p></td>
+<td class="parameter_description"><p>height of the surface, in pixels</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-win32-surface-create-with-ddb.returns"></a><h4>Returns</h4>
+<p> the newly created surface</p>
+</div>
+<p class="since">Since: 1.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-win32-surface-create-with-format"></a><h3>cairo_win32_surface_create_with_format ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+cairo_win32_surface_create_with_format
+ (<em class="parameter"><code><span class="type">HDC</span> hdc</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-Image-Surfaces.html#cairo-format-t" title="enum cairo_format_t"><span class="type">cairo_format_t</span></a> format</code></em>);</pre>
+<p>Creates a cairo surface that targets the given DC. The DC will be
+queried for its initial clip extents, and this will be used as the
+size of the cairo surface.</p>
+<p>Supported formats are:
+<a class="link" href="cairo-Image-Surfaces.html#CAIRO-FORMAT-ARGB32:CAPS"><code class="literal">CAIRO_FORMAT_ARGB32</code></a>
+<a class="link" href="cairo-Image-Surfaces.html#CAIRO-FORMAT-RGB24:CAPS"><code class="literal">CAIRO_FORMAT_RGB24</code></a></p>
+<p>Note: <em class="parameter"><code>format</code></em>
+ 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 <em class="parameter"><code>hdc</code></em>
+ actually supports alpha-transparency.</p>
+<div class="refsect3">
+<a name="cairo-win32-surface-create-with-format.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>hdc</p></td>
+<td class="parameter_description"><p>the DC to create a surface for</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>format of pixels in the surface to create</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-win32-surface-create-with-format.returns"></a><h4>Returns</h4>
+<p> the newly created surface, NULL on failure</p>
+</div>
+<p class="since">Since: 1.14</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-win32-printing-surface-create"></a><h3>cairo_win32_printing_surface_create ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+cairo_win32_printing_surface_create (<em class="parameter"><code><span class="type">HDC</span> hdc</code></em>);</pre>
+<p>Creates a cairo surface that targets the given DC. The DC will be
+queried for its initial clip extents, and this will be used as the
+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.</p>
+<p>The returned surface will be wrapped using the paginated surface to
+provide correct complex rendering behaviour; <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-show-page" title="cairo_surface_show_page ()"><code class="function">cairo_surface_show_page()</code></a> and
+associated methods must be used for correct output.</p>
+<div class="refsect3">
+<a name="cairo-win32-printing-surface-create.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>hdc</p></td>
+<td class="parameter_description"><p>the DC to create a surface for</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-win32-printing-surface-create.returns"></a><h4>Returns</h4>
+<p> the newly created surface</p>
+</div>
+<p class="since">Since: 1.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-win32-surface-get-dc"></a><h3>cairo_win32_surface_get_dc ()</h3>
+<pre class="programlisting"><span class="returnvalue">HDC</span>
+cairo_win32_surface_get_dc (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
+<p>Returns the HDC associated with this surface, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none.
+Also returns <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the surface is not a win32 surface.</p>
+<p>A call to <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-flush" title="cairo_surface_flush ()"><code class="function">cairo_surface_flush()</code></a> 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 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-mark-dirty" title="cairo_surface_mark_dirty ()"><code class="function">cairo_surface_mark_dirty()</code></a> is required after the state or
+the content of the HDC has been modified.</p>
+<div class="refsect3">
+<a name="cairo-win32-surface-get-dc.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-win32-surface-get-dc.returns"></a><h4>Returns</h4>
+<p> HDC or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if no HDC available.</p>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-win32-surface-get-image"></a><h3>cairo_win32_surface_get_image ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+cairo_win32_surface_get_image (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
+<p>Returns a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> image surface that refers to the same bits
+as the DIB of the Win32 surface. If the passed-in win32 surface
+is not a DIB surface, <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> is returned.</p>
+<div class="refsect3">
+<a name="cairo-win32-surface-get-image.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-win32-surface-get-image.returns"></a><h4>Returns</h4>
+<p> a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> (owned by the win32 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a>),
+or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the win32 surface is not a DIB.</p>
+</div>
+<p class="since">Since: 1.4</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-Win32-Surfaces.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="CAIRO-HAS-WIN32-SURFACE:CAPS"></a><h3>CAIRO_HAS_WIN32_SURFACE</h3>
+<pre class="programlisting">#define CAIRO_HAS_WIN32_SURFACE 1
+</pre>
+<p>Defined if the Microsoft Windows surface backend is available.
+This macro can be used to conditionally compile backend-specific code.</p>
+<p class="since">Since: 1.0</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-Win32-Surfaces.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>XCB Surfaces: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="cairo-surfaces.html" title="Surfaces">
+<link rel="prev" href="cairo-Quartz-Surfaces.html" title="Quartz Surfaces">
+<link rel="next" href="cairo-XLib-Surfaces.html" title="XLib Surfaces">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+ <a href="#cairo-XCB-Surfaces.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="cairo-surfaces.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="cairo-Quartz-Surfaces.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="cairo-XLib-Surfaces.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="cairo-XCB-Surfaces"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="cairo-XCB-Surfaces.top_of_page"></a>XCB Surfaces</span></h2>
+<p>XCB Surfaces — X Window System rendering using the XCB library</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="cairo-XCB-Surfaces.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-XCB-Surfaces.html#cairo-xcb-surface-create" title="cairo_xcb_surface_create ()">cairo_xcb_surface_create</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-XCB-Surfaces.html#cairo-xcb-surface-create-for-bitmap" title="cairo_xcb_surface_create_for_bitmap ()">cairo_xcb_surface_create_for_bitmap</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-XCB-Surfaces.html#cairo-xcb-surface-create-with-xrender-format" title="cairo_xcb_surface_create_with_xrender_format ()">cairo_xcb_surface_create_with_xrender_format</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-XCB-Surfaces.html#cairo-xcb-surface-set-size" title="cairo_xcb_surface_set_size ()">cairo_xcb_surface_set_size</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-XCB-Surfaces.html#cairo-xcb-surface-set-drawable" title="cairo_xcb_surface_set_drawable ()">cairo_xcb_surface_set_drawable</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">xcb_connection_t</span> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-XCB-Surfaces.html#cairo-xcb-device-get-connection" title="cairo_xcb_device_get_connection ()">cairo_xcb_device_get_connection</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-XCB-Surfaces.html#cairo-xcb-device-debug-cap-xrender-version" title="cairo_xcb_device_debug_cap_xrender_version ()">cairo_xcb_device_debug_cap_xrender_version</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-XCB-Surfaces.html#cairo-xcb-device-debug-cap-xshm-version" title="cairo_xcb_device_debug_cap_xshm_version ()">cairo_xcb_device_debug_cap_xshm_version</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-XCB-Surfaces.html#cairo-xcb-device-debug-get-precision" title="cairo_xcb_device_debug_get_precision ()">cairo_xcb_device_debug_get_precision</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-XCB-Surfaces.html#cairo-xcb-device-debug-set-precision" title="cairo_xcb_device_debug_set_precision ()">cairo_xcb_device_debug_set_precision</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-XCB-Surfaces.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="cairo-XCB-Surfaces.html#CAIRO-HAS-XCB-SURFACE:CAPS" title="CAIRO_HAS_XCB_SURFACE">CAIRO_HAS_XCB_SURFACE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="cairo-XCB-Surfaces.html#CAIRO-HAS-XCB-SHM-FUNCTIONS:CAPS" title="CAIRO_HAS_XCB_SHM_FUNCTIONS">CAIRO_HAS_XCB_SHM_FUNCTIONS</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-XCB-Surfaces.description"></a><h2>Description</h2>
+<p>The XCB surface is used to render cairo graphics to X Window System
+windows and pixmaps using the XCB library.</p>
+<p>Note that the XCB surface automatically takes advantage of the X render
+extension if it is available.</p>
+</div>
+<div class="refsect1">
+<a name="cairo-XCB-Surfaces.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="cairo-xcb-surface-create"></a><h3>cairo_xcb_surface_create ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+cairo_xcb_surface_create (<em class="parameter"><code><span class="type">xcb_connection_t</span> *connection</code></em>,
+ <em class="parameter"><code><span class="type">xcb_drawable_t</span> drawable</code></em>,
+ <em class="parameter"><code><span class="type">xcb_visualtype_t</span> *visual</code></em>,
+ <em class="parameter"><code><span class="type">int</span> width</code></em>,
+ <em class="parameter"><code><span class="type">int</span> height</code></em>);</pre>
+<p>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.</p>
+<p>Note: If <em class="parameter"><code>drawable</code></em>
+ is a Window, then the function
+<a class="link" href="cairo-XCB-Surfaces.html#cairo-xcb-surface-set-size" title="cairo_xcb_surface_set_size ()"><code class="function">cairo_xcb_surface_set_size()</code></a> must be called whenever the size of the
+window changes.</p>
+<p>When <em class="parameter"><code>drawable</code></em>
+ 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.</p>
+<div class="refsect3">
+<a name="cairo-xcb-surface-create.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>connection</p></td>
+<td class="parameter_description"><p>an XCB connection</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>drawable</p></td>
+<td class="parameter_description"><p>an XCB drawable</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>visual</p></td>
+<td class="parameter_description"><p>the visual to use for drawing to <em class="parameter"><code>drawable</code></em>
+. The depth
+of the visual must match the depth of the drawable.
+Currently, only TrueColor visuals are fully supported.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>width</p></td>
+<td class="parameter_description"><p>the current width of <em class="parameter"><code>drawable</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>height</p></td>
+<td class="parameter_description"><p>the current height of <em class="parameter"><code>drawable</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-xcb-surface-create.returns"></a><h4>Returns</h4>
+<p> a pointer to the newly created surface. The caller
+owns the surface and should call <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-destroy" title="cairo_surface_destroy ()"><code class="function">cairo_surface_destroy()</code></a> when done
+with it.</p>
+<p>This function always returns a valid pointer, but it will return a
+pointer to a "nil" surface if an error such as out of memory
+occurs. You can use <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-status" title="cairo_surface_status ()"><code class="function">cairo_surface_status()</code></a> to check for this.</p>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-xcb-surface-create-for-bitmap"></a><h3>cairo_xcb_surface_create_for_bitmap ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+cairo_xcb_surface_create_for_bitmap (<em class="parameter"><code><span class="type">xcb_connection_t</span> *connection</code></em>,
+ <em class="parameter"><code><span class="type">xcb_screen_t</span> *screen</code></em>,
+ <em class="parameter"><code><span class="type">xcb_pixmap_t</span> bitmap</code></em>,
+ <em class="parameter"><code><span class="type">int</span> width</code></em>,
+ <em class="parameter"><code><span class="type">int</span> height</code></em>);</pre>
+<p>Creates an XCB surface that draws to the given bitmap.
+This will be drawn to as a <a class="link" href="cairo-Image-Surfaces.html#CAIRO-FORMAT-A1:CAPS"><code class="literal">CAIRO_FORMAT_A1</code></a> object.</p>
+<div class="refsect3">
+<a name="cairo-xcb-surface-create-for-bitmap.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>connection</p></td>
+<td class="parameter_description"><p>an XCB connection</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>screen</p></td>
+<td class="parameter_description"><p>the XCB screen associated with <em class="parameter"><code>bitmap</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>bitmap</p></td>
+<td class="parameter_description"><p>an XCB drawable (a Pixmap with depth 1)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>width</p></td>
+<td class="parameter_description"><p>the current width of <em class="parameter"><code>bitmap</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>height</p></td>
+<td class="parameter_description"><p>the current height of <em class="parameter"><code>bitmap</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-xcb-surface-create-for-bitmap.returns"></a><h4>Returns</h4>
+<p> a pointer to the newly created surface. The caller
+owns the surface and should call <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-destroy" title="cairo_surface_destroy ()"><code class="function">cairo_surface_destroy()</code></a> when done
+with it.</p>
+<p>This function always returns a valid pointer, but it will return a
+pointer to a "nil" surface if an error such as out of memory
+occurs. You can use <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-status" title="cairo_surface_status ()"><code class="function">cairo_surface_status()</code></a> to check for this.</p>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-xcb-surface-create-with-xrender-format"></a><h3>cairo_xcb_surface_create_with_xrender_format ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+cairo_xcb_surface_create_with_xrender_format
+ (<em class="parameter"><code><span class="type">xcb_connection_t</span> *connection</code></em>,
+ <em class="parameter"><code><span class="type">xcb_screen_t</span> *screen</code></em>,
+ <em class="parameter"><code><span class="type">xcb_drawable_t</span> drawable</code></em>,
+ <em class="parameter"><code><span class="type">xcb_render_pictforminfo_t</span> *format</code></em>,
+ <em class="parameter"><code><span class="type">int</span> width</code></em>,
+ <em class="parameter"><code><span class="type">int</span> height</code></em>);</pre>
+<p>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.</p>
+<p>Note: If <em class="parameter"><code>drawable</code></em>
+ is a Window, then the function
+<a class="link" href="cairo-XCB-Surfaces.html#cairo-xcb-surface-set-size" title="cairo_xcb_surface_set_size ()"><code class="function">cairo_xcb_surface_set_size()</code></a> must be called whenever the size of the
+window changes.</p>
+<p>When <em class="parameter"><code>drawable</code></em>
+ 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.</p>
+<div class="refsect3">
+<a name="cairo-xcb-surface-create-with-xrender-format.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>connection</p></td>
+<td class="parameter_description"><p>an XCB connection</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>drawable</p></td>
+<td class="parameter_description"><p>an XCB drawable</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>screen</p></td>
+<td class="parameter_description"><p>the XCB screen associated with <em class="parameter"><code>drawable</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>the picture format to use for drawing to <em class="parameter"><code>drawable</code></em>
+. The
+depth of <em class="parameter"><code>format</code></em>
+mush match the depth of the drawable.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>width</p></td>
+<td class="parameter_description"><p>the current width of <em class="parameter"><code>drawable</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>height</p></td>
+<td class="parameter_description"><p>the current height of <em class="parameter"><code>drawable</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-xcb-surface-create-with-xrender-format.returns"></a><h4>Returns</h4>
+<p> a pointer to the newly created surface. The caller
+owns the surface and should call <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-destroy" title="cairo_surface_destroy ()"><code class="function">cairo_surface_destroy()</code></a> when done
+with it.</p>
+<p>This function always returns a valid pointer, but it will return a
+pointer to a "nil" surface if an error such as out of memory
+occurs. You can use <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-status" title="cairo_surface_status ()"><code class="function">cairo_surface_status()</code></a> to check for this.</p>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-xcb-surface-set-size"></a><h3>cairo_xcb_surface_set_size ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_xcb_surface_set_size (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
+ <em class="parameter"><code><span class="type">int</span> width</code></em>,
+ <em class="parameter"><code><span class="type">int</span> height</code></em>);</pre>
+<p>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.)</p>
+<p>A pixmap can never change size, so it is never necessary to call
+this function on a surface created for a pixmap.</p>
+<p>If <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-flush" title="cairo_surface_flush ()"><code class="function">cairo_surface_flush()</code></a> wasn't called, some pending operations
+might be discarded.</p>
+<div class="refsect3">
+<a name="cairo-xcb-surface-set-size.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> for the XCB backend</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>width</p></td>
+<td class="parameter_description"><p>the new width of the surface</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>height</p></td>
+<td class="parameter_description"><p>the new height of the surface</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-xcb-surface-set-drawable"></a><h3>cairo_xcb_surface_set_drawable ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_xcb_surface_set_drawable (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
+ <em class="parameter"><code><span class="type">xcb_drawable_t</span> drawable</code></em>,
+ <em class="parameter"><code><span class="type">int</span> width</code></em>,
+ <em class="parameter"><code><span class="type">int</span> height</code></em>);</pre>
+<p>Informs cairo of the new drawable and size of the XCB drawable underlying the
+surface.</p>
+<p>If <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-flush" title="cairo_surface_flush ()"><code class="function">cairo_surface_flush()</code></a> wasn't called, some pending operations
+might be discarded.</p>
+<div class="refsect3">
+<a name="cairo-xcb-surface-set-drawable.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> for the XCB backend</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>drawable</p></td>
+<td class="parameter_description"><p>the new drawable of the surface</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>width</p></td>
+<td class="parameter_description"><p>the new width of the surface</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>height</p></td>
+<td class="parameter_description"><p>the new height of the surface</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-xcb-device-get-connection"></a><h3>cairo_xcb_device_get_connection ()</h3>
+<pre class="programlisting"><span class="returnvalue">xcb_connection_t</span> *
+cairo_xcb_device_get_connection (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>);</pre>
+<p>Get the connection for the XCB device.</p>
+<div class="refsect3">
+<a name="cairo-xcb-device-get-connection.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>device</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> for the XCB backend</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-xcb-device-get-connection.returns"></a><h4>Returns</h4>
+<p> the <span class="type">xcb_connection_t</span> for the connection</p>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-xcb-device-debug-cap-xrender-version"></a><h3>cairo_xcb_device_debug_cap_xrender_version ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_xcb_device_debug_cap_xrender_version
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>,
+ <em class="parameter"><code><span class="type">int</span> major_version</code></em>,
+ <em class="parameter"><code><span class="type">int</span> minor_version</code></em>);</pre>
+<p>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.</p>
+<p>Use the special values -1 and -1 for disabling the RENDER extension.</p>
+<div class="refsect3">
+<a name="cairo-xcb-device-debug-cap-xrender-version.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>device</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> for the XCB backend</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>major_version</p></td>
+<td class="parameter_description"><p>major version to restrict to</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>minor_version</p></td>
+<td class="parameter_description"><p>minor version to restrict to</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-xcb-device-debug-cap-xshm-version"></a><h3>cairo_xcb_device_debug_cap_xshm_version ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_xcb_device_debug_cap_xshm_version
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>,
+ <em class="parameter"><code><span class="type">int</span> major_version</code></em>,
+ <em class="parameter"><code><span class="type">int</span> minor_version</code></em>);</pre>
+<p>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.</p>
+<p>Use the special values -1 and -1 for disabling the SHM extension.</p>
+<div class="refsect3">
+<a name="cairo-xcb-device-debug-cap-xshm-version.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>device</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> for the XCB backend</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>major_version</p></td>
+<td class="parameter_description"><p>major version to restrict to</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>minor_version</p></td>
+<td class="parameter_description"><p>minor version to restrict to</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-xcb-device-debug-get-precision"></a><h3>cairo_xcb_device_debug_get_precision ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+cairo_xcb_device_debug_get_precision (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>);</pre>
+<p>Get the Xrender precision mode.</p>
+<div class="refsect3">
+<a name="cairo-xcb-device-debug-get-precision.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>device</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> for the XCB backend</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-xcb-device-debug-get-precision.returns"></a><h4>Returns</h4>
+<p> the render precision mode</p>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-xcb-device-debug-set-precision"></a><h3>cairo_xcb_device_debug_set_precision ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_xcb_device_debug_set_precision (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>,
+ <em class="parameter"><code><span class="type">int</span> precision</code></em>);</pre>
+<p>Render supports two modes of precision when rendering trapezoids. Set
+the precision to the desired mode.</p>
+<div class="refsect3">
+<a name="cairo-xcb-device-debug-set-precision.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>device</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> for the XCB backend</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>precision</p></td>
+<td class="parameter_description"><p>the precision to use</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-XCB-Surfaces.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="CAIRO-HAS-XCB-SURFACE:CAPS"></a><h3>CAIRO_HAS_XCB_SURFACE</h3>
+<pre class="programlisting">#define CAIRO_HAS_XCB_SURFACE 1
+</pre>
+<p>Defined if the xcb surface backend is available.
+This macro can be used to conditionally compile backend-specific code.</p>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="CAIRO-HAS-XCB-SHM-FUNCTIONS:CAPS"></a><h3>CAIRO_HAS_XCB_SHM_FUNCTIONS</h3>
+<pre class="programlisting">#define CAIRO_HAS_XCB_SHM_FUNCTIONS 1
+</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-XCB-Surfaces.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>XLib Surfaces: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="cairo-surfaces.html" title="Surfaces">
+<link rel="prev" href="cairo-XCB-Surfaces.html" title="XCB Surfaces">
+<link rel="next" href="cairo-XLib-XRender-Backend.html" title="XLib-XRender Backend">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+ <a href="#cairo-XLib-Surfaces.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="cairo-surfaces.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="cairo-XCB-Surfaces.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="cairo-XLib-XRender-Backend.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="cairo-XLib-Surfaces"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="cairo-XLib-Surfaces.top_of_page"></a>XLib Surfaces</span></h2>
+<p>XLib Surfaces — X Window System rendering using XLib</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="cairo-XLib-Surfaces.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-create" title="cairo_xlib_surface_create ()">cairo_xlib_surface_create</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-create-for-bitmap" title="cairo_xlib_surface_create_for_bitmap ()">cairo_xlib_surface_create_for_bitmap</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-set-size" title="cairo_xlib_surface_set_size ()">cairo_xlib_surface_set_size</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">Display</span> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-display" title="cairo_xlib_surface_get_display ()">cairo_xlib_surface_get_display</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">Screen</span> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-screen" title="cairo_xlib_surface_get_screen ()">cairo_xlib_surface_get_screen</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-set-drawable" title="cairo_xlib_surface_set_drawable ()">cairo_xlib_surface_set_drawable</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">Drawable</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-drawable" title="cairo_xlib_surface_get_drawable ()">cairo_xlib_surface_get_drawable</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">Visual</span> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-visual" title="cairo_xlib_surface_get_visual ()">cairo_xlib_surface_get_visual</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-width" title="cairo_xlib_surface_get_width ()">cairo_xlib_surface_get_width</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-height" title="cairo_xlib_surface_get_height ()">cairo_xlib_surface_get_height</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-depth" title="cairo_xlib_surface_get_depth ()">cairo_xlib_surface_get_depth</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-XLib-Surfaces.html#cairo-xlib-device-debug-cap-xrender-version" title="cairo_xlib_device_debug_cap_xrender_version ()">cairo_xlib_device_debug_cap_xrender_version</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-XLib-Surfaces.html#cairo-xlib-device-debug-get-precision" title="cairo_xlib_device_debug_get_precision ()">cairo_xlib_device_debug_get_precision</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-XLib-Surfaces.html#cairo-xlib-device-debug-set-precision" title="cairo_xlib_device_debug_set_precision ()">cairo_xlib_device_debug_set_precision</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-XLib-Surfaces.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="cairo-XLib-Surfaces.html#CAIRO-HAS-XLIB-SURFACE:CAPS" title="CAIRO_HAS_XLIB_SURFACE">CAIRO_HAS_XLIB_SURFACE</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-XLib-Surfaces.description"></a><h2>Description</h2>
+<p>The XLib surface is used to render cairo graphics to X Window System
+windows and pixmaps using the XLib library.</p>
+<p>Note that the XLib surface automatically takes advantage of X render extension
+if it is available.</p>
+</div>
+<div class="refsect1">
+<a name="cairo-XLib-Surfaces.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="cairo-xlib-surface-create"></a><h3>cairo_xlib_surface_create ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+cairo_xlib_surface_create (<em class="parameter"><code><span class="type">Display</span> *dpy</code></em>,
+ <em class="parameter"><code><span class="type">Drawable</span> drawable</code></em>,
+ <em class="parameter"><code><span class="type">Visual</span> *visual</code></em>,
+ <em class="parameter"><code><span class="type">int</span> width</code></em>,
+ <em class="parameter"><code><span class="type">int</span> height</code></em>);</pre>
+<p>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.</p>
+<p>Note: If <em class="parameter"><code>drawable</code></em>
+ is a Window, then the function
+<a class="link" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-set-size" title="cairo_xlib_surface_set_size ()"><code class="function">cairo_xlib_surface_set_size()</code></a> must be called whenever the size of the
+window changes.</p>
+<p>When <em class="parameter"><code>drawable</code></em>
+ 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.</p>
+<div class="refsect3">
+<a name="cairo-xlib-surface-create.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>dpy</p></td>
+<td class="parameter_description"><p>an X Display</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>drawable</p></td>
+<td class="parameter_description"><p>an X Drawable, (a Pixmap or a Window)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>visual</p></td>
+<td class="parameter_description"><p>the visual to use for drawing to <em class="parameter"><code>drawable</code></em>
+. The depth
+of the visual must match the depth of the drawable.
+Currently, only TrueColor visuals are fully supported.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>width</p></td>
+<td class="parameter_description"><p>the current width of <em class="parameter"><code>drawable</code></em>
+.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>height</p></td>
+<td class="parameter_description"><p>the current height of <em class="parameter"><code>drawable</code></em>
+.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-xlib-surface-create.returns"></a><h4>Returns</h4>
+<p> the newly created surface</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-xlib-surface-create-for-bitmap"></a><h3>cairo_xlib_surface_create_for_bitmap ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+cairo_xlib_surface_create_for_bitmap (<em class="parameter"><code><span class="type">Display</span> *dpy</code></em>,
+ <em class="parameter"><code><span class="type">Pixmap</span> bitmap</code></em>,
+ <em class="parameter"><code><span class="type">Screen</span> *screen</code></em>,
+ <em class="parameter"><code><span class="type">int</span> width</code></em>,
+ <em class="parameter"><code><span class="type">int</span> height</code></em>);</pre>
+<p>Creates an Xlib surface that draws to the given bitmap.
+This will be drawn to as a <a class="link" href="cairo-Image-Surfaces.html#CAIRO-FORMAT-A1:CAPS"><code class="literal">CAIRO_FORMAT_A1</code></a> object.</p>
+<div class="refsect3">
+<a name="cairo-xlib-surface-create-for-bitmap.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>dpy</p></td>
+<td class="parameter_description"><p>an X Display</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>bitmap</p></td>
+<td class="parameter_description"><p>an X Drawable, (a depth-1 Pixmap)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>screen</p></td>
+<td class="parameter_description"><p>the X Screen associated with <em class="parameter"><code>bitmap</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>width</p></td>
+<td class="parameter_description"><p>the current width of <em class="parameter"><code>bitmap</code></em>
+.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>height</p></td>
+<td class="parameter_description"><p>the current height of <em class="parameter"><code>bitmap</code></em>
+.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-xlib-surface-create-for-bitmap.returns"></a><h4>Returns</h4>
+<p> the newly created surface</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-xlib-surface-set-size"></a><h3>cairo_xlib_surface_set_size ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_xlib_surface_set_size (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
+ <em class="parameter"><code><span class="type">int</span> width</code></em>,
+ <em class="parameter"><code><span class="type">int</span> height</code></em>);</pre>
+<p>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.)</p>
+<p>A Pixmap can never change size, so it is never necessary to call
+this function on a surface created for a Pixmap.</p>
+<div class="refsect3">
+<a name="cairo-xlib-surface-set-size.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> for the XLib backend</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>width</p></td>
+<td class="parameter_description"><p>the new width of the surface</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>height</p></td>
+<td class="parameter_description"><p>the new height of the surface</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-xlib-surface-get-display"></a><h3>cairo_xlib_surface_get_display ()</h3>
+<pre class="programlisting"><span class="returnvalue">Display</span> *
+cairo_xlib_surface_get_display (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
+<p>Get the X Display for the underlying X Drawable.</p>
+<div class="refsect3">
+<a name="cairo-xlib-surface-get-display.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <span class="type">cairo_xlib_surface_t</span></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-xlib-surface-get-display.returns"></a><h4>Returns</h4>
+<p> the display.</p>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-xlib-surface-get-screen"></a><h3>cairo_xlib_surface_get_screen ()</h3>
+<pre class="programlisting"><span class="returnvalue">Screen</span> *
+cairo_xlib_surface_get_screen (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
+<p>Get the X Screen for the underlying X Drawable.</p>
+<div class="refsect3">
+<a name="cairo-xlib-surface-get-screen.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <span class="type">cairo_xlib_surface_t</span></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-xlib-surface-get-screen.returns"></a><h4>Returns</h4>
+<p> the screen.</p>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-xlib-surface-set-drawable"></a><h3>cairo_xlib_surface_set_drawable ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_xlib_surface_set_drawable (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
+ <em class="parameter"><code><span class="type">Drawable</span> drawable</code></em>,
+ <em class="parameter"><code><span class="type">int</span> width</code></em>,
+ <em class="parameter"><code><span class="type">int</span> height</code></em>);</pre>
+<p>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.</p>
+<div class="refsect3">
+<a name="cairo-xlib-surface-set-drawable.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> for the XLib backend</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>drawable</p></td>
+<td class="parameter_description"><p>the new drawable for the surface</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>width</p></td>
+<td class="parameter_description"><p>the width of the new drawable</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>height</p></td>
+<td class="parameter_description"><p>the height of the new drawable</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-xlib-surface-get-drawable"></a><h3>cairo_xlib_surface_get_drawable ()</h3>
+<pre class="programlisting"><span class="returnvalue">Drawable</span>
+cairo_xlib_surface_get_drawable (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
+<p>Get the underlying X Drawable used for the surface.</p>
+<div class="refsect3">
+<a name="cairo-xlib-surface-get-drawable.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <span class="type">cairo_xlib_surface_t</span></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-xlib-surface-get-drawable.returns"></a><h4>Returns</h4>
+<p> the drawable.</p>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-xlib-surface-get-visual"></a><h3>cairo_xlib_surface_get_visual ()</h3>
+<pre class="programlisting"><span class="returnvalue">Visual</span> *
+cairo_xlib_surface_get_visual (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
+<p>Gets the X Visual associated with <em class="parameter"><code>surface</code></em>
+, suitable for use with the
+underlying X Drawable. If <em class="parameter"><code>surface</code></em>
+ was created by
+<a class="link" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-create" title="cairo_xlib_surface_create ()"><code class="function">cairo_xlib_surface_create()</code></a>, the return value is the Visual passed to that
+constructor.</p>
+<div class="refsect3">
+<a name="cairo-xlib-surface-get-visual.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <span class="type">cairo_xlib_surface_t</span></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-xlib-surface-get-visual.returns"></a><h4>Returns</h4>
+<p> the Visual or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if there is no appropriate Visual for
+<em class="parameter"><code>surface</code></em>
+.</p>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-xlib-surface-get-width"></a><h3>cairo_xlib_surface_get_width ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+cairo_xlib_surface_get_width (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
+<p>Get the width of the X Drawable underlying the surface in pixels.</p>
+<div class="refsect3">
+<a name="cairo-xlib-surface-get-width.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <span class="type">cairo_xlib_surface_t</span></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-xlib-surface-get-width.returns"></a><h4>Returns</h4>
+<p> the width of the surface in pixels.</p>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-xlib-surface-get-height"></a><h3>cairo_xlib_surface_get_height ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+cairo_xlib_surface_get_height (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
+<p>Get the height of the X Drawable underlying the surface in pixels.</p>
+<div class="refsect3">
+<a name="cairo-xlib-surface-get-height.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <span class="type">cairo_xlib_surface_t</span></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-xlib-surface-get-height.returns"></a><h4>Returns</h4>
+<p> the height of the surface in pixels.</p>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-xlib-surface-get-depth"></a><h3>cairo_xlib_surface_get_depth ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+cairo_xlib_surface_get_depth (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
+<p>Get the number of bits used to represent each pixel value.</p>
+<div class="refsect3">
+<a name="cairo-xlib-surface-get-depth.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <span class="type">cairo_xlib_surface_t</span></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-xlib-surface-get-depth.returns"></a><h4>Returns</h4>
+<p> the depth of the surface in bits.</p>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-xlib-device-debug-cap-xrender-version"></a><h3>cairo_xlib_device_debug_cap_xrender_version ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_xlib_device_debug_cap_xrender_version
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>,
+ <em class="parameter"><code><span class="type">int</span> major_version</code></em>,
+ <em class="parameter"><code><span class="type">int</span> minor_version</code></em>);</pre>
+<p>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.</p>
+<p>Use the special values -1 and -1 for disabling the RENDER extension.</p>
+<div class="refsect3">
+<a name="cairo-xlib-device-debug-cap-xrender-version.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>device</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> for the Xlib backend</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>major_version</p></td>
+<td class="parameter_description"><p>major version to restrict to</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>minor_version</p></td>
+<td class="parameter_description"><p>minor version to restrict to</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-xlib-device-debug-get-precision"></a><h3>cairo_xlib_device_debug_get_precision ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+cairo_xlib_device_debug_get_precision (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>);</pre>
+<p>Get the Xrender precision mode.</p>
+<div class="refsect3">
+<a name="cairo-xlib-device-debug-get-precision.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>device</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> for the Xlib backend</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-xlib-device-debug-get-precision.returns"></a><h4>Returns</h4>
+<p> the render precision mode</p>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-xlib-device-debug-set-precision"></a><h3>cairo_xlib_device_debug_set_precision ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_xlib_device_debug_set_precision (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>,
+ <em class="parameter"><code><span class="type">int</span> precision</code></em>);</pre>
+<p>Render supports two modes of precision when rendering trapezoids. Set
+the precision to the desired mode.</p>
+<div class="refsect3">
+<a name="cairo-xlib-device-debug-set-precision.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>device</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> for the Xlib backend</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>precision</p></td>
+<td class="parameter_description"><p>the precision to use</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-XLib-Surfaces.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="CAIRO-HAS-XLIB-SURFACE:CAPS"></a><h3>CAIRO_HAS_XLIB_SURFACE</h3>
+<pre class="programlisting">#define CAIRO_HAS_XLIB_SURFACE 1
+</pre>
+<p>Defined if the Xlib surface backend is available.
+This macro can be used to conditionally compile backend-specific code.</p>
+<p class="since">Since: 1.0</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-XLib-Surfaces.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>XLib-XRender Backend: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="cairo-surfaces.html" title="Surfaces">
+<link rel="prev" href="cairo-XLib-Surfaces.html" title="XLib Surfaces">
+<link rel="next" href="cairo-Script-Surfaces.html" title="Script Surfaces">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+ <a href="#cairo-XLib-XRender-Backend.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="cairo-surfaces.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="cairo-XLib-Surfaces.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="cairo-Script-Surfaces.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="cairo-XLib-XRender-Backend"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="cairo-XLib-XRender-Backend.top_of_page"></a>XLib-XRender Backend</span></h2>
+<p>XLib-XRender Backend — X Window System rendering using XLib and the X Render extension</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="cairo-XLib-XRender-Backend.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-XLib-XRender-Backend.html#cairo-xlib-surface-create-with-xrender-format" title="cairo_xlib_surface_create_with_xrender_format ()">cairo_xlib_surface_create_with_xrender_format</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">XRenderPictFormat</span> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-XLib-XRender-Backend.html#cairo-xlib-surface-get-xrender-format" title="cairo_xlib_surface_get_xrender_format ()">cairo_xlib_surface_get_xrender_format</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-XLib-XRender-Backend.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="cairo-XLib-XRender-Backend.html#CAIRO-HAS-XLIB-XRENDER-SURFACE:CAPS" title="CAIRO_HAS_XLIB_XRENDER_SURFACE">CAIRO_HAS_XLIB_XRENDER_SURFACE</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-XLib-XRender-Backend.description"></a><h2>Description</h2>
+<p>The XLib surface is used to render cairo graphics to X Window System
+windows and pixmaps using the XLib and Xrender libraries.</p>
+<p>Note that the XLib surface automatically takes advantage of X Render extension
+if it is available.</p>
+</div>
+<div class="refsect1">
+<a name="cairo-XLib-XRender-Backend.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="cairo-xlib-surface-create-with-xrender-format"></a><h3>cairo_xlib_surface_create_with_xrender_format ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+cairo_xlib_surface_create_with_xrender_format
+ (<em class="parameter"><code><span class="type">Display</span> *dpy</code></em>,
+ <em class="parameter"><code><span class="type">Drawable</span> drawable</code></em>,
+ <em class="parameter"><code><span class="type">Screen</span> *screen</code></em>,
+ <em class="parameter"><code><span class="type">XRenderPictFormat</span> *format</code></em>,
+ <em class="parameter"><code><span class="type">int</span> width</code></em>,
+ <em class="parameter"><code><span class="type">int</span> height</code></em>);</pre>
+<p>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.</p>
+<p>Note: If <em class="parameter"><code>drawable</code></em>
+ is a Window, then the function
+<a class="link" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-set-size" title="cairo_xlib_surface_set_size ()"><code class="function">cairo_xlib_surface_set_size()</code></a> must be called whenever the size of the
+window changes.</p>
+<div class="refsect3">
+<a name="cairo-xlib-surface-create-with-xrender-format.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>dpy</p></td>
+<td class="parameter_description"><p>an X Display</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>drawable</p></td>
+<td class="parameter_description"><p>an X Drawable, (a Pixmap or a Window)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>screen</p></td>
+<td class="parameter_description"><p>the X Screen associated with <em class="parameter"><code>drawable</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>the picture format to use for drawing to <em class="parameter"><code>drawable</code></em>
+. The depth
+of <em class="parameter"><code>format</code></em>
+must match the depth of the drawable.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>width</p></td>
+<td class="parameter_description"><p>the current width of <em class="parameter"><code>drawable</code></em>
+.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>height</p></td>
+<td class="parameter_description"><p>the current height of <em class="parameter"><code>drawable</code></em>
+.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-xlib-surface-create-with-xrender-format.returns"></a><h4>Returns</h4>
+<p> the newly created surface</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-xlib-surface-get-xrender-format"></a><h3>cairo_xlib_surface_get_xrender_format ()</h3>
+<pre class="programlisting"><span class="returnvalue">XRenderPictFormat</span> *
+cairo_xlib_surface_get_xrender_format (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
+<p>Gets the X Render picture format that <em class="parameter"><code>surface</code></em>
+ uses for rendering with the
+X Render extension. If the surface was created by
+<a class="link" href="cairo-XLib-XRender-Backend.html#cairo-xlib-surface-create-with-xrender-format" title="cairo_xlib_surface_create_with_xrender_format ()"><code class="function">cairo_xlib_surface_create_with_xrender_format()</code></a> originally, the return
+value is the format passed to that constructor.</p>
+<div class="refsect3">
+<a name="cairo-xlib-surface-get-xrender-format.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>an xlib surface</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-xlib-surface-get-xrender-format.returns"></a><h4>Returns</h4>
+<p> the XRenderPictFormat* associated with <em class="parameter"><code>surface</code></em>
+,
+or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the surface is not an xlib surface
+or if the X Render extension is not available.</p>
+</div>
+<p class="since">Since: 1.6</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-XLib-XRender-Backend.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="CAIRO-HAS-XLIB-XRENDER-SURFACE:CAPS"></a><h3>CAIRO_HAS_XLIB_XRENDER_SURFACE</h3>
+<pre class="programlisting">#define CAIRO_HAS_XLIB_XRENDER_SURFACE 1
+</pre>
+<p>Defined if the XLib/XRender surface functions are available.
+This macro can be used to conditionally compile backend-specific code.</p>
+<p class="since">Since: 1.6</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-XLib-XRender-Backend.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>cairo_device_t: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="cairo-surfaces.html" title="Surfaces">
+<link rel="prev" href="cairo-surfaces.html" title="Surfaces">
+<link rel="next" href="cairo-cairo-surface-t.html" title="cairo_surface_t">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+ <a href="#cairo-cairo-device-t.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="cairo-surfaces.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="cairo-surfaces.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="cairo-cairo-surface-t.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="cairo-cairo-device-t"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="cairo-cairo-device-t.top_of_page"></a>cairo_device_t</span></h2>
+<p>cairo_device_t — interface to underlying rendering system</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="cairo-cairo-device-t.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="returnvalue">cairo_device_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-device-t.html#cairo-device-reference" title="cairo_device_reference ()">cairo_device_reference</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-device-t.html#cairo-device-destroy" title="cairo_device_destroy ()">cairo_device_destroy</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-device-t.html#cairo-device-status" title="cairo_device_status ()">cairo_device_status</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-device-t.html#cairo-device-finish" title="cairo_device_finish ()">cairo_device_finish</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-device-t.html#cairo-device-flush" title="cairo_device_flush ()">cairo_device_flush</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-device-t.html#cairo-device-type-t" title="enum cairo_device_type_t"><span class="returnvalue">cairo_device_type_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-device-t.html#cairo-device-get-type" title="cairo_device_get_type ()">cairo_device_get_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">unsigned <span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-device-t.html#cairo-device-get-reference-count" title="cairo_device_get_reference_count ()">cairo_device_get_reference_count</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-device-t.html#cairo-device-set-user-data" title="cairo_device_set_user_data ()">cairo_device_set_user_data</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-device-t.html#cairo-device-get-user-data" title="cairo_device_get_user_data ()">cairo_device_get_user_data</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-device-t.html#cairo-device-acquire" title="cairo_device_acquire ()">cairo_device_acquire</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-device-t.html#cairo-device-release" title="cairo_device_release ()">cairo_device_release</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">double</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-device-t.html#cairo-device-observer-elapsed" title="cairo_device_observer_elapsed ()">cairo_device_observer_elapsed</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">double</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-device-t.html#cairo-device-observer-fill-elapsed" title="cairo_device_observer_fill_elapsed ()">cairo_device_observer_fill_elapsed</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">double</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-device-t.html#cairo-device-observer-glyphs-elapsed" title="cairo_device_observer_glyphs_elapsed ()">cairo_device_observer_glyphs_elapsed</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">double</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-device-t.html#cairo-device-observer-mask-elapsed" title="cairo_device_observer_mask_elapsed ()">cairo_device_observer_mask_elapsed</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">double</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-device-t.html#cairo-device-observer-paint-elapsed" title="cairo_device_observer_paint_elapsed ()">cairo_device_observer_paint_elapsed</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-device-t.html#cairo-device-observer-print" title="cairo_device_observer_print ()">cairo_device_observer_print</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">double</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-device-t.html#cairo-device-observer-stroke-elapsed" title="cairo_device_observer_stroke_elapsed ()">cairo_device_observer_stroke_elapsed</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-cairo-device-t.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t">cairo_device_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="cairo-cairo-device-t.html#cairo-device-type-t" title="enum cairo_device_type_t">cairo_device_type_t</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-cairo-device-t.description"></a><h2>Description</h2>
+<p>Devices are the abstraction Cairo employs for the rendering system
+used by a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a>. You can get the device of a surface using
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-get-device" title="cairo_surface_get_device ()"><code class="function">cairo_surface_get_device()</code></a>.</p>
+<p>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.</p>
+<p>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 <a class="link" href="cairo-cairo-device-t.html#cairo-device-flush" title="cairo_device_flush ()"><code class="function">cairo_device_flush()</code></a> to ensure that Cairo finishes all
+operations on the device and resets it to a clean state.</p>
+<p>Cairo also provides the functions <a class="link" href="cairo-cairo-device-t.html#cairo-device-acquire" title="cairo_device_acquire ()"><code class="function">cairo_device_acquire()</code></a> and
+<a class="link" href="cairo-cairo-device-t.html#cairo-device-release" title="cairo_device_release ()"><code class="function">cairo_device_release()</code></a> to synchronize access to the rendering system
+in a multithreaded environment. This is done internally, but can also
+be used by applications.</p>
+<p>Putting this all together, a function that works with devices should
+look something like this:</p>
+<div class="informalexample">
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+ <tbody>
+ <tr>
+ <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20</pre></td>
+ <td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">void</span>
+<span class="function">my_device_modifying_function</span> <span class="gtkdoc opt">(</span>cairo_device_t <span class="gtkdoc opt">*</span>device<span class="gtkdoc opt">)</span>
+<span class="gtkdoc opt">{</span>
+ cairo_status_t status<span class="gtkdoc opt">;</span>
+
+ <span class="gtkdoc slc">// Ensure the device is properly reset</span>
+ <span class="function"><a href="cairo-cairo-device-t.html#cairo-device-flush">cairo_device_flush</a></span> <span class="gtkdoc opt">(</span>device<span class="gtkdoc opt">);</span>
+ <span class="gtkdoc slc">// Try to acquire the device</span>
+ status <span class="gtkdoc opt">=</span> <span class="function"><a href="cairo-cairo-device-t.html#cairo-device-acquire">cairo_device_acquire</a></span> <span class="gtkdoc opt">(</span>device<span class="gtkdoc opt">);</span>
+ <span class="keyword">if</span> <span class="gtkdoc opt">(</span>status <span class="gtkdoc opt">!=</span> CAIRO_STATUS_SUCCESS<span class="gtkdoc opt">) {</span>
+ <span class="function">printf</span> <span class="gtkdoc opt">(</span><span class="string">&quot;Failed to acquire the device: %s</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">,</span> <span class="function"><a href="cairo-Error-handling.html#cairo-status-to-string">cairo_status_to_string</a></span> <span class="gtkdoc opt">(</span>status<span class="gtkdoc opt">));</span>
+ <span class="keyword">return</span><span class="gtkdoc opt">;</span>
+ <span class="gtkdoc opt">}</span>
+
+ <span class="gtkdoc slc">// Do the custom operations on the device here.</span>
+ <span class="gtkdoc slc">// But do not call any Cairo functions that might acquire devices.</span>
+
+ <span class="gtkdoc slc">// Release the device when done.</span>
+ <span class="function"><a href="cairo-cairo-device-t.html#cairo-device-release">cairo_device_release</a></span> <span class="gtkdoc opt">(</span>device<span class="gtkdoc opt">);</span>
+<span class="gtkdoc opt">}</span></pre></td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+
+<div class="note"><p>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.
+</p></div>
+</div>
+<div class="refsect1">
+<a name="cairo-cairo-device-t.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="cairo-device-reference"></a><h3>cairo_device_reference ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="returnvalue">cairo_device_t</span></a> *
+cairo_device_reference (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>);</pre>
+<p>Increases the reference count on <em class="parameter"><code>device</code></em>
+ by one. This prevents
+<em class="parameter"><code>device</code></em>
+ from being destroyed until a matching call to
+<a class="link" href="cairo-cairo-device-t.html#cairo-device-destroy" title="cairo_device_destroy ()"><code class="function">cairo_device_destroy()</code></a> is made.</p>
+<p>Use <a class="link" href="cairo-cairo-device-t.html#cairo-device-get-reference-count" title="cairo_device_get_reference_count ()"><code class="function">cairo_device_get_reference_count()</code></a> to get the number of references
+to a <a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a>.</p>
+<div class="refsect3">
+<a name="cairo-device-reference.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>device</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-device-reference.returns"></a><h4>Returns</h4>
+<p> the referenced <a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a>.</p>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-device-destroy"></a><h3>cairo_device_destroy ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_device_destroy (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>);</pre>
+<p>Decreases the reference count on <em class="parameter"><code>device</code></em>
+ by one. If the result is
+zero, then <em class="parameter"><code>device</code></em>
+ and all associated resources are freed. See
+<a class="link" href="cairo-cairo-device-t.html#cairo-device-reference" title="cairo_device_reference ()"><code class="function">cairo_device_reference()</code></a>.</p>
+<p>This function may acquire devices if the last reference was dropped.</p>
+<div class="refsect3">
+<a name="cairo-device-destroy.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>device</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-device-status"></a><h3>cairo_device_status ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+cairo_device_status (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>);</pre>
+<p>Checks whether an error has previously occurred for this
+device.</p>
+<div class="refsect3">
+<a name="cairo-device-status.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>device</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-device-status.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> on success or an error code if
+the device is in an error state.</p>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-device-finish"></a><h3>cairo_device_finish ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_device_finish (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>);</pre>
+<p>This function finishes the device and drops all references to
+external resources. All surfaces, fonts and other objects created
+for this <em class="parameter"><code>device</code></em>
+ will be finished, too.
+Further operations on the <em class="parameter"><code>device</code></em>
+ will not affect the <em class="parameter"><code>device</code></em>
+ but
+will instead trigger a <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-DEVICE-FINISHED:CAPS"><code class="literal">CAIRO_STATUS_DEVICE_FINISHED</code></a> error.</p>
+<p>When the last call to <a class="link" href="cairo-cairo-device-t.html#cairo-device-destroy" title="cairo_device_destroy ()"><code class="function">cairo_device_destroy()</code></a> decreases the
+reference count to zero, cairo will call <a class="link" href="cairo-cairo-device-t.html#cairo-device-finish" title="cairo_device_finish ()"><code class="function">cairo_device_finish()</code></a> if
+it hasn't been called already, before freeing the resources
+associated with the device.</p>
+<p>This function may acquire devices.</p>
+<div class="refsect3">
+<a name="cairo-device-finish.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>device</p></td>
+<td class="parameter_description"><p>the <a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> to finish</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-device-flush"></a><h3>cairo_device_flush ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_device_flush (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>);</pre>
+<p>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.</p>
+<p>This function may acquire devices.</p>
+<div class="refsect3">
+<a name="cairo-device-flush.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>device</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-device-get-type"></a><h3>cairo_device_get_type ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-device-t.html#cairo-device-type-t" title="enum cairo_device_type_t"><span class="returnvalue">cairo_device_type_t</span></a>
+cairo_device_get_type (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>);</pre>
+<p>This function returns the type of the device. See <a class="link" href="cairo-cairo-device-t.html#cairo-device-type-t" title="enum cairo_device_type_t"><span class="type">cairo_device_type_t</span></a>
+for available types.</p>
+<div class="refsect3">
+<a name="cairo-device-get-type.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>device</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-device-get-type.returns"></a><h4>Returns</h4>
+<p> The type of <em class="parameter"><code>device</code></em>
+.</p>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-device-get-reference-count"></a><h3>cairo_device_get_reference_count ()</h3>
+<pre class="programlisting">unsigned <span class="returnvalue">int</span>
+cairo_device_get_reference_count (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>);</pre>
+<p>Returns the current reference count of <em class="parameter"><code>device</code></em>
+.</p>
+<div class="refsect3">
+<a name="cairo-device-get-reference-count.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>device</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-device-get-reference-count.returns"></a><h4>Returns</h4>
+<p> the current reference count of <em class="parameter"><code>device</code></em>
+. If the
+object is a nil object, 0 will be returned.</p>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-device-set-user-data"></a><h3>cairo_device_set_user_data ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+cairo_device_set_user_data (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-Types.html#cairo-user-data-key-t" title="cairo_user_data_key_t"><span class="type">cairo_user_data_key_t</span></a> *key</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-Types.html#cairo-destroy-func-t" title="cairo_destroy_func_t ()"><span class="type">cairo_destroy_func_t</span></a> destroy</code></em>);</pre>
+<p>Attach user data to <em class="parameter"><code>device</code></em>
+. To remove user data from a surface,
+call this function with the key that was used to set it and <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+for <em class="parameter"><code>data</code></em>
+.</p>
+<div class="refsect3">
+<a name="cairo-device-set-user-data.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>device</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>the address of a <a class="link" href="cairo-Types.html#cairo-user-data-key-t" title="cairo_user_data_key_t"><span class="type">cairo_user_data_key_t</span></a> to attach the user data to</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>the user data to attach to the <a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>destroy</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-Types.html#cairo-destroy-func-t" title="cairo_destroy_func_t ()"><span class="type">cairo_destroy_func_t</span></a> which will be called when the
+<a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> is destroyed or when new user data is attached using the
+same key.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-device-set-user-data.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> or <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a> if a
+slot could not be allocated for the user data.</p>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-device-get-user-data"></a><h3>cairo_device_get_user_data ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> *
+cairo_device_get_user_data (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-Types.html#cairo-user-data-key-t" title="cairo_user_data_key_t"><span class="type">cairo_user_data_key_t</span></a> *key</code></em>);</pre>
+<p>Return user data previously attached to <em class="parameter"><code>device</code></em>
+ using the
+specified key. If no user data has been attached with the given
+key this function returns <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-device-get-user-data.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>device</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>the address of the <a class="link" href="cairo-Types.html#cairo-user-data-key-t" title="cairo_user_data_key_t"><span class="type">cairo_user_data_key_t</span></a> the user data was
+attached to</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-device-get-user-data.returns"></a><h4>Returns</h4>
+<p> the user data previously attached or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-device-acquire"></a><h3>cairo_device_acquire ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+cairo_device_acquire (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>);</pre>
+<p>Acquires the <em class="parameter"><code>device</code></em>
+ for the current thread. This function will block
+until no other thread has acquired the device.</p>
+<p>If the return value is <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a>, 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 <a class="link" href="cairo-cairo-device-t.html#cairo-device-release" title="cairo_device_release ()"><code class="function">cairo_device_release()</code></a>. It is
+allowed to recursively acquire the device multiple times from the same
+thread.</p>
+<div class="note"><p>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.
+</p></div>
+<div class="refsect3">
+<a name="cairo-device-acquire.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>device</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-device-acquire.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> on success or an error code if
+the device is in an error state and could not be
+acquired. After a successful call to <a class="link" href="cairo-cairo-device-t.html#cairo-device-acquire" title="cairo_device_acquire ()"><code class="function">cairo_device_acquire()</code></a>,
+a matching call to <a class="link" href="cairo-cairo-device-t.html#cairo-device-release" title="cairo_device_release ()"><code class="function">cairo_device_release()</code></a> is required.</p>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-device-release"></a><h3>cairo_device_release ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_device_release (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>);</pre>
+<p>Releases a <em class="parameter"><code>device</code></em>
+ previously acquired using <a class="link" href="cairo-cairo-device-t.html#cairo-device-acquire" title="cairo_device_acquire ()"><code class="function">cairo_device_acquire()</code></a>. See
+that function for details.</p>
+<div class="refsect3">
+<a name="cairo-device-release.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>device</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-device-observer-elapsed"></a><h3>cairo_device_observer_elapsed ()</h3>
+<pre class="programlisting"><span class="returnvalue">double</span>
+cairo_device_observer_elapsed (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-device-observer-fill-elapsed"></a><h3>cairo_device_observer_fill_elapsed ()</h3>
+<pre class="programlisting"><span class="returnvalue">double</span>
+cairo_device_observer_fill_elapsed (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-device-observer-glyphs-elapsed"></a><h3>cairo_device_observer_glyphs_elapsed ()</h3>
+<pre class="programlisting"><span class="returnvalue">double</span>
+cairo_device_observer_glyphs_elapsed (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-device-observer-mask-elapsed"></a><h3>cairo_device_observer_mask_elapsed ()</h3>
+<pre class="programlisting"><span class="returnvalue">double</span>
+cairo_device_observer_mask_elapsed (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-device-observer-paint-elapsed"></a><h3>cairo_device_observer_paint_elapsed ()</h3>
+<pre class="programlisting"><span class="returnvalue">double</span>
+cairo_device_observer_paint_elapsed (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-device-observer-print"></a><h3>cairo_device_observer_print ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+cairo_device_observer_print (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-PNG-Support.html#cairo-write-func-t" title="cairo_write_func_t ()"><span class="type">cairo_write_func_t</span></a> write_func</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *closure</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-device-observer-stroke-elapsed"></a><h3>cairo_device_observer_stroke_elapsed ()</h3>
+<pre class="programlisting"><span class="returnvalue">double</span>
+cairo_device_observer_stroke_elapsed (<em class="parameter"><code><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> *device</code></em>);</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-cairo-device-t.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="cairo-device-t"></a><h3>cairo_device_t</h3>
+<pre class="programlisting">typedef struct _cairo_device cairo_device_t;
+</pre>
+<p>A <a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> represents the driver interface for drawing
+operations to a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a>. There are different subtypes of
+<a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> for different drawing backends; for example,
+<code class="function">cairo_egl_device_create()</code> creates a device that wraps an EGL display and
+context.</p>
+<p>The type of a device can be queried with <a class="link" href="cairo-cairo-device-t.html#cairo-device-get-type" title="cairo_device_get_type ()"><code class="function">cairo_device_get_type()</code></a>.</p>
+<p>Memory management of <a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> is done with
+<a class="link" href="cairo-cairo-device-t.html#cairo-device-reference" title="cairo_device_reference ()"><code class="function">cairo_device_reference()</code></a> and <a class="link" href="cairo-cairo-device-t.html#cairo-device-destroy" title="cairo_device_destroy ()"><code class="function">cairo_device_destroy()</code></a>.</p>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-device-type-t"></a><h3>enum cairo_device_type_t</h3>
+<p><a class="link" href="cairo-cairo-device-t.html#cairo-device-type-t" title="enum cairo_device_type_t"><span class="type">cairo_device_type_t</span></a> is used to describe the type of a given
+device. The devices types are also known as "backends" within cairo.</p>
+<p>The device type can be queried with <a class="link" href="cairo-cairo-device-t.html#cairo-device-get-type" title="cairo_device_get_type ()"><code class="function">cairo_device_get_type()</code></a></p>
+<p>The various <a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a> 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
+<code class="literal">cairo_<span class="emphasis"><em>type</em></span>_device</code> such as
+<a class="link" href="cairo-XCB-Surfaces.html#cairo-xcb-device-debug-cap-xrender-version" title="cairo_xcb_device_debug_cap_xrender_version ()"><code class="function">cairo_xcb_device_debug_cap_xrender_version()</code></a>.</p>
+<p>The behavior of calling a type-specific function with a device of
+the wrong type is undefined.</p>
+<p>New entries may be added in future versions.</p>
+<div class="refsect3">
+<a name="cairo-device-type-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-DEVICE-TYPE-DRM:CAPS"></a>CAIRO_DEVICE_TYPE_DRM</p></td>
+<td class="enum_member_description">
+<p>The device is of type Direct Render Manager, since 1.10</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-DEVICE-TYPE-GL:CAPS"></a>CAIRO_DEVICE_TYPE_GL</p></td>
+<td class="enum_member_description">
+<p>The device is of type OpenGL, since 1.10</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-DEVICE-TYPE-SCRIPT:CAPS"></a>CAIRO_DEVICE_TYPE_SCRIPT</p></td>
+<td class="enum_member_description">
+<p>The device is of type script, since 1.10</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-DEVICE-TYPE-XCB:CAPS"></a>CAIRO_DEVICE_TYPE_XCB</p></td>
+<td class="enum_member_description">
+<p>The device is of type xcb, since 1.10</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-DEVICE-TYPE-XLIB:CAPS"></a>CAIRO_DEVICE_TYPE_XLIB</p></td>
+<td class="enum_member_description">
+<p>The device is of type xlib, since 1.10</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-DEVICE-TYPE-XML:CAPS"></a>CAIRO_DEVICE_TYPE_XML</p></td>
+<td class="enum_member_description">
+<p>The device is of type XML, since 1.10</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-DEVICE-TYPE-COGL:CAPS"></a>CAIRO_DEVICE_TYPE_COGL</p></td>
+<td class="enum_member_description">
+<p>The device is of type cogl, since 1.12</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-DEVICE-TYPE-WIN32:CAPS"></a>CAIRO_DEVICE_TYPE_WIN32</p></td>
+<td class="enum_member_description">
+<p>The device is of type win32, since 1.12</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-DEVICE-TYPE-INVALID:CAPS"></a>CAIRO_DEVICE_TYPE_INVALID</p></td>
+<td class="enum_member_description">
+<p>The device is invalid, since 1.10</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-cairo-device-t.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>cairo_font_face_t: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="cairo-fonts.html" title="Fonts">
+<link rel="prev" href="cairo-fonts.html" title="Fonts">
+<link rel="next" href="cairo-cairo-scaled-font-t.html" title="cairo_scaled_font_t">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+ <a href="#cairo-cairo-font-face-t.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="cairo-fonts.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="cairo-fonts.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="cairo-cairo-scaled-font-t.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="cairo-cairo-font-face-t"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="cairo-cairo-font-face-t.top_of_page"></a>cairo_font_face_t</span></h2>
+<p>cairo_font_face_t — Base class for font faces</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="cairo-cairo-font-face-t.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="returnvalue">cairo_font_face_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-reference" title="cairo_font_face_reference ()">cairo_font_face_reference</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-destroy" title="cairo_font_face_destroy ()">cairo_font_face_destroy</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-status" title="cairo_font_face_status ()">cairo_font_face_status</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-type-t" title="enum cairo_font_type_t"><span class="returnvalue">cairo_font_type_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-get-type" title="cairo_font_face_get_type ()">cairo_font_face_get_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">unsigned <span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-get-reference-count" title="cairo_font_face_get_reference_count ()">cairo_font_face_get_reference_count</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-set-user-data" title="cairo_font_face_set_user_data ()">cairo_font_face_set_user_data</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-get-user-data" title="cairo_font_face_get_user_data ()">cairo_font_face_get_user_data</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-cairo-font-face-t.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t">cairo_font_face_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-type-t" title="enum cairo_font_type_t">cairo_font_type_t</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-cairo-font-face-t.description"></a><h2>Description</h2>
+<p><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> represents a particular font at a particular weight,
+slant, and other characteristic but no size, transformation, or size.</p>
+<p>Font faces are created using <em class="firstterm">font-backend</em>-specific
+constructors, typically of the form
+<code class="function">cairo_<span class="emphasis"><em>backend</em></span>_font_face_create()</code>,
+or implicitly using the <em class="firstterm">toy</em> text API by way of
+<a class="link" href="cairo-text.html#cairo-select-font-face" title="cairo_select_font_face ()"><code class="function">cairo_select_font_face()</code></a>. The resulting face can be accessed using
+<a class="link" href="cairo-text.html#cairo-get-font-face" title="cairo_get_font_face ()"><code class="function">cairo_get_font_face()</code></a>.</p>
+</div>
+<div class="refsect1">
+<a name="cairo-cairo-font-face-t.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="cairo-font-face-reference"></a><h3>cairo_font_face_reference ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="returnvalue">cairo_font_face_t</span></a> *
+cairo_font_face_reference (<em class="parameter"><code><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> *font_face</code></em>);</pre>
+<p>Increases the reference count on <em class="parameter"><code>font_face</code></em>
+ by one. This prevents
+<em class="parameter"><code>font_face</code></em>
+ from being destroyed until a matching call to
+<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-destroy" title="cairo_font_face_destroy ()"><code class="function">cairo_font_face_destroy()</code></a> is made.</p>
+<p>Use <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-get-reference-count" title="cairo_font_face_get_reference_count ()"><code class="function">cairo_font_face_get_reference_count()</code></a> to get the number of
+references to a <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a>.</p>
+<div class="refsect3">
+<a name="cairo-font-face-reference.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>font_face</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a>, (may be <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in which case this
+function does nothing).</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-font-face-reference.returns"></a><h4>Returns</h4>
+<p> the referenced <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a>.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-font-face-destroy"></a><h3>cairo_font_face_destroy ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_font_face_destroy (<em class="parameter"><code><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> *font_face</code></em>);</pre>
+<p>Decreases the reference count on <em class="parameter"><code>font_face</code></em>
+ by one. If the result
+is zero, then <em class="parameter"><code>font_face</code></em>
+ and all associated resources are freed.
+See <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-reference" title="cairo_font_face_reference ()"><code class="function">cairo_font_face_reference()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-font-face-destroy.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>font_face</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-font-face-status"></a><h3>cairo_font_face_status ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+cairo_font_face_status (<em class="parameter"><code><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> *font_face</code></em>);</pre>
+<p>Checks whether an error has previously occurred for this
+font face</p>
+<div class="refsect3">
+<a name="cairo-font-face-status.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>font_face</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-font-face-status.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> or another error such as
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a>.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-font-face-get-type"></a><h3>cairo_font_face_get_type ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-type-t" title="enum cairo_font_type_t"><span class="returnvalue">cairo_font_type_t</span></a>
+cairo_font_face_get_type (<em class="parameter"><code><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> *font_face</code></em>);</pre>
+<p>This function returns the type of the backend used to create
+a font face. See <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-type-t" title="enum cairo_font_type_t"><span class="type">cairo_font_type_t</span></a> for available types.</p>
+<div class="refsect3">
+<a name="cairo-font-face-get-type.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>font_face</p></td>
+<td class="parameter_description"><p>a font face</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-font-face-get-type.returns"></a><h4>Returns</h4>
+<p> The type of <em class="parameter"><code>font_face</code></em>
+.</p>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-font-face-get-reference-count"></a><h3>cairo_font_face_get_reference_count ()</h3>
+<pre class="programlisting">unsigned <span class="returnvalue">int</span>
+cairo_font_face_get_reference_count (<em class="parameter"><code><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> *font_face</code></em>);</pre>
+<p>Returns the current reference count of <em class="parameter"><code>font_face</code></em>
+.</p>
+<div class="refsect3">
+<a name="cairo-font-face-get-reference-count.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>font_face</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-font-face-get-reference-count.returns"></a><h4>Returns</h4>
+<p> the current reference count of <em class="parameter"><code>font_face</code></em>
+. If the
+object is a nil object, 0 will be returned.</p>
+</div>
+<p class="since">Since: 1.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-font-face-set-user-data"></a><h3>cairo_font_face_set_user_data ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+cairo_font_face_set_user_data (<em class="parameter"><code><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> *font_face</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-Types.html#cairo-user-data-key-t" title="cairo_user_data_key_t"><span class="type">cairo_user_data_key_t</span></a> *key</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-Types.html#cairo-destroy-func-t" title="cairo_destroy_func_t ()"><span class="type">cairo_destroy_func_t</span></a> destroy</code></em>);</pre>
+<p>Attach user data to <em class="parameter"><code>font_face</code></em>
+. To remove user data from a font face,
+call this function with the key that was used to set it and <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+for <em class="parameter"><code>data</code></em>
+.</p>
+<div class="refsect3">
+<a name="cairo-font-face-set-user-data.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>font_face</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>the address of a <a class="link" href="cairo-Types.html#cairo-user-data-key-t" title="cairo_user_data_key_t"><span class="type">cairo_user_data_key_t</span></a> to attach the user data to</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>the user data to attach to the font face</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>destroy</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-Types.html#cairo-destroy-func-t" title="cairo_destroy_func_t ()"><span class="type">cairo_destroy_func_t</span></a> which will be called when the
+font face is destroyed or when new user data is attached using the
+same key.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-font-face-set-user-data.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> or <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a> if a
+slot could not be allocated for the user data.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-font-face-get-user-data"></a><h3>cairo_font_face_get_user_data ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> *
+cairo_font_face_get_user_data (<em class="parameter"><code><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> *font_face</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-Types.html#cairo-user-data-key-t" title="cairo_user_data_key_t"><span class="type">cairo_user_data_key_t</span></a> *key</code></em>);</pre>
+<p>Return user data previously attached to <em class="parameter"><code>font_face</code></em>
+ using the specified
+key. If no user data has been attached with the given key this
+function returns <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-font-face-get-user-data.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>font_face</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>the address of the <a class="link" href="cairo-Types.html#cairo-user-data-key-t" title="cairo_user_data_key_t"><span class="type">cairo_user_data_key_t</span></a> the user data was
+attached to</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-font-face-get-user-data.returns"></a><h4>Returns</h4>
+<p> the user data previously attached or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-cairo-font-face-t.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="cairo-font-face-t"></a><h3>cairo_font_face_t</h3>
+<pre class="programlisting">typedef struct _cairo_font_face cairo_font_face_t;
+</pre>
+<p>A <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> specifies all aspects of a font other
+than the size or font matrix (a font matrix is used to distort
+a font by shearing it or scaling it unequally in the two
+directions) . A font face can be set on a <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> by using
+<a class="link" href="cairo-text.html#cairo-set-font-face" title="cairo_set_font_face ()"><code class="function">cairo_set_font_face()</code></a>; the size and font matrix are set with
+<a class="link" href="cairo-text.html#cairo-set-font-size" title="cairo_set_font_size ()"><code class="function">cairo_set_font_size()</code></a> and <a class="link" href="cairo-text.html#cairo-set-font-matrix" title="cairo_set_font_matrix ()"><code class="function">cairo_set_font_matrix()</code></a>.</p>
+<p>There are various types of font faces, depending on the
+<em class="firstterm">font backend</em> they use. The type of a
+font face can be queried using <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-get-type" title="cairo_font_face_get_type ()"><code class="function">cairo_font_face_get_type()</code></a>.</p>
+<p>Memory management of <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> is done with
+<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-reference" title="cairo_font_face_reference ()"><code class="function">cairo_font_face_reference()</code></a> and <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-destroy" title="cairo_font_face_destroy ()"><code class="function">cairo_font_face_destroy()</code></a>.</p>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-font-type-t"></a><h3>enum cairo_font_type_t</h3>
+<p><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-type-t" title="enum cairo_font_type_t"><span class="type">cairo_font_type_t</span></a> 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.</p>
+<p>The type of a font face is determined by the function used to
+create it, which will generally be of the form
+<code class="function">cairo_<span class="emphasis"><em>type</em></span>_font_face_create()</code>.
+The font face type can be queried with <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-get-type" title="cairo_font_face_get_type ()"><code class="function">cairo_font_face_get_type()</code></a></p>
+<p>The various <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> functions can be used with a font face
+of any type.</p>
+<p>The type of a scaled font is determined by the type of the font
+face passed to <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-create" title="cairo_scaled_font_create ()"><code class="function">cairo_scaled_font_create()</code></a>. The scaled font type can
+be queried with <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-type" title="cairo_scaled_font_get_type ()"><code class="function">cairo_scaled_font_get_type()</code></a></p>
+<p>The various <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> functions can be used with scaled
+fonts of any type, but some font backends also provide
+type-specific functions that must only be called with a scaled font
+of the appropriate type. These functions have names that begin with
+<code class="function">cairo_<span class="emphasis"><em>type</em></span>_scaled_font()</code>
+such as <a class="link" href="cairo-FreeType-Fonts.html#cairo-ft-scaled-font-lock-face" title="cairo_ft_scaled_font_lock_face ()"><code class="function">cairo_ft_scaled_font_lock_face()</code></a>.</p>
+<p>The behavior of calling a type-specific function with a scaled font
+of the wrong type is undefined.</p>
+<p>New entries may be added in future versions.</p>
+<div class="refsect3">
+<a name="cairo-font-type-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-FONT-TYPE-TOY:CAPS"></a>CAIRO_FONT_TYPE_TOY</p></td>
+<td class="enum_member_description">
+<p>The font was created using cairo's toy font api (Since: 1.2)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-FONT-TYPE-FT:CAPS"></a>CAIRO_FONT_TYPE_FT</p></td>
+<td class="enum_member_description">
+<p>The font is of type FreeType (Since: 1.2)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-FONT-TYPE-WIN32:CAPS"></a>CAIRO_FONT_TYPE_WIN32</p></td>
+<td class="enum_member_description">
+<p>The font is of type Win32 (Since: 1.2)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-FONT-TYPE-QUARTZ:CAPS"></a>CAIRO_FONT_TYPE_QUARTZ</p></td>
+<td class="enum_member_description">
+<p>The font is of type Quartz (Since: 1.6, in 1.2 and
+1.4 it was named CAIRO_FONT_TYPE_ATSUI)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-FONT-TYPE-USER:CAPS"></a>CAIRO_FONT_TYPE_USER</p></td>
+<td class="enum_member_description">
+<p>The font was create using cairo's user font api (Since: 1.8)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-cairo-font-face-t.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a></p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>cairo_font_options_t: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="cairo-fonts.html" title="Fonts">
+<link rel="prev" href="cairo-cairo-scaled-font-t.html" title="cairo_scaled_font_t">
+<link rel="next" href="cairo-FreeType-Fonts.html" title="FreeType Fonts">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+ <a href="#cairo-cairo-font-options-t.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="cairo-fonts.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="cairo-cairo-scaled-font-t.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="cairo-FreeType-Fonts.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="cairo-cairo-font-options-t"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="cairo-cairo-font-options-t.top_of_page"></a>cairo_font_options_t</span></h2>
+<p>cairo_font_options_t — How a font should be rendered</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="cairo-cairo-font-options-t.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="returnvalue">cairo_font_options_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-create" title="cairo_font_options_create ()">cairo_font_options_create</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="returnvalue">cairo_font_options_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-copy" title="cairo_font_options_copy ()">cairo_font_options_copy</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-destroy" title="cairo_font_options_destroy ()">cairo_font_options_destroy</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-status" title="cairo_font_options_status ()">cairo_font_options_status</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-merge" title="cairo_font_options_merge ()">cairo_font_options_merge</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">unsigned <span class="returnvalue">long</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-hash" title="cairo_font_options_hash ()">cairo_font_options_hash</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Types.html#cairo-bool-t" title="cairo_bool_t"><span class="returnvalue">cairo_bool_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-equal" title="cairo_font_options_equal ()">cairo_font_options_equal</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-set-antialias" title="cairo_font_options_set_antialias ()">cairo_font_options_set_antialias</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-t.html#cairo-antialias-t" title="enum cairo_antialias_t"><span class="returnvalue">cairo_antialias_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-get-antialias" title="cairo_font_options_get_antialias ()">cairo_font_options_get_antialias</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-set-subpixel-order" title="cairo_font_options_set_subpixel_order ()">cairo_font_options_set_subpixel_order</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-font-options-t.html#cairo-subpixel-order-t" title="enum cairo_subpixel_order_t"><span class="returnvalue">cairo_subpixel_order_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-get-subpixel-order" title="cairo_font_options_get_subpixel_order ()">cairo_font_options_get_subpixel_order</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-set-hint-style" title="cairo_font_options_set_hint_style ()">cairo_font_options_set_hint_style</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-font-options-t.html#cairo-hint-style-t" title="enum cairo_hint_style_t"><span class="returnvalue">cairo_hint_style_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-get-hint-style" title="cairo_font_options_get_hint_style ()">cairo_font_options_get_hint_style</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-set-hint-metrics" title="cairo_font_options_set_hint_metrics ()">cairo_font_options_set_hint_metrics</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-font-options-t.html#cairo-hint-metrics-t" title="enum cairo_hint_metrics_t"><span class="returnvalue">cairo_hint_metrics_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-get-hint-metrics" title="cairo_font_options_get_hint_metrics ()">cairo_font_options_get_hint_metrics</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">const <span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-get-variations" title="cairo_font_options_get_variations ()">cairo_font_options_get_variations</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-set-variations" title="cairo_font_options_set_variations ()">cairo_font_options_set_variations</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-cairo-font-options-t.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t">cairo_font_options_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="cairo-cairo-font-options-t.html#cairo-subpixel-order-t" title="enum cairo_subpixel_order_t">cairo_subpixel_order_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="cairo-cairo-font-options-t.html#cairo-hint-style-t" title="enum cairo_hint_style_t">cairo_hint_style_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="cairo-cairo-font-options-t.html#cairo-hint-metrics-t" title="enum cairo_hint_metrics_t">cairo_hint_metrics_t</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-cairo-font-options-t.description"></a><h2>Description</h2>
+<p>The font options specify how fonts should be rendered. Most of the
+time the font options implied by a surface are just right and do not
+need any changes, but for pixel-based targets tweaking font options
+may result in superior output on a particular display.</p>
+</div>
+<div class="refsect1">
+<a name="cairo-cairo-font-options-t.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="cairo-font-options-create"></a><h3>cairo_font_options_create ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="returnvalue">cairo_font_options_t</span></a> *
+cairo_font_options_create (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>Allocates a new font options object with all options initialized
+ to default values.</p>
+<div class="refsect3">
+<a name="cairo-font-options-create.returns"></a><h4>Returns</h4>
+<p> a newly allocated <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a>. Free with
+<a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-destroy" title="cairo_font_options_destroy ()"><code class="function">cairo_font_options_destroy()</code></a>. 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 <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-status" title="cairo_font_options_status ()"><code class="function">cairo_font_options_status()</code></a>.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-font-options-copy"></a><h3>cairo_font_options_copy ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="returnvalue">cairo_font_options_t</span></a> *
+cairo_font_options_copy (<em class="parameter"><code>const <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a> *original</code></em>);</pre>
+<p>Allocates a new font options object copying the option values from
+ <em class="parameter"><code>original</code></em>
+.</p>
+<div class="refsect3">
+<a name="cairo-font-options-copy.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>original</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-font-options-copy.returns"></a><h4>Returns</h4>
+<p> a newly allocated <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a>. Free with
+<a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-destroy" title="cairo_font_options_destroy ()"><code class="function">cairo_font_options_destroy()</code></a>. 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 <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-status" title="cairo_font_options_status ()"><code class="function">cairo_font_options_status()</code></a>.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-font-options-destroy"></a><h3>cairo_font_options_destroy ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_font_options_destroy (<em class="parameter"><code><a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a> *options</code></em>);</pre>
+<p>Destroys a <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a> object created with
+<a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-create" title="cairo_font_options_create ()"><code class="function">cairo_font_options_create()</code></a> or <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-copy" title="cairo_font_options_copy ()"><code class="function">cairo_font_options_copy()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-font-options-destroy.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>options</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-font-options-status"></a><h3>cairo_font_options_status ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+cairo_font_options_status (<em class="parameter"><code><a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a> *options</code></em>);</pre>
+<p>Checks whether an error has previously occurred for this
+font options object</p>
+<div class="refsect3">
+<a name="cairo-font-options-status.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>options</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-font-options-status.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> or <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a></p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-font-options-merge"></a><h3>cairo_font_options_merge ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_font_options_merge (<em class="parameter"><code><a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a> *options</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a> *other</code></em>);</pre>
+<p>Merges non-default options from <em class="parameter"><code>other</code></em>
+ into <em class="parameter"><code>options</code></em>
+, replacing
+existing values. This operation can be thought of as somewhat
+similar to compositing <em class="parameter"><code>other</code></em>
+ onto <em class="parameter"><code>options</code></em>
+ with the operation
+of <a class="link" href="cairo-cairo-t.html#CAIRO-OPERATOR-OVER:CAPS"><code class="literal">CAIRO_OPERATOR_OVER</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-font-options-merge.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>options</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>other</p></td>
+<td class="parameter_description"><p>another <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-font-options-hash"></a><h3>cairo_font_options_hash ()</h3>
+<pre class="programlisting">unsigned <span class="returnvalue">long</span>
+cairo_font_options_hash (<em class="parameter"><code>const <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a> *options</code></em>);</pre>
+<p>Compute a hash for the font options object; this value will
+be useful when storing an object containing a <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a>
+in a hash table.</p>
+<div class="refsect3">
+<a name="cairo-font-options-hash.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>options</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-font-options-hash.returns"></a><h4>Returns</h4>
+<p> 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.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-font-options-equal"></a><h3>cairo_font_options_equal ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Types.html#cairo-bool-t" title="cairo_bool_t"><span class="returnvalue">cairo_bool_t</span></a>
+cairo_font_options_equal (<em class="parameter"><code>const <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a> *options</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a> *other</code></em>);</pre>
+<p>Compares two font options objects for equality.</p>
+<div class="refsect3">
+<a name="cairo-font-options-equal.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>options</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>other</p></td>
+<td class="parameter_description"><p>another <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-font-options-equal.returns"></a><h4>Returns</h4>
+<p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if all fields of the two font options objects match.
+Note that this function will return <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if either object is in
+error.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-font-options-set-antialias"></a><h3>cairo_font_options_set_antialias ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_font_options_set_antialias (<em class="parameter"><code><a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a> *options</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-antialias-t" title="enum cairo_antialias_t"><span class="type">cairo_antialias_t</span></a> antialias</code></em>);</pre>
+<p>Sets the antialiasing mode for the font options object. This
+specifies the type of antialiasing to do when rendering text.</p>
+<div class="refsect3">
+<a name="cairo-font-options-set-antialias.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>options</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>antialias</p></td>
+<td class="parameter_description"><p>the new antialiasing mode</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-font-options-get-antialias"></a><h3>cairo_font_options_get_antialias ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-t.html#cairo-antialias-t" title="enum cairo_antialias_t"><span class="returnvalue">cairo_antialias_t</span></a>
+cairo_font_options_get_antialias (<em class="parameter"><code>const <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a> *options</code></em>);</pre>
+<p>Gets the antialiasing mode for the font options object.</p>
+<div class="refsect3">
+<a name="cairo-font-options-get-antialias.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>options</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-font-options-get-antialias.returns"></a><h4>Returns</h4>
+<p> the antialiasing mode</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-font-options-set-subpixel-order"></a><h3>cairo_font_options_set_subpixel_order ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_font_options_set_subpixel_order (<em class="parameter"><code><a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a> *options</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-font-options-t.html#cairo-subpixel-order-t" title="enum cairo_subpixel_order_t"><span class="type">cairo_subpixel_order_t</span></a> subpixel_order</code></em>);</pre>
+<p>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
+<a class="link" href="cairo-cairo-t.html#CAIRO-ANTIALIAS-SUBPIXEL:CAPS"><code class="literal">CAIRO_ANTIALIAS_SUBPIXEL</code></a>. See the documentation for
+<a class="link" href="cairo-cairo-font-options-t.html#cairo-subpixel-order-t" title="enum cairo_subpixel_order_t"><span class="type">cairo_subpixel_order_t</span></a> for full details.</p>
+<div class="refsect3">
+<a name="cairo-font-options-set-subpixel-order.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>options</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>subpixel_order</p></td>
+<td class="parameter_description"><p>the new subpixel order</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-font-options-get-subpixel-order"></a><h3>cairo_font_options_get_subpixel_order ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-font-options-t.html#cairo-subpixel-order-t" title="enum cairo_subpixel_order_t"><span class="returnvalue">cairo_subpixel_order_t</span></a>
+cairo_font_options_get_subpixel_order (<em class="parameter"><code>const <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a> *options</code></em>);</pre>
+<p>Gets the subpixel order for the font options object.
+See the documentation for <a class="link" href="cairo-cairo-font-options-t.html#cairo-subpixel-order-t" title="enum cairo_subpixel_order_t"><span class="type">cairo_subpixel_order_t</span></a> for full details.</p>
+<div class="refsect3">
+<a name="cairo-font-options-get-subpixel-order.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>options</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-font-options-get-subpixel-order.returns"></a><h4>Returns</h4>
+<p> the subpixel order for the font options object</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-font-options-set-hint-style"></a><h3>cairo_font_options_set_hint_style ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_font_options_set_hint_style (<em class="parameter"><code><a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a> *options</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-font-options-t.html#cairo-hint-style-t" title="enum cairo_hint_style_t"><span class="type">cairo_hint_style_t</span></a> hint_style</code></em>);</pre>
+<p>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 <a class="link" href="cairo-cairo-font-options-t.html#cairo-hint-style-t" title="enum cairo_hint_style_t"><span class="type">cairo_hint_style_t</span></a> for full details.</p>
+<div class="refsect3">
+<a name="cairo-font-options-set-hint-style.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>options</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>hint_style</p></td>
+<td class="parameter_description"><p>the new hint style</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-font-options-get-hint-style"></a><h3>cairo_font_options_get_hint_style ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-font-options-t.html#cairo-hint-style-t" title="enum cairo_hint_style_t"><span class="returnvalue">cairo_hint_style_t</span></a>
+cairo_font_options_get_hint_style (<em class="parameter"><code>const <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a> *options</code></em>);</pre>
+<p>Gets the hint style for font outlines for the font options object.
+See the documentation for <a class="link" href="cairo-cairo-font-options-t.html#cairo-hint-style-t" title="enum cairo_hint_style_t"><span class="type">cairo_hint_style_t</span></a> for full details.</p>
+<div class="refsect3">
+<a name="cairo-font-options-get-hint-style.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>options</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-font-options-get-hint-style.returns"></a><h4>Returns</h4>
+<p> the hint style for the font options object</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-font-options-set-hint-metrics"></a><h3>cairo_font_options_set_hint_metrics ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_font_options_set_hint_metrics (<em class="parameter"><code><a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a> *options</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-font-options-t.html#cairo-hint-metrics-t" title="enum cairo_hint_metrics_t"><span class="type">cairo_hint_metrics_t</span></a> hint_metrics</code></em>);</pre>
+<p>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 <a class="link" href="cairo-cairo-font-options-t.html#cairo-hint-metrics-t" title="enum cairo_hint_metrics_t"><span class="type">cairo_hint_metrics_t</span></a> for full details.</p>
+<div class="refsect3">
+<a name="cairo-font-options-set-hint-metrics.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>options</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>hint_metrics</p></td>
+<td class="parameter_description"><p>the new metrics hinting mode</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-font-options-get-hint-metrics"></a><h3>cairo_font_options_get_hint_metrics ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-font-options-t.html#cairo-hint-metrics-t" title="enum cairo_hint_metrics_t"><span class="returnvalue">cairo_hint_metrics_t</span></a>
+cairo_font_options_get_hint_metrics (<em class="parameter"><code>const <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a> *options</code></em>);</pre>
+<p>Gets the metrics hinting mode for the font options object.
+See the documentation for <a class="link" href="cairo-cairo-font-options-t.html#cairo-hint-metrics-t" title="enum cairo_hint_metrics_t"><span class="type">cairo_hint_metrics_t</span></a> for full details.</p>
+<div class="refsect3">
+<a name="cairo-font-options-get-hint-metrics.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>options</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-font-options-get-hint-metrics.returns"></a><h4>Returns</h4>
+<p> the metrics hinting mode for the font options object</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-font-options-get-variations"></a><h3>cairo_font_options_get_variations ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> *
+cairo_font_options_get_variations (<em class="parameter"><code><a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a> *options</code></em>);</pre>
+<p>Gets the OpenType font variations for the font options object.
+See <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-set-variations" title="cairo_font_options_set_variations ()"><code class="function">cairo_font_options_set_variations()</code></a> for details about the
+string format.</p>
+<div class="refsect3">
+<a name="cairo-font-options-get-variations.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>options</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-font-options-get-variations.returns"></a><h4>Returns</h4>
+<p> the font variations for the font options object. The
+returned string belongs to the <em class="parameter"><code>options</code></em>
+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
+<a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-set-variations" title="cairo_font_options_set_variations ()"><code class="function">cairo_font_options_set_variations()</code></a>.</p>
+</div>
+<p class="since">Since: 1.16</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-font-options-set-variations"></a><h3>cairo_font_options_set_variations ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_font_options_set_variations (<em class="parameter"><code><a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a> *options</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *variations</code></em>);</pre>
+<p>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.</p>
+<p>Examples:</p>
+<p>wght=200,wdth=140.5</p>
+<p>wght 200 , wdth 140.5</p>
+<div class="refsect3">
+<a name="cairo-font-options-set-variations.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>options</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>variations</p></td>
+<td class="parameter_description"><p>the new font variations, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.16</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-cairo-font-options-t.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="cairo-font-options-t"></a><h3>cairo_font_options_t</h3>
+<pre class="programlisting">typedef struct _cairo_font_options cairo_font_options_t;
+</pre>
+<p>An opaque structure holding all options that are used when
+rendering fonts.</p>
+<p>Individual features of a <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a> can be set or
+accessed using functions named
+<code class="function">cairo_font_options_set_<span class="emphasis"><em>feature_name</em></span>()</code> and
+<code class="function">cairo_font_options_get_<span class="emphasis"><em>feature_name</em></span>()</code>, like
+<a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-set-antialias" title="cairo_font_options_set_antialias ()"><code class="function">cairo_font_options_set_antialias()</code></a> and
+<a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-get-antialias" title="cairo_font_options_get_antialias ()"><code class="function">cairo_font_options_get_antialias()</code></a>.</p>
+<p>New features may be added to a <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a> in the
+future. For this reason, <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-copy" title="cairo_font_options_copy ()"><code class="function">cairo_font_options_copy()</code></a>,
+<a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-equal" title="cairo_font_options_equal ()"><code class="function">cairo_font_options_equal()</code></a>, <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-merge" title="cairo_font_options_merge ()"><code class="function">cairo_font_options_merge()</code></a>, and
+<a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-hash" title="cairo_font_options_hash ()"><code class="function">cairo_font_options_hash()</code></a> should be used to copy, check
+for equality, merge, or compute a hash value of
+<a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a> objects.</p>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-subpixel-order-t"></a><h3>enum cairo_subpixel_order_t</h3>
+<p>The subpixel order specifies the order of color elements within
+each pixel on the display device when rendering with an
+antialiasing mode of <a class="link" href="cairo-cairo-t.html#CAIRO-ANTIALIAS-SUBPIXEL:CAPS"><code class="literal">CAIRO_ANTIALIAS_SUBPIXEL</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-subpixel-order-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SUBPIXEL-ORDER-DEFAULT:CAPS"></a>CAIRO_SUBPIXEL_ORDER_DEFAULT</p></td>
+<td class="enum_member_description">
+<p>Use the default subpixel order for
+ for the target device, since 1.0</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SUBPIXEL-ORDER-RGB:CAPS"></a>CAIRO_SUBPIXEL_ORDER_RGB</p></td>
+<td class="enum_member_description">
+<p>Subpixel elements are arranged horizontally
+ with red at the left, since 1.0</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SUBPIXEL-ORDER-BGR:CAPS"></a>CAIRO_SUBPIXEL_ORDER_BGR</p></td>
+<td class="enum_member_description">
+<p>Subpixel elements are arranged horizontally
+ with blue at the left, since 1.0</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SUBPIXEL-ORDER-VRGB:CAPS"></a>CAIRO_SUBPIXEL_ORDER_VRGB</p></td>
+<td class="enum_member_description">
+<p>Subpixel elements are arranged vertically
+ with red at the top, since 1.0</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SUBPIXEL-ORDER-VBGR:CAPS"></a>CAIRO_SUBPIXEL_ORDER_VBGR</p></td>
+<td class="enum_member_description">
+<p>Subpixel elements are arranged vertically
+ with blue at the top, since 1.0</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-hint-style-t"></a><h3>enum cairo_hint_style_t</h3>
+<p>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.</p>
+<p>New entries may be added in future versions.</p>
+<div class="refsect3">
+<a name="cairo-hint-style-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-HINT-STYLE-DEFAULT:CAPS"></a>CAIRO_HINT_STYLE_DEFAULT</p></td>
+<td class="enum_member_description">
+<p>Use the default hint style for
+ font backend and target device, since 1.0</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-HINT-STYLE-NONE:CAPS"></a>CAIRO_HINT_STYLE_NONE</p></td>
+<td class="enum_member_description">
+<p>Do not hint outlines, since 1.0</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-HINT-STYLE-SLIGHT:CAPS"></a>CAIRO_HINT_STYLE_SLIGHT</p></td>
+<td class="enum_member_description">
+<p>Hint outlines slightly to improve
+ contrast while retaining good fidelity to the original
+ shapes, since 1.0</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-HINT-STYLE-MEDIUM:CAPS"></a>CAIRO_HINT_STYLE_MEDIUM</p></td>
+<td class="enum_member_description">
+<p>Hint outlines with medium strength
+ giving a compromise between fidelity to the original shapes
+ and contrast, since 1.0</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-HINT-STYLE-FULL:CAPS"></a>CAIRO_HINT_STYLE_FULL</p></td>
+<td class="enum_member_description">
+<p>Hint outlines to maximize contrast, since 1.0</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-hint-metrics-t"></a><h3>enum cairo_hint_metrics_t</h3>
+<p>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.</p>
+<div class="refsect3">
+<a name="cairo-hint-metrics-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-HINT-METRICS-DEFAULT:CAPS"></a>CAIRO_HINT_METRICS_DEFAULT</p></td>
+<td class="enum_member_description">
+<p>Hint metrics in the default
+ manner for the font backend and target device, since 1.0</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-HINT-METRICS-OFF:CAPS"></a>CAIRO_HINT_METRICS_OFF</p></td>
+<td class="enum_member_description">
+<p>Do not hint font metrics, since 1.0</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-HINT-METRICS-ON:CAPS"></a>CAIRO_HINT_METRICS_ON</p></td>
+<td class="enum_member_description">
+<p>Hint font metrics, since 1.0</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-cairo-font-options-t.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a></p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>cairo_matrix_t: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="cairo-support.html" title="Utilities">
+<link rel="prev" href="cairo-support.html" title="Utilities">
+<link rel="next" href="cairo-Error-handling.html" title="Error handling">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+ <a href="#cairo-cairo-matrix-t.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="cairo-support.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="cairo-support.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="cairo-Error-handling.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="cairo-cairo-matrix-t"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="cairo-cairo-matrix-t.top_of_page"></a>cairo_matrix_t</span></h2>
+<p>cairo_matrix_t — Generic matrix operations</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="cairo-cairo-matrix-t.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-init" title="cairo_matrix_init ()">cairo_matrix_init</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-init-identity" title="cairo_matrix_init_identity ()">cairo_matrix_init_identity</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-init-translate" title="cairo_matrix_init_translate ()">cairo_matrix_init_translate</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-init-scale" title="cairo_matrix_init_scale ()">cairo_matrix_init_scale</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-init-rotate" title="cairo_matrix_init_rotate ()">cairo_matrix_init_rotate</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-translate" title="cairo_matrix_translate ()">cairo_matrix_translate</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-scale" title="cairo_matrix_scale ()">cairo_matrix_scale</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-rotate" title="cairo_matrix_rotate ()">cairo_matrix_rotate</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-invert" title="cairo_matrix_invert ()">cairo_matrix_invert</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-multiply" title="cairo_matrix_multiply ()">cairo_matrix_multiply</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-transform-distance" title="cairo_matrix_transform_distance ()">cairo_matrix_transform_distance</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-transform-point" title="cairo_matrix_transform_point ()">cairo_matrix_transform_point</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-cairo-matrix-t.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t">cairo_matrix_t</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-cairo-matrix-t.description"></a><h2>Description</h2>
+<p><a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a> is used throughout cairo to convert between different
+coordinate spaces. A <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a> holds an affine transformation,
+such as a scale, rotation, shear, or a combination of these.
+The transformation of a point (<code class="literal">x</code>,<code class="literal">y</code>)
+is given by:</p>
+<pre class="programlisting">
+x_new = xx * x + xy * y + x0;
+y_new = yx * x + yy * y + y0;
+</pre>
+<p>The current transformation matrix of a <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a>, represented as a
+<a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a>, defines the transformation from user-space
+coordinates to device-space coordinates. See <a class="link" href="cairo-Transformations.html#cairo-get-matrix" title="cairo_get_matrix ()"><code class="function">cairo_get_matrix()</code></a> and
+<a class="link" href="cairo-Transformations.html#cairo-set-matrix" title="cairo_set_matrix ()"><code class="function">cairo_set_matrix()</code></a>.</p>
+</div>
+<div class="refsect1">
+<a name="cairo-cairo-matrix-t.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="cairo-matrix-init"></a><h3>cairo_matrix_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_matrix_init (<em class="parameter"><code><a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a> *matrix</code></em>,
+ <em class="parameter"><code><span class="type">double</span> xx</code></em>,
+ <em class="parameter"><code><span class="type">double</span> yx</code></em>,
+ <em class="parameter"><code><span class="type">double</span> xy</code></em>,
+ <em class="parameter"><code><span class="type">double</span> yy</code></em>,
+ <em class="parameter"><code><span class="type">double</span> x0</code></em>,
+ <em class="parameter"><code><span class="type">double</span> y0</code></em>);</pre>
+<p>Sets <em class="parameter"><code>matrix</code></em>
+ to be the affine transformation given by
+<em class="parameter"><code>xx</code></em>
+, <em class="parameter"><code>yx</code></em>
+, <em class="parameter"><code>xy</code></em>
+, <em class="parameter"><code>yy</code></em>
+, <em class="parameter"><code>x0</code></em>
+, <em class="parameter"><code>y0</code></em>
+. The transformation is given
+by:</p>
+<pre class="programlisting">
+ x_new = xx * x + xy * y + x0;
+ y_new = yx * x + yy * y + y0;
+</pre>
+<div class="refsect3">
+<a name="cairo-matrix-init.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>matrix</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>xx</p></td>
+<td class="parameter_description"><p>xx component of the affine transformation</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>yx</p></td>
+<td class="parameter_description"><p>yx component of the affine transformation</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>xy</p></td>
+<td class="parameter_description"><p>xy component of the affine transformation</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>yy</p></td>
+<td class="parameter_description"><p>yy component of the affine transformation</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x0</p></td>
+<td class="parameter_description"><p>X translation component of the affine transformation</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y0</p></td>
+<td class="parameter_description"><p>Y translation component of the affine transformation</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-matrix-init-identity"></a><h3>cairo_matrix_init_identity ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_matrix_init_identity (<em class="parameter"><code><a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a> *matrix</code></em>);</pre>
+<p>Modifies <em class="parameter"><code>matrix</code></em>
+ to be an identity transformation.</p>
+<div class="refsect3">
+<a name="cairo-matrix-init-identity.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>matrix</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-matrix-init-translate"></a><h3>cairo_matrix_init_translate ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_matrix_init_translate (<em class="parameter"><code><a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a> *matrix</code></em>,
+ <em class="parameter"><code><span class="type">double</span> tx</code></em>,
+ <em class="parameter"><code><span class="type">double</span> ty</code></em>);</pre>
+<p>Initializes <em class="parameter"><code>matrix</code></em>
+ to a transformation that translates by <em class="parameter"><code>tx</code></em>
+ and
+<em class="parameter"><code>ty</code></em>
+ in the X and Y dimensions, respectively.</p>
+<div class="refsect3">
+<a name="cairo-matrix-init-translate.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>matrix</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>tx</p></td>
+<td class="parameter_description"><p>amount to translate in the X direction</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ty</p></td>
+<td class="parameter_description"><p>amount to translate in the Y direction</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-matrix-init-scale"></a><h3>cairo_matrix_init_scale ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_matrix_init_scale (<em class="parameter"><code><a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a> *matrix</code></em>,
+ <em class="parameter"><code><span class="type">double</span> sx</code></em>,
+ <em class="parameter"><code><span class="type">double</span> sy</code></em>);</pre>
+<p>Initializes <em class="parameter"><code>matrix</code></em>
+ to a transformation that scales by <em class="parameter"><code>sx</code></em>
+ and <em class="parameter"><code>sy</code></em>
+
+in the X and Y dimensions, respectively.</p>
+<div class="refsect3">
+<a name="cairo-matrix-init-scale.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>matrix</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sx</p></td>
+<td class="parameter_description"><p>scale factor in the X direction</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sy</p></td>
+<td class="parameter_description"><p>scale factor in the Y direction</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-matrix-init-rotate"></a><h3>cairo_matrix_init_rotate ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_matrix_init_rotate (<em class="parameter"><code><a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a> *matrix</code></em>,
+ <em class="parameter"><code><span class="type">double</span> radians</code></em>);</pre>
+<p>Initialized <em class="parameter"><code>matrix</code></em>
+ to a transformation that rotates by <em class="parameter"><code>radians</code></em>
+.</p>
+<div class="refsect3">
+<a name="cairo-matrix-init-rotate.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>matrix</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>radians</p></td>
+<td class="parameter_description"><p>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.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-matrix-translate"></a><h3>cairo_matrix_translate ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_matrix_translate (<em class="parameter"><code><a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a> *matrix</code></em>,
+ <em class="parameter"><code><span class="type">double</span> tx</code></em>,
+ <em class="parameter"><code><span class="type">double</span> ty</code></em>);</pre>
+<p>Applies a translation by <em class="parameter"><code>tx</code></em>
+, <em class="parameter"><code>ty</code></em>
+ to the transformation in
+<em class="parameter"><code>matrix</code></em>
+. The effect of the new transformation is to first translate
+the coordinates by <em class="parameter"><code>tx</code></em>
+ and <em class="parameter"><code>ty</code></em>
+, then apply the original transformation
+to the coordinates.</p>
+<div class="refsect3">
+<a name="cairo-matrix-translate.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>matrix</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>tx</p></td>
+<td class="parameter_description"><p>amount to translate in the X direction</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ty</p></td>
+<td class="parameter_description"><p>amount to translate in the Y direction</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-matrix-scale"></a><h3>cairo_matrix_scale ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_matrix_scale (<em class="parameter"><code><a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a> *matrix</code></em>,
+ <em class="parameter"><code><span class="type">double</span> sx</code></em>,
+ <em class="parameter"><code><span class="type">double</span> sy</code></em>);</pre>
+<p>Applies scaling by <em class="parameter"><code>sx</code></em>
+, <em class="parameter"><code>sy</code></em>
+ to the transformation in <em class="parameter"><code>matrix</code></em>
+. The
+effect of the new transformation is to first scale the coordinates
+by <em class="parameter"><code>sx</code></em>
+ and <em class="parameter"><code>sy</code></em>
+, then apply the original transformation to the coordinates.</p>
+<div class="refsect3">
+<a name="cairo-matrix-scale.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>matrix</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sx</p></td>
+<td class="parameter_description"><p>scale factor in the X direction</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sy</p></td>
+<td class="parameter_description"><p>scale factor in the Y direction</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-matrix-rotate"></a><h3>cairo_matrix_rotate ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_matrix_rotate (<em class="parameter"><code><a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a> *matrix</code></em>,
+ <em class="parameter"><code><span class="type">double</span> radians</code></em>);</pre>
+<p>Applies rotation by <em class="parameter"><code>radians</code></em>
+ to the transformation in
+<em class="parameter"><code>matrix</code></em>
+. The effect of the new transformation is to first rotate the
+coordinates by <em class="parameter"><code>radians</code></em>
+, then apply the original transformation
+to the coordinates.</p>
+<div class="refsect3">
+<a name="cairo-matrix-rotate.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>matrix</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>radians</p></td>
+<td class="parameter_description"><p>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.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-matrix-invert"></a><h3>cairo_matrix_invert ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+cairo_matrix_invert (<em class="parameter"><code><a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a> *matrix</code></em>);</pre>
+<p>Changes <em class="parameter"><code>matrix</code></em>
+ to be the inverse of its original value. Not
+all transformation matrices have inverses; if the matrix
+collapses points together (it is <em class="firstterm">degenerate</em>),
+then it has no inverse and this function will fail.</p>
+<div class="refsect3">
+<a name="cairo-matrix-invert.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>matrix</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-matrix-invert.returns"></a><h4>Returns</h4>
+<p> If <em class="parameter"><code>matrix</code></em>
+has an inverse, modifies <em class="parameter"><code>matrix</code></em>
+to
+be the inverse matrix and returns <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a>. Otherwise,
+returns <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-INVALID-MATRIX:CAPS"><code class="literal">CAIRO_STATUS_INVALID_MATRIX</code></a>.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-matrix-multiply"></a><h3>cairo_matrix_multiply ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_matrix_multiply (<em class="parameter"><code><a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a> *result</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a> *a</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a> *b</code></em>);</pre>
+<p>Multiplies the affine transformations in <em class="parameter"><code>a</code></em>
+ and <em class="parameter"><code>b</code></em>
+ together
+and stores the result in <em class="parameter"><code>result</code></em>
+. The effect of the resulting
+transformation is to first apply the transformation in <em class="parameter"><code>a</code></em>
+ to the
+coordinates and then apply the transformation in <em class="parameter"><code>b</code></em>
+ to the
+coordinates.</p>
+<p>It is allowable for <em class="parameter"><code>result</code></em>
+ to be identical to either <em class="parameter"><code>a</code></em>
+ or <em class="parameter"><code>b</code></em>
+.</p>
+<div class="refsect3">
+<a name="cairo-matrix-multiply.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>result</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a> in which to store the result</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>a</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>b</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-matrix-transform-distance"></a><h3>cairo_matrix_transform_distance ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_matrix_transform_distance (<em class="parameter"><code>const <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a> *matrix</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *dx</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *dy</code></em>);</pre>
+<p>Transforms the distance vector (<em class="parameter"><code>dx</code></em>
+,<em class="parameter"><code>dy</code></em>
+) by <em class="parameter"><code>matrix</code></em>
+. This is
+similar to <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-transform-point" title="cairo_matrix_transform_point ()"><code class="function">cairo_matrix_transform_point()</code></a> except that the translation
+components of the transformation are ignored. The calculation of
+the returned vector is as follows:</p>
+<pre class="programlisting">
+dx2 = dx1 * a + dy1 * c;
+dy2 = dx1 * b + dy1 * d;
+</pre>
+<p>Affine transformations are position invariant, so the same vector
+always transforms to the same vector. If (<em class="parameter"><code>x1</code></em>
+,<em class="parameter"><code>y1</code></em>
+) transforms
+to (<em class="parameter"><code>x2</code></em>
+,<em class="parameter"><code>y2</code></em>
+) then (<em class="parameter"><code>x1</code></em>
++<em class="parameter"><code>dx1</code></em>
+,<em class="parameter"><code>y1</code></em>
++<em class="parameter"><code>dy1</code></em>
+) will transform to
+(<em class="parameter"><code>x1</code></em>
++<em class="parameter"><code>dx2</code></em>
+,<em class="parameter"><code>y1</code></em>
++<em class="parameter"><code>dy2</code></em>
+) for all values of <em class="parameter"><code>x1</code></em>
+ and <em class="parameter"><code>x2</code></em>
+.</p>
+<div class="refsect3">
+<a name="cairo-matrix-transform-distance.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>matrix</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dx</p></td>
+<td class="parameter_description"><p>X component of a distance vector. An in/out parameter</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dy</p></td>
+<td class="parameter_description"><p>Y component of a distance vector. An in/out parameter</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-matrix-transform-point"></a><h3>cairo_matrix_transform_point ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_matrix_transform_point (<em class="parameter"><code>const <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a> *matrix</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *x</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *y</code></em>);</pre>
+<p>Transforms the point (<em class="parameter"><code>x</code></em>
+, <em class="parameter"><code>y</code></em>
+) by <em class="parameter"><code>matrix</code></em>
+.</p>
+<div class="refsect3">
+<a name="cairo-matrix-transform-point.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>matrix</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>X position. An in/out parameter</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>Y position. An in/out parameter</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-cairo-matrix-t.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="cairo-matrix-t"></a><h3>cairo_matrix_t</h3>
+<pre class="programlisting">typedef struct {
+ double xx; double yx;
+ double xy; double yy;
+ double x0; double y0;
+} cairo_matrix_t;
+</pre>
+<p>A <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a> holds an affine transformation, such as a scale,
+rotation, shear, or a combination of those. The transformation of
+a point (x, y) is given by:</p>
+<pre class="programlisting">
+ x_new = xx * x + xy * y + x0;
+ y_new = yx * x + yy * y + y0;
+</pre>
+<div class="refsect3">
+<a name="cairo-matrix-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><span class="type">double</span> <em class="structfield"><code><a name="cairo-matrix-t.xx"></a>xx</code></em>;</p></td>
+<td class="struct_member_description"><p>xx component of the affine transformation</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><span class="type">double</span> <em class="structfield"><code><a name="cairo-matrix-t.yx"></a>yx</code></em>;</p></td>
+<td class="struct_member_description"><p>yx component of the affine transformation</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><span class="type">double</span> <em class="structfield"><code><a name="cairo-matrix-t.xy"></a>xy</code></em>;</p></td>
+<td class="struct_member_description"><p>xy component of the affine transformation</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><span class="type">double</span> <em class="structfield"><code><a name="cairo-matrix-t.yy"></a>yy</code></em>;</p></td>
+<td class="struct_member_description"><p>yy component of the affine transformation</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><span class="type">double</span> <em class="structfield"><code><a name="cairo-matrix-t.x0"></a>x0</code></em>;</p></td>
+<td class="struct_member_description"><p>X translation component of the affine transformation</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><span class="type">double</span> <em class="structfield"><code><a name="cairo-matrix-t.y0"></a>y0</code></em>;</p></td>
+<td class="struct_member_description"><p>Y translation component of the affine transformation</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-cairo-matrix-t.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a></p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>cairo_pattern_t: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="cairo-drawing.html" title="Drawing">
+<link rel="prev" href="cairo-Paths.html" title="Paths">
+<link rel="next" href="cairo-Regions.html" title="Regions">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+ <a href="#cairo-cairo-pattern-t.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="cairo-drawing.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="cairo-Paths.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="cairo-Regions.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="cairo-cairo-pattern-t"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="cairo-cairo-pattern-t.top_of_page"></a>cairo_pattern_t</span></h2>
+<p>cairo_pattern_t — Sources for drawing</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="cairo-cairo-pattern-t.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-add-color-stop-rgb" title="cairo_pattern_add_color_stop_rgb ()">cairo_pattern_add_color_stop_rgb</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-add-color-stop-rgba" title="cairo_pattern_add_color_stop_rgba ()">cairo_pattern_add_color_stop_rgba</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-get-color-stop-count" title="cairo_pattern_get_color_stop_count ()">cairo_pattern_get_color_stop_count</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-get-color-stop-rgba" title="cairo_pattern_get_color_stop_rgba ()">cairo_pattern_get_color_stop_rgba</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="returnvalue">cairo_pattern_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-create-rgb" title="cairo_pattern_create_rgb ()">cairo_pattern_create_rgb</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="returnvalue">cairo_pattern_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-create-rgba" title="cairo_pattern_create_rgba ()">cairo_pattern_create_rgba</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-get-rgba" title="cairo_pattern_get_rgba ()">cairo_pattern_get_rgba</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="returnvalue">cairo_pattern_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-create-for-surface" title="cairo_pattern_create_for_surface ()">cairo_pattern_create_for_surface</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-get-surface" title="cairo_pattern_get_surface ()">cairo_pattern_get_surface</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="returnvalue">cairo_pattern_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-create-linear" title="cairo_pattern_create_linear ()">cairo_pattern_create_linear</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-get-linear-points" title="cairo_pattern_get_linear_points ()">cairo_pattern_get_linear_points</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="returnvalue">cairo_pattern_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-create-radial" title="cairo_pattern_create_radial ()">cairo_pattern_create_radial</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-get-radial-circles" title="cairo_pattern_get_radial_circles ()">cairo_pattern_get_radial_circles</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="returnvalue">cairo_pattern_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-create-mesh" title="cairo_pattern_create_mesh ()">cairo_pattern_create_mesh</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-begin-patch" title="cairo_mesh_pattern_begin_patch ()">cairo_mesh_pattern_begin_patch</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-end-patch" title="cairo_mesh_pattern_end_patch ()">cairo_mesh_pattern_end_patch</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-move-to" title="cairo_mesh_pattern_move_to ()">cairo_mesh_pattern_move_to</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-line-to" title="cairo_mesh_pattern_line_to ()">cairo_mesh_pattern_line_to</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-curve-to" title="cairo_mesh_pattern_curve_to ()">cairo_mesh_pattern_curve_to</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-set-control-point" title="cairo_mesh_pattern_set_control_point ()">cairo_mesh_pattern_set_control_point</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-set-corner-color-rgb" title="cairo_mesh_pattern_set_corner_color_rgb ()">cairo_mesh_pattern_set_corner_color_rgb</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-set-corner-color-rgba" title="cairo_mesh_pattern_set_corner_color_rgba ()">cairo_mesh_pattern_set_corner_color_rgba</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-get-patch-count" title="cairo_mesh_pattern_get_patch_count ()">cairo_mesh_pattern_get_patch_count</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Paths.html#cairo-path-t" title="cairo_path_t"><span class="returnvalue">cairo_path_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-get-path" title="cairo_mesh_pattern_get_path ()">cairo_mesh_pattern_get_path</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-get-control-point" title="cairo_mesh_pattern_get_control_point ()">cairo_mesh_pattern_get_control_point</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-get-corner-color-rgba" title="cairo_mesh_pattern_get_corner_color_rgba ()">cairo_mesh_pattern_get_corner_color_rgba</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="returnvalue">cairo_pattern_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-reference" title="cairo_pattern_reference ()">cairo_pattern_reference</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-destroy" title="cairo_pattern_destroy ()">cairo_pattern_destroy</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-status" title="cairo_pattern_status ()">cairo_pattern_status</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-set-extend" title="cairo_pattern_set_extend ()">cairo_pattern_set_extend</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-extend-t" title="enum cairo_extend_t"><span class="returnvalue">cairo_extend_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-get-extend" title="cairo_pattern_get_extend ()">cairo_pattern_get_extend</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-set-filter" title="cairo_pattern_set_filter ()">cairo_pattern_set_filter</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-filter-t" title="enum cairo_filter_t"><span class="returnvalue">cairo_filter_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-get-filter" title="cairo_pattern_get_filter ()">cairo_pattern_get_filter</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-set-matrix" title="cairo_pattern_set_matrix ()">cairo_pattern_set_matrix</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-get-matrix" title="cairo_pattern_get_matrix ()">cairo_pattern_get_matrix</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-type-t" title="enum cairo_pattern_type_t"><span class="returnvalue">cairo_pattern_type_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-get-type" title="cairo_pattern_get_type ()">cairo_pattern_get_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">unsigned <span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-get-reference-count" title="cairo_pattern_get_reference_count ()">cairo_pattern_get_reference_count</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-set-user-data" title="cairo_pattern_set_user_data ()">cairo_pattern_set_user_data</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-get-user-data" title="cairo_pattern_get_user_data ()">cairo_pattern_get_user_data</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-cairo-pattern-t.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t">cairo_pattern_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="cairo-cairo-pattern-t.html#cairo-extend-t" title="enum cairo_extend_t">cairo_extend_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="cairo-cairo-pattern-t.html#cairo-filter-t" title="enum cairo_filter_t">cairo_filter_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-type-t" title="enum cairo_pattern_type_t">cairo_pattern_type_t</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-cairo-pattern-t.description"></a><h2>Description</h2>
+<p><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> is the paint with which cairo draws.
+The primary use of patterns is as the source for all cairo drawing
+operations, although they can also be used as masks, that is, as the
+brush too.</p>
+<p>A cairo pattern is created by using one of the many constructors,
+of the form
+<code class="function">cairo_pattern_create_<span class="emphasis"><em>type</em></span>()</code>
+or implicitly through
+<code class="function">cairo_set_source_<span class="emphasis"><em>type</em></span>()</code>
+functions.</p>
+</div>
+<div class="refsect1">
+<a name="cairo-cairo-pattern-t.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="cairo-pattern-add-color-stop-rgb"></a><h3>cairo_pattern_add_color_stop_rgb ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_pattern_add_color_stop_rgb (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>,
+ <em class="parameter"><code><span class="type">double</span> offset</code></em>,
+ <em class="parameter"><code><span class="type">double</span> red</code></em>,
+ <em class="parameter"><code><span class="type">double</span> green</code></em>,
+ <em class="parameter"><code><span class="type">double</span> blue</code></em>);</pre>
+<p>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.</p>
+<p>The color is specified in the same way as in <a class="link" href="cairo-cairo-t.html#cairo-set-source-rgb" title="cairo_set_source_rgb ()"><code class="function">cairo_set_source_rgb()</code></a>.</p>
+<p>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.</p>
+<p>Note: If the pattern is not a gradient pattern, (eg. a linear or
+radial pattern), then the pattern will be put into an error status
+with a status of <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS"><code class="literal">CAIRO_STATUS_PATTERN_TYPE_MISMATCH</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-pattern-add-color-stop-rgb.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>offset</p></td>
+<td class="parameter_description"><p>an offset in the range [0.0 .. 1.0]</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>red</p></td>
+<td class="parameter_description"><p>red component of color</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>green</p></td>
+<td class="parameter_description"><p>green component of color</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>blue</p></td>
+<td class="parameter_description"><p>blue component of color</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-pattern-add-color-stop-rgba"></a><h3>cairo_pattern_add_color_stop_rgba ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_pattern_add_color_stop_rgba (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>,
+ <em class="parameter"><code><span class="type">double</span> offset</code></em>,
+ <em class="parameter"><code><span class="type">double</span> red</code></em>,
+ <em class="parameter"><code><span class="type">double</span> green</code></em>,
+ <em class="parameter"><code><span class="type">double</span> blue</code></em>,
+ <em class="parameter"><code><span class="type">double</span> alpha</code></em>);</pre>
+<p>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.</p>
+<p>The color is specified in the same way as in <a class="link" href="cairo-cairo-t.html#cairo-set-source-rgba" title="cairo_set_source_rgba ()"><code class="function">cairo_set_source_rgba()</code></a>.</p>
+<p>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.</p>
+<p>Note: If the pattern is not a gradient pattern, (eg. a linear or
+radial pattern), then the pattern will be put into an error status
+with a status of <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS"><code class="literal">CAIRO_STATUS_PATTERN_TYPE_MISMATCH</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-pattern-add-color-stop-rgba.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>offset</p></td>
+<td class="parameter_description"><p>an offset in the range [0.0 .. 1.0]</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>red</p></td>
+<td class="parameter_description"><p>red component of color</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>green</p></td>
+<td class="parameter_description"><p>green component of color</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>blue</p></td>
+<td class="parameter_description"><p>blue component of color</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>alpha</p></td>
+<td class="parameter_description"><p>alpha component of color</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-pattern-get-color-stop-count"></a><h3>cairo_pattern_get_color_stop_count ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+cairo_pattern_get_color_stop_count (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>,
+ <em class="parameter"><code><span class="type">int</span> *count</code></em>);</pre>
+<p>Gets the number of color stops specified in the given gradient
+pattern.</p>
+<div class="refsect3">
+<a name="cairo-pattern-get-color-stop-count.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>count</p></td>
+<td class="parameter_description"><p>return value for the number of color stops, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-pattern-get-color-stop-count.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a>, or
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS"><code class="literal">CAIRO_STATUS_PATTERN_TYPE_MISMATCH</code></a> if <em class="parameter"><code>pattern</code></em>
+is not a gradient
+pattern.</p>
+</div>
+<p class="since">Since: 1.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-pattern-get-color-stop-rgba"></a><h3>cairo_pattern_get_color_stop_rgba ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+cairo_pattern_get_color_stop_rgba (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>,
+ <em class="parameter"><code><span class="type">int</span> index</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *offset</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *red</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *green</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *blue</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *alpha</code></em>);</pre>
+<p>Gets the color and offset information at the given <em class="parameter"><code>index</code></em>
+ for a
+gradient pattern. Values of <em class="parameter"><code>index</code></em>
+ range from 0 to n-1
+where n is the number returned
+by <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-get-color-stop-count" title="cairo_pattern_get_color_stop_count ()"><code class="function">cairo_pattern_get_color_stop_count()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-pattern-get-color-stop-rgba.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>index</p></td>
+<td class="parameter_description"><p>index of the stop to return data for</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>offset</p></td>
+<td class="parameter_description"><p>return value for the offset of the stop, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>red</p></td>
+<td class="parameter_description"><p>return value for red component of color, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>green</p></td>
+<td class="parameter_description"><p>return value for green component of color, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>blue</p></td>
+<td class="parameter_description"><p>return value for blue component of color, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>alpha</p></td>
+<td class="parameter_description"><p>return value for alpha component of color, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-pattern-get-color-stop-rgba.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a>, or <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-INVALID-INDEX:CAPS"><code class="literal">CAIRO_STATUS_INVALID_INDEX</code></a>
+if <em class="parameter"><code>index</code></em>
+is not valid for the given pattern. If the pattern is
+not a gradient pattern, <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS"><code class="literal">CAIRO_STATUS_PATTERN_TYPE_MISMATCH</code></a> is
+returned.</p>
+</div>
+<p class="since">Since: 1.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-pattern-create-rgb"></a><h3>cairo_pattern_create_rgb ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="returnvalue">cairo_pattern_t</span></a> *
+cairo_pattern_create_rgb (<em class="parameter"><code><span class="type">double</span> red</code></em>,
+ <em class="parameter"><code><span class="type">double</span> green</code></em>,
+ <em class="parameter"><code><span class="type">double</span> blue</code></em>);</pre>
+<p>Creates a new <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> corresponding to an opaque color. The
+color components are floating point numbers in the range 0 to 1.
+If the values passed in are outside that range, they will be
+clamped.</p>
+<div class="refsect3">
+<a name="cairo-pattern-create-rgb.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>red</p></td>
+<td class="parameter_description"><p>red component of the color</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>green</p></td>
+<td class="parameter_description"><p>green component of the color</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>blue</p></td>
+<td class="parameter_description"><p>blue component of the color</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-pattern-create-rgb.returns"></a><h4>Returns</h4>
+<p> the newly created <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> if successful, or
+an error pattern in case of no memory. The caller owns the
+returned object and should call <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-destroy" title="cairo_pattern_destroy ()"><code class="function">cairo_pattern_destroy()</code></a> when
+finished with it.</p>
+<p>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 <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-status" title="cairo_pattern_status ()"><code class="function">cairo_pattern_status()</code></a>.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-pattern-create-rgba"></a><h3>cairo_pattern_create_rgba ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="returnvalue">cairo_pattern_t</span></a> *
+cairo_pattern_create_rgba (<em class="parameter"><code><span class="type">double</span> red</code></em>,
+ <em class="parameter"><code><span class="type">double</span> green</code></em>,
+ <em class="parameter"><code><span class="type">double</span> blue</code></em>,
+ <em class="parameter"><code><span class="type">double</span> alpha</code></em>);</pre>
+<p>Creates a new <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> corresponding to a translucent color.
+The color components are floating point numbers in the range 0 to</p>
+<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>If the values passed in are outside that range, they will be
+clamped.</p></li></ol></div>
+<div class="refsect3">
+<a name="cairo-pattern-create-rgba.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>red</p></td>
+<td class="parameter_description"><p>red component of the color</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>green</p></td>
+<td class="parameter_description"><p>green component of the color</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>blue</p></td>
+<td class="parameter_description"><p>blue component of the color</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>alpha</p></td>
+<td class="parameter_description"><p>alpha component of the color</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-pattern-create-rgba.returns"></a><h4>Returns</h4>
+<p> the newly created <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> if successful, or
+an error pattern in case of no memory. The caller owns the
+returned object and should call <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-destroy" title="cairo_pattern_destroy ()"><code class="function">cairo_pattern_destroy()</code></a> when
+finished with it.</p>
+<p>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 <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-status" title="cairo_pattern_status ()"><code class="function">cairo_pattern_status()</code></a>.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-pattern-get-rgba"></a><h3>cairo_pattern_get_rgba ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+cairo_pattern_get_rgba (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *red</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *green</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *blue</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *alpha</code></em>);</pre>
+<p>Gets the solid color for a solid color pattern.</p>
+<div class="refsect3">
+<a name="cairo-pattern-get-rgba.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>red</p></td>
+<td class="parameter_description"><p>return value for red component of color, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>green</p></td>
+<td class="parameter_description"><p>return value for green component of color, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>blue</p></td>
+<td class="parameter_description"><p>return value for blue component of color, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>alpha</p></td>
+<td class="parameter_description"><p>return value for alpha component of color, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-pattern-get-rgba.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a>, or
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS"><code class="literal">CAIRO_STATUS_PATTERN_TYPE_MISMATCH</code></a> if the pattern is not a solid
+color pattern.</p>
+</div>
+<p class="since">Since: 1.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-pattern-create-for-surface"></a><h3>cairo_pattern_create_for_surface ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="returnvalue">cairo_pattern_t</span></a> *
+cairo_pattern_create_for_surface (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
+<p>Create a new <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> for the given surface.</p>
+<div class="refsect3">
+<a name="cairo-pattern-create-for-surface.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>the surface</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-pattern-create-for-surface.returns"></a><h4>Returns</h4>
+<p> the newly created <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> if successful, or
+an error pattern in case of no memory. The caller owns the
+returned object and should call <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-destroy" title="cairo_pattern_destroy ()"><code class="function">cairo_pattern_destroy()</code></a> when
+finished with it.</p>
+<p>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 <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-status" title="cairo_pattern_status ()"><code class="function">cairo_pattern_status()</code></a>.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-pattern-get-surface"></a><h3>cairo_pattern_get_surface ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+cairo_pattern_get_surface (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> **surface</code></em>);</pre>
+<p>Gets the surface of a surface pattern. The reference returned in
+<em class="parameter"><code>surface</code></em>
+ is owned by the pattern; the caller should call
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-reference" title="cairo_surface_reference ()"><code class="function">cairo_surface_reference()</code></a> if the surface is to be retained.</p>
+<div class="refsect3">
+<a name="cairo-pattern-get-surface.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>return value for surface of pattern, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-pattern-get-surface.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a>, or
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS"><code class="literal">CAIRO_STATUS_PATTERN_TYPE_MISMATCH</code></a> if the pattern is not a surface
+pattern.</p>
+</div>
+<p class="since">Since: 1.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-pattern-create-linear"></a><h3>cairo_pattern_create_linear ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="returnvalue">cairo_pattern_t</span></a> *
+cairo_pattern_create_linear (<em class="parameter"><code><span class="type">double</span> x0</code></em>,
+ <em class="parameter"><code><span class="type">double</span> y0</code></em>,
+ <em class="parameter"><code><span class="type">double</span> x1</code></em>,
+ <em class="parameter"><code><span class="type">double</span> y1</code></em>);</pre>
+<p>Create a new linear gradient <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> along the line defined
+by (x0, y0) and (x1, y1). Before using the gradient pattern, a
+number of color stops should be defined using
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-add-color-stop-rgb" title="cairo_pattern_add_color_stop_rgb ()"><code class="function">cairo_pattern_add_color_stop_rgb()</code></a> or
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-add-color-stop-rgba" title="cairo_pattern_add_color_stop_rgba ()"><code class="function">cairo_pattern_add_color_stop_rgba()</code></a>.</p>
+<p>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 <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-set-matrix" title="cairo_pattern_set_matrix ()"><code class="function">cairo_pattern_set_matrix()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-pattern-create-linear.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>x0</p></td>
+<td class="parameter_description"><p>x coordinate of the start point</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y0</p></td>
+<td class="parameter_description"><p>y coordinate of the start point</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x1</p></td>
+<td class="parameter_description"><p>x coordinate of the end point</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y1</p></td>
+<td class="parameter_description"><p>y coordinate of the end point</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-pattern-create-linear.returns"></a><h4>Returns</h4>
+<p> the newly created <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> if successful, or
+an error pattern in case of no memory. The caller owns the
+returned object and should call <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-destroy" title="cairo_pattern_destroy ()"><code class="function">cairo_pattern_destroy()</code></a> when
+finished with it.</p>
+<p>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 <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-status" title="cairo_pattern_status ()"><code class="function">cairo_pattern_status()</code></a>.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-pattern-get-linear-points"></a><h3>cairo_pattern_get_linear_points ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+cairo_pattern_get_linear_points (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *x0</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *y0</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *x1</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *y1</code></em>);</pre>
+<p>Gets the gradient endpoints for a linear gradient.</p>
+<div class="refsect3">
+<a name="cairo-pattern-get-linear-points.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x0</p></td>
+<td class="parameter_description"><p>return value for the x coordinate of the first point, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y0</p></td>
+<td class="parameter_description"><p>return value for the y coordinate of the first point, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x1</p></td>
+<td class="parameter_description"><p>return value for the x coordinate of the second point, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y1</p></td>
+<td class="parameter_description"><p>return value for the y coordinate of the second point, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-pattern-get-linear-points.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a>, or
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS"><code class="literal">CAIRO_STATUS_PATTERN_TYPE_MISMATCH</code></a> if <em class="parameter"><code>pattern</code></em>
+is not a linear
+gradient pattern.</p>
+</div>
+<p class="since">Since: 1.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-pattern-create-radial"></a><h3>cairo_pattern_create_radial ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="returnvalue">cairo_pattern_t</span></a> *
+cairo_pattern_create_radial (<em class="parameter"><code><span class="type">double</span> cx0</code></em>,
+ <em class="parameter"><code><span class="type">double</span> cy0</code></em>,
+ <em class="parameter"><code><span class="type">double</span> radius0</code></em>,
+ <em class="parameter"><code><span class="type">double</span> cx1</code></em>,
+ <em class="parameter"><code><span class="type">double</span> cy1</code></em>,
+ <em class="parameter"><code><span class="type">double</span> radius1</code></em>);</pre>
+<p>Creates a new radial gradient <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> between the two
+circles defined by (cx0, cy0, radius0) and (cx1, cy1, radius1). Before using the
+gradient pattern, a number of color stops should be defined using
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-add-color-stop-rgb" title="cairo_pattern_add_color_stop_rgb ()"><code class="function">cairo_pattern_add_color_stop_rgb()</code></a> or
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-add-color-stop-rgba" title="cairo_pattern_add_color_stop_rgba ()"><code class="function">cairo_pattern_add_color_stop_rgba()</code></a>.</p>
+<p>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 <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-set-matrix" title="cairo_pattern_set_matrix ()"><code class="function">cairo_pattern_set_matrix()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-pattern-create-radial.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cx0</p></td>
+<td class="parameter_description"><p>x coordinate for the center of the start circle</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cy0</p></td>
+<td class="parameter_description"><p>y coordinate for the center of the start circle</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>radius0</p></td>
+<td class="parameter_description"><p>radius of the start circle</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cx1</p></td>
+<td class="parameter_description"><p>x coordinate for the center of the end circle</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cy1</p></td>
+<td class="parameter_description"><p>y coordinate for the center of the end circle</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>radius1</p></td>
+<td class="parameter_description"><p>radius of the end circle</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-pattern-create-radial.returns"></a><h4>Returns</h4>
+<p> the newly created <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> if successful, or
+an error pattern in case of no memory. The caller owns the
+returned object and should call <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-destroy" title="cairo_pattern_destroy ()"><code class="function">cairo_pattern_destroy()</code></a> when
+finished with it.</p>
+<p>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 <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-status" title="cairo_pattern_status ()"><code class="function">cairo_pattern_status()</code></a>.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-pattern-get-radial-circles"></a><h3>cairo_pattern_get_radial_circles ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+cairo_pattern_get_radial_circles (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *x0</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *y0</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *r0</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *x1</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *y1</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *r1</code></em>);</pre>
+<p>Gets the gradient endpoint circles for a radial gradient, each
+specified as a center coordinate and a radius.</p>
+<div class="refsect3">
+<a name="cairo-pattern-get-radial-circles.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x0</p></td>
+<td class="parameter_description"><p>return value for the x coordinate of the center of the first circle, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y0</p></td>
+<td class="parameter_description"><p>return value for the y coordinate of the center of the first circle, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>r0</p></td>
+<td class="parameter_description"><p>return value for the radius of the first circle, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x1</p></td>
+<td class="parameter_description"><p>return value for the x coordinate of the center of the second circle, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y1</p></td>
+<td class="parameter_description"><p>return value for the y coordinate of the center of the second circle, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>r1</p></td>
+<td class="parameter_description"><p>return value for the radius of the second circle, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-pattern-get-radial-circles.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a>, or
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS"><code class="literal">CAIRO_STATUS_PATTERN_TYPE_MISMATCH</code></a> if <em class="parameter"><code>pattern</code></em>
+is not a radial
+gradient pattern.</p>
+</div>
+<p class="since">Since: 1.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-pattern-create-mesh"></a><h3>cairo_pattern_create_mesh ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="returnvalue">cairo_pattern_t</span></a> *
+cairo_pattern_create_mesh (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>Create a new mesh pattern.</p>
+<p>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).</p>
+<p>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
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-INVALID-MESH-CONSTRUCTION:CAPS"><code class="literal">CAIRO_STATUS_INVALID_MESH_CONSTRUCTION</code></a>.</p>
+<p>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.</p>
+<p>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.</p>
+<div class="informalexample"><pre class="screen">
+ C1 Side 1 C2
+ +---------------+
+ | |
+ | P1 P2 |
+ | |
+Side 0 | | Side 2
+ | |
+ | |
+ | P0 P3 |
+ | |
+ +---------------+
+ C0 Side 3 C3
+</pre></div>
+<p>Each patch is constructed by first calling
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-begin-patch" title="cairo_mesh_pattern_begin_patch ()"><code class="function">cairo_mesh_pattern_begin_patch()</code></a>, then <a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-move-to" title="cairo_mesh_pattern_move_to ()"><code class="function">cairo_mesh_pattern_move_to()</code></a>
+to specify the first point in the patch (C0). Then the sides are
+specified with calls to <a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-curve-to" title="cairo_mesh_pattern_curve_to ()"><code class="function">cairo_mesh_pattern_curve_to()</code></a> and
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-line-to" title="cairo_mesh_pattern_line_to ()"><code class="function">cairo_mesh_pattern_line_to()</code></a>.</p>
+<p>The four additional control points (P0, P1, P2, P3) in a patch can
+be specified with <a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-set-control-point" title="cairo_mesh_pattern_set_control_point ()"><code class="function">cairo_mesh_pattern_set_control_point()</code></a>.</p>
+<p>At each corner of the patch (C0, C1, C2, C3) a color may be
+specified with <a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-set-corner-color-rgb" title="cairo_mesh_pattern_set_corner_color_rgb ()"><code class="function">cairo_mesh_pattern_set_corner_color_rgb()</code></a> or
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-set-corner-color-rgba" title="cairo_mesh_pattern_set_corner_color_rgba ()"><code class="function">cairo_mesh_pattern_set_corner_color_rgba()</code></a>. Any corner whose color
+is not explicitly specified defaults to transparent black.</p>
+<p>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.</p>
+<p>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.</p>
+<p>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.</p>
+<p>Calling <a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-end-patch" title="cairo_mesh_pattern_end_patch ()"><code class="function">cairo_mesh_pattern_end_patch()</code></a> 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.</p>
+<p>Additional patches may be added with additional calls to
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-begin-patch" title="cairo_mesh_pattern_begin_patch ()"><code class="function">cairo_mesh_pattern_begin_patch()</code></a>/<a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-end-patch" title="cairo_mesh_pattern_end_patch ()"><code class="function">cairo_mesh_pattern_end_patch()</code></a>.</p>
+<div class="informalexample">
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+ <tbody>
+ <tr>
+ <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24</pre></td>
+ <td class="listing_code"><pre class="programlisting">cairo_pattern_t <span class="gtkdoc opt">*</span>pattern <span class="gtkdoc opt">=</span> <span class="function"><a href="cairo-cairo-pattern-t.html#cairo-pattern-create-mesh">cairo_pattern_create_mesh</a></span> <span class="gtkdoc opt">();</span>
+
+<span class="comment">/* Add a Coons patch */</span>
+<span class="function"><a href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-begin-patch">cairo_mesh_pattern_begin_patch</a></span> <span class="gtkdoc opt">(</span>pattern<span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-move-to">cairo_mesh_pattern_move_to</a></span> <span class="gtkdoc opt">(</span>pattern<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-curve-to">cairo_mesh_pattern_curve_to</a></span> <span class="gtkdoc opt">(</span>pattern<span class="gtkdoc opt">,</span> <span class="number">30</span><span class="gtkdoc opt">, -</span><span class="number">30</span><span class="gtkdoc opt">,</span> <span class="number">60</span><span class="gtkdoc opt">,</span> <span class="number">30</span><span class="gtkdoc opt">,</span> <span class="number">100</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-curve-to">cairo_mesh_pattern_curve_to</a></span> <span class="gtkdoc opt">(</span>pattern<span class="gtkdoc opt">,</span> <span class="number">60</span><span class="gtkdoc opt">,</span> <span class="number">30</span><span class="gtkdoc opt">,</span> <span class="number">130</span><span class="gtkdoc opt">,</span> <span class="number">60</span><span class="gtkdoc opt">,</span> <span class="number">100</span><span class="gtkdoc opt">,</span> <span class="number">100</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-curve-to">cairo_mesh_pattern_curve_to</a></span> <span class="gtkdoc opt">(</span>pattern<span class="gtkdoc opt">,</span> <span class="number">60</span><span class="gtkdoc opt">,</span> <span class="number">70</span><span class="gtkdoc opt">,</span> <span class="number">30</span><span class="gtkdoc opt">,</span> <span class="number">130</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span> <span class="number">100</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-curve-to">cairo_mesh_pattern_curve_to</a></span> <span class="gtkdoc opt">(</span>pattern<span class="gtkdoc opt">,</span> <span class="number">30</span><span class="gtkdoc opt">,</span> <span class="number">70</span><span class="gtkdoc opt">, -</span><span class="number">30</span><span class="gtkdoc opt">,</span> <span class="number">30</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-set-corner-color-rgb">cairo_mesh_pattern_set_corner_color_rgb</a></span> <span class="gtkdoc opt">(</span>pattern<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span> <span class="number">1</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-set-corner-color-rgb">cairo_mesh_pattern_set_corner_color_rgb</a></span> <span class="gtkdoc opt">(</span>pattern<span class="gtkdoc opt">,</span> <span class="number">1</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span> <span class="number">1</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-set-corner-color-rgb">cairo_mesh_pattern_set_corner_color_rgb</a></span> <span class="gtkdoc opt">(</span>pattern<span class="gtkdoc opt">,</span> <span class="number">2</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span> <span class="number">1</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-set-corner-color-rgb">cairo_mesh_pattern_set_corner_color_rgb</a></span> <span class="gtkdoc opt">(</span>pattern<span class="gtkdoc opt">,</span> <span class="number">3</span><span class="gtkdoc opt">,</span> <span class="number">1</span><span class="gtkdoc opt">,</span> <span class="number">1</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-end-patch">cairo_mesh_pattern_end_patch</a></span> <span class="gtkdoc opt">(</span>pattern<span class="gtkdoc opt">);</span>
+
+<span class="comment">/* Add a Gouraud-shaded triangle */</span>
+<span class="function"><a href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-begin-patch">cairo_mesh_pattern_begin_patch</a></span> <span class="gtkdoc opt">(</span>pattern<span class="gtkdoc opt">)</span>
+<span class="function"><a href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-move-to">cairo_mesh_pattern_move_to</a></span> <span class="gtkdoc opt">(</span>pattern<span class="gtkdoc opt">,</span> <span class="number">100</span><span class="gtkdoc opt">,</span> <span class="number">100</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-line-to">cairo_mesh_pattern_line_to</a></span> <span class="gtkdoc opt">(</span>pattern<span class="gtkdoc opt">,</span> <span class="number">130</span><span class="gtkdoc opt">,</span> <span class="number">130</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-line-to">cairo_mesh_pattern_line_to</a></span> <span class="gtkdoc opt">(</span>pattern<span class="gtkdoc opt">,</span> <span class="number">130</span><span class="gtkdoc opt">,</span> <span class="number">70</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-set-corner-color-rgb">cairo_mesh_pattern_set_corner_color_rgb</a></span> <span class="gtkdoc opt">(</span>pattern<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span> <span class="number">1</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-set-corner-color-rgb">cairo_mesh_pattern_set_corner_color_rgb</a></span> <span class="gtkdoc opt">(</span>pattern<span class="gtkdoc opt">,</span> <span class="number">1</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span> <span class="number">1</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-set-corner-color-rgb">cairo_mesh_pattern_set_corner_color_rgb</a></span> <span class="gtkdoc opt">(</span>pattern<span class="gtkdoc opt">,</span> <span class="number">2</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span> <span class="number">1</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-end-patch">cairo_mesh_pattern_end_patch</a></span> <span class="gtkdoc opt">(</span>pattern<span class="gtkdoc opt">)</span></pre></td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+
+<p>When two patches overlap, the last one that has been added is drawn
+over the first one.</p>
+<p>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</p>
+<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>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.</p></li></ol></div>
+<p>For a complete definition of tensor-product patches, see the PDF
+specification (ISO32000), which describes the parametrization in
+detail.</p>
+<p>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
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-set-matrix" title="cairo_pattern_set_matrix ()"><code class="function">cairo_pattern_set_matrix()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-pattern-create-mesh.returns"></a><h4>Returns</h4>
+<p> the newly created <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> if successful, or
+an error pattern in case of no memory. The caller owns the returned
+object and should call <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-destroy" title="cairo_pattern_destroy ()"><code class="function">cairo_pattern_destroy()</code></a> when finished with
+it.</p>
+<p>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 <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-status" title="cairo_pattern_status ()"><code class="function">cairo_pattern_status()</code></a>.</p>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-mesh-pattern-begin-patch"></a><h3>cairo_mesh_pattern_begin_patch ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_mesh_pattern_begin_patch (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>);</pre>
+<p>Begin a patch in a mesh pattern.</p>
+<p>After calling this function, the patch shape should be defined with
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-move-to" title="cairo_mesh_pattern_move_to ()"><code class="function">cairo_mesh_pattern_move_to()</code></a>, <a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-line-to" title="cairo_mesh_pattern_line_to ()"><code class="function">cairo_mesh_pattern_line_to()</code></a> and
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-curve-to" title="cairo_mesh_pattern_curve_to ()"><code class="function">cairo_mesh_pattern_curve_to()</code></a>.</p>
+<p>After defining the patch, <a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-end-patch" title="cairo_mesh_pattern_end_patch ()"><code class="function">cairo_mesh_pattern_end_patch()</code></a> must be
+called before using <em class="parameter"><code>pattern</code></em>
+ as a source or mask.</p>
+<p>Note: If <em class="parameter"><code>pattern</code></em>
+ is not a mesh pattern then <em class="parameter"><code>pattern</code></em>
+ will be put
+into an error status with a status of
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS"><code class="literal">CAIRO_STATUS_PATTERN_TYPE_MISMATCH</code></a>. If <em class="parameter"><code>pattern</code></em>
+ already has a
+current patch, it will be put into an error status with a status of
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-INVALID-MESH-CONSTRUCTION:CAPS"><code class="literal">CAIRO_STATUS_INVALID_MESH_CONSTRUCTION</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-mesh-pattern-begin-patch.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-mesh-pattern-end-patch"></a><h3>cairo_mesh_pattern_end_patch ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_mesh_pattern_end_patch (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>);</pre>
+<p>Indicates the end of the current patch in a mesh pattern.</p>
+<p>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 <a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-line-to" title="cairo_mesh_pattern_line_to ()"><code class="function">cairo_mesh_pattern_line_to()</code></a> was used.</p>
+<p>Note: If <em class="parameter"><code>pattern</code></em>
+ is not a mesh pattern then <em class="parameter"><code>pattern</code></em>
+ will be put
+into an error status with a status of
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS"><code class="literal">CAIRO_STATUS_PATTERN_TYPE_MISMATCH</code></a>. If <em class="parameter"><code>pattern</code></em>
+ has no current
+patch or the current patch has no current point, <em class="parameter"><code>pattern</code></em>
+ will be
+put into an error status with a status of
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-INVALID-MESH-CONSTRUCTION:CAPS"><code class="literal">CAIRO_STATUS_INVALID_MESH_CONSTRUCTION</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-mesh-pattern-end-patch.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-mesh-pattern-move-to"></a><h3>cairo_mesh_pattern_move_to ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_mesh_pattern_move_to (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>,
+ <em class="parameter"><code><span class="type">double</span> x</code></em>,
+ <em class="parameter"><code><span class="type">double</span> y</code></em>);</pre>
+<p>Define the first point of the current patch in a mesh pattern.</p>
+<p>After this call the current point will be (<em class="parameter"><code>x</code></em>
+, <em class="parameter"><code>y</code></em>
+).</p>
+<p>Note: If <em class="parameter"><code>pattern</code></em>
+ is not a mesh pattern then <em class="parameter"><code>pattern</code></em>
+ will be put
+into an error status with a status of
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS"><code class="literal">CAIRO_STATUS_PATTERN_TYPE_MISMATCH</code></a>. If <em class="parameter"><code>pattern</code></em>
+ has no current
+patch or the current patch already has at least one side, <em class="parameter"><code>pattern</code></em>
+
+will be put into an error status with a status of
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-INVALID-MESH-CONSTRUCTION:CAPS"><code class="literal">CAIRO_STATUS_INVALID_MESH_CONSTRUCTION</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-mesh-pattern-move-to.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>the X coordinate of the new position</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>the Y coordinate of the new position</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-mesh-pattern-line-to"></a><h3>cairo_mesh_pattern_line_to ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_mesh_pattern_line_to (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>,
+ <em class="parameter"><code><span class="type">double</span> x</code></em>,
+ <em class="parameter"><code><span class="type">double</span> y</code></em>);</pre>
+<p>Adds a line to the current patch from the current point to position
+(<em class="parameter"><code>x</code></em>
+, <em class="parameter"><code>y</code></em>
+) in pattern-space coordinates.</p>
+<p>If there is no current point before the call to
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-line-to" title="cairo_mesh_pattern_line_to ()"><code class="function">cairo_mesh_pattern_line_to()</code></a> this function will behave as
+cairo_mesh_pattern_move_to(<em class="parameter"><code>pattern</code></em>
+, <em class="parameter"><code>x</code></em>
+, <em class="parameter"><code>y</code></em>
+).</p>
+<p>After this call the current point will be (<em class="parameter"><code>x</code></em>
+, <em class="parameter"><code>y</code></em>
+).</p>
+<p>Note: If <em class="parameter"><code>pattern</code></em>
+ is not a mesh pattern then <em class="parameter"><code>pattern</code></em>
+ will be put
+into an error status with a status of
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS"><code class="literal">CAIRO_STATUS_PATTERN_TYPE_MISMATCH</code></a>. If <em class="parameter"><code>pattern</code></em>
+ has no current
+patch or the current patch already has 4 sides, <em class="parameter"><code>pattern</code></em>
+ will be
+put into an error status with a status of
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-INVALID-MESH-CONSTRUCTION:CAPS"><code class="literal">CAIRO_STATUS_INVALID_MESH_CONSTRUCTION</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-mesh-pattern-line-to.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>the X coordinate of the end of the new line</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>the Y coordinate of the end of the new line</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-mesh-pattern-curve-to"></a><h3>cairo_mesh_pattern_curve_to ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_mesh_pattern_curve_to (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>,
+ <em class="parameter"><code><span class="type">double</span> x1</code></em>,
+ <em class="parameter"><code><span class="type">double</span> y1</code></em>,
+ <em class="parameter"><code><span class="type">double</span> x2</code></em>,
+ <em class="parameter"><code><span class="type">double</span> y2</code></em>,
+ <em class="parameter"><code><span class="type">double</span> x3</code></em>,
+ <em class="parameter"><code><span class="type">double</span> y3</code></em>);</pre>
+<p>Adds a cubic Bézier spline to the current patch from the current
+point to position (<em class="parameter"><code>x3</code></em>
+, <em class="parameter"><code>y3</code></em>
+) in pattern-space coordinates, using
+(<em class="parameter"><code>x1</code></em>
+, <em class="parameter"><code>y1</code></em>
+) and (<em class="parameter"><code>x2</code></em>
+, <em class="parameter"><code>y2</code></em>
+) as the control points.</p>
+<p>If the current patch has no current point before the call to
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-curve-to" title="cairo_mesh_pattern_curve_to ()"><code class="function">cairo_mesh_pattern_curve_to()</code></a>, this function will behave as if
+preceded by a call to cairo_mesh_pattern_move_to(<em class="parameter"><code>pattern</code></em>
+, <em class="parameter"><code>x1</code></em>
+,
+<em class="parameter"><code>y1</code></em>
+).</p>
+<p>After this call the current point will be (<em class="parameter"><code>x3</code></em>
+, <em class="parameter"><code>y3</code></em>
+).</p>
+<p>Note: If <em class="parameter"><code>pattern</code></em>
+ is not a mesh pattern then <em class="parameter"><code>pattern</code></em>
+ will be put
+into an error status with a status of
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS"><code class="literal">CAIRO_STATUS_PATTERN_TYPE_MISMATCH</code></a>. If <em class="parameter"><code>pattern</code></em>
+ has no current
+patch or the current patch already has 4 sides, <em class="parameter"><code>pattern</code></em>
+ will be
+put into an error status with a status of
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-INVALID-MESH-CONSTRUCTION:CAPS"><code class="literal">CAIRO_STATUS_INVALID_MESH_CONSTRUCTION</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-mesh-pattern-curve-to.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x1</p></td>
+<td class="parameter_description"><p>the X coordinate of the first control point</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y1</p></td>
+<td class="parameter_description"><p>the Y coordinate of the first control point</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x2</p></td>
+<td class="parameter_description"><p>the X coordinate of the second control point</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y2</p></td>
+<td class="parameter_description"><p>the Y coordinate of the second control point</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x3</p></td>
+<td class="parameter_description"><p>the X coordinate of the end of the curve</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y3</p></td>
+<td class="parameter_description"><p>the Y coordinate of the end of the curve</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-mesh-pattern-set-control-point"></a><h3>cairo_mesh_pattern_set_control_point ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_mesh_pattern_set_control_point (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> point_num</code></em>,
+ <em class="parameter"><code><span class="type">double</span> x</code></em>,
+ <em class="parameter"><code><span class="type">double</span> y</code></em>);</pre>
+<p>Set an internal control point of the current patch.</p>
+<p>Valid values for <em class="parameter"><code>point_num</code></em>
+ are from 0 to 3 and identify the
+control points as explained in <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-create-mesh" title="cairo_pattern_create_mesh ()"><code class="function">cairo_pattern_create_mesh()</code></a>.</p>
+<p>Note: If <em class="parameter"><code>pattern</code></em>
+ is not a mesh pattern then <em class="parameter"><code>pattern</code></em>
+ will be put
+into an error status with a status of
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS"><code class="literal">CAIRO_STATUS_PATTERN_TYPE_MISMATCH</code></a>. If <em class="parameter"><code>point_num</code></em>
+ is not valid,
+<em class="parameter"><code>pattern</code></em>
+ will be put into an error status with a status of
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-INVALID-INDEX:CAPS"><code class="literal">CAIRO_STATUS_INVALID_INDEX</code></a>. If <em class="parameter"><code>pattern</code></em>
+ has no current patch,
+<em class="parameter"><code>pattern</code></em>
+ will be put into an error status with a status of
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-INVALID-MESH-CONSTRUCTION:CAPS"><code class="literal">CAIRO_STATUS_INVALID_MESH_CONSTRUCTION</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-mesh-pattern-set-control-point.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>point_num</p></td>
+<td class="parameter_description"><p>the control point to set the position for</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>the X coordinate of the control point</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>the Y coordinate of the control point</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-mesh-pattern-set-corner-color-rgb"></a><h3>cairo_mesh_pattern_set_corner_color_rgb ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_mesh_pattern_set_corner_color_rgb
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> corner_num</code></em>,
+ <em class="parameter"><code><span class="type">double</span> red</code></em>,
+ <em class="parameter"><code><span class="type">double</span> green</code></em>,
+ <em class="parameter"><code><span class="type">double</span> blue</code></em>);</pre>
+<p>Sets the color of a corner of the current patch in a mesh pattern.</p>
+<p>The color is specified in the same way as in <a class="link" href="cairo-cairo-t.html#cairo-set-source-rgb" title="cairo_set_source_rgb ()"><code class="function">cairo_set_source_rgb()</code></a>.</p>
+<p>Valid values for <em class="parameter"><code>corner_num</code></em>
+ are from 0 to 3 and identify the
+corners as explained in <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-create-mesh" title="cairo_pattern_create_mesh ()"><code class="function">cairo_pattern_create_mesh()</code></a>.</p>
+<p>Note: If <em class="parameter"><code>pattern</code></em>
+ is not a mesh pattern then <em class="parameter"><code>pattern</code></em>
+ will be put
+into an error status with a status of
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS"><code class="literal">CAIRO_STATUS_PATTERN_TYPE_MISMATCH</code></a>. If <em class="parameter"><code>corner_num</code></em>
+ is not valid,
+<em class="parameter"><code>pattern</code></em>
+ will be put into an error status with a status of
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-INVALID-INDEX:CAPS"><code class="literal">CAIRO_STATUS_INVALID_INDEX</code></a>. If <em class="parameter"><code>pattern</code></em>
+ has no current patch,
+<em class="parameter"><code>pattern</code></em>
+ will be put into an error status with a status of
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-INVALID-MESH-CONSTRUCTION:CAPS"><code class="literal">CAIRO_STATUS_INVALID_MESH_CONSTRUCTION</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-mesh-pattern-set-corner-color-rgb.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>corner_num</p></td>
+<td class="parameter_description"><p>the corner to set the color for</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>red</p></td>
+<td class="parameter_description"><p>red component of color</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>green</p></td>
+<td class="parameter_description"><p>green component of color</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>blue</p></td>
+<td class="parameter_description"><p>blue component of color</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-mesh-pattern-set-corner-color-rgba"></a><h3>cairo_mesh_pattern_set_corner_color_rgba ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_mesh_pattern_set_corner_color_rgba
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> corner_num</code></em>,
+ <em class="parameter"><code><span class="type">double</span> red</code></em>,
+ <em class="parameter"><code><span class="type">double</span> green</code></em>,
+ <em class="parameter"><code><span class="type">double</span> blue</code></em>,
+ <em class="parameter"><code><span class="type">double</span> alpha</code></em>);</pre>
+<p>Sets the color of a corner of the current patch in a mesh pattern.</p>
+<p>The color is specified in the same way as in <a class="link" href="cairo-cairo-t.html#cairo-set-source-rgba" title="cairo_set_source_rgba ()"><code class="function">cairo_set_source_rgba()</code></a>.</p>
+<p>Valid values for <em class="parameter"><code>corner_num</code></em>
+ are from 0 to 3 and identify the
+corners as explained in <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-create-mesh" title="cairo_pattern_create_mesh ()"><code class="function">cairo_pattern_create_mesh()</code></a>.</p>
+<p>Note: If <em class="parameter"><code>pattern</code></em>
+ is not a mesh pattern then <em class="parameter"><code>pattern</code></em>
+ will be put
+into an error status with a status of
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS"><code class="literal">CAIRO_STATUS_PATTERN_TYPE_MISMATCH</code></a>. If <em class="parameter"><code>corner_num</code></em>
+ is not valid,
+<em class="parameter"><code>pattern</code></em>
+ will be put into an error status with a status of
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-INVALID-INDEX:CAPS"><code class="literal">CAIRO_STATUS_INVALID_INDEX</code></a>. If <em class="parameter"><code>pattern</code></em>
+ has no current patch,
+<em class="parameter"><code>pattern</code></em>
+ will be put into an error status with a status of
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-INVALID-MESH-CONSTRUCTION:CAPS"><code class="literal">CAIRO_STATUS_INVALID_MESH_CONSTRUCTION</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-mesh-pattern-set-corner-color-rgba.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>corner_num</p></td>
+<td class="parameter_description"><p>the corner to set the color for</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>red</p></td>
+<td class="parameter_description"><p>red component of color</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>green</p></td>
+<td class="parameter_description"><p>green component of color</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>blue</p></td>
+<td class="parameter_description"><p>blue component of color</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>alpha</p></td>
+<td class="parameter_description"><p>alpha component of color</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-mesh-pattern-get-patch-count"></a><h3>cairo_mesh_pattern_get_patch_count ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+cairo_mesh_pattern_get_patch_count (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *count</code></em>);</pre>
+<p>Gets the number of patches specified in the given mesh pattern.</p>
+<p>The number only includes patches which have been finished by
+calling <a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-end-patch" title="cairo_mesh_pattern_end_patch ()"><code class="function">cairo_mesh_pattern_end_patch()</code></a>. For example it will be 0
+during the definition of the first patch.</p>
+<div class="refsect3">
+<a name="cairo-mesh-pattern-get-patch-count.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>count</p></td>
+<td class="parameter_description"><p>return value for the number patches, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-mesh-pattern-get-patch-count.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a>, or
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS"><code class="literal">CAIRO_STATUS_PATTERN_TYPE_MISMATCH</code></a> if <em class="parameter"><code>pattern</code></em>
+is not a mesh
+pattern.</p>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-mesh-pattern-get-path"></a><h3>cairo_mesh_pattern_get_path ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Paths.html#cairo-path-t" title="cairo_path_t"><span class="returnvalue">cairo_path_t</span></a> *
+cairo_mesh_pattern_get_path (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> patch_num</code></em>);</pre>
+<p>Gets path defining the patch <em class="parameter"><code>patch_num</code></em>
+ for a mesh
+pattern.</p>
+<p><em class="parameter"><code>patch_num</code></em>
+ can range from 0 to n-1 where n is the number returned by
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-get-patch-count" title="cairo_mesh_pattern_get_patch_count ()"><code class="function">cairo_mesh_pattern_get_patch_count()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-mesh-pattern-get-path.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>patch_num</p></td>
+<td class="parameter_description"><p>the patch number to return data for</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-mesh-pattern-get-path.returns"></a><h4>Returns</h4>
+<p> the path defining the patch, or a path with status
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-INVALID-INDEX:CAPS"><code class="literal">CAIRO_STATUS_INVALID_INDEX</code></a> if <em class="parameter"><code>patch_num</code></em>
+or <em class="parameter"><code>point_num</code></em>
+is not
+valid for <em class="parameter"><code>pattern</code></em>
+. If <em class="parameter"><code>pattern</code></em>
+is not a mesh pattern, a path with
+status <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS"><code class="literal">CAIRO_STATUS_PATTERN_TYPE_MISMATCH</code></a> is returned.</p>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-mesh-pattern-get-control-point"></a><h3>cairo_mesh_pattern_get_control_point ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+cairo_mesh_pattern_get_control_point (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> patch_num</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> point_num</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *x</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *y</code></em>);</pre>
+<p>Gets the control point <em class="parameter"><code>point_num</code></em>
+ of patch <em class="parameter"><code>patch_num</code></em>
+ for a mesh
+pattern.</p>
+<p><em class="parameter"><code>patch_num</code></em>
+ can range from 0 to n-1 where n is the number returned by
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-get-patch-count" title="cairo_mesh_pattern_get_patch_count ()"><code class="function">cairo_mesh_pattern_get_patch_count()</code></a>.</p>
+<p>Valid values for <em class="parameter"><code>point_num</code></em>
+ are from 0 to 3 and identify the
+control points as explained in <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-create-mesh" title="cairo_pattern_create_mesh ()"><code class="function">cairo_pattern_create_mesh()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-mesh-pattern-get-control-point.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>patch_num</p></td>
+<td class="parameter_description"><p>the patch number to return data for</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>point_num</p></td>
+<td class="parameter_description"><p>the control point number to return data for</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>return value for the x coordinate of the control point, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>return value for the y coordinate of the control point, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-mesh-pattern-get-control-point.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a>, or <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-INVALID-INDEX:CAPS"><code class="literal">CAIRO_STATUS_INVALID_INDEX</code></a>
+if <em class="parameter"><code>patch_num</code></em>
+or <em class="parameter"><code>point_num</code></em>
+is not valid for <em class="parameter"><code>pattern</code></em>
+. If <em class="parameter"><code>pattern</code></em>
+is not a mesh pattern, <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS"><code class="literal">CAIRO_STATUS_PATTERN_TYPE_MISMATCH</code></a> is
+returned.</p>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-mesh-pattern-get-corner-color-rgba"></a><h3>cairo_mesh_pattern_get_corner_color_rgba ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+cairo_mesh_pattern_get_corner_color_rgba
+ (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> patch_num</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> corner_num</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *red</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *green</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *blue</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *alpha</code></em>);</pre>
+<p>Gets the color information in corner <em class="parameter"><code>corner_num</code></em>
+ of patch
+<em class="parameter"><code>patch_num</code></em>
+ for a mesh pattern.</p>
+<p><em class="parameter"><code>patch_num</code></em>
+ can range from 0 to n-1 where n is the number returned by
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-get-patch-count" title="cairo_mesh_pattern_get_patch_count ()"><code class="function">cairo_mesh_pattern_get_patch_count()</code></a>.</p>
+<p>Valid values for <em class="parameter"><code>corner_num</code></em>
+ are from 0 to 3 and identify the
+corners as explained in <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-create-mesh" title="cairo_pattern_create_mesh ()"><code class="function">cairo_pattern_create_mesh()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-mesh-pattern-get-corner-color-rgba.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>patch_num</p></td>
+<td class="parameter_description"><p>the patch number to return data for</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>corner_num</p></td>
+<td class="parameter_description"><p>the corner number to return data for</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>red</p></td>
+<td class="parameter_description"><p>return value for red component of color, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>green</p></td>
+<td class="parameter_description"><p>return value for green component of color, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>blue</p></td>
+<td class="parameter_description"><p>return value for blue component of color, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>alpha</p></td>
+<td class="parameter_description"><p>return value for alpha component of color, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-mesh-pattern-get-corner-color-rgba.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a>, or <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-INVALID-INDEX:CAPS"><code class="literal">CAIRO_STATUS_INVALID_INDEX</code></a>
+if <em class="parameter"><code>patch_num</code></em>
+or <em class="parameter"><code>corner_num</code></em>
+is not valid for <em class="parameter"><code>pattern</code></em>
+. If
+<em class="parameter"><code>pattern</code></em>
+is not a mesh pattern, <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS"><code class="literal">CAIRO_STATUS_PATTERN_TYPE_MISMATCH</code></a>
+is returned.</p>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-pattern-reference"></a><h3>cairo_pattern_reference ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="returnvalue">cairo_pattern_t</span></a> *
+cairo_pattern_reference (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>);</pre>
+<p>Increases the reference count on <em class="parameter"><code>pattern</code></em>
+ by one. This prevents
+<em class="parameter"><code>pattern</code></em>
+ from being destroyed until a matching call to
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-destroy" title="cairo_pattern_destroy ()"><code class="function">cairo_pattern_destroy()</code></a> is made.</p>
+<p>Use <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-get-reference-count" title="cairo_pattern_get_reference_count ()"><code class="function">cairo_pattern_get_reference_count()</code></a> to get the number of
+references to a <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a>.</p>
+<div class="refsect3">
+<a name="cairo-pattern-reference.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-pattern-reference.returns"></a><h4>Returns</h4>
+<p> the referenced <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a>.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-pattern-destroy"></a><h3>cairo_pattern_destroy ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_pattern_destroy (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>);</pre>
+<p>Decreases the reference count on <em class="parameter"><code>pattern</code></em>
+ by one. If the result is
+zero, then <em class="parameter"><code>pattern</code></em>
+ and all associated resources are freed. See
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-reference" title="cairo_pattern_reference ()"><code class="function">cairo_pattern_reference()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-pattern-destroy.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-pattern-status"></a><h3>cairo_pattern_status ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+cairo_pattern_status (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>);</pre>
+<p>Checks whether an error has previously occurred for this
+pattern.</p>
+<div class="refsect3">
+<a name="cairo-pattern-status.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-pattern-status.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a>, <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a>,
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-INVALID-MATRIX:CAPS"><code class="literal">CAIRO_STATUS_INVALID_MATRIX</code></a>, <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS"><code class="literal">CAIRO_STATUS_PATTERN_TYPE_MISMATCH</code></a>,
+or <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-INVALID-MESH-CONSTRUCTION:CAPS"><code class="literal">CAIRO_STATUS_INVALID_MESH_CONSTRUCTION</code></a>.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-pattern-set-extend"></a><h3>cairo_pattern_set_extend ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_pattern_set_extend (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-extend-t" title="enum cairo_extend_t"><span class="type">cairo_extend_t</span></a> extend</code></em>);</pre>
+<p>Sets the mode to be used for drawing outside the area of a pattern.
+See <a class="link" href="cairo-cairo-pattern-t.html#cairo-extend-t" title="enum cairo_extend_t"><span class="type">cairo_extend_t</span></a> for details on the semantics of each extend
+strategy.</p>
+<p>The default extend mode is <a class="link" href="cairo-cairo-pattern-t.html#CAIRO-EXTEND-NONE:CAPS"><code class="literal">CAIRO_EXTEND_NONE</code></a> for surface patterns
+and <a class="link" href="cairo-cairo-pattern-t.html#CAIRO-EXTEND-PAD:CAPS"><code class="literal">CAIRO_EXTEND_PAD</code></a> for gradient patterns.</p>
+<div class="refsect3">
+<a name="cairo-pattern-set-extend.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>extend</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-pattern-t.html#cairo-extend-t" title="enum cairo_extend_t"><span class="type">cairo_extend_t</span></a> describing how the area outside of the
+pattern will be drawn</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-pattern-get-extend"></a><h3>cairo_pattern_get_extend ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-pattern-t.html#cairo-extend-t" title="enum cairo_extend_t"><span class="returnvalue">cairo_extend_t</span></a>
+cairo_pattern_get_extend (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>);</pre>
+<p>Gets the current extend mode for a pattern. See <a class="link" href="cairo-cairo-pattern-t.html#cairo-extend-t" title="enum cairo_extend_t"><span class="type">cairo_extend_t</span></a>
+for details on the semantics of each extend strategy.</p>
+<div class="refsect3">
+<a name="cairo-pattern-get-extend.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-pattern-get-extend.returns"></a><h4>Returns</h4>
+<p> the current extend strategy used for drawing the
+pattern.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-pattern-set-filter"></a><h3>cairo_pattern_set_filter ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_pattern_set_filter (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-filter-t" title="enum cairo_filter_t"><span class="type">cairo_filter_t</span></a> filter</code></em>);</pre>
+<p>Sets the filter to be used for resizing when using this pattern.
+See <a class="link" href="cairo-cairo-pattern-t.html#cairo-filter-t" title="enum cairo_filter_t"><span class="type">cairo_filter_t</span></a> for details on each filter.</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Note that you might want to control filtering even when you do not
+have an explicit <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> object, (for example when using
+<a class="link" href="cairo-cairo-t.html#cairo-set-source-surface" title="cairo_set_source_surface ()"><code class="function">cairo_set_source_surface()</code></a>). In these cases, it is convenient to
+use <a class="link" href="cairo-cairo-t.html#cairo-get-source" title="cairo_get_source ()"><code class="function">cairo_get_source()</code></a> to get access to the pattern that cairo
+creates implicitly. For example:</p></li></ul></div>
+<div class="informalexample">
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+ <tbody>
+ <tr>
+ <td class="listing_lines" align="right"><pre>1
+2</pre></td>
+ <td class="listing_code"><pre class="programlisting"><span class="function"><a href="cairo-cairo-t.html#cairo-set-source-surface">cairo_set_source_surface</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> image<span class="gtkdoc opt">,</span> x<span class="gtkdoc opt">,</span> y<span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-cairo-pattern-t.html#cairo-pattern-set-filter">cairo_pattern_set_filter</a></span> <span class="gtkdoc opt">(</span><span class="function"><a href="cairo-cairo-t.html#cairo-get-source">cairo_get_source</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">),</span> CAIRO_FILTER_NEAREST<span class="gtkdoc opt">);</span></pre></td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+
+<div class="refsect3">
+<a name="cairo-pattern-set-filter.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>filter</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-pattern-t.html#cairo-filter-t" title="enum cairo_filter_t"><span class="type">cairo_filter_t</span></a> describing the filter to use for resizing
+the pattern</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-pattern-get-filter"></a><h3>cairo_pattern_get_filter ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-pattern-t.html#cairo-filter-t" title="enum cairo_filter_t"><span class="returnvalue">cairo_filter_t</span></a>
+cairo_pattern_get_filter (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>);</pre>
+<p>Gets the current filter for a pattern. See <a class="link" href="cairo-cairo-pattern-t.html#cairo-filter-t" title="enum cairo_filter_t"><span class="type">cairo_filter_t</span></a>
+for details on each filter.</p>
+<div class="refsect3">
+<a name="cairo-pattern-get-filter.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-pattern-get-filter.returns"></a><h4>Returns</h4>
+<p> the current filter used for resizing the pattern.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-pattern-set-matrix"></a><h3>cairo_pattern_set_matrix ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_pattern_set_matrix (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a> *matrix</code></em>);</pre>
+<p>Sets the pattern's transformation matrix to <em class="parameter"><code>matrix</code></em>
+. This matrix is
+a transformation from user space to pattern space.</p>
+<p>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.</p>
+<p>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.</p>
+<p>For example, if you want to make a pattern appear twice as large as
+it does by default the correct code to use is:</p>
+<div class="informalexample">
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+ <tbody>
+ <tr>
+ <td class="listing_lines" align="right"><pre>1
+2</pre></td>
+ <td class="listing_code"><pre class="programlisting"><span class="function"><a href="cairo-cairo-matrix-t.html#cairo-matrix-init-scale">cairo_matrix_init_scale</a></span> <span class="gtkdoc opt">(&amp;</span>matrix<span class="gtkdoc opt">,</span> <span class="number">0.5</span><span class="gtkdoc opt">,</span> <span class="number">0.5</span><span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-cairo-pattern-t.html#cairo-pattern-set-matrix">cairo_pattern_set_matrix</a></span> <span class="gtkdoc opt">(</span>pattern<span class="gtkdoc opt">, &amp;</span>matrix<span class="gtkdoc opt">);</span></pre></td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+
+<p>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.</p>
+<p>Also, please note the discussion of the user-space locking
+semantics of <a class="link" href="cairo-cairo-t.html#cairo-set-source" title="cairo_set_source ()"><code class="function">cairo_set_source()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-pattern-set-matrix.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>matrix</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-pattern-get-matrix"></a><h3>cairo_pattern_get_matrix ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_pattern_get_matrix (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a> *matrix</code></em>);</pre>
+<p>Stores the pattern's transformation matrix into <em class="parameter"><code>matrix</code></em>
+.</p>
+<div class="refsect3">
+<a name="cairo-pattern-get-matrix.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>matrix</p></td>
+<td class="parameter_description"><p>return value for the matrix</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-pattern-get-type"></a><h3>cairo_pattern_get_type ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-type-t" title="enum cairo_pattern_type_t"><span class="returnvalue">cairo_pattern_type_t</span></a>
+cairo_pattern_get_type (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>);</pre>
+<p>Get the pattern's type. See <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-type-t" title="enum cairo_pattern_type_t"><span class="type">cairo_pattern_type_t</span></a> for available
+types.</p>
+<div class="refsect3">
+<a name="cairo-pattern-get-type.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-pattern-get-type.returns"></a><h4>Returns</h4>
+<p> The type of <em class="parameter"><code>pattern</code></em>
+.</p>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-pattern-get-reference-count"></a><h3>cairo_pattern_get_reference_count ()</h3>
+<pre class="programlisting">unsigned <span class="returnvalue">int</span>
+cairo_pattern_get_reference_count (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>);</pre>
+<p>Returns the current reference count of <em class="parameter"><code>pattern</code></em>
+.</p>
+<div class="refsect3">
+<a name="cairo-pattern-get-reference-count.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-pattern-get-reference-count.returns"></a><h4>Returns</h4>
+<p> the current reference count of <em class="parameter"><code>pattern</code></em>
+. If the
+object is a nil object, 0 will be returned.</p>
+</div>
+<p class="since">Since: 1.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-pattern-set-user-data"></a><h3>cairo_pattern_set_user_data ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+cairo_pattern_set_user_data (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-Types.html#cairo-user-data-key-t" title="cairo_user_data_key_t"><span class="type">cairo_user_data_key_t</span></a> *key</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-Types.html#cairo-destroy-func-t" title="cairo_destroy_func_t ()"><span class="type">cairo_destroy_func_t</span></a> destroy</code></em>);</pre>
+<p>Attach user data to <em class="parameter"><code>pattern</code></em>
+. To remove user data from a surface,
+call this function with the key that was used to set it and <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+for <em class="parameter"><code>data</code></em>
+.</p>
+<div class="refsect3">
+<a name="cairo-pattern-set-user-data.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>the address of a <a class="link" href="cairo-Types.html#cairo-user-data-key-t" title="cairo_user_data_key_t"><span class="type">cairo_user_data_key_t</span></a> to attach the user data to</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>the user data to attach to the <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>destroy</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-Types.html#cairo-destroy-func-t" title="cairo_destroy_func_t ()"><span class="type">cairo_destroy_func_t</span></a> which will be called when the
+<a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> is destroyed or when new user data is attached using the
+same key.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-pattern-set-user-data.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> or <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a> if a
+slot could not be allocated for the user data.</p>
+</div>
+<p class="since">Since: 1.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-pattern-get-user-data"></a><h3>cairo_pattern_get_user_data ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> *
+cairo_pattern_get_user_data (<em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-Types.html#cairo-user-data-key-t" title="cairo_user_data_key_t"><span class="type">cairo_user_data_key_t</span></a> *key</code></em>);</pre>
+<p>Return user data previously attached to <em class="parameter"><code>pattern</code></em>
+ using the
+specified key. If no user data has been attached with the given
+key this function returns <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-pattern-get-user-data.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>the address of the <a class="link" href="cairo-Types.html#cairo-user-data-key-t" title="cairo_user_data_key_t"><span class="type">cairo_user_data_key_t</span></a> the user data was
+attached to</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-pattern-get-user-data.returns"></a><h4>Returns</h4>
+<p> the user data previously attached or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
+</div>
+<p class="since">Since: 1.4</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-cairo-pattern-t.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="cairo-pattern-t"></a><h3>cairo_pattern_t</h3>
+<pre class="programlisting">typedef struct _cairo_pattern cairo_pattern_t;
+</pre>
+<p>A <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> represents a source when drawing onto a
+surface. There are different subtypes of <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a>,
+for different types of sources; for example,
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-create-rgb" title="cairo_pattern_create_rgb ()"><code class="function">cairo_pattern_create_rgb()</code></a> creates a pattern for a solid
+opaque color.</p>
+<p>Other than various
+<code class="function">cairo_pattern_create_<span class="emphasis"><em>type</em></span>()</code>
+functions, some of the pattern types can be implicitly created using various
+<code class="function">cairo_set_source_<span class="emphasis"><em>type</em></span>()</code> functions;
+for example <a class="link" href="cairo-cairo-t.html#cairo-set-source-rgb" title="cairo_set_source_rgb ()"><code class="function">cairo_set_source_rgb()</code></a>.</p>
+<p>The type of a pattern can be queried with <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-get-type" title="cairo_pattern_get_type ()"><code class="function">cairo_pattern_get_type()</code></a>.</p>
+<p>Memory management of <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> is done with
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-reference" title="cairo_pattern_reference ()"><code class="function">cairo_pattern_reference()</code></a> and <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-destroy" title="cairo_pattern_destroy ()"><code class="function">cairo_pattern_destroy()</code></a>.</p>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-extend-t"></a><h3>enum cairo_extend_t</h3>
+<p><a class="link" href="cairo-cairo-pattern-t.html#cairo-extend-t" title="enum cairo_extend_t"><span class="type">cairo_extend_t</span></a> 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).</p>
+<p>Mesh patterns are not affected by the extend mode.</p>
+<p>The default extend mode is <a class="link" href="cairo-cairo-pattern-t.html#CAIRO-EXTEND-NONE:CAPS"><code class="literal">CAIRO_EXTEND_NONE</code></a> for surface patterns
+and <a class="link" href="cairo-cairo-pattern-t.html#CAIRO-EXTEND-PAD:CAPS"><code class="literal">CAIRO_EXTEND_PAD</code></a> for gradient patterns.</p>
+<p>New entries may be added in future versions.</p>
+<div class="refsect3">
+<a name="cairo-extend-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-EXTEND-NONE:CAPS"></a>CAIRO_EXTEND_NONE</p></td>
+<td class="enum_member_description">
+<p>pixels outside of the source pattern
+ are fully transparent (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-EXTEND-REPEAT:CAPS"></a>CAIRO_EXTEND_REPEAT</p></td>
+<td class="enum_member_description">
+<p>the pattern is tiled by repeating (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-EXTEND-REFLECT:CAPS"></a>CAIRO_EXTEND_REFLECT</p></td>
+<td class="enum_member_description">
+<p>the pattern is tiled by reflecting
+ at the edges (Since 1.0; but only implemented for surface patterns since 1.6)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-EXTEND-PAD:CAPS"></a>CAIRO_EXTEND_PAD</p></td>
+<td class="enum_member_description">
+<p>pixels outside of the pattern copy
+ the closest pixel from the source (Since 1.2; but only
+ implemented for surface patterns since 1.6)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-filter-t"></a><h3>enum cairo_filter_t</h3>
+<p><a class="link" href="cairo-cairo-pattern-t.html#cairo-filter-t" title="enum cairo_filter_t"><span class="type">cairo_filter_t</span></a> is used to indicate what filtering should be
+applied when reading pixel values from patterns. See
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-set-filter" title="cairo_pattern_set_filter ()"><code class="function">cairo_pattern_set_filter()</code></a> for indicating the desired filter to be
+used with a particular pattern.</p>
+<div class="refsect3">
+<a name="cairo-filter-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-FILTER-FAST:CAPS"></a>CAIRO_FILTER_FAST</p></td>
+<td class="enum_member_description">
+<p>A high-performance filter, with quality similar
+ to <a class="link" href="cairo-cairo-pattern-t.html#CAIRO-FILTER-NEAREST:CAPS"><code class="literal">CAIRO_FILTER_NEAREST</code></a> (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-FILTER-GOOD:CAPS"></a>CAIRO_FILTER_GOOD</p></td>
+<td class="enum_member_description">
+<p>A reasonable-performance filter, with quality
+ similar to <a class="link" href="cairo-cairo-pattern-t.html#CAIRO-FILTER-BILINEAR:CAPS"><code class="literal">CAIRO_FILTER_BILINEAR</code></a> (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-FILTER-BEST:CAPS"></a>CAIRO_FILTER_BEST</p></td>
+<td class="enum_member_description">
+<p>The highest-quality available, performance may
+ not be suitable for interactive use. (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-FILTER-NEAREST:CAPS"></a>CAIRO_FILTER_NEAREST</p></td>
+<td class="enum_member_description">
+<p>Nearest-neighbor filtering (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-FILTER-BILINEAR:CAPS"></a>CAIRO_FILTER_BILINEAR</p></td>
+<td class="enum_member_description">
+<p>Linear interpolation in two dimensions (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-FILTER-GAUSSIAN:CAPS"></a>CAIRO_FILTER_GAUSSIAN</p></td>
+<td class="enum_member_description">
+<p>This filter value is currently
+ unimplemented, and should not be used in current code. (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-pattern-type-t"></a><h3>enum cairo_pattern_type_t</h3>
+<p><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-type-t" title="enum cairo_pattern_type_t"><span class="type">cairo_pattern_type_t</span></a> is used to describe the type of a given pattern.</p>
+<p>The type of a pattern is determined by the function used to create
+it. The <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-create-rgb" title="cairo_pattern_create_rgb ()"><code class="function">cairo_pattern_create_rgb()</code></a> and <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-create-rgba" title="cairo_pattern_create_rgba ()"><code class="function">cairo_pattern_create_rgba()</code></a>
+functions create SOLID patterns. The remaining
+cairo_pattern_create functions map to pattern types in obvious
+ways.</p>
+<p>The pattern type can be queried with <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-get-type" title="cairo_pattern_get_type ()"><code class="function">cairo_pattern_get_type()</code></a></p>
+<p>Most <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> functions can be called with a pattern of any
+type, (though trying to change the extend or filter for a solid
+pattern will have no effect). A notable exception is
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-add-color-stop-rgb" title="cairo_pattern_add_color_stop_rgb ()"><code class="function">cairo_pattern_add_color_stop_rgb()</code></a> and
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-add-color-stop-rgba" title="cairo_pattern_add_color_stop_rgba ()"><code class="function">cairo_pattern_add_color_stop_rgba()</code></a> which must only be called with
+gradient patterns (either LINEAR or RADIAL). Otherwise the pattern
+will be shutdown and put into an error state.</p>
+<p>New entries may be added in future versions.</p>
+<div class="refsect3">
+<a name="cairo-pattern-type-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-PATTERN-TYPE-SOLID:CAPS"></a>CAIRO_PATTERN_TYPE_SOLID</p></td>
+<td class="enum_member_description">
+<p>The pattern is a solid (uniform)
+color. It may be opaque or translucent, since 1.2.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-PATTERN-TYPE-SURFACE:CAPS"></a>CAIRO_PATTERN_TYPE_SURFACE</p></td>
+<td class="enum_member_description">
+<p>The pattern is a based on a surface (an image), since 1.2.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-PATTERN-TYPE-LINEAR:CAPS"></a>CAIRO_PATTERN_TYPE_LINEAR</p></td>
+<td class="enum_member_description">
+<p>The pattern is a linear gradient, since 1.2.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-PATTERN-TYPE-RADIAL:CAPS"></a>CAIRO_PATTERN_TYPE_RADIAL</p></td>
+<td class="enum_member_description">
+<p>The pattern is a radial gradient, since 1.2.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-PATTERN-TYPE-MESH:CAPS"></a>CAIRO_PATTERN_TYPE_MESH</p></td>
+<td class="enum_member_description">
+<p>The pattern is a mesh, since 1.12.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-PATTERN-TYPE-RASTER-SOURCE:CAPS"></a>CAIRO_PATTERN_TYPE_RASTER_SOURCE</p></td>
+<td class="enum_member_description">
+<p>The pattern is a user pattern providing raster data, since 1.12.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-cairo-pattern-t.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a>, <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>cairo_scaled_font_t: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="cairo-fonts.html" title="Fonts">
+<link rel="prev" href="cairo-cairo-font-face-t.html" title="cairo_font_face_t">
+<link rel="next" href="cairo-cairo-font-options-t.html" title="cairo_font_options_t">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+ <a href="#cairo-cairo-scaled-font-t.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="cairo-fonts.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="cairo-cairo-font-face-t.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="cairo-cairo-font-options-t.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="cairo-cairo-scaled-font-t"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="cairo-cairo-scaled-font-t.top_of_page"></a>cairo_scaled_font_t</span></h2>
+<p>cairo_scaled_font_t — Font face at particular size and options</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="cairo-cairo-scaled-font-t.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="returnvalue">cairo_scaled_font_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-create" title="cairo_scaled_font_create ()">cairo_scaled_font_create</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="returnvalue">cairo_scaled_font_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-reference" title="cairo_scaled_font_reference ()">cairo_scaled_font_reference</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-destroy" title="cairo_scaled_font_destroy ()">cairo_scaled_font_destroy</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-status" title="cairo_scaled_font_status ()">cairo_scaled_font_status</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-extents" title="cairo_scaled_font_extents ()">cairo_scaled_font_extents</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-text-extents" title="cairo_scaled_font_text_extents ()">cairo_scaled_font_text_extents</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-glyph-extents" title="cairo_scaled_font_glyph_extents ()">cairo_scaled_font_glyph_extents</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-text-to-glyphs" title="cairo_scaled_font_text_to_glyphs ()">cairo_scaled_font_text_to_glyphs</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="returnvalue">cairo_font_face_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-font-face" title="cairo_scaled_font_get_font_face ()">cairo_scaled_font_get_font_face</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-font-options" title="cairo_scaled_font_get_font_options ()">cairo_scaled_font_get_font_options</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-font-matrix" title="cairo_scaled_font_get_font_matrix ()">cairo_scaled_font_get_font_matrix</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-ctm" title="cairo_scaled_font_get_ctm ()">cairo_scaled_font_get_ctm</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-scale-matrix" title="cairo_scaled_font_get_scale_matrix ()">cairo_scaled_font_get_scale_matrix</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-type-t" title="enum cairo_font_type_t"><span class="returnvalue">cairo_font_type_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-type" title="cairo_scaled_font_get_type ()">cairo_scaled_font_get_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">unsigned <span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-reference-count" title="cairo_scaled_font_get_reference_count ()">cairo_scaled_font_get_reference_count</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-set-user-data" title="cairo_scaled_font_set_user_data ()">cairo_scaled_font_set_user_data</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-user-data" title="cairo_scaled_font_get_user_data ()">cairo_scaled_font_get_user_data</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-cairo-scaled-font-t.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t">cairo_scaled_font_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-font-extents-t" title="cairo_font_extents_t">cairo_font_extents_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-text-extents-t" title="cairo_text_extents_t">cairo_text_extents_t</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-cairo-scaled-font-t.description"></a><h2>Description</h2>
+<p><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> represents a realization of a font face at a particular
+size and transformation and a certain set of font options.</p>
+</div>
+<div class="refsect1">
+<a name="cairo-cairo-scaled-font-t.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="cairo-scaled-font-create"></a><h3>cairo_scaled_font_create ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="returnvalue">cairo_scaled_font_t</span></a> *
+cairo_scaled_font_create (<em class="parameter"><code><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> *font_face</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a> *font_matrix</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a> *ctm</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a> *options</code></em>);</pre>
+<p>Creates a <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> object from a font face and matrices that
+describe the size of the font and the environment in which it will
+be used.</p>
+<div class="refsect3">
+<a name="cairo-scaled-font-create.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>font_face</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>font_matrix</p></td>
+<td class="parameter_description"><p>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
+<a class="link" href="cairo-text.html#cairo-set-font-matrix" title="cairo_set_font_matrix ()"><code class="function">cairo_set_font_matrix()</code></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ctm</p></td>
+<td class="parameter_description"><p>user to device transformation matrix with which the font will
+be used.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>options</p></td>
+<td class="parameter_description"><p>options to use when getting metrics for the font and
+rendering with it.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-scaled-font-create.returns"></a><h4>Returns</h4>
+<p> a newly created <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a>. Destroy with
+<a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-destroy" title="cairo_scaled_font_destroy ()"><code class="function">cairo_scaled_font_destroy()</code></a></p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-scaled-font-reference"></a><h3>cairo_scaled_font_reference ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="returnvalue">cairo_scaled_font_t</span></a> *
+cairo_scaled_font_reference (<em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> *scaled_font</code></em>);</pre>
+<p>Increases the reference count on <em class="parameter"><code>scaled_font</code></em>
+ by one. This prevents
+<em class="parameter"><code>scaled_font</code></em>
+ from being destroyed until a matching call to
+<a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-destroy" title="cairo_scaled_font_destroy ()"><code class="function">cairo_scaled_font_destroy()</code></a> is made.</p>
+<p>Use <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-reference-count" title="cairo_scaled_font_get_reference_count ()"><code class="function">cairo_scaled_font_get_reference_count()</code></a> to get the number of
+references to a <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a>.</p>
+<div class="refsect3">
+<a name="cairo-scaled-font-reference.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>scaled_font</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a>, (may be <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> in which case
+this function does nothing)</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-scaled-font-reference.returns"></a><h4>Returns</h4>
+<p> the referenced <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a></p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-scaled-font-destroy"></a><h3>cairo_scaled_font_destroy ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_scaled_font_destroy (<em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> *scaled_font</code></em>);</pre>
+<p>Decreases the reference count on <em class="parameter"><code>font</code></em>
+ by one. If the result
+is zero, then <em class="parameter"><code>font</code></em>
+ and all associated resources are freed.
+See <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-reference" title="cairo_scaled_font_reference ()"><code class="function">cairo_scaled_font_reference()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-scaled-font-destroy.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>scaled_font</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-scaled-font-status"></a><h3>cairo_scaled_font_status ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+cairo_scaled_font_status (<em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> *scaled_font</code></em>);</pre>
+<p>Checks whether an error has previously occurred for this
+scaled_font.</p>
+<div class="refsect3">
+<a name="cairo-scaled-font-status.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>scaled_font</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-scaled-font-status.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> or another error such as
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a>.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-scaled-font-extents"></a><h3>cairo_scaled_font_extents ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_scaled_font_extents (<em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> *scaled_font</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-font-extents-t" title="cairo_font_extents_t"><span class="type">cairo_font_extents_t</span></a> *extents</code></em>);</pre>
+<p>Gets the metrics for a <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a>.</p>
+<div class="refsect3">
+<a name="cairo-scaled-font-extents.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>scaled_font</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>extents</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-font-extents-t" title="cairo_font_extents_t"><span class="type">cairo_font_extents_t</span></a> which to store the retrieved extents.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-scaled-font-text-extents"></a><h3>cairo_scaled_font_text_extents ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_scaled_font_text_extents (<em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> *scaled_font</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *utf8</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-text-extents-t" title="cairo_text_extents_t"><span class="type">cairo_text_extents_t</span></a> *extents</code></em>);</pre>
+<p>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 <a class="link" href="cairo-text.html#cairo-show-text" title="cairo_show_text ()"><code class="function">cairo_show_text()</code></a>
+if the cairo graphics state were set to the same font_face,
+font_matrix, ctm, and font_options as <em class="parameter"><code>scaled_font</code></em>
+). Additionally,
+the x_advance and y_advance values indicate the amount by which the
+current point would be advanced by <a class="link" href="cairo-text.html#cairo-show-text" title="cairo_show_text ()"><code class="function">cairo_show_text()</code></a>.</p>
+<p>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.</p>
+<div class="refsect3">
+<a name="cairo-scaled-font-text-extents.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>scaled_font</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>utf8</p></td>
+<td class="parameter_description"><p>a NUL-terminated string of text, encoded in UTF-8</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>extents</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-text-extents-t" title="cairo_text_extents_t"><span class="type">cairo_text_extents_t</span></a> which to store the retrieved extents.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-scaled-font-glyph-extents"></a><h3>cairo_scaled_font_glyph_extents ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_scaled_font_glyph_extents (<em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> *scaled_font</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-text.html#cairo-glyph-t" title="cairo_glyph_t"><span class="type">cairo_glyph_t</span></a> *glyphs</code></em>,
+ <em class="parameter"><code><span class="type">int</span> num_glyphs</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-text-extents-t" title="cairo_text_extents_t"><span class="type">cairo_text_extents_t</span></a> *extents</code></em>);</pre>
+<p>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 <a class="link" href="cairo-text.html#cairo-show-glyphs" title="cairo_show_glyphs ()"><code class="function">cairo_show_glyphs()</code></a> if the cairo
+graphics state were set to the same font_face, font_matrix, ctm,
+and font_options as <em class="parameter"><code>scaled_font</code></em>
+). Additionally, the x_advance and
+y_advance values indicate the amount by which the current point
+would be advanced by <a class="link" href="cairo-text.html#cairo-show-glyphs" title="cairo_show_glyphs ()"><code class="function">cairo_show_glyphs()</code></a>.</p>
+<p>Note that whitespace glyphs do not contribute to the size of the
+rectangle (extents.width and extents.height).</p>
+<div class="refsect3">
+<a name="cairo-scaled-font-glyph-extents.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>scaled_font</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>glyphs</p></td>
+<td class="parameter_description"><p>an array of glyph IDs with X and Y offsets.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>num_glyphs</p></td>
+<td class="parameter_description"><p>the number of glyphs in the <em class="parameter"><code>glyphs</code></em>
+array</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>extents</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-text-extents-t" title="cairo_text_extents_t"><span class="type">cairo_text_extents_t</span></a> which to store the retrieved extents.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-scaled-font-text-to-glyphs"></a><h3>cairo_scaled_font_text_to_glyphs ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+cairo_scaled_font_text_to_glyphs (<em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> *scaled_font</code></em>,
+ <em class="parameter"><code><span class="type">double</span> x</code></em>,
+ <em class="parameter"><code><span class="type">double</span> y</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *utf8</code></em>,
+ <em class="parameter"><code><span class="type">int</span> utf8_len</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-text.html#cairo-glyph-t" title="cairo_glyph_t"><span class="type">cairo_glyph_t</span></a> **glyphs</code></em>,
+ <em class="parameter"><code><span class="type">int</span> *num_glyphs</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-text.html#cairo-text-cluster-t" title="cairo_text_cluster_t"><span class="type">cairo_text_cluster_t</span></a> **clusters</code></em>,
+ <em class="parameter"><code><span class="type">int</span> *num_clusters</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-text.html#cairo-text-cluster-flags-t" title="enum cairo_text_cluster_flags_t"><span class="type">cairo_text_cluster_flags_t</span></a> *cluster_flags</code></em>);</pre>
+<p>Converts UTF-8 text to an array of glyphs, optionally with cluster
+mapping, that can be used to render later using <em class="parameter"><code>scaled_font</code></em>
+.</p>
+<p>If <em class="parameter"><code>glyphs</code></em>
+ initially points to a non-<a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> value, that array is used
+as a glyph buffer, and <em class="parameter"><code>num_glyphs</code></em>
+ 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 <a class="link" href="cairo-text.html#cairo-glyph-allocate" title="cairo_glyph_allocate ()"><code class="function">cairo_glyph_allocate()</code></a>
+and placed in <em class="parameter"><code>glyphs</code></em>
+. Upon return, <em class="parameter"><code>num_glyphs</code></em>
+ always contains the
+number of generated glyphs. If the value <em class="parameter"><code>glyphs</code></em>
+ points to has changed
+after the call, the user is responsible for freeing the allocated glyph
+array using <a class="link" href="cairo-text.html#cairo-glyph-free" title="cairo_glyph_free ()"><code class="function">cairo_glyph_free()</code></a>. This may happen even if the provided
+array was large enough.</p>
+<p>If <em class="parameter"><code>clusters</code></em>
+ is not <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, <em class="parameter"><code>num_clusters</code></em>
+ and <em class="parameter"><code>cluster_flags</code></em>
+ should not be <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>,
+and cluster mapping will be computed.
+The semantics of how cluster array allocation works is similar to the glyph
+array. That is,
+if <em class="parameter"><code>clusters</code></em>
+ initially points to a non-<a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> value, that array is used
+as a cluster buffer, and <em class="parameter"><code>num_clusters</code></em>
+ 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 <a class="link" href="cairo-text.html#cairo-text-cluster-allocate" title="cairo_text_cluster_allocate ()"><code class="function">cairo_text_cluster_allocate()</code></a>
+and placed in <em class="parameter"><code>clusters</code></em>
+. Upon return, <em class="parameter"><code>num_clusters</code></em>
+ always contains the
+number of generated clusters. If the value <em class="parameter"><code>clusters</code></em>
+ points at has changed
+after the call, the user is responsible for freeing the allocated cluster
+array using <a class="link" href="cairo-text.html#cairo-text-cluster-free" title="cairo_text_cluster_free ()"><code class="function">cairo_text_cluster_free()</code></a>. This may happen even if the provided
+array was large enough.</p>
+<p>In the simplest case, <em class="parameter"><code>glyphs</code></em>
+ and <em class="parameter"><code>clusters</code></em>
+ can point to <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> initially
+and a suitable array will be allocated. In code:</p>
+<div class="informalexample">
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+ <tbody>
+ <tr>
+ <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23</pre></td>
+ <td class="listing_code"><pre class="programlisting">cairo_status_t status<span class="gtkdoc opt">;</span>
+
+cairo_glyph_t <span class="gtkdoc opt">*</span>glyphs <span class="gtkdoc opt">=</span> NULL<span class="gtkdoc opt">;</span>
+<span class="gtkdoc kwb">int</span> num_glyphs<span class="gtkdoc opt">;</span>
+cairo_text_cluster_t <span class="gtkdoc opt">*</span>clusters <span class="gtkdoc opt">=</span> NULL<span class="gtkdoc opt">;</span>
+<span class="gtkdoc kwb">int</span> num_clusters<span class="gtkdoc opt">;</span>
+cairo_text_cluster_flags_t cluster_flags<span class="gtkdoc opt">;</span>
+
+status <span class="gtkdoc opt">=</span> <span class="function"><a href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-text-to-glyphs">cairo_scaled_font_text_to_glyphs</a></span> <span class="gtkdoc opt">(</span>scaled_font<span class="gtkdoc opt">,</span>
+ x<span class="gtkdoc opt">,</span> y<span class="gtkdoc opt">,</span>
+ utf8<span class="gtkdoc opt">,</span> utf8_len<span class="gtkdoc opt">,</span>
+ <span class="gtkdoc opt">&amp;</span>glyphs<span class="gtkdoc opt">, &amp;</span>num_glyphs<span class="gtkdoc opt">,</span>
+ <span class="gtkdoc opt">&amp;</span>clusters<span class="gtkdoc opt">, &amp;</span>num_clusters<span class="gtkdoc opt">, &amp;</span>cluster_flags<span class="gtkdoc opt">);</span>
+
+<span class="keyword">if</span> <span class="gtkdoc opt">(</span>status <span class="gtkdoc opt">==</span> CAIRO_STATUS_SUCCESS<span class="gtkdoc opt">) {</span>
+ <span class="function"><a href="cairo-text.html#cairo-show-text-glyphs">cairo_show_text_glyphs</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span>
+ utf8<span class="gtkdoc opt">,</span> utf8_len<span class="gtkdoc opt">,</span>
+ glyphs<span class="gtkdoc opt">,</span> num_glyphs<span class="gtkdoc opt">,</span>
+ clusters<span class="gtkdoc opt">,</span> num_clusters<span class="gtkdoc opt">,</span> cluster_flags<span class="gtkdoc opt">);</span>
+
+ <span class="function"><a href="cairo-text.html#cairo-glyph-free">cairo_glyph_free</a></span> <span class="gtkdoc opt">(</span>glyphs<span class="gtkdoc opt">);</span>
+ <span class="function"><a href="cairo-text.html#cairo-text-cluster-free">cairo_text_cluster_free</a></span> <span class="gtkdoc opt">(</span>clusters<span class="gtkdoc opt">);</span>
+<span class="gtkdoc opt">}</span></pre></td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+
+<p>If no cluster mapping is needed:</p>
+<div class="informalexample">
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+ <tbody>
+ <tr>
+ <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16</pre></td>
+ <td class="listing_code"><pre class="programlisting">cairo_status_t status<span class="gtkdoc opt">;</span>
+
+cairo_glyph_t <span class="gtkdoc opt">*</span>glyphs <span class="gtkdoc opt">=</span> NULL<span class="gtkdoc opt">;</span>
+<span class="gtkdoc kwb">int</span> num_glyphs<span class="gtkdoc opt">;</span>
+
+status <span class="gtkdoc opt">=</span> <span class="function"><a href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-text-to-glyphs">cairo_scaled_font_text_to_glyphs</a></span> <span class="gtkdoc opt">(</span>scaled_font<span class="gtkdoc opt">,</span>
+ x<span class="gtkdoc opt">,</span> y<span class="gtkdoc opt">,</span>
+ utf8<span class="gtkdoc opt">,</span> utf8_len<span class="gtkdoc opt">,</span>
+ <span class="gtkdoc opt">&amp;</span>glyphs<span class="gtkdoc opt">, &amp;</span>num_glyphs<span class="gtkdoc opt">,</span>
+ NULL<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">,</span>
+ NULL<span class="gtkdoc opt">);</span>
+
+<span class="keyword">if</span> <span class="gtkdoc opt">(</span>status <span class="gtkdoc opt">==</span> CAIRO_STATUS_SUCCESS<span class="gtkdoc opt">) {</span>
+ <span class="function"><a href="cairo-text.html#cairo-show-glyphs">cairo_show_glyphs</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> glyphs<span class="gtkdoc opt">,</span> num_glyphs<span class="gtkdoc opt">);</span>
+ <span class="function"><a href="cairo-text.html#cairo-glyph-free">cairo_glyph_free</a></span> <span class="gtkdoc opt">(</span>glyphs<span class="gtkdoc opt">);</span>
+<span class="gtkdoc opt">}</span></pre></td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+
+<p>If stack-based glyph and cluster arrays are to be used for small
+arrays:</p>
+<div class="informalexample">
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+ <tbody>
+ <tr>
+ <td class="listing_lines" align="right"><pre>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</pre></td>
+ <td class="listing_code"><pre class="programlisting">cairo_status_t status<span class="gtkdoc opt">;</span>
+
+cairo_glyph_t stack_glyphs<span class="gtkdoc opt">[</span><span class="number">40</span><span class="gtkdoc opt">];</span>
+cairo_glyph_t <span class="gtkdoc opt">*</span>glyphs <span class="gtkdoc opt">=</span> stack_glyphs<span class="gtkdoc opt">;</span>
+<span class="gtkdoc kwb">int</span> num_glyphs <span class="gtkdoc opt">=</span> <span class="keyword">sizeof</span> <span class="gtkdoc opt">(</span>stack_glyphs<span class="gtkdoc opt">) /</span> <span class="keyword">sizeof</span> <span class="gtkdoc opt">(</span>stack_glyphs<span class="gtkdoc opt">[</span><span class="number">0</span><span class="gtkdoc opt">]);</span>
+cairo_text_cluster_t stack_clusters<span class="gtkdoc opt">[</span><span class="number">40</span><span class="gtkdoc opt">];</span>
+cairo_text_cluster_t <span class="gtkdoc opt">*</span>clusters <span class="gtkdoc opt">=</span> stack_clusters<span class="gtkdoc opt">;</span>
+<span class="gtkdoc kwb">int</span> num_clusters <span class="gtkdoc opt">=</span> <span class="keyword">sizeof</span> <span class="gtkdoc opt">(</span>stack_clusters<span class="gtkdoc opt">) /</span> <span class="keyword">sizeof</span> <span class="gtkdoc opt">(</span>stack_clusters<span class="gtkdoc opt">[</span><span class="number">0</span><span class="gtkdoc opt">]);</span>
+cairo_text_cluster_flags_t cluster_flags<span class="gtkdoc opt">;</span>
+
+status <span class="gtkdoc opt">=</span> <span class="function"><a href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-text-to-glyphs">cairo_scaled_font_text_to_glyphs</a></span> <span class="gtkdoc opt">(</span>scaled_font<span class="gtkdoc opt">,</span>
+ x<span class="gtkdoc opt">,</span> y<span class="gtkdoc opt">,</span>
+ utf8<span class="gtkdoc opt">,</span> utf8_len<span class="gtkdoc opt">,</span>
+ <span class="gtkdoc opt">&amp;</span>glyphs<span class="gtkdoc opt">, &amp;</span>num_glyphs<span class="gtkdoc opt">,</span>
+ <span class="gtkdoc opt">&amp;</span>clusters<span class="gtkdoc opt">, &amp;</span>num_clusters<span class="gtkdoc opt">, &amp;</span>cluster_flags<span class="gtkdoc opt">);</span>
+
+<span class="keyword">if</span> <span class="gtkdoc opt">(</span>status <span class="gtkdoc opt">==</span> CAIRO_STATUS_SUCCESS<span class="gtkdoc opt">) {</span>
+ <span class="function"><a href="cairo-text.html#cairo-show-text-glyphs">cairo_show_text_glyphs</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span>
+ utf8<span class="gtkdoc opt">,</span> utf8_len<span class="gtkdoc opt">,</span>
+ glyphs<span class="gtkdoc opt">,</span> num_glyphs<span class="gtkdoc opt">,</span>
+ clusters<span class="gtkdoc opt">,</span> num_clusters<span class="gtkdoc opt">,</span> cluster_flags<span class="gtkdoc opt">);</span>
+
+ <span class="keyword">if</span> <span class="gtkdoc opt">(</span>glyphs <span class="gtkdoc opt">!=</span> stack_glyphs<span class="gtkdoc opt">)</span>
+ <span class="function"><a href="cairo-text.html#cairo-glyph-free">cairo_glyph_free</a></span> <span class="gtkdoc opt">(</span>glyphs<span class="gtkdoc opt">);</span>
+ <span class="keyword">if</span> <span class="gtkdoc opt">(</span>clusters <span class="gtkdoc opt">!=</span> stack_clusters<span class="gtkdoc opt">)</span>
+ <span class="function"><a href="cairo-text.html#cairo-text-cluster-free">cairo_text_cluster_free</a></span> <span class="gtkdoc opt">(</span>clusters<span class="gtkdoc opt">);</span>
+<span class="gtkdoc opt">}</span></pre></td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+
+<p>For details of how <em class="parameter"><code>clusters</code></em>
+, <em class="parameter"><code>num_clusters</code></em>
+, and <em class="parameter"><code>cluster_flags</code></em>
+ map input
+UTF-8 text to the output glyphs see <a class="link" href="cairo-text.html#cairo-show-text-glyphs" title="cairo_show_text_glyphs ()"><code class="function">cairo_show_text_glyphs()</code></a>.</p>
+<p>The output values can be readily passed to <a class="link" href="cairo-text.html#cairo-show-text-glyphs" title="cairo_show_text_glyphs ()"><code class="function">cairo_show_text_glyphs()</code></a>
+<a class="link" href="cairo-text.html#cairo-show-glyphs" title="cairo_show_glyphs ()"><code class="function">cairo_show_glyphs()</code></a>, or related functions, assuming that the exact
+same <em class="parameter"><code>scaled_font</code></em>
+ is used for the operation.</p>
+<div class="refsect3">
+<a name="cairo-scaled-font-text-to-glyphs.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>X position to place first glyph</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>Y position to place first glyph</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>scaled_font</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>utf8</p></td>
+<td class="parameter_description"><p>a string of text encoded in UTF-8</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>utf8_len</p></td>
+<td class="parameter_description"><p>length of <em class="parameter"><code>utf8</code></em>
+in bytes, or -1 if it is NUL-terminated</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>glyphs</p></td>
+<td class="parameter_description"><p>pointer to array of glyphs to fill</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>num_glyphs</p></td>
+<td class="parameter_description"><p>pointer to number of glyphs</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>clusters</p></td>
+<td class="parameter_description"><p>pointer to array of cluster mapping information to fill, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>num_clusters</p></td>
+<td class="parameter_description"><p>pointer to number of clusters, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cluster_flags</p></td>
+<td class="parameter_description"><p>pointer to location to store cluster flags corresponding to the
+output <em class="parameter"><code>clusters</code></em>
+, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-scaled-font-text-to-glyphs.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> 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 <em class="parameter"><code>scaled_font</code></em>
+.</p>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-scaled-font-get-font-face"></a><h3>cairo_scaled_font_get_font_face ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="returnvalue">cairo_font_face_t</span></a> *
+cairo_scaled_font_get_font_face (<em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> *scaled_font</code></em>);</pre>
+<p>Gets the font face that this scaled font uses. This might be the
+font face passed to <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-create" title="cairo_scaled_font_create ()"><code class="function">cairo_scaled_font_create()</code></a>, but this does not
+hold true for all possible cases.</p>
+<div class="refsect3">
+<a name="cairo-scaled-font-get-font-face.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>scaled_font</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-scaled-font-get-font-face.returns"></a><h4>Returns</h4>
+<p> The <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> with which <em class="parameter"><code>scaled_font</code></em>
+was
+created. This object is owned by cairo. To keep a reference to it,
+you must call <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-reference" title="cairo_scaled_font_reference ()"><code class="function">cairo_scaled_font_reference()</code></a>.</p>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-scaled-font-get-font-options"></a><h3>cairo_scaled_font_get_font_options ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_scaled_font_get_font_options (<em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> *scaled_font</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a> *options</code></em>);</pre>
+<p>Stores the font options with which <em class="parameter"><code>scaled_font</code></em>
+ was created into
+<em class="parameter"><code>options</code></em>
+.</p>
+<div class="refsect3">
+<a name="cairo-scaled-font-get-font-options.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>scaled_font</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>options</p></td>
+<td class="parameter_description"><p>return value for the font options</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-scaled-font-get-font-matrix"></a><h3>cairo_scaled_font_get_font_matrix ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_scaled_font_get_font_matrix (<em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> *scaled_font</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a> *font_matrix</code></em>);</pre>
+<p>Stores the font matrix with which <em class="parameter"><code>scaled_font</code></em>
+ was created into
+<em class="parameter"><code>matrix</code></em>
+.</p>
+<div class="refsect3">
+<a name="cairo-scaled-font-get-font-matrix.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>scaled_font</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>font_matrix</p></td>
+<td class="parameter_description"><p>return value for the matrix</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-scaled-font-get-ctm"></a><h3>cairo_scaled_font_get_ctm ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_scaled_font_get_ctm (<em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> *scaled_font</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a> *ctm</code></em>);</pre>
+<p>Stores the CTM with which <em class="parameter"><code>scaled_font</code></em>
+ was created into <em class="parameter"><code>ctm</code></em>
+.
+Note that the translation offsets (x0, y0) of the CTM are ignored
+by <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-create" title="cairo_scaled_font_create ()"><code class="function">cairo_scaled_font_create()</code></a>. So, the matrix this
+function returns always has 0,0 as x0,y0.</p>
+<div class="refsect3">
+<a name="cairo-scaled-font-get-ctm.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>scaled_font</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ctm</p></td>
+<td class="parameter_description"><p>return value for the CTM</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-scaled-font-get-scale-matrix"></a><h3>cairo_scaled_font_get_scale_matrix ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_scaled_font_get_scale_matrix (<em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> *scaled_font</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a> *scale_matrix</code></em>);</pre>
+<p>Stores the scale matrix of <em class="parameter"><code>scaled_font</code></em>
+ into <em class="parameter"><code>matrix</code></em>
+.
+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.</p>
+<div class="refsect3">
+<a name="cairo-scaled-font-get-scale-matrix.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>scaled_font</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>scale_matrix</p></td>
+<td class="parameter_description"><p>return value for the matrix</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-scaled-font-get-type"></a><h3>cairo_scaled_font_get_type ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-type-t" title="enum cairo_font_type_t"><span class="returnvalue">cairo_font_type_t</span></a>
+cairo_scaled_font_get_type (<em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> *scaled_font</code></em>);</pre>
+<p>This function returns the type of the backend used to create
+a scaled font. See <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-type-t" title="enum cairo_font_type_t"><span class="type">cairo_font_type_t</span></a> for available types.
+However, this function never returns <a class="link" href="cairo-cairo-font-face-t.html#CAIRO-FONT-TYPE-TOY:CAPS"><code class="literal">CAIRO_FONT_TYPE_TOY</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-scaled-font-get-type.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>scaled_font</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-scaled-font-get-type.returns"></a><h4>Returns</h4>
+<p> The type of <em class="parameter"><code>scaled_font</code></em>
+.</p>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-scaled-font-get-reference-count"></a><h3>cairo_scaled_font_get_reference_count ()</h3>
+<pre class="programlisting">unsigned <span class="returnvalue">int</span>
+cairo_scaled_font_get_reference_count (<em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> *scaled_font</code></em>);</pre>
+<p>Returns the current reference count of <em class="parameter"><code>scaled_font</code></em>
+.</p>
+<div class="refsect3">
+<a name="cairo-scaled-font-get-reference-count.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>scaled_font</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-scaled-font-get-reference-count.returns"></a><h4>Returns</h4>
+<p> the current reference count of <em class="parameter"><code>scaled_font</code></em>
+. If the
+object is a nil object, 0 will be returned.</p>
+</div>
+<p class="since">Since: 1.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-scaled-font-set-user-data"></a><h3>cairo_scaled_font_set_user_data ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+cairo_scaled_font_set_user_data (<em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> *scaled_font</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-Types.html#cairo-user-data-key-t" title="cairo_user_data_key_t"><span class="type">cairo_user_data_key_t</span></a> *key</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-Types.html#cairo-destroy-func-t" title="cairo_destroy_func_t ()"><span class="type">cairo_destroy_func_t</span></a> destroy</code></em>);</pre>
+<p>Attach user data to <em class="parameter"><code>scaled_font</code></em>
+. To remove user data from a surface,
+call this function with the key that was used to set it and <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+for <em class="parameter"><code>data</code></em>
+.</p>
+<div class="refsect3">
+<a name="cairo-scaled-font-set-user-data.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>scaled_font</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>the address of a <a class="link" href="cairo-Types.html#cairo-user-data-key-t" title="cairo_user_data_key_t"><span class="type">cairo_user_data_key_t</span></a> to attach the user data to</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>the user data to attach to the <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>destroy</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-Types.html#cairo-destroy-func-t" title="cairo_destroy_func_t ()"><span class="type">cairo_destroy_func_t</span></a> which will be called when the
+<a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> is destroyed or when new user data is attached using the
+same key.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-scaled-font-set-user-data.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> or <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a> if a
+slot could not be allocated for the user data.</p>
+</div>
+<p class="since">Since: 1.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-scaled-font-get-user-data"></a><h3>cairo_scaled_font_get_user_data ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> *
+cairo_scaled_font_get_user_data (<em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> *scaled_font</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-Types.html#cairo-user-data-key-t" title="cairo_user_data_key_t"><span class="type">cairo_user_data_key_t</span></a> *key</code></em>);</pre>
+<p>Return user data previously attached to <em class="parameter"><code>scaled_font</code></em>
+ using the
+specified key. If no user data has been attached with the given
+key this function returns <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-scaled-font-get-user-data.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>scaled_font</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>the address of the <a class="link" href="cairo-Types.html#cairo-user-data-key-t" title="cairo_user_data_key_t"><span class="type">cairo_user_data_key_t</span></a> the user data was
+attached to</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-scaled-font-get-user-data.returns"></a><h4>Returns</h4>
+<p> the user data previously attached or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
+</div>
+<p class="since">Since: 1.4</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-cairo-scaled-font-t.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="cairo-scaled-font-t"></a><h3>cairo_scaled_font_t</h3>
+<pre class="programlisting">typedef struct _cairo_scaled_font cairo_scaled_font_t;
+</pre>
+<p>A <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> is a font scaled to a particular size and device
+resolution. A <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> is most useful for low-level font
+usage where a library or application wants to cache a reference
+to a scaled font to speed up the computation of metrics.</p>
+<p>There are various types of scaled fonts, depending on the
+<em class="firstterm">font backend</em> they use. The type of a
+scaled font can be queried using <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-type" title="cairo_scaled_font_get_type ()"><code class="function">cairo_scaled_font_get_type()</code></a>.</p>
+<p>Memory management of <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> is done with
+<a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-reference" title="cairo_scaled_font_reference ()"><code class="function">cairo_scaled_font_reference()</code></a> and <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-destroy" title="cairo_scaled_font_destroy ()"><code class="function">cairo_scaled_font_destroy()</code></a>.</p>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-font-extents-t"></a><h3>cairo_font_extents_t</h3>
+<pre class="programlisting">typedef struct {
+ double ascent;
+ double descent;
+ double height;
+ double max_x_advance;
+ double max_y_advance;
+} cairo_font_extents_t;
+</pre>
+<p>The <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-font-extents-t" title="cairo_font_extents_t"><span class="type">cairo_font_extents_t</span></a> structure stores metric information for
+a font. Values are given in the current user-space coordinate
+system.</p>
+<p>Because font metrics are in user-space coordinates, they are
+mostly, but not entirely, independent of the current transformation
+matrix. If you call <code class="literal">cairo_scale(cr, 2.0, 2.0)</code>,
+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.</p>
+<div class="refsect3">
+<a name="cairo-font-extents-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><span class="type">double</span> <em class="structfield"><code><a name="cairo-font-extents-t.ascent"></a>ascent</code></em>;</p></td>
+<td class="struct_member_description"><p>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.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><span class="type">double</span> <em class="structfield"><code><a name="cairo-font-extents-t.descent"></a>descent</code></em>;</p></td>
+<td class="struct_member_description"><p>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.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><span class="type">double</span> <em class="structfield"><code><a name="cairo-font-extents-t.height"></a>height</code></em>;</p></td>
+<td class="struct_member_description"><p>the recommended vertical distance between baselines when
+setting consecutive lines of text with the font. This
+is greater than <em class="parameter"><code>ascent</code></em>
++<em class="parameter"><code>descent</code></em>
+by a
+quantity known as the <em class="firstterm">line spacing</em>
+or <em class="firstterm">external leading</em>. When space
+is at a premium, most fonts can be set with only
+a distance of <em class="parameter"><code>ascent</code></em>
++<em class="parameter"><code>descent</code></em>
+between lines.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><span class="type">double</span> <em class="structfield"><code><a name="cairo-font-extents-t.max-x-advance"></a>max_x_advance</code></em>;</p></td>
+<td class="struct_member_description"><p>the maximum distance in the X direction that
+the origin is advanced for any glyph in the font.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><span class="type">double</span> <em class="structfield"><code><a name="cairo-font-extents-t.max-y-advance"></a>max_y_advance</code></em>;</p></td>
+<td class="struct_member_description"><p>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.)</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-text-extents-t"></a><h3>cairo_text_extents_t</h3>
+<pre class="programlisting">typedef struct {
+ double x_bearing;
+ double y_bearing;
+ double width;
+ double height;
+ double x_advance;
+ double y_advance;
+} cairo_text_extents_t;
+</pre>
+<p>The <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-text-extents-t" title="cairo_text_extents_t"><span class="type">cairo_text_extents_t</span></a> 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
+<code class="literal">cairo_scale(cr, 2.0, 2.0)</code>, 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.</p>
+<div class="refsect3">
+<a name="cairo-text-extents-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><span class="type">double</span> <em class="structfield"><code><a name="cairo-text-extents-t.x-bearing"></a>x_bearing</code></em>;</p></td>
+<td class="struct_member_description"><p>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.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><span class="type">double</span> <em class="structfield"><code><a name="cairo-text-extents-t.y-bearing"></a>y_bearing</code></em>;</p></td>
+<td class="struct_member_description"><p>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.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><span class="type">double</span> <em class="structfield"><code><a name="cairo-text-extents-t.width"></a>width</code></em>;</p></td>
+<td class="struct_member_description"><p>width of the glyphs as drawn</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><span class="type">double</span> <em class="structfield"><code><a name="cairo-text-extents-t.height"></a>height</code></em>;</p></td>
+<td class="struct_member_description"><p>height of the glyphs as drawn</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><span class="type">double</span> <em class="structfield"><code><a name="cairo-text-extents-t.x-advance"></a>x_advance</code></em>;</p></td>
+<td class="struct_member_description"><p>distance to advance in the X direction
+after drawing these glyphs</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><span class="type">double</span> <em class="structfield"><code><a name="cairo-text-extents-t.y-advance"></a>y_advance</code></em>;</p></td>
+<td class="struct_member_description"><p>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.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-cairo-scaled-font-t.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a>, <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a>, <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a></p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>cairo_surface_t: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="cairo-surfaces.html" title="Surfaces">
+<link rel="prev" href="cairo-cairo-device-t.html" title="cairo_device_t">
+<link rel="next" href="cairo-Image-Surfaces.html" title="Image Surfaces">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+ <a href="#cairo-cairo-surface-t.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="cairo-surfaces.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="cairo-cairo-device-t.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="cairo-Image-Surfaces.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="cairo-cairo-surface-t"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="cairo-cairo-surface-t.top_of_page"></a>cairo_surface_t</span></h2>
+<p>cairo_surface_t — Base class for surfaces</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="cairo-cairo-surface-t.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-create-similar" title="cairo_surface_create_similar ()">cairo_surface_create_similar</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-create-similar-image" title="cairo_surface_create_similar_image ()">cairo_surface_create_similar_image</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-create-for-rectangle" title="cairo_surface_create_for_rectangle ()">cairo_surface_create_for_rectangle</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-reference" title="cairo_surface_reference ()">cairo_surface_reference</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-destroy" title="cairo_surface_destroy ()">cairo_surface_destroy</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-status" title="cairo_surface_status ()">cairo_surface_status</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-finish" title="cairo_surface_finish ()">cairo_surface_finish</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-flush" title="cairo_surface_flush ()">cairo_surface_flush</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="returnvalue">cairo_device_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-get-device" title="cairo_surface_get_device ()">cairo_surface_get_device</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-get-font-options" title="cairo_surface_get_font_options ()">cairo_surface_get_font_options</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-content-t" title="enum cairo_content_t"><span class="returnvalue">cairo_content_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-get-content" title="cairo_surface_get_content ()">cairo_surface_get_content</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-mark-dirty" title="cairo_surface_mark_dirty ()">cairo_surface_mark_dirty</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-mark-dirty-rectangle" title="cairo_surface_mark_dirty_rectangle ()">cairo_surface_mark_dirty_rectangle</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-set-device-offset" title="cairo_surface_set_device_offset ()">cairo_surface_set_device_offset</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-get-device-offset" title="cairo_surface_get_device_offset ()">cairo_surface_get_device_offset</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-get-device-scale" title="cairo_surface_get_device_scale ()">cairo_surface_get_device_scale</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-set-device-scale" title="cairo_surface_set_device_scale ()">cairo_surface_set_device_scale</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-set-fallback-resolution" title="cairo_surface_set_fallback_resolution ()">cairo_surface_set_fallback_resolution</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-get-fallback-resolution" title="cairo_surface_get_fallback_resolution ()">cairo_surface_get_fallback_resolution</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-type-t" title="enum cairo_surface_type_t"><span class="returnvalue">cairo_surface_type_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-get-type" title="cairo_surface_get_type ()">cairo_surface_get_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">unsigned <span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-get-reference-count" title="cairo_surface_get_reference_count ()">cairo_surface_get_reference_count</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-set-user-data" title="cairo_surface_set_user_data ()">cairo_surface_set_user_data</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-get-user-data" title="cairo_surface_get_user_data ()">cairo_surface_get_user_data</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-copy-page" title="cairo_surface_copy_page ()">cairo_surface_copy_page</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-show-page" title="cairo_surface_show_page ()">cairo_surface_show_page</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Types.html#cairo-bool-t" title="cairo_bool_t"><span class="returnvalue">cairo_bool_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-has-show-text-glyphs" title="cairo_surface_has_show_text_glyphs ()">cairo_surface_has_show_text_glyphs</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-set-mime-data" title="cairo_surface_set_mime_data ()">cairo_surface_set_mime_data</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-get-mime-data" title="cairo_surface_get_mime_data ()">cairo_surface_get_mime_data</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Types.html#cairo-bool-t" title="cairo_bool_t"><span class="returnvalue">cairo_bool_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-supports-mime-type" title="cairo_surface_supports_mime_type ()">cairo_surface_supports_mime_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-map-to-image" title="cairo_surface_map_to_image ()">cairo_surface_map_to_image</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-unmap-image" title="cairo_surface_unmap_image ()">cairo_surface_unmap_image</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-cairo-surface-t.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="cairo-cairo-surface-t.html#CAIRO-HAS-MIME-SURFACE:CAPS" title="CAIRO_HAS_MIME_SURFACE">CAIRO_HAS_MIME_SURFACE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX:CAPS" title="CAIRO_MIME_TYPE_CCITT_FAX">CAIRO_MIME_TYPE_CCITT_FAX</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS" title="CAIRO_MIME_TYPE_CCITT_FAX_PARAMS">CAIRO_MIME_TYPE_CCITT_FAX_PARAMS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-EPS:CAPS" title="CAIRO_MIME_TYPE_EPS">CAIRO_MIME_TYPE_EPS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-EPS-PARAMS:CAPS" title="CAIRO_MIME_TYPE_EPS_PARAMS">CAIRO_MIME_TYPE_EPS_PARAMS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2:CAPS" title="CAIRO_MIME_TYPE_JBIG2">CAIRO_MIME_TYPE_JBIG2</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL:CAPS" title="CAIRO_MIME_TYPE_JBIG2_GLOBAL">CAIRO_MIME_TYPE_JBIG2_GLOBAL</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL-ID:CAPS" title="CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID">CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JP2:CAPS" title="CAIRO_MIME_TYPE_JP2">CAIRO_MIME_TYPE_JP2</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JPEG:CAPS" title="CAIRO_MIME_TYPE_JPEG">CAIRO_MIME_TYPE_JPEG</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-PNG:CAPS" title="CAIRO_MIME_TYPE_PNG">CAIRO_MIME_TYPE_PNG</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-URI:CAPS" title="CAIRO_MIME_TYPE_URI">CAIRO_MIME_TYPE_URI</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-UNIQUE-ID:CAPS" title="CAIRO_MIME_TYPE_UNIQUE_ID">CAIRO_MIME_TYPE_UNIQUE_ID</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t">cairo_surface_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="cairo-cairo-surface-t.html#cairo-content-t" title="enum cairo_content_t">cairo_content_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-type-t" title="enum cairo_surface_type_t">cairo_surface_type_t</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-cairo-surface-t.description"></a><h2>Description</h2>
+<p><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> is the abstract type representing all different drawing
+targets that cairo can render to. The actual drawings are
+performed using a cairo <em class="firstterm">context</em>.</p>
+<p>A cairo surface is created by using <em class="firstterm">backend</em>-specific
+constructors, typically of the form
+<code class="function">cairo_<span class="emphasis"><em>backend</em></span>_surface_create()</code>.</p>
+<p>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
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-flush" title="cairo_surface_flush ()"><code class="function">cairo_surface_flush()</code></a> before reading from or writing to the surface and that
+you must use <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-mark-dirty" title="cairo_surface_mark_dirty ()"><code class="function">cairo_surface_mark_dirty()</code></a> after modifying it.</p>
+<div class="example">
+<a name="id-1.5.3.5.5"></a><p class="title"><b>Example 1. Directly modifying an image surface</b></p>
+<div class="example-contents">
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+ <tbody>
+ <tr>
+ <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19</pre></td>
+ <td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">void</span>
+<span class="function">modify_image_surface</span> <span class="gtkdoc opt">(</span>cairo_surface_t <span class="gtkdoc opt">*</span>surface<span class="gtkdoc opt">)</span>
+<span class="gtkdoc opt">{</span>
+ <span class="gtkdoc kwb">unsigned char</span> <span class="gtkdoc opt">*</span>data<span class="gtkdoc opt">;</span>
+ <span class="gtkdoc kwb">int</span> width<span class="gtkdoc opt">,</span> height<span class="gtkdoc opt">,</span> stride<span class="gtkdoc opt">;</span>
+
+ <span class="gtkdoc slc">// flush to ensure all writing to the image was done</span>
+ <span class="function"><a href="cairo-cairo-surface-t.html#cairo-surface-flush">cairo_surface_flush</a></span> <span class="gtkdoc opt">(</span>surface<span class="gtkdoc opt">);</span>
+
+ <span class="gtkdoc slc">// modify the image</span>
+ data <span class="gtkdoc opt">=</span> <span class="function"><a href="cairo-Image-Surfaces.html#cairo-image-surface-get-data">cairo_image_surface_get_data</a></span> <span class="gtkdoc opt">(</span>surface<span class="gtkdoc opt">);</span>
+ width <span class="gtkdoc opt">=</span> <span class="function"><a href="cairo-Image-Surfaces.html#cairo-image-surface-get-width">cairo_image_surface_get_width</a></span> <span class="gtkdoc opt">(</span>surface<span class="gtkdoc opt">);</span>
+ height <span class="gtkdoc opt">=</span> <span class="function"><a href="cairo-Image-Surfaces.html#cairo-image-surface-get-height">cairo_image_surface_get_height</a></span> <span class="gtkdoc opt">(</span>surface<span class="gtkdoc opt">);</span>
+ stride <span class="gtkdoc opt">=</span> <span class="function"><a href="cairo-Image-Surfaces.html#cairo-image-surface-get-stride">cairo_image_surface_get_stride</a></span> <span class="gtkdoc opt">(</span>surface<span class="gtkdoc opt">);</span>
+ <span class="function">modify_image_data</span> <span class="gtkdoc opt">(</span>data<span class="gtkdoc opt">,</span> width<span class="gtkdoc opt">,</span> height<span class="gtkdoc opt">,</span> stride<span class="gtkdoc opt">);</span>
+
+ <span class="gtkdoc slc">// mark the image dirty so Cairo clears its caches.</span>
+ <span class="function"><a href="cairo-cairo-surface-t.html#cairo-surface-mark-dirty">cairo_surface_mark_dirty</a></span> <span class="gtkdoc opt">(</span>surface<span class="gtkdoc opt">);</span>
+<span class="gtkdoc opt">}</span></pre></td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+
+</div>
+<br class="example-break"><p>Note that for other surface types it might be necessary to acquire the
+surface's device first. See <a class="link" href="cairo-cairo-device-t.html#cairo-device-acquire" title="cairo_device_acquire ()"><code class="function">cairo_device_acquire()</code></a> for a discussion of
+devices.</p>
+</div>
+<div class="refsect1">
+<a name="cairo-cairo-surface-t.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="cairo-surface-create-similar"></a><h3>cairo_surface_create_similar ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+cairo_surface_create_similar (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *other</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-content-t" title="enum cairo_content_t"><span class="type">cairo_content_t</span></a> content</code></em>,
+ <em class="parameter"><code><span class="type">int</span> width</code></em>,
+ <em class="parameter"><code><span class="type">int</span> height</code></em>);</pre>
+<p>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
+<em class="parameter"><code>other</code></em>
+. Generally, the new surface will also use the same backend
+as <em class="parameter"><code>other</code></em>
+, unless that is not possible for some reason. The type of
+the returned surface may be examined with
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-get-type" title="cairo_surface_get_type ()"><code class="function">cairo_surface_get_type()</code></a>.</p>
+<p>Initially the surface contents are all 0 (transparent if contents
+have transparency, black otherwise.)</p>
+<p>Use <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-create-similar-image" title="cairo_surface_create_similar_image ()"><code class="function">cairo_surface_create_similar_image()</code></a> if you need an image surface
+which can be painted quickly to the target surface.</p>
+<div class="refsect3">
+<a name="cairo-surface-create-similar.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>other</p></td>
+<td class="parameter_description"><p>an existing surface used to select the backend of the new surface</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>content</p></td>
+<td class="parameter_description"><p>the content for the new surface</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>width</p></td>
+<td class="parameter_description"><p>width of the new surface, (in device-space units)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>height</p></td>
+<td class="parameter_description"><p>height of the new surface (in device-space units)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-surface-create-similar.returns"></a><h4>Returns</h4>
+<p> a pointer to the newly allocated surface. The caller
+owns the surface and should call <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-destroy" title="cairo_surface_destroy ()"><code class="function">cairo_surface_destroy()</code></a> when done
+with it.</p>
+<p>This function always returns a valid pointer, but it will return a
+pointer to a "nil" surface if <em class="parameter"><code>other</code></em>
+is already in an error state
+or any other error occurs.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-surface-create-similar-image"></a><h3>cairo_surface_create_similar_image ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+cairo_surface_create_similar_image (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *other</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-Image-Surfaces.html#cairo-format-t" title="enum cairo_format_t"><span class="type">cairo_format_t</span></a> format</code></em>,
+ <em class="parameter"><code><span class="type">int</span> width</code></em>,
+ <em class="parameter"><code><span class="type">int</span> height</code></em>);</pre>
+<p>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
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-create-similar" title="cairo_surface_create_similar ()"><code class="function">cairo_surface_create_similar()</code></a> the new image surface won't inherit
+the device scale from <em class="parameter"><code>other</code></em>
+.</p>
+<p>Initially the surface contents are all 0 (transparent if contents
+have transparency, black otherwise.)</p>
+<p>Use <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-create-similar" title="cairo_surface_create_similar ()"><code class="function">cairo_surface_create_similar()</code></a> if you don't need an image surface.</p>
+<div class="refsect3">
+<a name="cairo-surface-create-similar-image.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>other</p></td>
+<td class="parameter_description"><p>an existing surface used to select the preference of the new surface</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>the format for the new surface</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>width</p></td>
+<td class="parameter_description"><p>width of the new surface, (in pixels)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>height</p></td>
+<td class="parameter_description"><p>height of the new surface (in pixels)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-surface-create-similar-image.returns"></a><h4>Returns</h4>
+<p> a pointer to the newly allocated image surface. The caller
+owns the surface and should call <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-destroy" title="cairo_surface_destroy ()"><code class="function">cairo_surface_destroy()</code></a> when done
+with it.</p>
+<p>This function always returns a valid pointer, but it will return a
+pointer to a "nil" surface if <em class="parameter"><code>other</code></em>
+is already in an error state
+or any other error occurs.</p>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-surface-create-for-rectangle"></a><h3>cairo_surface_create_for_rectangle ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+cairo_surface_create_for_rectangle (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *target</code></em>,
+ <em class="parameter"><code><span class="type">double</span> x</code></em>,
+ <em class="parameter"><code><span class="type">double</span> y</code></em>,
+ <em class="parameter"><code><span class="type">double</span> width</code></em>,
+ <em class="parameter"><code><span class="type">double</span> height</code></em>);</pre>
+<p>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.</p>
+<div class="note"><p>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.</p></div>
+<div class="refsect3">
+<a name="cairo-surface-create-for-rectangle.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>target</p></td>
+<td class="parameter_description"><p>an existing surface for which the sub-surface will point to</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>the x-origin of the sub-surface from the top-left of the target surface (in device-space units)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>the y-origin of the sub-surface from the top-left of the target surface (in device-space units)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>width</p></td>
+<td class="parameter_description"><p>width of the sub-surface (in device-space units)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>height</p></td>
+<td class="parameter_description"><p>height of the sub-surface (in device-space units)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-surface-create-for-rectangle.returns"></a><h4>Returns</h4>
+<p> a pointer to the newly allocated surface. The caller
+owns the surface and should call <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-destroy" title="cairo_surface_destroy ()"><code class="function">cairo_surface_destroy()</code></a> when done
+with it.</p>
+<p>This function always returns a valid pointer, but it will return a
+pointer to a "nil" surface if <em class="parameter"><code>other</code></em>
+is already in an error state
+or any other error occurs.</p>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-surface-reference"></a><h3>cairo_surface_reference ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+cairo_surface_reference (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
+<p>Increases the reference count on <em class="parameter"><code>surface</code></em>
+ by one. This prevents
+<em class="parameter"><code>surface</code></em>
+ from being destroyed until a matching call to
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-destroy" title="cairo_surface_destroy ()"><code class="function">cairo_surface_destroy()</code></a> is made.</p>
+<p>Use <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-get-reference-count" title="cairo_surface_get_reference_count ()"><code class="function">cairo_surface_get_reference_count()</code></a> to get the number of
+references to a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a>.</p>
+<div class="refsect3">
+<a name="cairo-surface-reference.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-surface-reference.returns"></a><h4>Returns</h4>
+<p> the referenced <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a>.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-surface-destroy"></a><h3>cairo_surface_destroy ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_surface_destroy (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
+<p>Decreases the reference count on <em class="parameter"><code>surface</code></em>
+ by one. If the result is
+zero, then <em class="parameter"><code>surface</code></em>
+ and all associated resources are freed. See
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-reference" title="cairo_surface_reference ()"><code class="function">cairo_surface_reference()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-surface-destroy.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-surface-status"></a><h3>cairo_surface_status ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+cairo_surface_status (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
+<p>Checks whether an error has previously occurred for this
+surface.</p>
+<div class="refsect3">
+<a name="cairo-surface-status.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-surface-status.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a>, <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-NULL-POINTER:CAPS"><code class="literal">CAIRO_STATUS_NULL_POINTER</code></a>,
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a>, <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-READ-ERROR:CAPS"><code class="literal">CAIRO_STATUS_READ_ERROR</code></a>,
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-INVALID-CONTENT:CAPS"><code class="literal">CAIRO_STATUS_INVALID_CONTENT</code></a>, <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-INVALID-FORMAT:CAPS"><code class="literal">CAIRO_STATUS_INVALID_FORMAT</code></a>, or
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-INVALID-VISUAL:CAPS"><code class="literal">CAIRO_STATUS_INVALID_VISUAL</code></a>.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-surface-finish"></a><h3>cairo_surface_finish ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_surface_finish (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
+<p>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 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-finish" title="cairo_surface_finish ()"><code class="function">cairo_surface_finish()</code></a> 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 <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SURFACE-FINISHED:CAPS"><code class="literal">CAIRO_STATUS_SURFACE_FINISHED</code></a>
+error.</p>
+<p>When the last call to <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-destroy" title="cairo_surface_destroy ()"><code class="function">cairo_surface_destroy()</code></a> decreases the
+reference count to zero, cairo will call <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-finish" title="cairo_surface_finish ()"><code class="function">cairo_surface_finish()</code></a> if
+it hasn't been called already, before freeing the resources
+associated with the surface.</p>
+<div class="refsect3">
+<a name="cairo-surface-finish.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>the <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> to finish</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-surface-flush"></a><h3>cairo_surface_flush ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_surface_flush (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
+<p>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.</p>
+<div class="refsect3">
+<a name="cairo-surface-flush.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-surface-get-device"></a><h3>cairo_surface_get_device ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="returnvalue">cairo_device_t</span></a> *
+cairo_surface_get_device (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
+<p>This function returns the device for a <em class="parameter"><code>surface</code></em>
+.
+See <a class="link" href="cairo-cairo-device-t.html#cairo-device-t" title="cairo_device_t"><span class="type">cairo_device_t</span></a>.</p>
+<div class="refsect3">
+<a name="cairo-surface-get-device.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-surface-get-device.returns"></a><h4>Returns</h4>
+<p> The device for <em class="parameter"><code>surface</code></em>
+or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the surface does
+not have an associated device.</p>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-surface-get-font-options"></a><h3>cairo_surface_get_font_options ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_surface_get_font_options (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a> *options</code></em>);</pre>
+<p>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
+<a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-create" title="cairo_scaled_font_create ()"><code class="function">cairo_scaled_font_create()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-surface-get-font-options.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>options</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a> object into which to store
+the retrieved options. All existing values are overwritten</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-surface-get-content"></a><h3>cairo_surface_get_content ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-content-t" title="enum cairo_content_t"><span class="returnvalue">cairo_content_t</span></a>
+cairo_surface_get_content (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
+<p>This function returns the content type of <em class="parameter"><code>surface</code></em>
+ which indicates
+whether the surface contains color and/or alpha information. See
+<a class="link" href="cairo-cairo-surface-t.html#cairo-content-t" title="enum cairo_content_t"><span class="type">cairo_content_t</span></a>.</p>
+<div class="refsect3">
+<a name="cairo-surface-get-content.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-surface-get-content.returns"></a><h4>Returns</h4>
+<p> The content type of <em class="parameter"><code>surface</code></em>
+.</p>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-surface-mark-dirty"></a><h3>cairo_surface_mark_dirty ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_surface_mark_dirty (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
+<p>Tells cairo that drawing has been done to surface using means other
+than cairo, and that cairo should reread any cached areas. Note
+that you must call <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-flush" title="cairo_surface_flush ()"><code class="function">cairo_surface_flush()</code></a> before doing such drawing.</p>
+<div class="refsect3">
+<a name="cairo-surface-mark-dirty.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-surface-mark-dirty-rectangle"></a><h3>cairo_surface_mark_dirty_rectangle ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_surface_mark_dirty_rectangle (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
+ <em class="parameter"><code><span class="type">int</span> x</code></em>,
+ <em class="parameter"><code><span class="type">int</span> y</code></em>,
+ <em class="parameter"><code><span class="type">int</span> width</code></em>,
+ <em class="parameter"><code><span class="type">int</span> height</code></em>);</pre>
+<p>Like <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-mark-dirty" title="cairo_surface_mark_dirty ()"><code class="function">cairo_surface_mark_dirty()</code></a>, but drawing has been done only to
+the specified rectangle, so that cairo can retain cached contents
+for other parts of the surface.</p>
+<p>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.</p>
+<div class="refsect3">
+<a name="cairo-surface-mark-dirty-rectangle.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>X coordinate of dirty rectangle</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>Y coordinate of dirty rectangle</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>width</p></td>
+<td class="parameter_description"><p>width of dirty rectangle</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>height</p></td>
+<td class="parameter_description"><p>height of dirty rectangle</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-surface-set-device-offset"></a><h3>cairo_surface_set_device_offset ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_surface_set_device_offset (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
+ <em class="parameter"><code><span class="type">double</span> x_offset</code></em>,
+ <em class="parameter"><code><span class="type">double</span> y_offset</code></em>);</pre>
+<p>Sets an offset that is added to the device coordinates determined
+by the CTM when drawing to <em class="parameter"><code>surface</code></em>
+. One use case for this function
+is when we want to create a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> 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 <a class="link" href="cairo-Transformations.html#cairo-translate" title="cairo_translate ()"><code class="function">cairo_translate()</code></a> isn't
+sufficient to do this, since functions like
+<a class="link" href="cairo-Transformations.html#cairo-device-to-user" title="cairo_device_to_user ()"><code class="function">cairo_device_to_user()</code></a> will expose the hidden offset.</p>
+<p>Note that the offset affects drawing to the surface as well as
+using the surface in a source pattern.</p>
+<div class="refsect3">
+<a name="cairo-surface-set-device-offset.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x_offset</p></td>
+<td class="parameter_description"><p>the offset in the X direction, in device units</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y_offset</p></td>
+<td class="parameter_description"><p>the offset in the Y direction, in device units</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-surface-get-device-offset"></a><h3>cairo_surface_get_device_offset ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_surface_get_device_offset (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *x_offset</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *y_offset</code></em>);</pre>
+<p>This function returns the previous device offset set by
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-set-device-offset" title="cairo_surface_set_device_offset ()"><code class="function">cairo_surface_set_device_offset()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-surface-get-device-offset.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x_offset</p></td>
+<td class="parameter_description"><p>the offset in the X direction, in device units</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y_offset</p></td>
+<td class="parameter_description"><p>the offset in the Y direction, in device units</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-surface-get-device-scale"></a><h3>cairo_surface_get_device_scale ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_surface_get_device_scale (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *x_scale</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *y_scale</code></em>);</pre>
+<p>This function returns the previous device offset set by
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-set-device-scale" title="cairo_surface_set_device_scale ()"><code class="function">cairo_surface_set_device_scale()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-surface-get-device-scale.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x_scale</p></td>
+<td class="parameter_description"><p>the scale in the X direction, in device units</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y_scale</p></td>
+<td class="parameter_description"><p>the scale in the Y direction, in device units</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.14</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-surface-set-device-scale"></a><h3>cairo_surface_set_device_scale ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_surface_set_device_scale (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
+ <em class="parameter"><code><span class="type">double</span> x_scale</code></em>,
+ <em class="parameter"><code><span class="type">double</span> y_scale</code></em>);</pre>
+<p>Sets a scale that is multiplied to the device coordinates determined
+by the CTM when drawing to <em class="parameter"><code>surface</code></em>
+. 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 <a class="link" href="cairo-Transformations.html#cairo-translate" title="cairo_translate ()"><code class="function">cairo_translate()</code></a> isn't
+sufficient to do this, since functions like
+<a class="link" href="cairo-Transformations.html#cairo-device-to-user" title="cairo_device_to_user ()"><code class="function">cairo_device_to_user()</code></a> will expose the hidden scale.</p>
+<p>Note that the scale affects drawing to the surface as well as
+using the surface in a source pattern.</p>
+<div class="refsect3">
+<a name="cairo-surface-set-device-scale.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x_scale</p></td>
+<td class="parameter_description"><p>a scale factor in the X direction</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y_scale</p></td>
+<td class="parameter_description"><p>a scale factor in the Y direction</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.14</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-surface-set-fallback-resolution"></a><h3>cairo_surface_set_fallback_resolution ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_surface_set_fallback_resolution (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
+ <em class="parameter"><code><span class="type">double</span> x_pixels_per_inch</code></em>,
+ <em class="parameter"><code><span class="type">double</span> y_pixels_per_inch</code></em>);</pre>
+<p>Set the horizontal and vertical resolution for image fallbacks.</p>
+<p>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).</p>
+<p>Some examples of natively vector-oriented backends are the ps, pdf,
+and svg backends.</p>
+<p>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.</p>
+<p>Note: The fallback resolution only takes effect at the time of
+completing a page (with <a class="link" href="cairo-cairo-t.html#cairo-show-page" title="cairo_show_page ()"><code class="function">cairo_show_page()</code></a> or <a class="link" href="cairo-cairo-t.html#cairo-copy-page" title="cairo_copy_page ()"><code class="function">cairo_copy_page()</code></a>) so
+there is currently no way to have more than one fallback resolution
+in effect on a single page.</p>
+<p>The default fallback resoultion is 300 pixels per inch in both
+dimensions.</p>
+<div class="refsect3">
+<a name="cairo-surface-set-fallback-resolution.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x_pixels_per_inch</p></td>
+<td class="parameter_description"><p>horizontal setting for pixels per inch</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y_pixels_per_inch</p></td>
+<td class="parameter_description"><p>vertical setting for pixels per inch</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-surface-get-fallback-resolution"></a><h3>cairo_surface_get_fallback_resolution ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_surface_get_fallback_resolution (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *x_pixels_per_inch</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *y_pixels_per_inch</code></em>);</pre>
+<p>This function returns the previous fallback resolution set by
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-set-fallback-resolution" title="cairo_surface_set_fallback_resolution ()"><code class="function">cairo_surface_set_fallback_resolution()</code></a>, or default fallback
+resolution if never set.</p>
+<div class="refsect3">
+<a name="cairo-surface-get-fallback-resolution.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x_pixels_per_inch</p></td>
+<td class="parameter_description"><p>horizontal pixels per inch</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y_pixels_per_inch</p></td>
+<td class="parameter_description"><p>vertical pixels per inch</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-surface-get-type"></a><h3>cairo_surface_get_type ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-type-t" title="enum cairo_surface_type_t"><span class="returnvalue">cairo_surface_type_t</span></a>
+cairo_surface_get_type (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
+<p>This function returns the type of the backend used to create
+a surface. See <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-type-t" title="enum cairo_surface_type_t"><span class="type">cairo_surface_type_t</span></a> for available types.</p>
+<div class="refsect3">
+<a name="cairo-surface-get-type.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-surface-get-type.returns"></a><h4>Returns</h4>
+<p> The type of <em class="parameter"><code>surface</code></em>
+.</p>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-surface-get-reference-count"></a><h3>cairo_surface_get_reference_count ()</h3>
+<pre class="programlisting">unsigned <span class="returnvalue">int</span>
+cairo_surface_get_reference_count (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
+<p>Returns the current reference count of <em class="parameter"><code>surface</code></em>
+.</p>
+<div class="refsect3">
+<a name="cairo-surface-get-reference-count.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-surface-get-reference-count.returns"></a><h4>Returns</h4>
+<p> the current reference count of <em class="parameter"><code>surface</code></em>
+. If the
+object is a nil object, 0 will be returned.</p>
+</div>
+<p class="since">Since: 1.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-surface-set-user-data"></a><h3>cairo_surface_set_user_data ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+cairo_surface_set_user_data (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-Types.html#cairo-user-data-key-t" title="cairo_user_data_key_t"><span class="type">cairo_user_data_key_t</span></a> *key</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-Types.html#cairo-destroy-func-t" title="cairo_destroy_func_t ()"><span class="type">cairo_destroy_func_t</span></a> destroy</code></em>);</pre>
+<p>Attach user data to <em class="parameter"><code>surface</code></em>
+. To remove user data from a surface,
+call this function with the key that was used to set it and <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+for <em class="parameter"><code>data</code></em>
+.</p>
+<div class="refsect3">
+<a name="cairo-surface-set-user-data.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>the address of a <a class="link" href="cairo-Types.html#cairo-user-data-key-t" title="cairo_user_data_key_t"><span class="type">cairo_user_data_key_t</span></a> to attach the user data to</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>the user data to attach to the surface</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>destroy</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-Types.html#cairo-destroy-func-t" title="cairo_destroy_func_t ()"><span class="type">cairo_destroy_func_t</span></a> which will be called when the
+surface is destroyed or when new user data is attached using the
+same key.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-surface-set-user-data.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> or <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a> if a
+slot could not be allocated for the user data.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-surface-get-user-data"></a><h3>cairo_surface_get_user_data ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> *
+cairo_surface_get_user_data (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-Types.html#cairo-user-data-key-t" title="cairo_user_data_key_t"><span class="type">cairo_user_data_key_t</span></a> *key</code></em>);</pre>
+<p>Return user data previously attached to <em class="parameter"><code>surface</code></em>
+ using the specified
+key. If no user data has been attached with the given key this
+function returns <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-surface-get-user-data.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>the address of the <a class="link" href="cairo-Types.html#cairo-user-data-key-t" title="cairo_user_data_key_t"><span class="type">cairo_user_data_key_t</span></a> the user data was
+attached to</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-surface-get-user-data.returns"></a><h4>Returns</h4>
+<p> the user data previously attached or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-surface-copy-page"></a><h3>cairo_surface_copy_page ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_surface_copy_page (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
+<p>Emits the current page for backends that support multiple pages,
+but doesn't clear it, so that the contents of the current page will
+be retained for the next page. Use <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-show-page" title="cairo_surface_show_page ()"><code class="function">cairo_surface_show_page()</code></a> if you
+want to get an empty page after the emission.</p>
+<p>There is a convenience function for this that takes a <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a>,
+namely <a class="link" href="cairo-cairo-t.html#cairo-copy-page" title="cairo_copy_page ()"><code class="function">cairo_copy_page()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-surface-copy-page.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-surface-show-page"></a><h3>cairo_surface_show_page ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_surface_show_page (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
+<p>Emits and clears the current page for backends that support multiple
+pages. Use <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-copy-page" title="cairo_surface_copy_page ()"><code class="function">cairo_surface_copy_page()</code></a> if you don't want to clear the page.</p>
+<p>There is a convenience function for this that takes a <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a>,
+namely <a class="link" href="cairo-cairo-t.html#cairo-show-page" title="cairo_show_page ()"><code class="function">cairo_show_page()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-surface-show-page.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <span class="type">cairo_Surface_t</span></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-surface-has-show-text-glyphs"></a><h3>cairo_surface_has_show_text_glyphs ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Types.html#cairo-bool-t" title="cairo_bool_t"><span class="returnvalue">cairo_bool_t</span></a>
+cairo_surface_has_show_text_glyphs (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre>
+<p>Returns whether the surface supports
+sophisticated <a class="link" href="cairo-text.html#cairo-show-text-glyphs" title="cairo_show_text_glyphs ()"><code class="function">cairo_show_text_glyphs()</code></a> operations. That is,
+whether it actually uses the provided text and cluster data
+to a <a class="link" href="cairo-text.html#cairo-show-text-glyphs" title="cairo_show_text_glyphs ()"><code class="function">cairo_show_text_glyphs()</code></a> call.</p>
+<p>Note: Even if this function returns <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>, a
+<a class="link" href="cairo-text.html#cairo-show-text-glyphs" title="cairo_show_text_glyphs ()"><code class="function">cairo_show_text_glyphs()</code></a> operation targeted at <em class="parameter"><code>surface</code></em>
+ will
+still succeed. It just will
+act like a <a class="link" href="cairo-text.html#cairo-show-glyphs" title="cairo_show_glyphs ()"><code class="function">cairo_show_glyphs()</code></a> operation. Users can use this
+function to avoid computing UTF-8 text and cluster mapping if the
+target surface does not use it.</p>
+<div class="refsect3">
+<a name="cairo-surface-has-show-text-glyphs.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-surface-has-show-text-glyphs.returns"></a><h4>Returns</h4>
+<p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>surface</code></em>
+supports
+<a class="link" href="cairo-text.html#cairo-show-text-glyphs" title="cairo_show_text_glyphs ()"><code class="function">cairo_show_text_glyphs()</code></a>, <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</p>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-surface-set-mime-data"></a><h3>cairo_surface_set_mime_data ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+cairo_surface_set_mime_data (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *mime_type</code></em>,
+ <em class="parameter"><code>const unsigned <span class="type">char</span> *data</code></em>,
+ <em class="parameter"><code><span class="type">unsigned long </span> length</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-Types.html#cairo-destroy-func-t" title="cairo_destroy_func_t ()"><span class="type">cairo_destroy_func_t</span></a> destroy</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *closure</code></em>);</pre>
+<p>Attach an image in the format <em class="parameter"><code>mime_type</code></em>
+ to <em class="parameter"><code>surface</code></em>
+. To remove
+the data from a surface, call this function with same mime type
+and <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> for <em class="parameter"><code>data</code></em>
+.</p>
+<p>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
+<em class="parameter"><code>surface</code></em>
+. This approach tends to be faster and requires less
+memory and disk space.</p>
+<p>The recognized MIME types are the following: <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JPEG:CAPS" title="CAIRO_MIME_TYPE_JPEG"><code class="literal">CAIRO_MIME_TYPE_JPEG</code></a>,
+<a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-PNG:CAPS" title="CAIRO_MIME_TYPE_PNG"><code class="literal">CAIRO_MIME_TYPE_PNG</code></a>, <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JP2:CAPS" title="CAIRO_MIME_TYPE_JP2"><code class="literal">CAIRO_MIME_TYPE_JP2</code></a>, <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-URI:CAPS" title="CAIRO_MIME_TYPE_URI"><code class="literal">CAIRO_MIME_TYPE_URI</code></a>,
+<a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-UNIQUE-ID:CAPS" title="CAIRO_MIME_TYPE_UNIQUE_ID"><code class="literal">CAIRO_MIME_TYPE_UNIQUE_ID</code></a>, <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2:CAPS" title="CAIRO_MIME_TYPE_JBIG2"><code class="literal">CAIRO_MIME_TYPE_JBIG2</code></a>,
+<a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL:CAPS" title="CAIRO_MIME_TYPE_JBIG2_GLOBAL"><code class="literal">CAIRO_MIME_TYPE_JBIG2_GLOBAL</code></a>, <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL-ID:CAPS" title="CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID"><code class="literal">CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID</code></a>,
+<a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX:CAPS" title="CAIRO_MIME_TYPE_CCITT_FAX"><code class="literal">CAIRO_MIME_TYPE_CCITT_FAX</code></a>, <a class="link" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS" title="CAIRO_MIME_TYPE_CCITT_FAX_PARAMS"><code class="literal">CAIRO_MIME_TYPE_CCITT_FAX_PARAMS</code></a>.</p>
+<p>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.</p>
+<p>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.</p>
+<div class="refsect3">
+<a name="cairo-surface-set-mime-data.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>mime_type</p></td>
+<td class="parameter_description"><p>the MIME type of the image data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>the image data to attach to the surface</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>length</p></td>
+<td class="parameter_description"><p>the length of the image data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>destroy</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-Types.html#cairo-destroy-func-t" title="cairo_destroy_func_t ()"><span class="type">cairo_destroy_func_t</span></a> which will be called when the
+surface is destroyed or when new image data is attached using the
+same mime type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>closure</p></td>
+<td class="parameter_description"><p>the data to be passed to the <em class="parameter"><code>destroy</code></em>
+notifier</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-surface-set-mime-data.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> or <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a> if a
+slot could not be allocated for the user data.</p>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-surface-get-mime-data"></a><h3>cairo_surface_get_mime_data ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_surface_get_mime_data (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *mime_type</code></em>,
+ <em class="parameter"><code>const unsigned <span class="type">char</span> **data</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">long</span> *length</code></em>);</pre>
+<p>Return mime data previously attached to <em class="parameter"><code>surface</code></em>
+ using the
+specified mime type. If no data has been attached with the given
+mime type, <em class="parameter"><code>data</code></em>
+ is set <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-surface-get-mime-data.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>mime_type</p></td>
+<td class="parameter_description"><p>the mime type of the image data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>the image data to attached to the surface</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>length</p></td>
+<td class="parameter_description"><p>the length of the image data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-surface-supports-mime-type"></a><h3>cairo_surface_supports_mime_type ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Types.html#cairo-bool-t" title="cairo_bool_t"><span class="returnvalue">cairo_bool_t</span></a>
+cairo_surface_supports_mime_type (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *mime_type</code></em>);</pre>
+<p>Return whether <em class="parameter"><code>surface</code></em>
+ supports <em class="parameter"><code>mime_type</code></em>
+.</p>
+<div class="refsect3">
+<a name="cairo-surface-supports-mime-type.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>mime_type</p></td>
+<td class="parameter_description"><p>the mime type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-surface-supports-mime-type.returns"></a><h4>Returns</h4>
+<p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>surface</code></em>
+supports
+<em class="parameter"><code>mime_type</code></em>
+, <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</p>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-surface-map-to-image"></a><h3>cairo_surface_map_to_image ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+cairo_surface_map_to_image (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-Types.html#cairo-rectangle-int-t" title="cairo_rectangle_int_t"><span class="type">cairo_rectangle_int_t</span></a> *extents</code></em>);</pre>
+<p>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 <em class="parameter"><code>extents</code></em>
+ or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> for the whole surface</p>
+<p>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 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-destroy" title="cairo_surface_destroy ()"><code class="function">cairo_surface_destroy()</code></a> or
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-finish" title="cairo_surface_finish ()"><code class="function">cairo_surface_finish()</code></a> on the resulting image surface results in
+undefined behavior. Changing the device transform of the image
+surface or of <em class="parameter"><code>surface</code></em>
+ before the image surface is unmapped results
+in undefined behavior.</p>
+<div class="refsect3">
+<a name="cairo-surface-map-to-image.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>an existing surface used to extract the image from</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>extents</p></td>
+<td class="parameter_description"><p>limit the extraction to an rectangular region</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-surface-map-to-image.returns"></a><h4>Returns</h4>
+<p> a pointer to the newly allocated image surface. The caller
+must use <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-unmap-image" title="cairo_surface_unmap_image ()"><code class="function">cairo_surface_unmap_image()</code></a> to destroy this image surface.</p>
+<p>This function always returns a valid pointer, but it will return a
+pointer to a "nil" surface if <em class="parameter"><code>other</code></em>
+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 <a class="link" href="cairo-Image-Surfaces.html#CAIRO-FORMAT-INVALID:CAPS"><code class="literal">CAIRO_FORMAT_INVALID</code></a>.</p>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-surface-unmap-image"></a><h3>cairo_surface_unmap_image ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_surface_unmap_image (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *image</code></em>);</pre>
+<p>Unmaps the image surface as returned from <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-map-to-image" title="cairo_surface_map_to_image ()"><code class="function">cairo_surface_map_to_image()</code></a>.</p>
+<p>The content of the image will be uploaded to the target surface.
+Afterwards, the image is destroyed.</p>
+<p>Using an image surface which wasn't returned by <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-map-to-image" title="cairo_surface_map_to_image ()"><code class="function">cairo_surface_map_to_image()</code></a>
+results in undefined behavior.</p>
+<div class="refsect3">
+<a name="cairo-surface-unmap-image.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>the surface passed to <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-map-to-image" title="cairo_surface_map_to_image ()"><code class="function">cairo_surface_map_to_image()</code></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>image</p></td>
+<td class="parameter_description"><p>the currently mapped image</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.12</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-cairo-surface-t.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="CAIRO-HAS-MIME-SURFACE:CAPS"></a><h3>CAIRO_HAS_MIME_SURFACE</h3>
+<pre class="programlisting">#define CAIRO_HAS_MIME_SURFACE 1
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="CAIRO-MIME-TYPE-CCITT-FAX:CAPS"></a><h3>CAIRO_MIME_TYPE_CCITT_FAX</h3>
+<pre class="programlisting">#define CAIRO_MIME_TYPE_CCITT_FAX "image/g3fax"
+</pre>
+<p>Group 3 or Group 4 CCITT facsimile encoding (International
+Telecommunication Union, Recommendations T.4 and T.6.)</p>
+<p class="since">Since: 1.16</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS"></a><h3>CAIRO_MIME_TYPE_CCITT_FAX_PARAMS</h3>
+<pre class="programlisting">#define CAIRO_MIME_TYPE_CCITT_FAX_PARAMS "application/x-cairo.ccitt.params"
+</pre>
+<p>Decode parameters for Group 3 or Group 4 CCITT facsimile encoding.
+See <a class="link" href="cairo-PDF-Surfaces.html#ccitt" title="CCITT Fax Images">CCITT Fax Images</a>.</p>
+<p class="since">Since: 1.16</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="CAIRO-MIME-TYPE-EPS:CAPS"></a><h3>CAIRO_MIME_TYPE_EPS</h3>
+<pre class="programlisting">#define CAIRO_MIME_TYPE_EPS "application/postscript"
+</pre>
+<p>Encapsulated PostScript file.
+<a class="ulink" href="http://wwwimages.adobe.com/content/dam/Adobe/endevnet/postscript/pdfs/5002.EPSF_Spec.pdf" target="_top">Encapsulated PostScript File Format Specification</a></p>
+<p class="since">Since: 1.16</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="CAIRO-MIME-TYPE-EPS-PARAMS:CAPS"></a><h3>CAIRO_MIME_TYPE_EPS_PARAMS</h3>
+<pre class="programlisting">#define CAIRO_MIME_TYPE_EPS_PARAMS "application/x-cairo.eps.params"
+</pre>
+<p>Embedding parameters Encapsulated PostScript data.
+See <a class="link" href="cairo-PostScript-Surfaces.html#eps" title="Embedding EPS files">Embedding EPS files</a>.</p>
+<p class="since">Since: 1.16</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="CAIRO-MIME-TYPE-JBIG2:CAPS"></a><h3>CAIRO_MIME_TYPE_JBIG2</h3>
+<pre class="programlisting">#define CAIRO_MIME_TYPE_JBIG2 "application/x-cairo.jbig2"
+</pre>
+<p>Joint Bi-level Image Experts Group image coding standard (ISO/IEC 11544).</p>
+<p class="since">Since: 1.14</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="CAIRO-MIME-TYPE-JBIG2-GLOBAL:CAPS"></a><h3>CAIRO_MIME_TYPE_JBIG2_GLOBAL</h3>
+<pre class="programlisting">#define CAIRO_MIME_TYPE_JBIG2_GLOBAL "application/x-cairo.jbig2-global"
+</pre>
+<p>Joint Bi-level Image Experts Group image coding standard (ISO/IEC 11544) global segment.</p>
+<p class="since">Since: 1.14</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="CAIRO-MIME-TYPE-JBIG2-GLOBAL-ID:CAPS"></a><h3>CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID</h3>
+<pre class="programlisting">#define CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID "application/x-cairo.jbig2-global-id"
+</pre>
+<p>An unique identifier shared by a JBIG2 global segment and all JBIG2 images
+that depend on the global segment.</p>
+<p class="since">Since: 1.14</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="CAIRO-MIME-TYPE-JP2:CAPS"></a><h3>CAIRO_MIME_TYPE_JP2</h3>
+<pre class="programlisting">#define CAIRO_MIME_TYPE_JP2 "image/jp2"
+</pre>
+<p>The Joint Photographic Experts Group (JPEG) 2000 image coding standard (ISO/IEC 15444-1).</p>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="CAIRO-MIME-TYPE-JPEG:CAPS"></a><h3>CAIRO_MIME_TYPE_JPEG</h3>
+<pre class="programlisting">#define CAIRO_MIME_TYPE_JPEG "image/jpeg"
+</pre>
+<p>The Joint Photographic Experts Group (JPEG) image coding standard (ISO/IEC 10918-1).</p>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="CAIRO-MIME-TYPE-PNG:CAPS"></a><h3>CAIRO_MIME_TYPE_PNG</h3>
+<pre class="programlisting">#define CAIRO_MIME_TYPE_PNG "image/png"
+</pre>
+<p>The Portable Network Graphics image file format (ISO/IEC 15948).</p>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="CAIRO-MIME-TYPE-URI:CAPS"></a><h3>CAIRO_MIME_TYPE_URI</h3>
+<pre class="programlisting">#define CAIRO_MIME_TYPE_URI "text/x-uri"
+</pre>
+<p>URI for an image file (unofficial MIME type).</p>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="CAIRO-MIME-TYPE-UNIQUE-ID:CAPS"></a><h3>CAIRO_MIME_TYPE_UNIQUE_ID</h3>
+<pre class="programlisting">#define CAIRO_MIME_TYPE_UNIQUE_ID "application/x-cairo.uuid"
+</pre>
+<p>Unique identifier for a surface (cairo specific MIME type). All surfaces with
+the same unique identifier will only be embedded once.</p>
+<p class="since">Since: 1.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-surface-t"></a><h3>cairo_surface_t</h3>
+<pre class="programlisting">typedef struct _cairo_surface cairo_surface_t;
+</pre>
+<p>A <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> represents an image, either as the destination
+of a drawing operation or as source when drawing onto another
+surface. To draw to a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a>, create a cairo context
+with the surface as the target, using <a class="link" href="cairo-cairo-t.html#cairo-create" title="cairo_create ()"><code class="function">cairo_create()</code></a>.</p>
+<p>There are different subtypes of <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> for
+different drawing backends; for example, <a class="link" href="cairo-Image-Surfaces.html#cairo-image-surface-create" title="cairo_image_surface_create ()"><code class="function">cairo_image_surface_create()</code></a>
+creates a bitmap image in memory.
+The type of a surface can be queried with <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-get-type" title="cairo_surface_get_type ()"><code class="function">cairo_surface_get_type()</code></a>.</p>
+<p>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,
+<a class="link" href="cairo-Image-Surfaces.html#cairo-image-surface-create" title="cairo_image_surface_create ()"><code class="function">cairo_image_surface_create()</code></a> and <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-create-similar" title="cairo_surface_create_similar ()"><code class="function">cairo_surface_create_similar()</code></a>.
+Alternatively, if the user passes in a reference to some backing storage
+and asks cairo to wrap that in a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a>, then the contents are
+not modified; for example, <a class="link" href="cairo-Image-Surfaces.html#cairo-image-surface-create-for-data" title="cairo_image_surface_create_for_data ()"><code class="function">cairo_image_surface_create_for_data()</code></a> and
+<a class="link" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-create" title="cairo_xlib_surface_create ()"><code class="function">cairo_xlib_surface_create()</code></a>.</p>
+<p>Memory management of <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> is done with
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-reference" title="cairo_surface_reference ()"><code class="function">cairo_surface_reference()</code></a> and <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-destroy" title="cairo_surface_destroy ()"><code class="function">cairo_surface_destroy()</code></a>.</p>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-content-t"></a><h3>enum cairo_content_t</h3>
+<p><a class="link" href="cairo-cairo-surface-t.html#cairo-content-t" title="enum cairo_content_t"><span class="type">cairo_content_t</span></a> is used to describe the content that a surface will
+contain, whether color information, alpha information (translucence
+vs. opacity), or both.</p>
+<p>Note: The large values here are designed to keep <a class="link" href="cairo-cairo-surface-t.html#cairo-content-t" title="enum cairo_content_t"><span class="type">cairo_content_t</span></a>
+values distinct from <a class="link" href="cairo-Image-Surfaces.html#cairo-format-t" title="enum cairo_format_t"><span class="type">cairo_format_t</span></a> values so that the
+implementation can detect the error if users confuse the two types.</p>
+<div class="refsect3">
+<a name="cairo-content-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-CONTENT-COLOR:CAPS"></a>CAIRO_CONTENT_COLOR</p></td>
+<td class="enum_member_description">
+<p>The surface will hold color content only. (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-CONTENT-ALPHA:CAPS"></a>CAIRO_CONTENT_ALPHA</p></td>
+<td class="enum_member_description">
+<p>The surface will hold alpha content only. (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-CONTENT-COLOR-ALPHA:CAPS"></a>CAIRO_CONTENT_COLOR_ALPHA</p></td>
+<td class="enum_member_description">
+<p>The surface will hold color and alpha content. (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-surface-type-t"></a><h3>enum cairo_surface_type_t</h3>
+<p><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-type-t" title="enum cairo_surface_type_t"><span class="type">cairo_surface_type_t</span></a> is used to describe the type of a given
+surface. The surface types are also known as "backends" or "surface
+backends" within cairo.</p>
+<p>The type of a surface is determined by the function used to create
+it, which will generally be of the form
+<code class="function">cairo_<span class="emphasis"><em>type</em></span>_surface_create()</code>,
+(though see <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-create-similar" title="cairo_surface_create_similar ()"><code class="function">cairo_surface_create_similar()</code></a> as well).</p>
+<p>The surface type can be queried with <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-get-type" title="cairo_surface_get_type ()"><code class="function">cairo_surface_get_type()</code></a></p>
+<p>The various <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> functions can be used with surfaces of
+any type, but some backends also provide type-specific functions
+that must only be called with a surface of the appropriate
+type. These functions have names that begin with
+<code class="literal">cairo_<span class="emphasis"><em>type</em></span>_surface</code> such as <a class="link" href="cairo-Image-Surfaces.html#cairo-image-surface-get-width" title="cairo_image_surface_get_width ()"><code class="function">cairo_image_surface_get_width()</code></a>.</p>
+<p>The behavior of calling a type-specific function with a surface of
+the wrong type is undefined.</p>
+<p>New entries may be added in future versions.</p>
+<div class="refsect3">
+<a name="cairo-surface-type-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-IMAGE:CAPS"></a>CAIRO_SURFACE_TYPE_IMAGE</p></td>
+<td class="enum_member_description">
+<p>The surface is of type image, since 1.2</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-PDF:CAPS"></a>CAIRO_SURFACE_TYPE_PDF</p></td>
+<td class="enum_member_description">
+<p>The surface is of type pdf, since 1.2</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-PS:CAPS"></a>CAIRO_SURFACE_TYPE_PS</p></td>
+<td class="enum_member_description">
+<p>The surface is of type ps, since 1.2</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-XLIB:CAPS"></a>CAIRO_SURFACE_TYPE_XLIB</p></td>
+<td class="enum_member_description">
+<p>The surface is of type xlib, since 1.2</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-XCB:CAPS"></a>CAIRO_SURFACE_TYPE_XCB</p></td>
+<td class="enum_member_description">
+<p>The surface is of type xcb, since 1.2</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-GLITZ:CAPS"></a>CAIRO_SURFACE_TYPE_GLITZ</p></td>
+<td class="enum_member_description">
+<p>The surface is of type glitz, since 1.2</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-QUARTZ:CAPS"></a>CAIRO_SURFACE_TYPE_QUARTZ</p></td>
+<td class="enum_member_description">
+<p>The surface is of type quartz, since 1.2</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-WIN32:CAPS"></a>CAIRO_SURFACE_TYPE_WIN32</p></td>
+<td class="enum_member_description">
+<p>The surface is of type win32, since 1.2</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-BEOS:CAPS"></a>CAIRO_SURFACE_TYPE_BEOS</p></td>
+<td class="enum_member_description">
+<p>The surface is of type beos, since 1.2</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-DIRECTFB:CAPS"></a>CAIRO_SURFACE_TYPE_DIRECTFB</p></td>
+<td class="enum_member_description">
+<p>The surface is of type directfb, since 1.2</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-SVG:CAPS"></a>CAIRO_SURFACE_TYPE_SVG</p></td>
+<td class="enum_member_description">
+<p>The surface is of type svg, since 1.2</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-OS2:CAPS"></a>CAIRO_SURFACE_TYPE_OS2</p></td>
+<td class="enum_member_description">
+<p>The surface is of type os2, since 1.4</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-WIN32-PRINTING:CAPS"></a>CAIRO_SURFACE_TYPE_WIN32_PRINTING</p></td>
+<td class="enum_member_description">
+<p>The surface is a win32 printing surface, since 1.6</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-QUARTZ-IMAGE:CAPS"></a>CAIRO_SURFACE_TYPE_QUARTZ_IMAGE</p></td>
+<td class="enum_member_description">
+<p>The surface is of type quartz_image, since 1.6</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-SCRIPT:CAPS"></a>CAIRO_SURFACE_TYPE_SCRIPT</p></td>
+<td class="enum_member_description">
+<p>The surface is of type script, since 1.10</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-QT:CAPS"></a>CAIRO_SURFACE_TYPE_QT</p></td>
+<td class="enum_member_description">
+<p>The surface is of type Qt, since 1.10</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-RECORDING:CAPS"></a>CAIRO_SURFACE_TYPE_RECORDING</p></td>
+<td class="enum_member_description">
+<p>The surface is of type recording, since 1.10</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-VG:CAPS"></a>CAIRO_SURFACE_TYPE_VG</p></td>
+<td class="enum_member_description">
+<p>The surface is a OpenVG surface, since 1.10</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-GL:CAPS"></a>CAIRO_SURFACE_TYPE_GL</p></td>
+<td class="enum_member_description">
+<p>The surface is of type OpenGL, since 1.10</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-DRM:CAPS"></a>CAIRO_SURFACE_TYPE_DRM</p></td>
+<td class="enum_member_description">
+<p>The surface is of type Direct Render Manager, since 1.10</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-TEE:CAPS"></a>CAIRO_SURFACE_TYPE_TEE</p></td>
+<td class="enum_member_description">
+<p>The surface is of type 'tee' (a multiplexing surface), since 1.10</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-XML:CAPS"></a>CAIRO_SURFACE_TYPE_XML</p></td>
+<td class="enum_member_description">
+<p>The surface is of type XML (for debugging), since 1.10</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-SKIA:CAPS"></a>CAIRO_SURFACE_TYPE_SKIA</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-SUBSURFACE:CAPS"></a>CAIRO_SURFACE_TYPE_SUBSURFACE</p></td>
+<td class="enum_member_description">
+<p>The surface is a subsurface created with
+ <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-create-for-rectangle" title="cairo_surface_create_for_rectangle ()"><code class="function">cairo_surface_create_for_rectangle()</code></a>, since 1.10</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-SURFACE-TYPE-COGL:CAPS"></a>CAIRO_SURFACE_TYPE_COGL</p></td>
+<td class="enum_member_description">
+<p>This surface is of type Cogl, since 1.12</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-cairo-surface-t.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a>, <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a></p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>cairo_t: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="cairo-drawing.html" title="Drawing">
+<link rel="prev" href="cairo-drawing.html" title="Drawing">
+<link rel="next" href="cairo-Paths.html" title="Paths">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+ <a href="#cairo-cairo-t.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="cairo-drawing.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="cairo-drawing.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="cairo-Paths.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="cairo-cairo-t"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="cairo-cairo-t.top_of_page"></a>cairo_t</span></h2>
+<p>cairo_t — The cairo drawing context</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="cairo-cairo-t.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="returnvalue">cairo_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-create" title="cairo_create ()">cairo_create</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="returnvalue">cairo_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-reference" title="cairo_reference ()">cairo_reference</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-destroy" title="cairo_destroy ()">cairo_destroy</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-status" title="cairo_status ()">cairo_status</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-save" title="cairo_save ()">cairo_save</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-restore" title="cairo_restore ()">cairo_restore</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-get-target" title="cairo_get_target ()">cairo_get_target</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-push-group" title="cairo_push_group ()">cairo_push_group</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-push-group-with-content" title="cairo_push_group_with_content ()">cairo_push_group_with_content</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="returnvalue">cairo_pattern_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-pop-group" title="cairo_pop_group ()">cairo_pop_group</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-pop-group-to-source" title="cairo_pop_group_to_source ()">cairo_pop_group_to_source</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-get-group-target" title="cairo_get_group_target ()">cairo_get_group_target</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-set-source-rgb" title="cairo_set_source_rgb ()">cairo_set_source_rgb</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-set-source-rgba" title="cairo_set_source_rgba ()">cairo_set_source_rgba</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-set-source" title="cairo_set_source ()">cairo_set_source</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-set-source-surface" title="cairo_set_source_surface ()">cairo_set_source_surface</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="returnvalue">cairo_pattern_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-get-source" title="cairo_get_source ()">cairo_get_source</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-set-antialias" title="cairo_set_antialias ()">cairo_set_antialias</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-t.html#cairo-antialias-t" title="enum cairo_antialias_t"><span class="returnvalue">cairo_antialias_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-get-antialias" title="cairo_get_antialias ()">cairo_get_antialias</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-set-dash" title="cairo_set_dash ()">cairo_set_dash</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-get-dash-count" title="cairo_get_dash_count ()">cairo_get_dash_count</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-get-dash" title="cairo_get_dash ()">cairo_get_dash</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-set-fill-rule" title="cairo_set_fill_rule ()">cairo_set_fill_rule</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-t.html#cairo-fill-rule-t" title="enum cairo_fill_rule_t"><span class="returnvalue">cairo_fill_rule_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-get-fill-rule" title="cairo_get_fill_rule ()">cairo_get_fill_rule</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-set-line-cap" title="cairo_set_line_cap ()">cairo_set_line_cap</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-t.html#cairo-line-cap-t" title="enum cairo_line_cap_t"><span class="returnvalue">cairo_line_cap_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-get-line-cap" title="cairo_get_line_cap ()">cairo_get_line_cap</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-set-line-join" title="cairo_set_line_join ()">cairo_set_line_join</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-t.html#cairo-line-join-t" title="enum cairo_line_join_t"><span class="returnvalue">cairo_line_join_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-get-line-join" title="cairo_get_line_join ()">cairo_get_line_join</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-set-line-width" title="cairo_set_line_width ()">cairo_set_line_width</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">double</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-get-line-width" title="cairo_get_line_width ()">cairo_get_line_width</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-set-miter-limit" title="cairo_set_miter_limit ()">cairo_set_miter_limit</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">double</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-get-miter-limit" title="cairo_get_miter_limit ()">cairo_get_miter_limit</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-set-operator" title="cairo_set_operator ()">cairo_set_operator</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-t.html#cairo-operator-t" title="enum cairo_operator_t"><span class="returnvalue">cairo_operator_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-get-operator" title="cairo_get_operator ()">cairo_get_operator</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-set-tolerance" title="cairo_set_tolerance ()">cairo_set_tolerance</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">double</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-get-tolerance" title="cairo_get_tolerance ()">cairo_get_tolerance</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-clip" title="cairo_clip ()">cairo_clip</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-clip-preserve" title="cairo_clip_preserve ()">cairo_clip_preserve</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-clip-extents" title="cairo_clip_extents ()">cairo_clip_extents</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Types.html#cairo-bool-t" title="cairo_bool_t"><span class="returnvalue">cairo_bool_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-in-clip" title="cairo_in_clip ()">cairo_in_clip</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-reset-clip" title="cairo_reset_clip ()">cairo_reset_clip</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-rectangle-list-destroy" title="cairo_rectangle_list_destroy ()">cairo_rectangle_list_destroy</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-t.html#cairo-rectangle-list-t" title="cairo_rectangle_list_t"><span class="returnvalue">cairo_rectangle_list_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-copy-clip-rectangle-list" title="cairo_copy_clip_rectangle_list ()">cairo_copy_clip_rectangle_list</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-fill" title="cairo_fill ()">cairo_fill</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-fill-preserve" title="cairo_fill_preserve ()">cairo_fill_preserve</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-fill-extents" title="cairo_fill_extents ()">cairo_fill_extents</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Types.html#cairo-bool-t" title="cairo_bool_t"><span class="returnvalue">cairo_bool_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-in-fill" title="cairo_in_fill ()">cairo_in_fill</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-mask" title="cairo_mask ()">cairo_mask</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-mask-surface" title="cairo_mask_surface ()">cairo_mask_surface</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-paint" title="cairo_paint ()">cairo_paint</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-paint-with-alpha" title="cairo_paint_with_alpha ()">cairo_paint_with_alpha</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-stroke" title="cairo_stroke ()">cairo_stroke</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-stroke-preserve" title="cairo_stroke_preserve ()">cairo_stroke_preserve</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-stroke-extents" title="cairo_stroke_extents ()">cairo_stroke_extents</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Types.html#cairo-bool-t" title="cairo_bool_t"><span class="returnvalue">cairo_bool_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-in-stroke" title="cairo_in_stroke ()">cairo_in_stroke</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-copy-page" title="cairo_copy_page ()">cairo_copy_page</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-show-page" title="cairo_show_page ()">cairo_show_page</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">unsigned <span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-get-reference-count" title="cairo_get_reference_count ()">cairo_get_reference_count</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-set-user-data" title="cairo_set_user_data ()">cairo_set_user_data</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-cairo-t.html#cairo-get-user-data" title="cairo_get_user_data ()">cairo_get_user_data</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-cairo-t.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t">cairo_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="cairo-cairo-t.html#cairo-antialias-t" title="enum cairo_antialias_t">cairo_antialias_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="cairo-cairo-t.html#cairo-fill-rule-t" title="enum cairo_fill_rule_t">cairo_fill_rule_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="cairo-cairo-t.html#cairo-line-cap-t" title="enum cairo_line_cap_t">cairo_line_cap_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="cairo-cairo-t.html#cairo-line-join-t" title="enum cairo_line_join_t">cairo_line_join_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="cairo-cairo-t.html#cairo-operator-t" title="enum cairo_operator_t">cairo_operator_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="cairo-cairo-t.html#cairo-rectangle-t" title="cairo_rectangle_t">cairo_rectangle_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="cairo-cairo-t.html#cairo-rectangle-list-t" title="cairo_rectangle_list_t">cairo_rectangle_list_t</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-cairo-t.description"></a><h2>Description</h2>
+<p><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> is the main object used when drawing with cairo. To
+draw with cairo, you create a <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a>, set the target surface,
+and drawing options for the <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a>, create shapes with
+functions like <a class="link" href="cairo-Paths.html#cairo-move-to" title="cairo_move_to ()"><code class="function">cairo_move_to()</code></a> and <a class="link" href="cairo-Paths.html#cairo-line-to" title="cairo_line_to ()"><code class="function">cairo_line_to()</code></a>, and then
+draw shapes with <a class="link" href="cairo-cairo-t.html#cairo-stroke" title="cairo_stroke ()"><code class="function">cairo_stroke()</code></a> or <a class="link" href="cairo-cairo-t.html#cairo-fill" title="cairo_fill ()"><code class="function">cairo_fill()</code></a>.</p>
+<p><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a>'s can be pushed to a stack via <a class="link" href="cairo-cairo-t.html#cairo-save" title="cairo_save ()"><code class="function">cairo_save()</code></a>.
+They may then safely be changed, without losing the current state.
+Use <a class="link" href="cairo-cairo-t.html#cairo-restore" title="cairo_restore ()"><code class="function">cairo_restore()</code></a> to restore to the saved state.</p>
+</div>
+<div class="refsect1">
+<a name="cairo-cairo-t.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="cairo-create"></a><h3>cairo_create ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="returnvalue">cairo_t</span></a> *
+cairo_create (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *target</code></em>);</pre>
+<p>Creates a new <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> with all graphics state parameters set to
+default values and with <em class="parameter"><code>target</code></em>
+ as a target surface. The target
+surface should be constructed with a backend-specific function such
+as <a class="link" href="cairo-Image-Surfaces.html#cairo-image-surface-create" title="cairo_image_surface_create ()"><code class="function">cairo_image_surface_create()</code></a> (or any other
+<code class="function">cairo_<span class="emphasis"><em>backend</em></span>_surface_create()</code>
+variant).</p>
+<p>This function references <em class="parameter"><code>target</code></em>
+, so you can immediately
+call <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-destroy" title="cairo_surface_destroy ()"><code class="function">cairo_surface_destroy()</code></a> on it if you don't need to
+maintain a separate reference to it.</p>
+<div class="refsect3">
+<a name="cairo-create.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>target</p></td>
+<td class="parameter_description"><p>target surface for the context</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-create.returns"></a><h4>Returns</h4>
+<p> a newly allocated <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> with a reference
+count of 1. The initial reference count should be released
+with <a class="link" href="cairo-cairo-t.html#cairo-destroy" title="cairo_destroy ()"><code class="function">cairo_destroy()</code></a> when you are done using the <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a>.
+This function never returns <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. If memory cannot be
+allocated, a special <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> object will be returned on
+which <a class="link" href="cairo-cairo-t.html#cairo-status" title="cairo_status ()"><code class="function">cairo_status()</code></a> returns <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a>. If
+you attempt to target a surface which does not support
+writing (such as <span class="type">cairo_mime_surface_t</span>) then a
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-WRITE-ERROR:CAPS"><code class="literal">CAIRO_STATUS_WRITE_ERROR</code></a> will be raised. You can use this
+object normally, but no drawing will be done.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-reference"></a><h3>cairo_reference ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="returnvalue">cairo_t</span></a> *
+cairo_reference (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>Increases the reference count on <em class="parameter"><code>cr</code></em>
+ by one. This prevents
+<em class="parameter"><code>cr</code></em>
+ from being destroyed until a matching call to <a class="link" href="cairo-cairo-t.html#cairo-destroy" title="cairo_destroy ()"><code class="function">cairo_destroy()</code></a>
+is made.</p>
+<p>Use <a class="link" href="cairo-cairo-t.html#cairo-get-reference-count" title="cairo_get_reference_count ()"><code class="function">cairo_get_reference_count()</code></a> to get the number of references to
+a <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a>.</p>
+<div class="refsect3">
+<a name="cairo-reference.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-reference.returns"></a><h4>Returns</h4>
+<p> the referenced <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a>.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-destroy"></a><h3>cairo_destroy ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_destroy (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>Decreases the reference count on <em class="parameter"><code>cr</code></em>
+ by one. If the result
+is zero, then <em class="parameter"><code>cr</code></em>
+ and all associated resources are freed.
+See <a class="link" href="cairo-cairo-t.html#cairo-reference" title="cairo_reference ()"><code class="function">cairo_reference()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-destroy.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-status"></a><h3>cairo_status ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+cairo_status (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>Checks whether an error has previously occurred for this context.</p>
+<div class="refsect3">
+<a name="cairo-status.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-status.returns"></a><h4>Returns</h4>
+<p> the current status of this context, see <a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="type">cairo_status_t</span></a></p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-save"></a><h3>cairo_save ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_save (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>Makes a copy of the current state of <em class="parameter"><code>cr</code></em>
+ and saves it
+on an internal stack of saved states for <em class="parameter"><code>cr</code></em>
+. When
+<a class="link" href="cairo-cairo-t.html#cairo-restore" title="cairo_restore ()"><code class="function">cairo_restore()</code></a> is called, <em class="parameter"><code>cr</code></em>
+ will be restored to
+the saved state. Multiple calls to <a class="link" href="cairo-cairo-t.html#cairo-save" title="cairo_save ()"><code class="function">cairo_save()</code></a> and
+<a class="link" href="cairo-cairo-t.html#cairo-restore" title="cairo_restore ()"><code class="function">cairo_restore()</code></a> can be nested; each call to <a class="link" href="cairo-cairo-t.html#cairo-restore" title="cairo_restore ()"><code class="function">cairo_restore()</code></a>
+restores the state from the matching paired <a class="link" href="cairo-cairo-t.html#cairo-save" title="cairo_save ()"><code class="function">cairo_save()</code></a>.</p>
+<p>It isn't necessary to clear all saved states before
+a <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> is freed. If the reference count of a <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a>
+drops to zero in response to a call to <a class="link" href="cairo-cairo-t.html#cairo-destroy" title="cairo_destroy ()"><code class="function">cairo_destroy()</code></a>,
+any saved states will be freed along with the <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a>.</p>
+<div class="refsect3">
+<a name="cairo-save.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-restore"></a><h3>cairo_restore ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_restore (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>Restores <em class="parameter"><code>cr</code></em>
+ to the state saved by a preceding call to
+<a class="link" href="cairo-cairo-t.html#cairo-save" title="cairo_save ()"><code class="function">cairo_save()</code></a> and removes that state from the stack of
+saved states.</p>
+<div class="refsect3">
+<a name="cairo-restore.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-get-target"></a><h3>cairo_get_target ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+cairo_get_target (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>Gets the target surface for the cairo context as passed to
+<a class="link" href="cairo-cairo-t.html#cairo-create" title="cairo_create ()"><code class="function">cairo_create()</code></a>.</p>
+<p>This function will always return a valid pointer, but the result
+can be a "nil" surface if <em class="parameter"><code>cr</code></em>
+ is already in an error state,
+(ie. <a class="link" href="cairo-cairo-t.html#cairo-status" title="cairo_status ()"><code class="function">cairo_status()</code></a> <code class="literal">!=</code> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a>).
+A nil surface is indicated by <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-status" title="cairo_surface_status ()"><code class="function">cairo_surface_status()</code></a>
+<code class="literal">!=</code> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-get-target.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-get-target.returns"></a><h4>Returns</h4>
+<p> the target surface. This object is owned by cairo. To
+keep a reference to it, you must call <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-reference" title="cairo_surface_reference ()"><code class="function">cairo_surface_reference()</code></a>.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-push-group"></a><h3>cairo_push_group ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_push_group (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>Temporarily redirects drawing to an intermediate surface known as a
+group. The redirection lasts until the group is completed by a call
+to <a class="link" href="cairo-cairo-t.html#cairo-pop-group" title="cairo_pop_group ()"><code class="function">cairo_pop_group()</code></a> or <a class="link" href="cairo-cairo-t.html#cairo-pop-group-to-source" title="cairo_pop_group_to_source ()"><code class="function">cairo_pop_group_to_source()</code></a>. 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).</p>
+<p>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.</p>
+<p>Groups can be nested arbitrarily deep by making balanced calls to
+<a class="link" href="cairo-cairo-t.html#cairo-push-group" title="cairo_push_group ()"><code class="function">cairo_push_group()</code></a>/<a class="link" href="cairo-cairo-t.html#cairo-pop-group" title="cairo_pop_group ()"><code class="function">cairo_pop_group()</code></a>. Each call pushes/pops the new
+target group onto/from a stack.</p>
+<p>The <a class="link" href="cairo-cairo-t.html#cairo-push-group" title="cairo_push_group ()"><code class="function">cairo_push_group()</code></a> function calls <a class="link" href="cairo-cairo-t.html#cairo-save" title="cairo_save ()"><code class="function">cairo_save()</code></a> so that any
+changes to the graphics state will not be visible outside the
+group, (the pop_group functions call <a class="link" href="cairo-cairo-t.html#cairo-restore" title="cairo_restore ()"><code class="function">cairo_restore()</code></a>).</p>
+<p>By default the intermediate group will have a content type of
+<a class="link" href="cairo-cairo-surface-t.html#CAIRO-CONTENT-COLOR-ALPHA:CAPS"><code class="literal">CAIRO_CONTENT_COLOR_ALPHA</code></a>. Other content types can be chosen for
+the group by using <a class="link" href="cairo-cairo-t.html#cairo-push-group-with-content" title="cairo_push_group_with_content ()"><code class="function">cairo_push_group_with_content()</code></a> instead.</p>
+<p>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:</p>
+<div class="informalexample">
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+ <tbody>
+ <tr>
+ <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7</pre></td>
+ <td class="listing_code"><pre class="programlisting"><span class="function"><a href="cairo-cairo-t.html#cairo-push-group">cairo_push_group</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-cairo-t.html#cairo-set-source">cairo_set_source</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> fill_pattern<span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-cairo-t.html#cairo-fill-preserve">cairo_fill_preserve</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-cairo-t.html#cairo-set-source">cairo_set_source</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> stroke_pattern<span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-cairo-t.html#cairo-stroke">cairo_stroke</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-cairo-t.html#cairo-pop-group-to-source">cairo_pop_group_to_source</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-cairo-t.html#cairo-paint-with-alpha">cairo_paint_with_alpha</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> alpha<span class="gtkdoc opt">);</span></pre></td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+
+<div class="refsect3">
+<a name="cairo-push-group.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-push-group-with-content"></a><h3>cairo_push_group_with_content ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_push_group_with_content (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-content-t" title="enum cairo_content_t"><span class="type">cairo_content_t</span></a> content</code></em>);</pre>
+<p>Temporarily redirects drawing to an intermediate surface known as a
+group. The redirection lasts until the group is completed by a call
+to <a class="link" href="cairo-cairo-t.html#cairo-pop-group" title="cairo_pop_group ()"><code class="function">cairo_pop_group()</code></a> or <a class="link" href="cairo-cairo-t.html#cairo-pop-group-to-source" title="cairo_pop_group_to_source ()"><code class="function">cairo_pop_group_to_source()</code></a>. 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).</p>
+<p>The group will have a content type of <em class="parameter"><code>content</code></em>
+. The ability to
+control this content type is the only distinction between this
+function and <a class="link" href="cairo-cairo-t.html#cairo-push-group" title="cairo_push_group ()"><code class="function">cairo_push_group()</code></a> which you should see for a more
+detailed description of group rendering.</p>
+<div class="refsect3">
+<a name="cairo-push-group-with-content.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>content</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-surface-t.html#cairo-content-t" title="enum cairo_content_t"><span class="type">cairo_content_t</span></a> indicating the type of group that
+will be created</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-pop-group"></a><h3>cairo_pop_group ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="returnvalue">cairo_pattern_t</span></a> *
+cairo_pop_group (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>Terminates the redirection begun by a call to <a class="link" href="cairo-cairo-t.html#cairo-push-group" title="cairo_push_group ()"><code class="function">cairo_push_group()</code></a> or
+<a class="link" href="cairo-cairo-t.html#cairo-push-group-with-content" title="cairo_push_group_with_content ()"><code class="function">cairo_push_group_with_content()</code></a> and returns a new pattern
+containing the results of all drawing operations performed to the
+group.</p>
+<p>The <a class="link" href="cairo-cairo-t.html#cairo-pop-group" title="cairo_pop_group ()"><code class="function">cairo_pop_group()</code></a> function calls <a class="link" href="cairo-cairo-t.html#cairo-restore" title="cairo_restore ()"><code class="function">cairo_restore()</code></a>, (balancing a
+call to <a class="link" href="cairo-cairo-t.html#cairo-save" title="cairo_save ()"><code class="function">cairo_save()</code></a> by the push_group function), so that any
+changes to the graphics state will not be visible outside the
+group.</p>
+<div class="refsect3">
+<a name="cairo-pop-group.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-pop-group.returns"></a><h4>Returns</h4>
+<p> 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
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-destroy" title="cairo_pattern_destroy ()"><code class="function">cairo_pattern_destroy()</code></a> when finished with it.</p>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-pop-group-to-source"></a><h3>cairo_pop_group_to_source ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_pop_group_to_source (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>Terminates the redirection begun by a call to <a class="link" href="cairo-cairo-t.html#cairo-push-group" title="cairo_push_group ()"><code class="function">cairo_push_group()</code></a> or
+<a class="link" href="cairo-cairo-t.html#cairo-push-group-with-content" title="cairo_push_group_with_content ()"><code class="function">cairo_push_group_with_content()</code></a> and installs the resulting pattern
+as the source pattern in the given cairo context.</p>
+<p>The behavior of this function is equivalent to the sequence of
+operations:</p>
+<div class="informalexample">
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+ <tbody>
+ <tr>
+ <td class="listing_lines" align="right"><pre>1
+2
+3</pre></td>
+ <td class="listing_code"><pre class="programlisting">cairo_pattern_t <span class="gtkdoc opt">*</span>group <span class="gtkdoc opt">=</span> <span class="function"><a href="cairo-cairo-t.html#cairo-pop-group">cairo_pop_group</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-cairo-t.html#cairo-set-source">cairo_set_source</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> group<span class="gtkdoc opt">);</span>
+<span class="function"><a href="cairo-cairo-pattern-t.html#cairo-pattern-destroy">cairo_pattern_destroy</a></span> <span class="gtkdoc opt">(</span>group<span class="gtkdoc opt">);</span></pre></td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+
+<p>but is more convenient as their is no need for a variable to store
+the short-lived pointer to the pattern.</p>
+<p>The <a class="link" href="cairo-cairo-t.html#cairo-pop-group" title="cairo_pop_group ()"><code class="function">cairo_pop_group()</code></a> function calls <a class="link" href="cairo-cairo-t.html#cairo-restore" title="cairo_restore ()"><code class="function">cairo_restore()</code></a>, (balancing a
+call to <a class="link" href="cairo-cairo-t.html#cairo-save" title="cairo_save ()"><code class="function">cairo_save()</code></a> by the push_group function), so that any
+changes to the graphics state will not be visible outside the
+group.</p>
+<div class="refsect3">
+<a name="cairo-pop-group-to-source.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-get-group-target"></a><h3>cairo_get_group_target ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> *
+cairo_get_group_target (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>Gets the current destination surface for the context. This is either
+the original target surface as passed to <a class="link" href="cairo-cairo-t.html#cairo-create" title="cairo_create ()"><code class="function">cairo_create()</code></a> or the target
+surface for the current group as started by the most recent call to
+<a class="link" href="cairo-cairo-t.html#cairo-push-group" title="cairo_push_group ()"><code class="function">cairo_push_group()</code></a> or <a class="link" href="cairo-cairo-t.html#cairo-push-group-with-content" title="cairo_push_group_with_content ()"><code class="function">cairo_push_group_with_content()</code></a>.</p>
+<p>This function will always return a valid pointer, but the result
+can be a "nil" surface if <em class="parameter"><code>cr</code></em>
+ is already in an error state,
+(ie. <a class="link" href="cairo-cairo-t.html#cairo-status" title="cairo_status ()"><code class="function">cairo_status()</code></a> <code class="literal">!=</code> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a>).
+A nil surface is indicated by <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-status" title="cairo_surface_status ()"><code class="function">cairo_surface_status()</code></a>
+<code class="literal">!=</code> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-get-group-target.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-get-group-target.returns"></a><h4>Returns</h4>
+<p> the target surface. This object is owned by cairo. To
+keep a reference to it, you must call <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-reference" title="cairo_surface_reference ()"><code class="function">cairo_surface_reference()</code></a>.</p>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-set-source-rgb"></a><h3>cairo_set_source_rgb ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_set_source_rgb (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><span class="type">double</span> red</code></em>,
+ <em class="parameter"><code><span class="type">double</span> green</code></em>,
+ <em class="parameter"><code><span class="type">double</span> blue</code></em>);</pre>
+<p>Sets the source pattern within <em class="parameter"><code>cr</code></em>
+ to an opaque color. This opaque
+color will then be used for any subsequent drawing operation until
+a new source pattern is set.</p>
+<p>The color components are floating point numbers in the range 0 to</p>
+<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>If the values passed in are outside that range, they will be
+clamped.</p></li></ol></div>
+<p>The default source pattern is opaque black, (that is, it is
+equivalent to cairo_set_source_rgb(cr, 0.0, 0.0, 0.0)).</p>
+<div class="refsect3">
+<a name="cairo-set-source-rgb.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>red</p></td>
+<td class="parameter_description"><p>red component of color</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>green</p></td>
+<td class="parameter_description"><p>green component of color</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>blue</p></td>
+<td class="parameter_description"><p>blue component of color</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-set-source-rgba"></a><h3>cairo_set_source_rgba ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_set_source_rgba (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><span class="type">double</span> red</code></em>,
+ <em class="parameter"><code><span class="type">double</span> green</code></em>,
+ <em class="parameter"><code><span class="type">double</span> blue</code></em>,
+ <em class="parameter"><code><span class="type">double</span> alpha</code></em>);</pre>
+<p>Sets the source pattern within <em class="parameter"><code>cr</code></em>
+ to a translucent color. This
+color will then be used for any subsequent drawing operation until
+a new source pattern is set.</p>
+<p>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.</p>
+<p>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)).</p>
+<div class="refsect3">
+<a name="cairo-set-source-rgba.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>red</p></td>
+<td class="parameter_description"><p>red component of color</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>green</p></td>
+<td class="parameter_description"><p>green component of color</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>blue</p></td>
+<td class="parameter_description"><p>blue component of color</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>alpha</p></td>
+<td class="parameter_description"><p>alpha component of color</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-set-source"></a><h3>cairo_set_source ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_set_source (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *source</code></em>);</pre>
+<p>Sets the source pattern within <em class="parameter"><code>cr</code></em>
+ to <em class="parameter"><code>source</code></em>
+. This pattern
+will then be used for any subsequent drawing operation until a new
+source pattern is set.</p>
+<p>Note: The pattern's transformation matrix will be locked to the
+user space in effect at the time of <a class="link" href="cairo-cairo-t.html#cairo-set-source" title="cairo_set_source ()"><code class="function">cairo_set_source()</code></a>. This means
+that further modifications of the current transformation matrix
+will not affect the source pattern. See <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-set-matrix" title="cairo_pattern_set_matrix ()"><code class="function">cairo_pattern_set_matrix()</code></a>.</p>
+<p>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)).</p>
+<div class="refsect3">
+<a name="cairo-set-source.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>source</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> to be used as the source for
+subsequent drawing operations.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-set-source-surface"></a><h3>cairo_set_source_surface ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_set_source_surface (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
+ <em class="parameter"><code><span class="type">double</span> x</code></em>,
+ <em class="parameter"><code><span class="type">double</span> y</code></em>);</pre>
+<p>This is a convenience function for creating a pattern from <em class="parameter"><code>surface</code></em>
+
+and setting it as the source in <em class="parameter"><code>cr</code></em>
+ with <a class="link" href="cairo-cairo-t.html#cairo-set-source" title="cairo_set_source ()"><code class="function">cairo_set_source()</code></a>.</p>
+<p>The <em class="parameter"><code>x</code></em>
+ and <em class="parameter"><code>y</code></em>
+ 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
+<em class="parameter"><code>x</code></em>
+ and <em class="parameter"><code>y</code></em>
+ parameters are negated and then set as translation values
+in the pattern matrix.</p>
+<p>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 <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-create-for-surface" title="cairo_pattern_create_for_surface ()"><code class="function">cairo_pattern_create_for_surface()</code></a>.
+The resulting pattern can be queried with <a class="link" href="cairo-cairo-t.html#cairo-get-source" title="cairo_get_source ()"><code class="function">cairo_get_source()</code></a> so
+that these attributes can be modified if desired, (eg. to create a
+repeating pattern with <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-set-extend" title="cairo_pattern_set_extend ()"><code class="function">cairo_pattern_set_extend()</code></a>).</p>
+<div class="refsect3">
+<a name="cairo-set-source-surface.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a surface to be used to set the source pattern</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>User-space X coordinate for surface origin</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>User-space Y coordinate for surface origin</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-get-source"></a><h3>cairo_get_source ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="returnvalue">cairo_pattern_t</span></a> *
+cairo_get_source (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>Gets the current source pattern for <em class="parameter"><code>cr</code></em>
+.</p>
+<div class="refsect3">
+<a name="cairo-get-source.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-get-source.returns"></a><h4>Returns</h4>
+<p> the current source pattern. This object is owned by
+cairo. To keep a reference to it, you must call
+<a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-reference" title="cairo_pattern_reference ()"><code class="function">cairo_pattern_reference()</code></a>.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-set-antialias"></a><h3>cairo_set_antialias ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_set_antialias (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-antialias-t" title="enum cairo_antialias_t"><span class="type">cairo_antialias_t</span></a> antialias</code></em>);</pre>
+<p>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
+<a class="link" href="cairo-cairo-t.html#CAIRO-ANTIALIAS-SUBPIXEL:CAPS"><code class="literal">CAIRO_ANTIALIAS_SUBPIXEL</code></a> when drawing shapes.</p>
+<p>Note that this option does not affect text rendering, instead see
+<a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-set-antialias" title="cairo_font_options_set_antialias ()"><code class="function">cairo_font_options_set_antialias()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-set-antialias.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>antialias</p></td>
+<td class="parameter_description"><p>the new antialiasing mode</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-get-antialias"></a><h3>cairo_get_antialias ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-t.html#cairo-antialias-t" title="enum cairo_antialias_t"><span class="returnvalue">cairo_antialias_t</span></a>
+cairo_get_antialias (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>Gets the current shape antialiasing mode, as set by
+<a class="link" href="cairo-cairo-t.html#cairo-set-antialias" title="cairo_set_antialias ()"><code class="function">cairo_set_antialias()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-get-antialias.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-get-antialias.returns"></a><h4>Returns</h4>
+<p> the current shape antialiasing mode.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-set-dash"></a><h3>cairo_set_dash ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_set_dash (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code>const <span class="type">double</span> *dashes</code></em>,
+ <em class="parameter"><code><span class="type">int</span> num_dashes</code></em>,
+ <em class="parameter"><code><span class="type">double</span> offset</code></em>);</pre>
+<p>Sets the dash pattern to be used by <a class="link" href="cairo-cairo-t.html#cairo-stroke" title="cairo_stroke ()"><code class="function">cairo_stroke()</code></a>. A dash pattern
+is specified by <em class="parameter"><code>dashes</code></em>
+, an array of positive values. Each value
+provides the length of alternate "on" and "off" portions of the
+stroke. The <em class="parameter"><code>offset</code></em>
+ specifies an offset into the pattern at which
+the stroke begins.</p>
+<p>Each "on" segment will have caps applied as if the segment were a
+separate sub-path. In particular, it is valid to use an "on" length
+of 0.0 with <a class="link" href="cairo-cairo-t.html#CAIRO-LINE-CAP-ROUND:CAPS"><code class="literal">CAIRO_LINE_CAP_ROUND</code></a> or <a class="link" href="cairo-cairo-t.html#CAIRO-LINE-CAP-SQUARE:CAPS"><code class="literal">CAIRO_LINE_CAP_SQUARE</code></a> in order
+to distributed dots or squares along a path.</p>
+<p>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 <a class="link" href="cairo-cairo-t.html#cairo-set-dash" title="cairo_set_dash ()"><code class="function">cairo_set_dash()</code></a>.</p>
+<p>If <em class="parameter"><code>num_dashes</code></em>
+ is 0 dashing is disabled.</p>
+<p>If <em class="parameter"><code>num_dashes</code></em>
+ is 1 a symmetric pattern is assumed with alternating
+on and off portions of the size specified by the single value in
+<em class="parameter"><code>dashes</code></em>
+.</p>
+<p>If any value in <em class="parameter"><code>dashes</code></em>
+ is negative, or if all values are 0, then
+<em class="parameter"><code>cr</code></em>
+ will be put into an error state with a status of
+<a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-INVALID-DASH:CAPS"><code class="literal">CAIRO_STATUS_INVALID_DASH</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-set-dash.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dashes</p></td>
+<td class="parameter_description"><p>an array specifying alternate lengths of on and off stroke portions</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>num_dashes</p></td>
+<td class="parameter_description"><p>the length of the dashes array</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>offset</p></td>
+<td class="parameter_description"><p>an offset into the dash pattern at which the stroke should start</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-get-dash-count"></a><h3>cairo_get_dash_count ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+cairo_get_dash_count (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>This function returns the length of the dash array in <em class="parameter"><code>cr</code></em>
+ (0 if dashing
+is not currently in effect).</p>
+<p>See also <a class="link" href="cairo-cairo-t.html#cairo-set-dash" title="cairo_set_dash ()"><code class="function">cairo_set_dash()</code></a> and <a class="link" href="cairo-cairo-t.html#cairo-get-dash" title="cairo_get_dash ()"><code class="function">cairo_get_dash()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-get-dash-count.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-get-dash-count.returns"></a><h4>Returns</h4>
+<p> the length of the dash array, or 0 if no dash array set.</p>
+</div>
+<p class="since">Since: 1.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-get-dash"></a><h3>cairo_get_dash ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_get_dash (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *dashes</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *offset</code></em>);</pre>
+<p>Gets the current dash array. If not <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, <em class="parameter"><code>dashes</code></em>
+ should be big
+enough to hold at least the number of values returned by
+<a class="link" href="cairo-cairo-t.html#cairo-get-dash-count" title="cairo_get_dash_count ()"><code class="function">cairo_get_dash_count()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-get-dash.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dashes</p></td>
+<td class="parameter_description"><p>return value for the dash array, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>offset</p></td>
+<td class="parameter_description"><p>return value for the current dash offset, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-set-fill-rule"></a><h3>cairo_set_fill_rule ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_set_fill_rule (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-fill-rule-t" title="enum cairo_fill_rule_t"><span class="type">cairo_fill_rule_t</span></a> fill_rule</code></em>);</pre>
+<p>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 <a class="link" href="cairo-cairo-t.html#cairo-fill" title="cairo_fill ()"><code class="function">cairo_fill()</code></a> and <a class="link" href="cairo-cairo-t.html#cairo-clip" title="cairo_clip ()"><code class="function">cairo_clip()</code></a>. See <a class="link" href="cairo-cairo-t.html#cairo-fill-rule-t" title="enum cairo_fill_rule_t"><span class="type">cairo_fill_rule_t</span></a> for details
+on the semantics of each available fill rule.</p>
+<p>The default fill rule is <a class="link" href="cairo-cairo-t.html#CAIRO-FILL-RULE-WINDING:CAPS"><code class="literal">CAIRO_FILL_RULE_WINDING</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-set-fill-rule.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>fill_rule</p></td>
+<td class="parameter_description"><p>a fill rule, specified as a <a class="link" href="cairo-cairo-t.html#cairo-fill-rule-t" title="enum cairo_fill_rule_t"><span class="type">cairo_fill_rule_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-get-fill-rule"></a><h3>cairo_get_fill_rule ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-t.html#cairo-fill-rule-t" title="enum cairo_fill_rule_t"><span class="returnvalue">cairo_fill_rule_t</span></a>
+cairo_get_fill_rule (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>Gets the current fill rule, as set by <a class="link" href="cairo-cairo-t.html#cairo-set-fill-rule" title="cairo_set_fill_rule ()"><code class="function">cairo_set_fill_rule()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-get-fill-rule.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-get-fill-rule.returns"></a><h4>Returns</h4>
+<p> the current fill rule.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-set-line-cap"></a><h3>cairo_set_line_cap ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_set_line_cap (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-line-cap-t" title="enum cairo_line_cap_t"><span class="type">cairo_line_cap_t</span></a> line_cap</code></em>);</pre>
+<p>Sets the current line cap style within the cairo context. See
+<a class="link" href="cairo-cairo-t.html#cairo-line-cap-t" title="enum cairo_line_cap_t"><span class="type">cairo_line_cap_t</span></a> for details about how the available line cap
+styles are drawn.</p>
+<p>As with the other stroke parameters, the current line cap style is
+examined by <a class="link" href="cairo-cairo-t.html#cairo-stroke" title="cairo_stroke ()"><code class="function">cairo_stroke()</code></a>, <a class="link" href="cairo-cairo-t.html#cairo-stroke-extents" title="cairo_stroke_extents ()"><code class="function">cairo_stroke_extents()</code></a>, and
+<code class="function">cairo_stroke_to_path()</code>, but does not have any effect during path
+construction.</p>
+<p>The default line cap style is <a class="link" href="cairo-cairo-t.html#CAIRO-LINE-CAP-BUTT:CAPS"><code class="literal">CAIRO_LINE_CAP_BUTT</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-set-line-cap.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>line_cap</p></td>
+<td class="parameter_description"><p>a line cap style</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-get-line-cap"></a><h3>cairo_get_line_cap ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-t.html#cairo-line-cap-t" title="enum cairo_line_cap_t"><span class="returnvalue">cairo_line_cap_t</span></a>
+cairo_get_line_cap (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>Gets the current line cap style, as set by <a class="link" href="cairo-cairo-t.html#cairo-set-line-cap" title="cairo_set_line_cap ()"><code class="function">cairo_set_line_cap()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-get-line-cap.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-get-line-cap.returns"></a><h4>Returns</h4>
+<p> the current line cap style.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-set-line-join"></a><h3>cairo_set_line_join ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_set_line_join (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-line-join-t" title="enum cairo_line_join_t"><span class="type">cairo_line_join_t</span></a> line_join</code></em>);</pre>
+<p>Sets the current line join style within the cairo context. See
+<a class="link" href="cairo-cairo-t.html#cairo-line-join-t" title="enum cairo_line_join_t"><span class="type">cairo_line_join_t</span></a> for details about how the available line join
+styles are drawn.</p>
+<p>As with the other stroke parameters, the current line join style is
+examined by <a class="link" href="cairo-cairo-t.html#cairo-stroke" title="cairo_stroke ()"><code class="function">cairo_stroke()</code></a>, <a class="link" href="cairo-cairo-t.html#cairo-stroke-extents" title="cairo_stroke_extents ()"><code class="function">cairo_stroke_extents()</code></a>, and
+<code class="function">cairo_stroke_to_path()</code>, but does not have any effect during path
+construction.</p>
+<p>The default line join style is <a class="link" href="cairo-cairo-t.html#CAIRO-LINE-JOIN-MITER:CAPS"><code class="literal">CAIRO_LINE_JOIN_MITER</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-set-line-join.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>line_join</p></td>
+<td class="parameter_description"><p>a line join style</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-get-line-join"></a><h3>cairo_get_line_join ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-t.html#cairo-line-join-t" title="enum cairo_line_join_t"><span class="returnvalue">cairo_line_join_t</span></a>
+cairo_get_line_join (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>Gets the current line join style, as set by <a class="link" href="cairo-cairo-t.html#cairo-set-line-join" title="cairo_set_line_join ()"><code class="function">cairo_set_line_join()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-get-line-join.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-get-line-join.returns"></a><h4>Returns</h4>
+<p> the current line join style.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-set-line-width"></a><h3>cairo_set_line_width ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_set_line_width (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><span class="type">double</span> width</code></em>);</pre>
+<p>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).</p>
+<p>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 <a class="link" href="cairo-cairo-t.html#cairo-set-line-width" title="cairo_set_line_width ()"><code class="function">cairo_set_line_width()</code></a>. The simplest usage
+makes both of these spaces identical. That is, if there is no
+change to the CTM between a call to <a class="link" href="cairo-cairo-t.html#cairo-set-line-width" title="cairo_set_line_width ()"><code class="function">cairo_set_line_width()</code></a> and the
+stroking operation, then one can just pass user-space values to
+<a class="link" href="cairo-cairo-t.html#cairo-set-line-width" title="cairo_set_line_width ()"><code class="function">cairo_set_line_width()</code></a> and ignore this note.</p>
+<p>As with the other stroke parameters, the current line width is
+examined by <a class="link" href="cairo-cairo-t.html#cairo-stroke" title="cairo_stroke ()"><code class="function">cairo_stroke()</code></a>, <a class="link" href="cairo-cairo-t.html#cairo-stroke-extents" title="cairo_stroke_extents ()"><code class="function">cairo_stroke_extents()</code></a>, and
+<code class="function">cairo_stroke_to_path()</code>, but does not have any effect during path
+construction.</p>
+<p>The default line width value is 2.0.</p>
+<div class="refsect3">
+<a name="cairo-set-line-width.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>width</p></td>
+<td class="parameter_description"><p>a line width</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-get-line-width"></a><h3>cairo_get_line_width ()</h3>
+<pre class="programlisting"><span class="returnvalue">double</span>
+cairo_get_line_width (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>This function returns the current line width value exactly as set by
+<a class="link" href="cairo-cairo-t.html#cairo-set-line-width" title="cairo_set_line_width ()"><code class="function">cairo_set_line_width()</code></a>. Note that the value is unchanged even if
+the CTM has changed between the calls to <a class="link" href="cairo-cairo-t.html#cairo-set-line-width" title="cairo_set_line_width ()"><code class="function">cairo_set_line_width()</code></a> and
+<a class="link" href="cairo-cairo-t.html#cairo-get-line-width" title="cairo_get_line_width ()"><code class="function">cairo_get_line_width()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-get-line-width.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-get-line-width.returns"></a><h4>Returns</h4>
+<p> the current line width.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-set-miter-limit"></a><h3>cairo_set_miter_limit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_set_miter_limit (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><span class="type">double</span> limit</code></em>);</pre>
+<p>Sets the current miter limit within the cairo context.</p>
+<p>If the current line join style is set to <a class="link" href="cairo-cairo-t.html#CAIRO-LINE-JOIN-MITER:CAPS"><code class="literal">CAIRO_LINE_JOIN_MITER</code></a>
+(see <a class="link" href="cairo-cairo-t.html#cairo-set-line-join" title="cairo_set_line_join ()"><code class="function">cairo_set_line_join()</code></a>), 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.</p>
+<p>As with the other stroke parameters, the current line miter limit is
+examined by <a class="link" href="cairo-cairo-t.html#cairo-stroke" title="cairo_stroke ()"><code class="function">cairo_stroke()</code></a>, <a class="link" href="cairo-cairo-t.html#cairo-stroke-extents" title="cairo_stroke_extents ()"><code class="function">cairo_stroke_extents()</code></a>, and
+<code class="function">cairo_stroke_to_path()</code>, but does not have any effect during path
+construction.</p>
+<p>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.</p>
+<p>A miter limit for a desired angle can be computed as: miter limit =
+1/sin(angle/2)</p>
+<div class="refsect3">
+<a name="cairo-set-miter-limit.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>limit</p></td>
+<td class="parameter_description"><p>miter limit to set</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-get-miter-limit"></a><h3>cairo_get_miter_limit ()</h3>
+<pre class="programlisting"><span class="returnvalue">double</span>
+cairo_get_miter_limit (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>Gets the current miter limit, as set by <a class="link" href="cairo-cairo-t.html#cairo-set-miter-limit" title="cairo_set_miter_limit ()"><code class="function">cairo_set_miter_limit()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-get-miter-limit.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-get-miter-limit.returns"></a><h4>Returns</h4>
+<p> the current miter limit.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-set-operator"></a><h3>cairo_set_operator ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_set_operator (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-operator-t" title="enum cairo_operator_t"><span class="type">cairo_operator_t</span></a> op</code></em>);</pre>
+<p>Sets the compositing operator to be used for all drawing
+operations. See <a class="link" href="cairo-cairo-t.html#cairo-operator-t" title="enum cairo_operator_t"><span class="type">cairo_operator_t</span></a> for details on the semantics of
+each available compositing operator.</p>
+<p>The default operator is <a class="link" href="cairo-cairo-t.html#CAIRO-OPERATOR-OVER:CAPS"><code class="literal">CAIRO_OPERATOR_OVER</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-set-operator.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>op</p></td>
+<td class="parameter_description"><p>a compositing operator, specified as a <a class="link" href="cairo-cairo-t.html#cairo-operator-t" title="enum cairo_operator_t"><span class="type">cairo_operator_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-get-operator"></a><h3>cairo_get_operator ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-t.html#cairo-operator-t" title="enum cairo_operator_t"><span class="returnvalue">cairo_operator_t</span></a>
+cairo_get_operator (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>Gets the current compositing operator for a cairo context.</p>
+<div class="refsect3">
+<a name="cairo-get-operator.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-get-operator.returns"></a><h4>Returns</h4>
+<p> the current compositing operator.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-set-tolerance"></a><h3>cairo_set_tolerance ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_set_tolerance (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><span class="type">double</span> tolerance</code></em>);</pre>
+<p>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 <em class="parameter"><code>tolerance</code></em>
+. 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 <em class="parameter"><code>tolerance</code></em>
+ is restricted to the smallest
+representable internal value.</p>
+<div class="refsect3">
+<a name="cairo-set-tolerance.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>tolerance</p></td>
+<td class="parameter_description"><p>the tolerance, in device units (typically pixels)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-get-tolerance"></a><h3>cairo_get_tolerance ()</h3>
+<pre class="programlisting"><span class="returnvalue">double</span>
+cairo_get_tolerance (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>Gets the current tolerance value, as set by <a class="link" href="cairo-cairo-t.html#cairo-set-tolerance" title="cairo_set_tolerance ()"><code class="function">cairo_set_tolerance()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-get-tolerance.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-get-tolerance.returns"></a><h4>Returns</h4>
+<p> the current tolerance value.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-clip"></a><h3>cairo_clip ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_clip (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>Establishes a new clip region by intersecting the current clip
+region with the current path as it would be filled by <a class="link" href="cairo-cairo-t.html#cairo-fill" title="cairo_fill ()"><code class="function">cairo_fill()</code></a>
+and according to the current fill rule (see <a class="link" href="cairo-cairo-t.html#cairo-set-fill-rule" title="cairo_set_fill_rule ()"><code class="function">cairo_set_fill_rule()</code></a>).</p>
+<p>After <a class="link" href="cairo-cairo-t.html#cairo-clip" title="cairo_clip ()"><code class="function">cairo_clip()</code></a>, the current path will be cleared from the cairo
+context.</p>
+<p>The current clip region affects all drawing operations by
+effectively masking out any changes to the surface that are outside
+the current clip region.</p>
+<p>Calling <a class="link" href="cairo-cairo-t.html#cairo-clip" title="cairo_clip ()"><code class="function">cairo_clip()</code></a> 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 <a class="link" href="cairo-cairo-t.html#cairo-clip" title="cairo_clip ()"><code class="function">cairo_clip()</code></a> within a <a class="link" href="cairo-cairo-t.html#cairo-save" title="cairo_save ()"><code class="function">cairo_save()</code></a>/<a class="link" href="cairo-cairo-t.html#cairo-restore" title="cairo_restore ()"><code class="function">cairo_restore()</code></a>
+pair. The only other means of increasing the size of the clip
+region is <a class="link" href="cairo-cairo-t.html#cairo-reset-clip" title="cairo_reset_clip ()"><code class="function">cairo_reset_clip()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-clip.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-clip-preserve"></a><h3>cairo_clip_preserve ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_clip_preserve (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>Establishes a new clip region by intersecting the current clip
+region with the current path as it would be filled by <a class="link" href="cairo-cairo-t.html#cairo-fill" title="cairo_fill ()"><code class="function">cairo_fill()</code></a>
+and according to the current fill rule (see <a class="link" href="cairo-cairo-t.html#cairo-set-fill-rule" title="cairo_set_fill_rule ()"><code class="function">cairo_set_fill_rule()</code></a>).</p>
+<p>Unlike <a class="link" href="cairo-cairo-t.html#cairo-clip" title="cairo_clip ()"><code class="function">cairo_clip()</code></a>, <a class="link" href="cairo-cairo-t.html#cairo-clip-preserve" title="cairo_clip_preserve ()"><code class="function">cairo_clip_preserve()</code></a> preserves the path within
+the cairo context.</p>
+<p>The current clip region affects all drawing operations by
+effectively masking out any changes to the surface that are outside
+the current clip region.</p>
+<p>Calling <a class="link" href="cairo-cairo-t.html#cairo-clip-preserve" title="cairo_clip_preserve ()"><code class="function">cairo_clip_preserve()</code></a> 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 <a class="link" href="cairo-cairo-t.html#cairo-clip-preserve" title="cairo_clip_preserve ()"><code class="function">cairo_clip_preserve()</code></a> within a <a class="link" href="cairo-cairo-t.html#cairo-save" title="cairo_save ()"><code class="function">cairo_save()</code></a>/<a class="link" href="cairo-cairo-t.html#cairo-restore" title="cairo_restore ()"><code class="function">cairo_restore()</code></a>
+pair. The only other means of increasing the size of the clip
+region is <a class="link" href="cairo-cairo-t.html#cairo-reset-clip" title="cairo_reset_clip ()"><code class="function">cairo_reset_clip()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-clip-preserve.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-clip-extents"></a><h3>cairo_clip_extents ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_clip_extents (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *x1</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *y1</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *x2</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *y2</code></em>);</pre>
+<p>Computes a bounding box in user coordinates covering the area inside the
+current clip.</p>
+<div class="refsect3">
+<a name="cairo-clip-extents.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x1</p></td>
+<td class="parameter_description"><p>left of the resulting extents</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y1</p></td>
+<td class="parameter_description"><p>top of the resulting extents</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x2</p></td>
+<td class="parameter_description"><p>right of the resulting extents</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y2</p></td>
+<td class="parameter_description"><p>bottom of the resulting extents</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-in-clip"></a><h3>cairo_in_clip ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Types.html#cairo-bool-t" title="cairo_bool_t"><span class="returnvalue">cairo_bool_t</span></a>
+cairo_in_clip (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><span class="type">double</span> x</code></em>,
+ <em class="parameter"><code><span class="type">double</span> y</code></em>);</pre>
+<p>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 <a class="link" href="cairo-cairo-t.html#cairo-paint" title="cairo_paint ()"><code class="function">cairo_paint()</code></a> operation.</p>
+<p>See <a class="link" href="cairo-cairo-t.html#cairo-clip" title="cairo_clip ()"><code class="function">cairo_clip()</code></a>, and <a class="link" href="cairo-cairo-t.html#cairo-clip-preserve" title="cairo_clip_preserve ()"><code class="function">cairo_clip_preserve()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-in-clip.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>X coordinate of the point to test</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>Y coordinate of the point to test</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-in-clip.returns"></a><h4>Returns</h4>
+<p> A non-zero value if the point is inside, or zero if
+outside.</p>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-reset-clip"></a><h3>cairo_reset_clip ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_reset_clip (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>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.</p>
+<p>Note that code meant to be reusable should not call
+<a class="link" href="cairo-cairo-t.html#cairo-reset-clip" title="cairo_reset_clip ()"><code class="function">cairo_reset_clip()</code></a> as it will cause results unexpected by
+higher-level code which calls <a class="link" href="cairo-cairo-t.html#cairo-clip" title="cairo_clip ()"><code class="function">cairo_clip()</code></a>. Consider using
+<a class="link" href="cairo-cairo-t.html#cairo-save" title="cairo_save ()"><code class="function">cairo_save()</code></a> and <a class="link" href="cairo-cairo-t.html#cairo-restore" title="cairo_restore ()"><code class="function">cairo_restore()</code></a> around <a class="link" href="cairo-cairo-t.html#cairo-clip" title="cairo_clip ()"><code class="function">cairo_clip()</code></a> as a more
+robust means of temporarily restricting the clip region.</p>
+<div class="refsect3">
+<a name="cairo-reset-clip.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-rectangle-list-destroy"></a><h3>cairo_rectangle_list_destroy ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_rectangle_list_destroy (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-rectangle-list-t" title="cairo_rectangle_list_t"><span class="type">cairo_rectangle_list_t</span></a> *rectangle_list</code></em>);</pre>
+<p>Unconditionally frees <em class="parameter"><code>rectangle_list</code></em>
+ and all associated
+references. After this call, the <em class="parameter"><code>rectangle_list</code></em>
+ pointer must not
+be dereferenced.</p>
+<div class="refsect3">
+<a name="cairo-rectangle-list-destroy.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>rectangle_list</p></td>
+<td class="parameter_description"><p>a rectangle list, as obtained from <a class="link" href="cairo-cairo-t.html#cairo-copy-clip-rectangle-list" title="cairo_copy_clip_rectangle_list ()"><code class="function">cairo_copy_clip_rectangle_list()</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-copy-clip-rectangle-list"></a><h3>cairo_copy_clip_rectangle_list ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-t.html#cairo-rectangle-list-t" title="cairo_rectangle_list_t"><span class="returnvalue">cairo_rectangle_list_t</span></a> *
+cairo_copy_clip_rectangle_list (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>Gets the current clip region as a list of rectangles in user coordinates.
+Never returns <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
+<p>The status in the list may be <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-CLIP-NOT-REPRESENTABLE:CAPS"><code class="literal">CAIRO_STATUS_CLIP_NOT_REPRESENTABLE</code></a> to
+indicate that the clip region cannot be represented as a list of
+user-space rectangles. The status may have other values to indicate
+other errors.</p>
+<div class="refsect3">
+<a name="cairo-copy-clip-rectangle-list.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-copy-clip-rectangle-list.returns"></a><h4>Returns</h4>
+<p> the current clip region as a list of rectangles in user coordinates,
+which should be destroyed using <a class="link" href="cairo-cairo-t.html#cairo-rectangle-list-destroy" title="cairo_rectangle_list_destroy ()"><code class="function">cairo_rectangle_list_destroy()</code></a>.</p>
+</div>
+<p class="since">Since: 1.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-fill"></a><h3>cairo_fill ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_fill (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>A drawing operator that fills the current path according to the
+current fill rule, (each sub-path is implicitly closed before being
+filled). After <a class="link" href="cairo-cairo-t.html#cairo-fill" title="cairo_fill ()"><code class="function">cairo_fill()</code></a>, the current path will be cleared from
+the cairo context. See <a class="link" href="cairo-cairo-t.html#cairo-set-fill-rule" title="cairo_set_fill_rule ()"><code class="function">cairo_set_fill_rule()</code></a> and
+<a class="link" href="cairo-cairo-t.html#cairo-fill-preserve" title="cairo_fill_preserve ()"><code class="function">cairo_fill_preserve()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-fill.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-fill-preserve"></a><h3>cairo_fill_preserve ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_fill_preserve (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>A drawing operator that fills the current path according to the
+current fill rule, (each sub-path is implicitly closed before being
+filled). Unlike <a class="link" href="cairo-cairo-t.html#cairo-fill" title="cairo_fill ()"><code class="function">cairo_fill()</code></a>, <a class="link" href="cairo-cairo-t.html#cairo-fill-preserve" title="cairo_fill_preserve ()"><code class="function">cairo_fill_preserve()</code></a> preserves the
+path within the cairo context.</p>
+<p>See <a class="link" href="cairo-cairo-t.html#cairo-set-fill-rule" title="cairo_set_fill_rule ()"><code class="function">cairo_set_fill_rule()</code></a> and <a class="link" href="cairo-cairo-t.html#cairo-fill" title="cairo_fill ()"><code class="function">cairo_fill()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-fill-preserve.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-fill-extents"></a><h3>cairo_fill_extents ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_fill_extents (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *x1</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *y1</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *x2</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *y2</code></em>);</pre>
+<p>Computes a bounding box in user coordinates covering the area that
+would be affected, (the "inked" area), by a <a class="link" href="cairo-cairo-t.html#cairo-fill" title="cairo_fill ()"><code class="function">cairo_fill()</code></a> operation
+given the current path and fill parameters. If the current path is
+empty, returns an empty rectangle ((0,0), (0,0)). Surface
+dimensions and clipping are not taken into account.</p>
+<p>Contrast with <a class="link" href="cairo-Paths.html#cairo-path-extents" title="cairo_path_extents ()"><code class="function">cairo_path_extents()</code></a>, which is similar, but returns
+non-zero extents for some paths with no inked area, (such as a
+simple line segment).</p>
+<p>Note that <a class="link" href="cairo-cairo-t.html#cairo-fill-extents" title="cairo_fill_extents ()"><code class="function">cairo_fill_extents()</code></a> must necessarily do more work to
+compute the precise inked areas in light of the fill rule, so
+<a class="link" href="cairo-Paths.html#cairo-path-extents" title="cairo_path_extents ()"><code class="function">cairo_path_extents()</code></a> may be more desirable for sake of performance
+if the non-inked path extents are desired.</p>
+<p>See <a class="link" href="cairo-cairo-t.html#cairo-fill" title="cairo_fill ()"><code class="function">cairo_fill()</code></a>, <a class="link" href="cairo-cairo-t.html#cairo-set-fill-rule" title="cairo_set_fill_rule ()"><code class="function">cairo_set_fill_rule()</code></a> and <a class="link" href="cairo-cairo-t.html#cairo-fill-preserve" title="cairo_fill_preserve ()"><code class="function">cairo_fill_preserve()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-fill-extents.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x1</p></td>
+<td class="parameter_description"><p>left of the resulting extents</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y1</p></td>
+<td class="parameter_description"><p>top of the resulting extents</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x2</p></td>
+<td class="parameter_description"><p>right of the resulting extents</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y2</p></td>
+<td class="parameter_description"><p>bottom of the resulting extents</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-in-fill"></a><h3>cairo_in_fill ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Types.html#cairo-bool-t" title="cairo_bool_t"><span class="returnvalue">cairo_bool_t</span></a>
+cairo_in_fill (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><span class="type">double</span> x</code></em>,
+ <em class="parameter"><code><span class="type">double</span> y</code></em>);</pre>
+<p>Tests whether the given point is inside the area that would be
+affected by a <a class="link" href="cairo-cairo-t.html#cairo-fill" title="cairo_fill ()"><code class="function">cairo_fill()</code></a> operation given the current path and
+filling parameters. Surface dimensions and clipping are not taken
+into account.</p>
+<p>See <a class="link" href="cairo-cairo-t.html#cairo-fill" title="cairo_fill ()"><code class="function">cairo_fill()</code></a>, <a class="link" href="cairo-cairo-t.html#cairo-set-fill-rule" title="cairo_set_fill_rule ()"><code class="function">cairo_set_fill_rule()</code></a> and <a class="link" href="cairo-cairo-t.html#cairo-fill-preserve" title="cairo_fill_preserve ()"><code class="function">cairo_fill_preserve()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-in-fill.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>X coordinate of the point to test</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>Y coordinate of the point to test</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-in-fill.returns"></a><h4>Returns</h4>
+<p> A non-zero value if the point is inside, or zero if
+outside.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-mask"></a><h3>cairo_mask ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_mask (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a> *pattern</code></em>);</pre>
+<p>A drawing operator that paints the current source
+using the alpha channel of <em class="parameter"><code>pattern</code></em>
+ as a mask. (Opaque
+areas of <em class="parameter"><code>pattern</code></em>
+ are painted with the source, transparent
+areas are not painted.)</p>
+<div class="refsect3">
+<a name="cairo-mask.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pattern</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-pattern-t.html#cairo-pattern-t" title="cairo_pattern_t"><span class="type">cairo_pattern_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-mask-surface"></a><h3>cairo_mask_surface ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_mask_surface (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>,
+ <em class="parameter"><code><span class="type">double</span> surface_x</code></em>,
+ <em class="parameter"><code><span class="type">double</span> surface_y</code></em>);</pre>
+<p>A drawing operator that paints the current source
+using the alpha channel of <em class="parameter"><code>surface</code></em>
+ as a mask. (Opaque
+areas of <em class="parameter"><code>surface</code></em>
+ are painted with the source, transparent
+areas are not painted.)</p>
+<div class="refsect3">
+<a name="cairo-mask-surface.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>surface</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>surface_x</p></td>
+<td class="parameter_description"><p>X coordinate at which to place the origin of <em class="parameter"><code>surface</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>surface_y</p></td>
+<td class="parameter_description"><p>Y coordinate at which to place the origin of <em class="parameter"><code>surface</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-paint"></a><h3>cairo_paint ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_paint (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>A drawing operator that paints the current source everywhere within
+the current clip region.</p>
+<div class="refsect3">
+<a name="cairo-paint.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-paint-with-alpha"></a><h3>cairo_paint_with_alpha ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_paint_with_alpha (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><span class="type">double</span> alpha</code></em>);</pre>
+<p>A drawing operator that paints the current source everywhere within
+the current clip region using a mask of constant alpha value
+<em class="parameter"><code>alpha</code></em>
+. The effect is similar to <a class="link" href="cairo-cairo-t.html#cairo-paint" title="cairo_paint ()"><code class="function">cairo_paint()</code></a>, but the drawing
+is faded out using the alpha value.</p>
+<div class="refsect3">
+<a name="cairo-paint-with-alpha.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>alpha</p></td>
+<td class="parameter_description"><p>alpha value, between 0 (transparent) and 1 (opaque)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-stroke"></a><h3>cairo_stroke ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_stroke (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>A drawing operator that strokes the current path according to the
+current line width, line join, line cap, and dash settings. After
+<a class="link" href="cairo-cairo-t.html#cairo-stroke" title="cairo_stroke ()"><code class="function">cairo_stroke()</code></a>, the current path will be cleared from the cairo
+context. See <a class="link" href="cairo-cairo-t.html#cairo-set-line-width" title="cairo_set_line_width ()"><code class="function">cairo_set_line_width()</code></a>, <a class="link" href="cairo-cairo-t.html#cairo-set-line-join" title="cairo_set_line_join ()"><code class="function">cairo_set_line_join()</code></a>,
+<a class="link" href="cairo-cairo-t.html#cairo-set-line-cap" title="cairo_set_line_cap ()"><code class="function">cairo_set_line_cap()</code></a>, <a class="link" href="cairo-cairo-t.html#cairo-set-dash" title="cairo_set_dash ()"><code class="function">cairo_set_dash()</code></a>, and
+<a class="link" href="cairo-cairo-t.html#cairo-stroke-preserve" title="cairo_stroke_preserve ()"><code class="function">cairo_stroke_preserve()</code></a>.</p>
+<p>Note: Degenerate segments and sub-paths are treated specially and
+provide a useful result. These can result in two different
+situations:</p>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem"><p>Zero-length "on" segments set in <a class="link" href="cairo-cairo-t.html#cairo-set-dash" title="cairo_set_dash ()"><code class="function">cairo_set_dash()</code></a>. If the cap
+style is <a class="link" href="cairo-cairo-t.html#CAIRO-LINE-CAP-ROUND:CAPS"><code class="literal">CAIRO_LINE_CAP_ROUND</code></a> or <a class="link" href="cairo-cairo-t.html#CAIRO-LINE-CAP-SQUARE:CAPS"><code class="literal">CAIRO_LINE_CAP_SQUARE</code></a> then these
+segments will be drawn as circular dots or squares respectively. In
+the case of <a class="link" href="cairo-cairo-t.html#CAIRO-LINE-CAP-SQUARE:CAPS"><code class="literal">CAIRO_LINE_CAP_SQUARE</code></a>, the orientation of the squares
+is determined by the direction of the underlying path.</p></li>
+<li class="listitem"><p>A sub-path created by <a class="link" href="cairo-Paths.html#cairo-move-to" title="cairo_move_to ()"><code class="function">cairo_move_to()</code></a> followed by either a
+<a class="link" href="cairo-Paths.html#cairo-close-path" title="cairo_close_path ()"><code class="function">cairo_close_path()</code></a> or one or more calls to <a class="link" href="cairo-Paths.html#cairo-line-to" title="cairo_line_to ()"><code class="function">cairo_line_to()</code></a> to the
+same coordinate as the <a class="link" href="cairo-Paths.html#cairo-move-to" title="cairo_move_to ()"><code class="function">cairo_move_to()</code></a>. If the cap style is
+<a class="link" href="cairo-cairo-t.html#CAIRO-LINE-CAP-ROUND:CAPS"><code class="literal">CAIRO_LINE_CAP_ROUND</code></a> then these sub-paths will be drawn as circular
+dots. Note that in the case of <a class="link" href="cairo-cairo-t.html#CAIRO-LINE-CAP-SQUARE:CAPS"><code class="literal">CAIRO_LINE_CAP_SQUARE</code></a> a degenerate
+sub-path will not be drawn at all, (since the correct orientation
+is indeterminate).</p></li>
+</ol></div>
+<p>In no case will a cap style of <a class="link" href="cairo-cairo-t.html#CAIRO-LINE-CAP-BUTT:CAPS"><code class="literal">CAIRO_LINE_CAP_BUTT</code></a> cause anything
+to be drawn in the case of either degenerate segments or sub-paths.</p>
+<div class="refsect3">
+<a name="cairo-stroke.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-stroke-preserve"></a><h3>cairo_stroke_preserve ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_stroke_preserve (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>A drawing operator that strokes the current path according to the
+current line width, line join, line cap, and dash settings. Unlike
+<a class="link" href="cairo-cairo-t.html#cairo-stroke" title="cairo_stroke ()"><code class="function">cairo_stroke()</code></a>, <a class="link" href="cairo-cairo-t.html#cairo-stroke-preserve" title="cairo_stroke_preserve ()"><code class="function">cairo_stroke_preserve()</code></a> preserves the path within the
+cairo context.</p>
+<p>See <a class="link" href="cairo-cairo-t.html#cairo-set-line-width" title="cairo_set_line_width ()"><code class="function">cairo_set_line_width()</code></a>, <a class="link" href="cairo-cairo-t.html#cairo-set-line-join" title="cairo_set_line_join ()"><code class="function">cairo_set_line_join()</code></a>,
+<a class="link" href="cairo-cairo-t.html#cairo-set-line-cap" title="cairo_set_line_cap ()"><code class="function">cairo_set_line_cap()</code></a>, <a class="link" href="cairo-cairo-t.html#cairo-set-dash" title="cairo_set_dash ()"><code class="function">cairo_set_dash()</code></a>, and
+<a class="link" href="cairo-cairo-t.html#cairo-stroke-preserve" title="cairo_stroke_preserve ()"><code class="function">cairo_stroke_preserve()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-stroke-preserve.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-stroke-extents"></a><h3>cairo_stroke_extents ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_stroke_extents (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *x1</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *y1</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *x2</code></em>,
+ <em class="parameter"><code><span class="type">double</span> *y2</code></em>);</pre>
+<p>Computes a bounding box in user coordinates covering the area that
+would be affected, (the "inked" area), by a <a class="link" href="cairo-cairo-t.html#cairo-stroke" title="cairo_stroke ()"><code class="function">cairo_stroke()</code></a>
+operation given the current path and stroke parameters.
+If the current path is empty, returns an empty rectangle ((0,0), (0,0)).
+Surface dimensions and clipping are not taken into account.</p>
+<p>Note that if the line width is set to exactly zero, then
+<a class="link" href="cairo-cairo-t.html#cairo-stroke-extents" title="cairo_stroke_extents ()"><code class="function">cairo_stroke_extents()</code></a> will return an empty rectangle. Contrast with
+<a class="link" href="cairo-Paths.html#cairo-path-extents" title="cairo_path_extents ()"><code class="function">cairo_path_extents()</code></a> which can be used to compute the non-empty
+bounds as the line width approaches zero.</p>
+<p>Note that <a class="link" href="cairo-cairo-t.html#cairo-stroke-extents" title="cairo_stroke_extents ()"><code class="function">cairo_stroke_extents()</code></a> must necessarily do more work to
+compute the precise inked areas in light of the stroke parameters,
+so <a class="link" href="cairo-Paths.html#cairo-path-extents" title="cairo_path_extents ()"><code class="function">cairo_path_extents()</code></a> may be more desirable for sake of
+performance if non-inked path extents are desired.</p>
+<p>See <a class="link" href="cairo-cairo-t.html#cairo-stroke" title="cairo_stroke ()"><code class="function">cairo_stroke()</code></a>, <a class="link" href="cairo-cairo-t.html#cairo-set-line-width" title="cairo_set_line_width ()"><code class="function">cairo_set_line_width()</code></a>, <a class="link" href="cairo-cairo-t.html#cairo-set-line-join" title="cairo_set_line_join ()"><code class="function">cairo_set_line_join()</code></a>,
+<a class="link" href="cairo-cairo-t.html#cairo-set-line-cap" title="cairo_set_line_cap ()"><code class="function">cairo_set_line_cap()</code></a>, <a class="link" href="cairo-cairo-t.html#cairo-set-dash" title="cairo_set_dash ()"><code class="function">cairo_set_dash()</code></a>, and
+<a class="link" href="cairo-cairo-t.html#cairo-stroke-preserve" title="cairo_stroke_preserve ()"><code class="function">cairo_stroke_preserve()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-stroke-extents.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x1</p></td>
+<td class="parameter_description"><p>left of the resulting extents</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y1</p></td>
+<td class="parameter_description"><p>top of the resulting extents</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x2</p></td>
+<td class="parameter_description"><p>right of the resulting extents</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y2</p></td>
+<td class="parameter_description"><p>bottom of the resulting extents</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-in-stroke"></a><h3>cairo_in_stroke ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Types.html#cairo-bool-t" title="cairo_bool_t"><span class="returnvalue">cairo_bool_t</span></a>
+cairo_in_stroke (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><span class="type">double</span> x</code></em>,
+ <em class="parameter"><code><span class="type">double</span> y</code></em>);</pre>
+<p>Tests whether the given point is inside the area that would be
+affected by a <a class="link" href="cairo-cairo-t.html#cairo-stroke" title="cairo_stroke ()"><code class="function">cairo_stroke()</code></a> operation given the current path and
+stroking parameters. Surface dimensions and clipping are not taken
+into account.</p>
+<p>See <a class="link" href="cairo-cairo-t.html#cairo-stroke" title="cairo_stroke ()"><code class="function">cairo_stroke()</code></a>, <a class="link" href="cairo-cairo-t.html#cairo-set-line-width" title="cairo_set_line_width ()"><code class="function">cairo_set_line_width()</code></a>, <a class="link" href="cairo-cairo-t.html#cairo-set-line-join" title="cairo_set_line_join ()"><code class="function">cairo_set_line_join()</code></a>,
+<a class="link" href="cairo-cairo-t.html#cairo-set-line-cap" title="cairo_set_line_cap ()"><code class="function">cairo_set_line_cap()</code></a>, <a class="link" href="cairo-cairo-t.html#cairo-set-dash" title="cairo_set_dash ()"><code class="function">cairo_set_dash()</code></a>, and
+<a class="link" href="cairo-cairo-t.html#cairo-stroke-preserve" title="cairo_stroke_preserve ()"><code class="function">cairo_stroke_preserve()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-in-stroke.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>X coordinate of the point to test</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>Y coordinate of the point to test</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-in-stroke.returns"></a><h4>Returns</h4>
+<p> A non-zero value if the point is inside, or zero if
+outside.</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-copy-page"></a><h3>cairo_copy_page ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_copy_page (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>Emits the current page for backends that support multiple pages, but
+doesn't clear it, so, the contents of the current page will be retained
+for the next page too. Use <a class="link" href="cairo-cairo-t.html#cairo-show-page" title="cairo_show_page ()"><code class="function">cairo_show_page()</code></a> if you want to get an
+empty page after the emission.</p>
+<p>This is a convenience function that simply calls
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-copy-page" title="cairo_surface_copy_page ()"><code class="function">cairo_surface_copy_page()</code></a> on <em class="parameter"><code>cr</code></em>
+'s target.</p>
+<div class="refsect3">
+<a name="cairo-copy-page.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-show-page"></a><h3>cairo_show_page ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_show_page (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>Emits and clears the current page for backends that support multiple
+pages. Use <a class="link" href="cairo-cairo-t.html#cairo-copy-page" title="cairo_copy_page ()"><code class="function">cairo_copy_page()</code></a> if you don't want to clear the page.</p>
+<p>This is a convenience function that simply calls
+<a class="link" href="cairo-cairo-surface-t.html#cairo-surface-show-page" title="cairo_surface_show_page ()"><code class="function">cairo_surface_show_page()</code></a> on <em class="parameter"><code>cr</code></em>
+'s target.</p>
+<div class="refsect3">
+<a name="cairo-show-page.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-get-reference-count"></a><h3>cairo_get_reference_count ()</h3>
+<pre class="programlisting">unsigned <span class="returnvalue">int</span>
+cairo_get_reference_count (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>Returns the current reference count of <em class="parameter"><code>cr</code></em>
+.</p>
+<div class="refsect3">
+<a name="cairo-get-reference-count.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-get-reference-count.returns"></a><h4>Returns</h4>
+<p> the current reference count of <em class="parameter"><code>cr</code></em>
+. If the
+object is a nil object, 0 will be returned.</p>
+</div>
+<p class="since">Since: 1.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-set-user-data"></a><h3>cairo_set_user_data ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="returnvalue">cairo_status_t</span></a>
+cairo_set_user_data (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-Types.html#cairo-user-data-key-t" title="cairo_user_data_key_t"><span class="type">cairo_user_data_key_t</span></a> *key</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-Types.html#cairo-destroy-func-t" title="cairo_destroy_func_t ()"><span class="type">cairo_destroy_func_t</span></a> destroy</code></em>);</pre>
+<p>Attach user data to <em class="parameter"><code>cr</code></em>
+. To remove user data from a surface,
+call this function with the key that was used to set it and <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+for <em class="parameter"><code>data</code></em>
+.</p>
+<div class="refsect3">
+<a name="cairo-set-user-data.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>the address of a <a class="link" href="cairo-Types.html#cairo-user-data-key-t" title="cairo_user_data_key_t"><span class="type">cairo_user_data_key_t</span></a> to attach the user data to</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>the user data to attach to the <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>destroy</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-Types.html#cairo-destroy-func-t" title="cairo_destroy_func_t ()"><span class="type">cairo_destroy_func_t</span></a> which will be called when the
+<a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> is destroyed or when new user data is attached using the
+same key.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-set-user-data.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"><code class="literal">CAIRO_STATUS_SUCCESS</code></a> or <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a> if a
+slot could not be allocated for the user data.</p>
+</div>
+<p class="since">Since: 1.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-get-user-data"></a><h3>cairo_get_user_data ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> *
+cairo_get_user_data (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-Types.html#cairo-user-data-key-t" title="cairo_user_data_key_t"><span class="type">cairo_user_data_key_t</span></a> *key</code></em>);</pre>
+<p>Return user data previously attached to <em class="parameter"><code>cr</code></em>
+ using the specified
+key. If no user data has been attached with the given key this
+function returns <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-get-user-data.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>the address of the <a class="link" href="cairo-Types.html#cairo-user-data-key-t" title="cairo_user_data_key_t"><span class="type">cairo_user_data_key_t</span></a> the user data was
+attached to</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-get-user-data.returns"></a><h4>Returns</h4>
+<p> the user data previously attached or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
+</div>
+<p class="since">Since: 1.4</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-cairo-t.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="cairo-t"></a><h3>cairo_t</h3>
+<pre class="programlisting">typedef struct _cairo cairo_t;
+</pre>
+<p>A <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> contains the current state of the rendering device,
+including coordinates of yet to be drawn shapes.</p>
+<p>Cairo contexts, as <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> objects are named, are central to
+cairo and all drawing with cairo is always done to a <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a>
+object.</p>
+<p>Memory management of <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> is done with
+<a class="link" href="cairo-cairo-t.html#cairo-reference" title="cairo_reference ()"><code class="function">cairo_reference()</code></a> and <a class="link" href="cairo-cairo-t.html#cairo-destroy" title="cairo_destroy ()"><code class="function">cairo_destroy()</code></a>.</p>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-antialias-t"></a><h3>enum cairo_antialias_t</h3>
+<p>Specifies the type of antialiasing to do when rendering text or shapes.</p>
+<p>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:
+<em class="parameter"><code>CAIRO_ANTIALIAS_FAST</code></em>
+: Allow the backend to degrade raster quality for speed
+<em class="parameter"><code>CAIRO_ANTIALIAS_GOOD</code></em>
+: A balance between speed and quality
+<em class="parameter"><code>CAIRO_ANTIALIAS_BEST</code></em>
+: A high-fidelity, but potentially slow, raster mode</p>
+<p>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,
+<em class="parameter"><code>CAIRO_ANTIALIAS_FAST</code></em>
+ and <em class="parameter"><code>CAIRO_ANTIALIAS_GOOD</code></em>
+ will be mapped to
+<em class="parameter"><code>CAIRO_ANTIALIAS_GRAY</code></em>
+, with <em class="parameter"><code>CAIRO_ANTALIAS_BEST</code></em>
+ being equivalent to
+<em class="parameter"><code>CAIRO_ANTIALIAS_SUBPIXEL</code></em>
+.</p>
+<p>The interpretation of <em class="parameter"><code>CAIRO_ANTIALIAS_DEFAULT</code></em>
+ is left entirely up to
+the backend, typically this will be similar to <em class="parameter"><code>CAIRO_ANTIALIAS_GOOD</code></em>
+.</p>
+<div class="refsect3">
+<a name="cairo-antialias-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-ANTIALIAS-DEFAULT:CAPS"></a>CAIRO_ANTIALIAS_DEFAULT</p></td>
+<td class="enum_member_description">
+<p>Use the default antialiasing for
+ the subsystem and target device, since 1.0</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-ANTIALIAS-NONE:CAPS"></a>CAIRO_ANTIALIAS_NONE</p></td>
+<td class="enum_member_description">
+<p>Use a bilevel alpha mask, since 1.0</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-ANTIALIAS-GRAY:CAPS"></a>CAIRO_ANTIALIAS_GRAY</p></td>
+<td class="enum_member_description">
+<p>Perform single-color antialiasing (using
+ shades of gray for black text on a white background, for example), since 1.0</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-ANTIALIAS-SUBPIXEL:CAPS"></a>CAIRO_ANTIALIAS_SUBPIXEL</p></td>
+<td class="enum_member_description">
+<p>Perform antialiasing by taking
+ advantage of the order of subpixel elements on devices
+ such as LCD panels, since 1.0</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-ANTIALIAS-FAST:CAPS"></a>CAIRO_ANTIALIAS_FAST</p></td>
+<td class="enum_member_description">
+<p>Hint that the backend should perform some
+antialiasing but prefer speed over quality, since 1.12</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-ANTIALIAS-GOOD:CAPS"></a>CAIRO_ANTIALIAS_GOOD</p></td>
+<td class="enum_member_description">
+<p>The backend should balance quality against
+performance, since 1.12</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-ANTIALIAS-BEST:CAPS"></a>CAIRO_ANTIALIAS_BEST</p></td>
+<td class="enum_member_description">
+<p>Hint that the backend should render at the highest
+quality, sacrificing speed if necessary, since 1.12</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-fill-rule-t"></a><h3>enum cairo_fill_rule_t</h3>
+<p><a class="link" href="cairo-cairo-t.html#cairo-fill-rule-t" title="enum cairo_fill_rule_t"><span class="type">cairo_fill_rule_t</span></a> 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.)</p>
+<p>The default fill rule is <a class="link" href="cairo-cairo-t.html#CAIRO-FILL-RULE-WINDING:CAPS"><code class="literal">CAIRO_FILL_RULE_WINDING</code></a>.</p>
+<p>New entries may be added in future versions.</p>
+<div class="refsect3">
+<a name="cairo-fill-rule-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-FILL-RULE-WINDING:CAPS"></a>CAIRO_FILL_RULE_WINDING</p></td>
+<td class="enum_member_description">
+<p>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)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-FILL-RULE-EVEN-ODD:CAPS"></a>CAIRO_FILL_RULE_EVEN_ODD</p></td>
+<td class="enum_member_description">
+<p>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)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-line-cap-t"></a><h3>enum cairo_line_cap_t</h3>
+<p>Specifies how to render the endpoints of the path when stroking.</p>
+<p>The default line cap style is <a class="link" href="cairo-cairo-t.html#CAIRO-LINE-CAP-BUTT:CAPS"><code class="literal">CAIRO_LINE_CAP_BUTT</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-line-cap-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-LINE-CAP-BUTT:CAPS"></a>CAIRO_LINE_CAP_BUTT</p></td>
+<td class="enum_member_description">
+<p>start(stop) the line exactly at the start(end) point (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-LINE-CAP-ROUND:CAPS"></a>CAIRO_LINE_CAP_ROUND</p></td>
+<td class="enum_member_description">
+<p>use a round ending, the center of the circle is the end point (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-LINE-CAP-SQUARE:CAPS"></a>CAIRO_LINE_CAP_SQUARE</p></td>
+<td class="enum_member_description">
+<p>use squared ending, the center of the square is the end point (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-line-join-t"></a><h3>enum cairo_line_join_t</h3>
+<p>Specifies how to render the junction of two lines when stroking.</p>
+<p>The default line join style is <a class="link" href="cairo-cairo-t.html#CAIRO-LINE-JOIN-MITER:CAPS"><code class="literal">CAIRO_LINE_JOIN_MITER</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-line-join-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-LINE-JOIN-MITER:CAPS"></a>CAIRO_LINE_JOIN_MITER</p></td>
+<td class="enum_member_description">
+<p>use a sharp (angled) corner, see
+<a class="link" href="cairo-cairo-t.html#cairo-set-miter-limit" title="cairo_set_miter_limit ()"><code class="function">cairo_set_miter_limit()</code></a> (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-LINE-JOIN-ROUND:CAPS"></a>CAIRO_LINE_JOIN_ROUND</p></td>
+<td class="enum_member_description">
+<p>use a rounded join, the center of the circle is the
+joint point (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-LINE-JOIN-BEVEL:CAPS"></a>CAIRO_LINE_JOIN_BEVEL</p></td>
+<td class="enum_member_description">
+<p>use a cut-off join, the join is cut off at half
+the line width from the joint point (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-operator-t"></a><h3>enum cairo_operator_t</h3>
+<p><a class="link" href="cairo-cairo-t.html#cairo-operator-t" title="enum cairo_operator_t"><span class="type">cairo_operator_t</span></a> is used to set the compositing operator for all cairo
+drawing operations.</p>
+<p>The default operator is <a class="link" href="cairo-cairo-t.html#CAIRO-OPERATOR-OVER:CAPS"><code class="literal">CAIRO_OPERATOR_OVER</code></a>.</p>
+<p>The operators marked as <em class="firstterm">unbounded</em> modify their
+destination even outside of the mask layer (that is, their effect is not
+bound by the mask layer). However, their effect can still be limited by
+way of clipping.</p>
+<p>To keep things simple, the operator descriptions here
+document the behavior for when both source and destination are either fully
+transparent or fully opaque. The actual implementation works for
+translucent layers too.
+For a more detailed explanation of the effects of each operator, including
+the mathematical definitions, see</p>
+<a class="ulink" href="https://cairographics.org/operators/" target="_top">https://cairographics.org/operators/</a>.
+<div class="refsect3">
+<a name="cairo-operator-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-OPERATOR-CLEAR:CAPS"></a>CAIRO_OPERATOR_CLEAR</p></td>
+<td class="enum_member_description">
+<p>clear destination layer (bounded) (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-OPERATOR-SOURCE:CAPS"></a>CAIRO_OPERATOR_SOURCE</p></td>
+<td class="enum_member_description">
+<p>replace destination layer (bounded) (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-OPERATOR-OVER:CAPS"></a>CAIRO_OPERATOR_OVER</p></td>
+<td class="enum_member_description">
+<p>draw source layer on top of destination layer
+(bounded) (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-OPERATOR-IN:CAPS"></a>CAIRO_OPERATOR_IN</p></td>
+<td class="enum_member_description">
+<p>draw source where there was destination content
+(unbounded) (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-OPERATOR-OUT:CAPS"></a>CAIRO_OPERATOR_OUT</p></td>
+<td class="enum_member_description">
+<p>draw source where there was no destination
+content (unbounded) (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-OPERATOR-ATOP:CAPS"></a>CAIRO_OPERATOR_ATOP</p></td>
+<td class="enum_member_description">
+<p>draw source on top of destination content and
+only there (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-OPERATOR-DEST:CAPS"></a>CAIRO_OPERATOR_DEST</p></td>
+<td class="enum_member_description">
+<p>ignore the source (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-OPERATOR-DEST-OVER:CAPS"></a>CAIRO_OPERATOR_DEST_OVER</p></td>
+<td class="enum_member_description">
+<p>draw destination on top of source (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-OPERATOR-DEST-IN:CAPS"></a>CAIRO_OPERATOR_DEST_IN</p></td>
+<td class="enum_member_description">
+<p>leave destination only where there was
+source content (unbounded) (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-OPERATOR-DEST-OUT:CAPS"></a>CAIRO_OPERATOR_DEST_OUT</p></td>
+<td class="enum_member_description">
+<p>leave destination only where there was no
+source content (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-OPERATOR-DEST-ATOP:CAPS"></a>CAIRO_OPERATOR_DEST_ATOP</p></td>
+<td class="enum_member_description">
+<p>leave destination on top of source content
+and only there (unbounded) (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-OPERATOR-XOR:CAPS"></a>CAIRO_OPERATOR_XOR</p></td>
+<td class="enum_member_description">
+<p>source and destination are shown where there is only
+one of them (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-OPERATOR-ADD:CAPS"></a>CAIRO_OPERATOR_ADD</p></td>
+<td class="enum_member_description">
+<p>source and destination layers are accumulated (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-OPERATOR-SATURATE:CAPS"></a>CAIRO_OPERATOR_SATURATE</p></td>
+<td class="enum_member_description">
+<p>like over, but assuming source and dest are
+disjoint geometries (Since 1.0)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-OPERATOR-MULTIPLY:CAPS"></a>CAIRO_OPERATOR_MULTIPLY</p></td>
+<td class="enum_member_description">
+<p>source and destination layers are multiplied.
+This causes the result to be at least as dark as the darker inputs. (Since 1.10)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-OPERATOR-SCREEN:CAPS"></a>CAIRO_OPERATOR_SCREEN</p></td>
+<td class="enum_member_description">
+<p>source and destination are complemented and
+multiplied. This causes the result to be at least as light as the lighter
+inputs. (Since 1.10)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-OPERATOR-OVERLAY:CAPS"></a>CAIRO_OPERATOR_OVERLAY</p></td>
+<td class="enum_member_description">
+<p>multiplies or screens, depending on the
+lightness of the destination color. (Since 1.10)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-OPERATOR-DARKEN:CAPS"></a>CAIRO_OPERATOR_DARKEN</p></td>
+<td class="enum_member_description">
+<p>replaces the destination with the source if it
+is darker, otherwise keeps the source. (Since 1.10)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-OPERATOR-LIGHTEN:CAPS"></a>CAIRO_OPERATOR_LIGHTEN</p></td>
+<td class="enum_member_description">
+<p>replaces the destination with the source if it
+is lighter, otherwise keeps the source. (Since 1.10)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-OPERATOR-COLOR-DODGE:CAPS"></a>CAIRO_OPERATOR_COLOR_DODGE</p></td>
+<td class="enum_member_description">
+<p>brightens the destination color to reflect
+the source color. (Since 1.10)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-OPERATOR-COLOR-BURN:CAPS"></a>CAIRO_OPERATOR_COLOR_BURN</p></td>
+<td class="enum_member_description">
+<p>darkens the destination color to reflect
+the source color. (Since 1.10)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-OPERATOR-HARD-LIGHT:CAPS"></a>CAIRO_OPERATOR_HARD_LIGHT</p></td>
+<td class="enum_member_description">
+<p>Multiplies or screens, dependent on source
+color. (Since 1.10)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-OPERATOR-SOFT-LIGHT:CAPS"></a>CAIRO_OPERATOR_SOFT_LIGHT</p></td>
+<td class="enum_member_description">
+<p>Darkens or lightens, dependent on source
+color. (Since 1.10)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-OPERATOR-DIFFERENCE:CAPS"></a>CAIRO_OPERATOR_DIFFERENCE</p></td>
+<td class="enum_member_description">
+<p>Takes the difference of the source and
+destination color. (Since 1.10)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-OPERATOR-EXCLUSION:CAPS"></a>CAIRO_OPERATOR_EXCLUSION</p></td>
+<td class="enum_member_description">
+<p>Produces an effect similar to difference, but
+with lower contrast. (Since 1.10)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-OPERATOR-HSL-HUE:CAPS"></a>CAIRO_OPERATOR_HSL_HUE</p></td>
+<td class="enum_member_description">
+<p>Creates a color with the hue of the source
+and the saturation and luminosity of the target. (Since 1.10)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-OPERATOR-HSL-SATURATION:CAPS"></a>CAIRO_OPERATOR_HSL_SATURATION</p></td>
+<td class="enum_member_description">
+<p>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)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-OPERATOR-HSL-COLOR:CAPS"></a>CAIRO_OPERATOR_HSL_COLOR</p></td>
+<td class="enum_member_description">
+<p>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)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-OPERATOR-HSL-LUMINOSITY:CAPS"></a>CAIRO_OPERATOR_HSL_LUMINOSITY</p></td>
+<td class="enum_member_description">
+<p>Creates a color with the luminosity of
+the source and the hue and saturation of the target. This produces an
+inverse effect to <em class="parameter"><code>CAIRO_OPERATOR_HSL_COLOR</code></em>
+. (Since 1.10)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-rectangle-t"></a><h3>cairo_rectangle_t</h3>
+<pre class="programlisting">typedef struct {
+ double x, y, width, height;
+} cairo_rectangle_t;
+</pre>
+<p>A data structure for holding a rectangle.</p>
+<div class="refsect3">
+<a name="cairo-rectangle-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><span class="type">double</span> <em class="structfield"><code><a name="cairo-rectangle-t.x"></a>x</code></em>;</p></td>
+<td class="struct_member_description"><p>X coordinate of the left side of the rectangle</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><span class="type">double</span> <em class="structfield"><code><a name="cairo-rectangle-t.y"></a>y</code></em>;</p></td>
+<td class="struct_member_description"><p>Y coordinate of the the top side of the rectangle</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><span class="type">double</span> <em class="structfield"><code><a name="cairo-rectangle-t.width"></a>width</code></em>;</p></td>
+<td class="struct_member_description"><p>width of the rectangle</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><span class="type">double</span> <em class="structfield"><code><a name="cairo-rectangle-t.height"></a>height</code></em>;</p></td>
+<td class="struct_member_description"><p>height of the rectangle</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-rectangle-list-t"></a><h3>cairo_rectangle_list_t</h3>
+<pre class="programlisting">typedef struct {
+ cairo_status_t status;
+ cairo_rectangle_t *rectangles;
+ int num_rectangles;
+} cairo_rectangle_list_t;
+</pre>
+<p>A data structure for holding a dynamically allocated
+array of rectangles.</p>
+<div class="refsect3">
+<a name="cairo-rectangle-list-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="cairo-Error-handling.html#cairo-status-t" title="enum cairo_status_t"><span class="type">cairo_status_t</span></a> <em class="structfield"><code><a name="cairo-rectangle-list-t.status"></a>status</code></em>;</p></td>
+<td class="struct_member_description"><p>Error status of the rectangle list</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="cairo-cairo-t.html#cairo-rectangle-t" title="cairo_rectangle_t"><span class="type">cairo_rectangle_t</span></a> *<em class="structfield"><code><a name="cairo-rectangle-list-t.rectangles"></a>rectangles</code></em>;</p></td>
+<td class="struct_member_description"><p>Array containing the rectangles</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><span class="type">int</span> <em class="structfield"><code><a name="cairo-rectangle-list-t.num-rectangles"></a>num_rectangles</code></em>;</p></td>
+<td class="struct_member_description"><p>Number of rectangles in this list</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.4</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-cairo-t.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Drawing: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="prev" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="next" href="cairo-cairo-t.html" title="cairo_t">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="index.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="cairo-cairo-t.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="chapter">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="cairo-drawing"></a>Drawing</h1></div></div></div>
+<div class="toc"><dl class="toc">
+<dt>
+<span class="refentrytitle"><a href="cairo-cairo-t.html">cairo_t</a></span><span class="refpurpose"> — The cairo drawing context</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-Paths.html">Paths</a></span><span class="refpurpose"> — Creating paths and manipulating path data</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-cairo-pattern-t.html">cairo_pattern_t</a></span><span class="refpurpose"> — Sources for drawing</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-Regions.html">Regions</a></span><span class="refpurpose"> — Representing a pixel-aligned area</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-Transformations.html">Transformations</a></span><span class="refpurpose"> — Manipulating the current transformation matrix</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-text.html">text</a></span><span class="refpurpose"> — Rendering text and glyphs</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-Raster-Sources.html">Raster Sources</a></span><span class="refpurpose"> — Supplying arbitrary image data</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-Tags-and-Links.html">Tags and Links</a></span><span class="refpurpose"> — Hyperlinks and document structure</span>
+</dt>
+</dl></div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Fonts: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="prev" href="cairo-Tags-and-Links.html" title="Tags and Links">
+<link rel="next" href="cairo-cairo-font-face-t.html" title="cairo_font_face_t">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="cairo-Tags-and-Links.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="cairo-cairo-font-face-t.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="chapter">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="cairo-fonts"></a>Fonts</h1></div></div></div>
+<div class="toc"><dl class="toc">
+<dt>
+<span class="refentrytitle"><a href="cairo-cairo-font-face-t.html">cairo_font_face_t</a></span><span class="refpurpose"> — Base class for font faces</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-cairo-scaled-font-t.html">cairo_scaled_font_t</a></span><span class="refpurpose"> — Font face at particular size and options</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-cairo-font-options-t.html">cairo_font_options_t</a></span><span class="refpurpose"> — How a font should be rendered</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-FreeType-Fonts.html">FreeType Fonts</a></span><span class="refpurpose"> — Font support for FreeType</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-Win32-Fonts.html">Win32 Fonts</a></span><span class="refpurpose"> — Font support for Microsoft Windows</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-Quartz-(CGFont)-Fonts.html">Quartz (CGFont) Fonts</a></span><span class="refpurpose"> — Font support via CGFont on OS X</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-User-Fonts.html">User Fonts</a></span><span class="refpurpose"> — Font support with font data provided by the user</span>
+</dt>
+</dl></div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Utilities: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="prev" href="cairo-Script-Surfaces.html" title="Script Surfaces">
+<link rel="next" href="cairo-cairo-matrix-t.html" title="cairo_matrix_t">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="cairo-Script-Surfaces.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="cairo-cairo-matrix-t.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="chapter">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="cairo-support"></a>Utilities</h1></div></div></div>
+<div class="toc"><dl class="toc">
+<dt>
+<span class="refentrytitle"><a href="cairo-cairo-matrix-t.html">cairo_matrix_t</a></span><span class="refpurpose"> — Generic matrix operations</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-Error-handling.html">Error handling</a></span><span class="refpurpose"> — Decoding cairo's status</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-Version-Information.html">Version Information</a></span><span class="refpurpose"> — Compile-time and run-time version checks.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-Types.html">Types</a></span><span class="refpurpose"> — Generic data types</span>
+</dt>
+</dl></div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Surfaces: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="prev" href="cairo-User-Fonts.html" title="User Fonts">
+<link rel="next" href="cairo-cairo-device-t.html" title="cairo_device_t">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="cairo-User-Fonts.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="cairo-cairo-device-t.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="chapter">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="cairo-surfaces"></a>Surfaces</h1></div></div></div>
+<div class="toc"><dl class="toc">
+<dt>
+<span class="refentrytitle"><a href="cairo-cairo-device-t.html">cairo_device_t</a></span><span class="refpurpose"> — interface to underlying rendering system</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-cairo-surface-t.html">cairo_surface_t</a></span><span class="refpurpose"> — Base class for surfaces</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-Image-Surfaces.html">Image Surfaces</a></span><span class="refpurpose"> — Rendering to memory buffers</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-PDF-Surfaces.html">PDF Surfaces</a></span><span class="refpurpose"> — Rendering PDF documents</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-PNG-Support.html">PNG Support</a></span><span class="refpurpose"> — Reading and writing PNG images</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-PostScript-Surfaces.html">PostScript Surfaces</a></span><span class="refpurpose"> — Rendering PostScript documents</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-Recording-Surfaces.html">Recording Surfaces</a></span><span class="refpurpose"> — Records all drawing operations</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-Win32-Surfaces.html">Win32 Surfaces</a></span><span class="refpurpose"> — Microsoft Windows surface support</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-SVG-Surfaces.html">SVG Surfaces</a></span><span class="refpurpose"> — Rendering SVG documents</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-Quartz-Surfaces.html">Quartz Surfaces</a></span><span class="refpurpose"> — Rendering to Quartz surfaces</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-XCB-Surfaces.html">XCB Surfaces</a></span><span class="refpurpose"> — X Window System rendering using the XCB library</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-XLib-Surfaces.html">XLib Surfaces</a></span><span class="refpurpose"> — X Window System rendering using XLib</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-XLib-XRender-Backend.html">XLib-XRender Backend</a></span><span class="refpurpose"> — X Window System rendering using XLib and the X Render extension</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-Script-Surfaces.html">Script Surfaces</a></span><span class="refpurpose"> — Rendering to replayable scripts</span>
+</dt>
+</dl></div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>text: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="cairo-drawing.html" title="Drawing">
+<link rel="prev" href="cairo-Transformations.html" title="Transformations">
+<link rel="next" href="cairo-Raster-Sources.html" title="Raster Sources">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+ <a href="#cairo-text.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="cairo-drawing.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="cairo-Transformations.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="cairo-Raster-Sources.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="cairo-text"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="cairo-text.top_of_page"></a>text</span></h2>
+<p>text — Rendering text and glyphs</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="cairo-text.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-text.html#cairo-select-font-face" title="cairo_select_font_face ()">cairo_select_font_face</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-text.html#cairo-set-font-size" title="cairo_set_font_size ()">cairo_set_font_size</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-text.html#cairo-set-font-matrix" title="cairo_set_font_matrix ()">cairo_set_font_matrix</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-text.html#cairo-get-font-matrix" title="cairo_get_font_matrix ()">cairo_get_font_matrix</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-text.html#cairo-set-font-options" title="cairo_set_font_options ()">cairo_set_font_options</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-text.html#cairo-get-font-options" title="cairo_get_font_options ()">cairo_get_font_options</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-text.html#cairo-set-font-face" title="cairo_set_font_face ()">cairo_set_font_face</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="returnvalue">cairo_font_face_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-text.html#cairo-get-font-face" title="cairo_get_font_face ()">cairo_get_font_face</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-text.html#cairo-set-scaled-font" title="cairo_set_scaled_font ()">cairo_set_scaled_font</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="returnvalue">cairo_scaled_font_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-text.html#cairo-get-scaled-font" title="cairo_get_scaled_font ()">cairo_get_scaled_font</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-text.html#cairo-show-text" title="cairo_show_text ()">cairo_show_text</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-text.html#cairo-show-glyphs" title="cairo_show_glyphs ()">cairo_show_glyphs</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-text.html#cairo-show-text-glyphs" title="cairo_show_text_glyphs ()">cairo_show_text_glyphs</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-text.html#cairo-font-extents" title="cairo_font_extents ()">cairo_font_extents</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-text.html#cairo-text-extents" title="cairo_text_extents ()">cairo_text_extents</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-text.html#cairo-glyph-extents" title="cairo_glyph_extents ()">cairo_glyph_extents</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="returnvalue">cairo_font_face_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-text.html#cairo-toy-font-face-create" title="cairo_toy_font_face_create ()">cairo_toy_font_face_create</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">const <span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-text.html#cairo-toy-font-face-get-family" title="cairo_toy_font_face_get_family ()">cairo_toy_font_face_get_family</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-text.html#cairo-font-slant-t" title="enum cairo_font_slant_t"><span class="returnvalue">cairo_font_slant_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-text.html#cairo-toy-font-face-get-slant" title="cairo_toy_font_face_get_slant ()">cairo_toy_font_face_get_slant</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-text.html#cairo-font-weight-t" title="enum cairo_font_weight_t"><span class="returnvalue">cairo_font_weight_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-text.html#cairo-toy-font-face-get-weight" title="cairo_toy_font_face_get_weight ()">cairo_toy_font_face_get_weight</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-text.html#cairo-glyph-t" title="cairo_glyph_t"><span class="returnvalue">cairo_glyph_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-text.html#cairo-glyph-allocate" title="cairo_glyph_allocate ()">cairo_glyph_allocate</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-text.html#cairo-glyph-free" title="cairo_glyph_free ()">cairo_glyph_free</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="cairo-text.html#cairo-text-cluster-t" title="cairo_text_cluster_t"><span class="returnvalue">cairo_text_cluster_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="cairo-text.html#cairo-text-cluster-allocate" title="cairo_text_cluster_allocate ()">cairo_text_cluster_allocate</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="cairo-text.html#cairo-text-cluster-free" title="cairo_text_cluster_free ()">cairo_text_cluster_free</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-text.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="cairo-text.html#cairo-glyph-t" title="cairo_glyph_t">cairo_glyph_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="cairo-text.html#cairo-font-slant-t" title="enum cairo_font_slant_t">cairo_font_slant_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="cairo-text.html#cairo-font-weight-t" title="enum cairo_font_weight_t">cairo_font_weight_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="cairo-text.html#cairo-text-cluster-t" title="cairo_text_cluster_t">cairo_text_cluster_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="cairo-text.html#cairo-text-cluster-flags-t" title="enum cairo_text_cluster_flags_t">cairo_text_cluster_flags_t</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="cairo-text.description"></a><h2>Description</h2>
+<p>The functions with <span class="emphasis"><em>text</em></span> in their name form cairo's
+<em class="firstterm">toy</em> text API. The toy API takes UTF-8 encoded
+text and is limited in its functionality to rendering simple
+left-to-right text with no advanced features. That means for example
+that most complex scripts like Hebrew, Arabic, and Indic scripts are
+out of question. No kerning or correct positioning of diacritical marks
+either. The font selection is pretty limited too and doesn't handle the
+case that the selected font does not cover the characters in the text.
+This set of functions are really that, a toy text API, for testing and
+demonstration purposes. Any serious application should avoid them.</p>
+<p>The functions with <span class="emphasis"><em>glyphs</em></span> in their name form cairo's
+<em class="firstterm">low-level</em> text API. The low-level API relies on
+the user to convert text to a set of glyph indexes and positions. This
+is a very hard problem and is best handled by external libraries, like
+the pangocairo that is part of the Pango text layout and rendering library.
+Pango is available from <a class="ulink" href="http://www.pango.org/" target="_top">http://www.pango.org/</a>.</p>
+</div>
+<div class="refsect1">
+<a name="cairo-text.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="cairo-select-font-face"></a><h3>cairo_select_font_face ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_select_font_face (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *family</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-text.html#cairo-font-slant-t" title="enum cairo_font_slant_t"><span class="type">cairo_font_slant_t</span></a> slant</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-text.html#cairo-font-weight-t" title="enum cairo_font_weight_t"><span class="type">cairo_font_weight_t</span></a> weight</code></em>);</pre>
+<p>Note: The <a class="link" href="cairo-text.html#cairo-select-font-face" title="cairo_select_font_face ()"><code class="function">cairo_select_font_face()</code></a> function call is part of what
+the cairo designers call the "toy" text API. It is convenient for
+short demos and simple programs, but it is not expected to be
+adequate for serious text-using applications.</p>
+<p>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.</p>
+<p>If <em class="parameter"><code>family</code></em>
+ starts with the string "<em class="parameter"><code>cairo</code></em>
+:", 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 <em class="parameter"><code>family</code></em>
+
+string, most notably, it recognizes the string "monospace". That is,
+the family name "<em class="parameter"><code>cairo</code></em>
+:monospace" will use the monospace version of
+the internal font family.</p>
+<p>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 <a class="link" href="cairo-FreeType-Fonts.html#cairo-ft-font-face-create-for-ft-face" title="cairo_ft_font_face_create_for_ft_face ()"><code class="function">cairo_ft_font_face_create_for_ft_face()</code></a> or
+<a class="link" href="cairo-FreeType-Fonts.html#cairo-ft-font-face-create-for-pattern" title="cairo_ft_font_face_create_for_pattern ()"><code class="function">cairo_ft_font_face_create_for_pattern()</code></a>.) The resulting font face
+could then be used with <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-create" title="cairo_scaled_font_create ()"><code class="function">cairo_scaled_font_create()</code></a> and
+<a class="link" href="cairo-text.html#cairo-set-scaled-font" title="cairo_set_scaled_font ()"><code class="function">cairo_set_scaled_font()</code></a>.</p>
+<p>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.</p>
+<p>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.</p>
+<p>If text is drawn without a call to <a class="link" href="cairo-text.html#cairo-select-font-face" title="cairo_select_font_face ()"><code class="function">cairo_select_font_face()</code></a>, (nor
+<a class="link" href="cairo-text.html#cairo-set-font-face" title="cairo_set_font_face ()"><code class="function">cairo_set_font_face()</code></a> nor <a class="link" href="cairo-text.html#cairo-set-scaled-font" title="cairo_set_scaled_font ()"><code class="function">cairo_set_scaled_font()</code></a>), the default
+family is platform-specific, but is essentially "sans-serif".
+Default slant is <a class="link" href="cairo-text.html#CAIRO-FONT-SLANT-NORMAL:CAPS"><code class="literal">CAIRO_FONT_SLANT_NORMAL</code></a>, and default weight is
+<a class="link" href="cairo-text.html#CAIRO-FONT-WEIGHT-NORMAL:CAPS"><code class="literal">CAIRO_FONT_WEIGHT_NORMAL</code></a>.</p>
+<p>This function is equivalent to a call to <a class="link" href="cairo-text.html#cairo-toy-font-face-create" title="cairo_toy_font_face_create ()"><code class="function">cairo_toy_font_face_create()</code></a>
+followed by <a class="link" href="cairo-text.html#cairo-set-font-face" title="cairo_set_font_face ()"><code class="function">cairo_set_font_face()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-select-font-face.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>family</p></td>
+<td class="parameter_description"><p>a font family name, encoded in UTF-8</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>slant</p></td>
+<td class="parameter_description"><p>the slant for the font</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>weight</p></td>
+<td class="parameter_description"><p>the weight for the font</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-set-font-size"></a><h3>cairo_set_font_size ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_set_font_size (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><span class="type">double</span> size</code></em>);</pre>
+<p>Sets the current font matrix to a scale by a factor of <em class="parameter"><code>size</code></em>
+, replacing
+any font matrix previously set with <a class="link" href="cairo-text.html#cairo-set-font-size" title="cairo_set_font_size ()"><code class="function">cairo_set_font_size()</code></a> or
+<a class="link" href="cairo-text.html#cairo-set-font-matrix" title="cairo_set_font_matrix ()"><code class="function">cairo_set_font_matrix()</code></a>. This results in a font size of <em class="parameter"><code>size</code></em>
+ user space
+units. (More precisely, this matrix will result in the font's
+em-square being a <em class="parameter"><code>size</code></em>
+ by <em class="parameter"><code>size</code></em>
+ square in user space.)</p>
+<p>If text is drawn without a call to <a class="link" href="cairo-text.html#cairo-set-font-size" title="cairo_set_font_size ()"><code class="function">cairo_set_font_size()</code></a>, (nor
+<a class="link" href="cairo-text.html#cairo-set-font-matrix" title="cairo_set_font_matrix ()"><code class="function">cairo_set_font_matrix()</code></a> nor <a class="link" href="cairo-text.html#cairo-set-scaled-font" title="cairo_set_scaled_font ()"><code class="function">cairo_set_scaled_font()</code></a>), the default
+font size is 10.0.</p>
+<div class="refsect3">
+<a name="cairo-set-font-size.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>size</p></td>
+<td class="parameter_description"><p>the new font size, in user space units</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-set-font-matrix"></a><h3>cairo_set_font_matrix ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_set_font_matrix (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a> *matrix</code></em>);</pre>
+<p>Sets the current font matrix to <em class="parameter"><code>matrix</code></em>
+. 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 <a class="link" href="cairo-text.html#cairo-set-font-size" title="cairo_set_font_size ()"><code class="function">cairo_set_font_size()</code></a>), but a more
+complex font matrix can be used to shear the font
+or stretch it unequally along the two axes</p>
+<div class="refsect3">
+<a name="cairo-set-font-matrix.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>matrix</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a> describing a transform to be applied to
+the current font.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-get-font-matrix"></a><h3>cairo_get_font_matrix ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_get_font_matrix (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-matrix-t.html#cairo-matrix-t" title="cairo_matrix_t"><span class="type">cairo_matrix_t</span></a> *matrix</code></em>);</pre>
+<p>Stores the current font matrix into <em class="parameter"><code>matrix</code></em>
+. See
+<a class="link" href="cairo-text.html#cairo-set-font-matrix" title="cairo_set_font_matrix ()"><code class="function">cairo_set_font_matrix()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-get-font-matrix.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>matrix</p></td>
+<td class="parameter_description"><p>return value for the matrix</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-set-font-options"></a><h3>cairo_set_font_options ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_set_font_options (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a> *options</code></em>);</pre>
+<p>Sets a set of custom font rendering options for the <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a>.
+Rendering options are derived by merging these options with the
+options derived from underlying surface; if the value in <em class="parameter"><code>options</code></em>
+
+has a default value (like <a class="link" href="cairo-cairo-t.html#CAIRO-ANTIALIAS-DEFAULT:CAPS"><code class="literal">CAIRO_ANTIALIAS_DEFAULT</code></a>), then the value
+from the surface is used.</p>
+<div class="refsect3">
+<a name="cairo-set-font-options.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>options</p></td>
+<td class="parameter_description"><p>font options to use</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-get-font-options"></a><h3>cairo_get_font_options ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_get_font_options (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a> *options</code></em>);</pre>
+<p>Retrieves font rendering options set via <a class="link" href="cairo-text.html#cairo-set-font-options" title="cairo_set_font_options ()"><span class="type">cairo_set_font_options</span></a>.
+Note that the returned options do not include any options derived
+from the underlying surface; they are literally the options
+passed to <a class="link" href="cairo-text.html#cairo-set-font-options" title="cairo_set_font_options ()"><code class="function">cairo_set_font_options()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-get-font-options.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>options</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-font-options-t.html#cairo-font-options-t" title="cairo_font_options_t"><span class="type">cairo_font_options_t</span></a> object into which to store
+the retrieved options. All existing values are overwritten</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-set-font-face"></a><h3>cairo_set_font_face ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_set_font_face (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> *font_face</code></em>);</pre>
+<p>Replaces the current <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> object in the <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> with
+<em class="parameter"><code>font_face</code></em>
+. The replaced font face in the <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> will be
+destroyed if there are no other references to it.</p>
+<div class="refsect3">
+<a name="cairo-set-font-face.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>font_face</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a>, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to restore to the default font</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-get-font-face"></a><h3>cairo_get_font_face ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="returnvalue">cairo_font_face_t</span></a> *
+cairo_get_font_face (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>Gets the current font face for a <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a>.</p>
+<div class="refsect3">
+<a name="cairo-get-font-face.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-get-font-face.returns"></a><h4>Returns</h4>
+<p> the current font face. This object is owned by
+cairo. To keep a reference to it, you must call
+<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-reference" title="cairo_font_face_reference ()"><code class="function">cairo_font_face_reference()</code></a>.</p>
+<p>This function never returns <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. If memory cannot be allocated, a
+special "nil" <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> object will be returned on which
+<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-status" title="cairo_font_face_status ()"><code class="function">cairo_font_face_status()</code></a> returns <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a>. Using
+this nil object will cause its error state to propagate to other
+objects it is passed to, (for example, calling
+<a class="link" href="cairo-text.html#cairo-set-font-face" title="cairo_set_font_face ()"><code class="function">cairo_set_font_face()</code></a> with a nil font will trigger an error that
+will shutdown the <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> object).</p>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-set-scaled-font"></a><h3>cairo_set_scaled_font ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_set_scaled_font (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> *scaled_font</code></em>);</pre>
+<p>Replaces the current font face, font matrix, and font options in
+the <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> with those of the <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a>. Except for
+some translation, the current CTM of the <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> should be the
+same as that of the <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a>, which can be accessed
+using <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-ctm" title="cairo_scaled_font_get_ctm ()"><code class="function">cairo_scaled_font_get_ctm()</code></a>.</p>
+<div class="refsect3">
+<a name="cairo-set-scaled-font.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>scaled_font</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-get-scaled-font"></a><h3>cairo_get_scaled_font ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="returnvalue">cairo_scaled_font_t</span></a> *
+cairo_get_scaled_font (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
+<p>Gets the current scaled font for a <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a>.</p>
+<div class="refsect3">
+<a name="cairo-get-scaled-font.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-get-scaled-font.returns"></a><h4>Returns</h4>
+<p> the current scaled font. This object is owned by
+cairo. To keep a reference to it, you must call
+<a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-reference" title="cairo_scaled_font_reference ()"><code class="function">cairo_scaled_font_reference()</code></a>.</p>
+<p>This function never returns <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. If memory cannot be allocated, a
+special "nil" <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a> object will be returned on which
+<a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-status" title="cairo_scaled_font_status ()"><code class="function">cairo_scaled_font_status()</code></a> returns <a class="link" href="cairo-Error-handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"><code class="literal">CAIRO_STATUS_NO_MEMORY</code></a>. Using
+this nil object will cause its error state to propagate to other
+objects it is passed to, (for example, calling
+<a class="link" href="cairo-text.html#cairo-set-scaled-font" title="cairo_set_scaled_font ()"><code class="function">cairo_set_scaled_font()</code></a> with a nil font will trigger an error that
+will shutdown the <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> object).</p>
+</div>
+<p class="since">Since: 1.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-show-text"></a><h3>cairo_show_text ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_show_text (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *utf8</code></em>);</pre>
+<p>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.</p>
+<p>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.</p>
+<p>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 <a class="link" href="cairo-text.html#cairo-show-text" title="cairo_show_text ()"><code class="function">cairo_show_text()</code></a>.</p>
+<p>Note: The <a class="link" href="cairo-text.html#cairo-show-text" title="cairo_show_text ()"><code class="function">cairo_show_text()</code></a> function call is part of what the cairo
+designers call the "toy" text API. It is convenient for short demos
+and simple programs, but it is not expected to be adequate for
+serious text-using applications. See <a class="link" href="cairo-text.html#cairo-show-glyphs" title="cairo_show_glyphs ()"><code class="function">cairo_show_glyphs()</code></a> for the
+"real" text display API in cairo.</p>
+<div class="refsect3">
+<a name="cairo-show-text.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>utf8</p></td>
+<td class="parameter_description"><p>a NUL-terminated string of text encoded in UTF-8, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-show-glyphs"></a><h3>cairo_show_glyphs ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_show_glyphs (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-text.html#cairo-glyph-t" title="cairo_glyph_t"><span class="type">cairo_glyph_t</span></a> *glyphs</code></em>,
+ <em class="parameter"><code><span class="type">int</span> num_glyphs</code></em>);</pre>
+<p>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.</p>
+<div class="refsect3">
+<a name="cairo-show-glyphs.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>glyphs</p></td>
+<td class="parameter_description"><p>array of glyphs to show</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>num_glyphs</p></td>
+<td class="parameter_description"><p>number of glyphs to show</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-show-text-glyphs"></a><h3>cairo_show_text_glyphs ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_show_text_glyphs (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *utf8</code></em>,
+ <em class="parameter"><code><span class="type">int</span> utf8_len</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-text.html#cairo-glyph-t" title="cairo_glyph_t"><span class="type">cairo_glyph_t</span></a> *glyphs</code></em>,
+ <em class="parameter"><code><span class="type">int</span> num_glyphs</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-text.html#cairo-text-cluster-t" title="cairo_text_cluster_t"><span class="type">cairo_text_cluster_t</span></a> *clusters</code></em>,
+ <em class="parameter"><code><span class="type">int</span> num_clusters</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-text.html#cairo-text-cluster-flags-t" title="enum cairo_text_cluster_flags_t"><span class="type">cairo_text_cluster_flags_t</span></a> cluster_flags</code></em>);</pre>
+<p>This operation has rendering effects similar to <a class="link" href="cairo-text.html#cairo-show-glyphs" title="cairo_show_glyphs ()"><code class="function">cairo_show_glyphs()</code></a>
+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 <a class="link" href="cairo-text.html#cairo-show-glyphs" title="cairo_show_glyphs ()"><code class="function">cairo_show_glyphs()</code></a> as if it had been passed
+<em class="parameter"><code>glyphs</code></em>
+ and <em class="parameter"><code>num_glyphs</code></em>
+.</p>
+<p>The mapping between <em class="parameter"><code>utf8</code></em>
+ and <em class="parameter"><code>glyphs</code></em>
+ is provided by an array of
+<em class="firstterm">clusters</em>. Each cluster covers a number of
+text bytes and glyphs, and neighboring clusters cover neighboring
+areas of <em class="parameter"><code>utf8</code></em>
+ and <em class="parameter"><code>glyphs</code></em>
+. The clusters should collectively cover <em class="parameter"><code>utf8</code></em>
+
+and <em class="parameter"><code>glyphs</code></em>
+ in entirety.</p>
+<p>The first cluster always covers bytes from the beginning of <em class="parameter"><code>utf8</code></em>
+.
+If <em class="parameter"><code>cluster_flags</code></em>
+ do not have the <a class="link" href="cairo-text.html#CAIRO-TEXT-CLUSTER-FLAG-BACKWARD:CAPS"><code class="literal">CAIRO_TEXT_CLUSTER_FLAG_BACKWARD</code></a>
+set, the first cluster also covers the beginning
+of <em class="parameter"><code>glyphs</code></em>
+, otherwise it covers the end of the <em class="parameter"><code>glyphs</code></em>
+ array and
+following clusters move backward.</p>
+<p>See <a class="link" href="cairo-text.html#cairo-text-cluster-t" title="cairo_text_cluster_t"><span class="type">cairo_text_cluster_t</span></a> for constraints on valid clusters.</p>
+<div class="refsect3">
+<a name="cairo-show-text-glyphs.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a cairo context</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>utf8</p></td>
+<td class="parameter_description"><p>a string of text encoded in UTF-8</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>utf8_len</p></td>
+<td class="parameter_description"><p>length of <em class="parameter"><code>utf8</code></em>
+in bytes, or -1 if it is NUL-terminated</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>glyphs</p></td>
+<td class="parameter_description"><p>array of glyphs to show</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>num_glyphs</p></td>
+<td class="parameter_description"><p>number of glyphs to show</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>clusters</p></td>
+<td class="parameter_description"><p>array of cluster mapping information</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>num_clusters</p></td>
+<td class="parameter_description"><p>number of clusters in the mapping</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cluster_flags</p></td>
+<td class="parameter_description"><p>cluster mapping flags</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-font-extents"></a><h3>cairo_font_extents ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_font_extents (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-font-extents-t" title="cairo_font_extents_t"><span class="type">cairo_font_extents_t</span></a> *extents</code></em>);</pre>
+<p>Gets the font extents for the currently selected font.</p>
+<div class="refsect3">
+<a name="cairo-font-extents.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>extents</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-font-extents-t" title="cairo_font_extents_t"><span class="type">cairo_font_extents_t</span></a> object into which the results
+will be stored.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-text-extents"></a><h3>cairo_text_extents ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_text_extents (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *utf8</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-text-extents-t" title="cairo_text_extents_t"><span class="type">cairo_text_extents_t</span></a> *extents</code></em>);</pre>
+<p>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 <a class="link" href="cairo-text.html#cairo-show-text" title="cairo_show_text ()"><code class="function">cairo_show_text()</code></a>). Additionally, the
+x_advance and y_advance values indicate the amount by which the
+current point would be advanced by <a class="link" href="cairo-text.html#cairo-show-text" title="cairo_show_text ()"><code class="function">cairo_show_text()</code></a>.</p>
+<p>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.</p>
+<div class="refsect3">
+<a name="cairo-text-extents.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>utf8</p></td>
+<td class="parameter_description"><p>a NUL-terminated string of text encoded in UTF-8, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>extents</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-text-extents-t" title="cairo_text_extents_t"><span class="type">cairo_text_extents_t</span></a> object into which the results
+will be stored</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-glyph-extents"></a><h3>cairo_glyph_extents ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_glyph_extents (<em class="parameter"><code><a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> *cr</code></em>,
+ <em class="parameter"><code>const <a class="link" href="cairo-text.html#cairo-glyph-t" title="cairo_glyph_t"><span class="type">cairo_glyph_t</span></a> *glyphs</code></em>,
+ <em class="parameter"><code><span class="type">int</span> num_glyphs</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-cairo-scaled-font-t.html#cairo-text-extents-t" title="cairo_text_extents_t"><span class="type">cairo_text_extents_t</span></a> *extents</code></em>);</pre>
+<p>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 <a class="link" href="cairo-text.html#cairo-show-glyphs" title="cairo_show_glyphs ()"><code class="function">cairo_show_glyphs()</code></a>).
+Additionally, the x_advance and y_advance values indicate the
+amount by which the current point would be advanced by
+<a class="link" href="cairo-text.html#cairo-show-glyphs" title="cairo_show_glyphs ()"><code class="function">cairo_show_glyphs()</code></a>.</p>
+<p>Note that whitespace glyphs do not contribute to the size of the
+rectangle (extents.width and extents.height).</p>
+<div class="refsect3">
+<a name="cairo-glyph-extents.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>glyphs</p></td>
+<td class="parameter_description"><p>an array of <a class="link" href="cairo-text.html#cairo-glyph-t" title="cairo_glyph_t"><span class="type">cairo_glyph_t</span></a> objects</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>num_glyphs</p></td>
+<td class="parameter_description"><p>the number of elements in <em class="parameter"><code>glyphs</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>extents</p></td>
+<td class="parameter_description"><p>a <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-text-extents-t" title="cairo_text_extents_t"><span class="type">cairo_text_extents_t</span></a> object into which the results
+will be stored</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-toy-font-face-create"></a><h3>cairo_toy_font_face_create ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="returnvalue">cairo_font_face_t</span></a> *
+cairo_toy_font_face_create (<em class="parameter"><code>const <span class="type">char</span> *family</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-text.html#cairo-font-slant-t" title="enum cairo_font_slant_t"><span class="type">cairo_font_slant_t</span></a> slant</code></em>,
+ <em class="parameter"><code><a class="link" href="cairo-text.html#cairo-font-weight-t" title="enum cairo_font_weight_t"><span class="type">cairo_font_weight_t</span></a> weight</code></em>);</pre>
+<p>Creates a font face from a triplet of family, slant, and weight.
+These font faces are used in implementation of the the <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> "toy"
+font API.</p>
+<p>If <em class="parameter"><code>family</code></em>
+ is the zero-length string "", the platform-specific default
+family is assumed. The default family then can be queried using
+<a class="link" href="cairo-text.html#cairo-toy-font-face-get-family" title="cairo_toy_font_face_get_family ()"><code class="function">cairo_toy_font_face_get_family()</code></a>.</p>
+<p>The <a class="link" href="cairo-text.html#cairo-select-font-face" title="cairo_select_font_face ()"><code class="function">cairo_select_font_face()</code></a> function uses this to create font faces.
+See that function for limitations and other details of toy font faces.</p>
+<div class="refsect3">
+<a name="cairo-toy-font-face-create.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>family</p></td>
+<td class="parameter_description"><p>a font family name, encoded in UTF-8</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>slant</p></td>
+<td class="parameter_description"><p>the slant for the font</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>weight</p></td>
+<td class="parameter_description"><p>the weight for the font</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-toy-font-face-create.returns"></a><h4>Returns</h4>
+<p> a newly created <a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a>. Free with
+<a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-destroy" title="cairo_font_face_destroy ()"><code class="function">cairo_font_face_destroy()</code></a> when you are done using it.</p>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-toy-font-face-get-family"></a><h3>cairo_toy_font_face_get_family ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> *
+cairo_toy_font_face_get_family (<em class="parameter"><code><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> *font_face</code></em>);</pre>
+<p>Gets the familly name of a toy font.</p>
+<div class="refsect3">
+<a name="cairo-toy-font-face-get-family.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>font_face</p></td>
+<td class="parameter_description"><p>A toy font face</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-toy-font-face-get-family.returns"></a><h4>Returns</h4>
+<p> The family name. This string is owned by the font face
+and remains valid as long as the font face is alive (referenced).</p>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-toy-font-face-get-slant"></a><h3>cairo_toy_font_face_get_slant ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-text.html#cairo-font-slant-t" title="enum cairo_font_slant_t"><span class="returnvalue">cairo_font_slant_t</span></a>
+cairo_toy_font_face_get_slant (<em class="parameter"><code><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> *font_face</code></em>);</pre>
+<p>Gets the slant a toy font.</p>
+<div class="refsect3">
+<a name="cairo-toy-font-face-get-slant.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>font_face</p></td>
+<td class="parameter_description"><p>A toy font face</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-toy-font-face-get-slant.returns"></a><h4>Returns</h4>
+<p> The slant value</p>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-toy-font-face-get-weight"></a><h3>cairo_toy_font_face_get_weight ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-text.html#cairo-font-weight-t" title="enum cairo_font_weight_t"><span class="returnvalue">cairo_font_weight_t</span></a>
+cairo_toy_font_face_get_weight (<em class="parameter"><code><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a> *font_face</code></em>);</pre>
+<p>Gets the weight a toy font.</p>
+<div class="refsect3">
+<a name="cairo-toy-font-face-get-weight.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>font_face</p></td>
+<td class="parameter_description"><p>A toy font face</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-toy-font-face-get-weight.returns"></a><h4>Returns</h4>
+<p> The weight value</p>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-glyph-allocate"></a><h3>cairo_glyph_allocate ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-text.html#cairo-glyph-t" title="cairo_glyph_t"><span class="returnvalue">cairo_glyph_t</span></a> *
+cairo_glyph_allocate (<em class="parameter"><code><span class="type">int</span> num_glyphs</code></em>);</pre>
+<p>Allocates an array of <a class="link" href="cairo-text.html#cairo-glyph-t" title="cairo_glyph_t"><span class="type">cairo_glyph_t</span></a>'s.
+This function is only useful in implementations of
+<a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-text-to-glyphs-func-t" title="cairo_user_scaled_font_text_to_glyphs_func_t ()"><span class="type">cairo_user_scaled_font_text_to_glyphs_func_t</span></a> 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.</p>
+<p>This function returns <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>num_glyphs</code></em>
+ is not positive,
+or if out of memory. That means, the <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> return value
+signals out-of-memory only if <em class="parameter"><code>num_glyphs</code></em>
+ was positive.</p>
+<div class="refsect3">
+<a name="cairo-glyph-allocate.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>num_glyphs</p></td>
+<td class="parameter_description"><p>number of glyphs to allocate</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-glyph-allocate.returns"></a><h4>Returns</h4>
+<p> the newly allocated array of glyphs that should be
+freed using <a class="link" href="cairo-text.html#cairo-glyph-free" title="cairo_glyph_free ()"><code class="function">cairo_glyph_free()</code></a></p>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-glyph-free"></a><h3>cairo_glyph_free ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_glyph_free (<em class="parameter"><code><a class="link" href="cairo-text.html#cairo-glyph-t" title="cairo_glyph_t"><span class="type">cairo_glyph_t</span></a> *glyphs</code></em>);</pre>
+<p>Frees an array of <a class="link" href="cairo-text.html#cairo-glyph-t" title="cairo_glyph_t"><span class="type">cairo_glyph_t</span></a>'s allocated using <a class="link" href="cairo-text.html#cairo-glyph-allocate" title="cairo_glyph_allocate ()"><code class="function">cairo_glyph_allocate()</code></a>.
+This function is only useful to free glyph array returned
+by <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-text-to-glyphs" title="cairo_scaled_font_text_to_glyphs ()"><code class="function">cairo_scaled_font_text_to_glyphs()</code></a> 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.</p>
+<div class="refsect3">
+<a name="cairo-glyph-free.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>glyphs</p></td>
+<td class="parameter_description"><p>array of glyphs to free, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-text-cluster-allocate"></a><h3>cairo_text_cluster_allocate ()</h3>
+<pre class="programlisting"><a class="link" href="cairo-text.html#cairo-text-cluster-t" title="cairo_text_cluster_t"><span class="returnvalue">cairo_text_cluster_t</span></a> *
+cairo_text_cluster_allocate (<em class="parameter"><code><span class="type">int</span> num_clusters</code></em>);</pre>
+<p>Allocates an array of <a class="link" href="cairo-text.html#cairo-text-cluster-t" title="cairo_text_cluster_t"><span class="type">cairo_text_cluster_t</span></a>'s.
+This function is only useful in implementations of
+<a class="link" href="cairo-User-Fonts.html#cairo-user-scaled-font-text-to-glyphs-func-t" title="cairo_user_scaled_font_text_to_glyphs_func_t ()"><span class="type">cairo_user_scaled_font_text_to_glyphs_func_t</span></a> 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.</p>
+<p>This function returns <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>num_clusters</code></em>
+ is not positive,
+or if out of memory. That means, the <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> return value
+signals out-of-memory only if <em class="parameter"><code>num_clusters</code></em>
+ was positive.</p>
+<div class="refsect3">
+<a name="cairo-text-cluster-allocate.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>num_clusters</p></td>
+<td class="parameter_description"><p>number of text_clusters to allocate</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="cairo-text-cluster-allocate.returns"></a><h4>Returns</h4>
+<p> the newly allocated array of text clusters that should be
+freed using <a class="link" href="cairo-text.html#cairo-text-cluster-free" title="cairo_text_cluster_free ()"><code class="function">cairo_text_cluster_free()</code></a></p>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-text-cluster-free"></a><h3>cairo_text_cluster_free ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+cairo_text_cluster_free (<em class="parameter"><code><a class="link" href="cairo-text.html#cairo-text-cluster-t" title="cairo_text_cluster_t"><span class="type">cairo_text_cluster_t</span></a> *clusters</code></em>);</pre>
+<p>Frees an array of <span class="type">cairo_text_cluster</span>'s allocated using <a class="link" href="cairo-text.html#cairo-text-cluster-allocate" title="cairo_text_cluster_allocate ()"><code class="function">cairo_text_cluster_allocate()</code></a>.
+This function is only useful to free text cluster array returned
+by <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-text-to-glyphs" title="cairo_scaled_font_text_to_glyphs ()"><code class="function">cairo_scaled_font_text_to_glyphs()</code></a> 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.</p>
+<div class="refsect3">
+<a name="cairo-text-cluster-free.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>clusters</p></td>
+<td class="parameter_description"><p>array of text clusters to free, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-text.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="cairo-glyph-t"></a><h3>cairo_glyph_t</h3>
+<pre class="programlisting">typedef struct {
+ unsigned long index;
+ double x;
+ double y;
+} cairo_glyph_t;
+</pre>
+<p>The <a class="link" href="cairo-text.html#cairo-glyph-t" title="cairo_glyph_t"><span class="type">cairo_glyph_t</span></a> 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 <em class="firstterm">ligature</em> 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.</p>
+<p>Note that the offsets given by <em class="parameter"><code>x</code></em>
+ and <em class="parameter"><code>y</code></em>
+ are not cumulative. When
+drawing or measuring text, each glyph is individually positioned
+with respect to the overall origin</p>
+<div class="refsect3">
+<a name="cairo-glyph-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p>unsigned <span class="type">long</span> <em class="structfield"><code><a name="cairo-glyph-t.index"></a>index</code></em>;</p></td>
+<td class="struct_member_description"><p>glyph index in the font. The exact interpretation of the
+glyph index depends on the font technology being used.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><span class="type">double</span> <em class="structfield"><code><a name="cairo-glyph-t.x"></a>x</code></em>;</p></td>
+<td class="struct_member_description"><p>the offset in the X direction between the origin used for
+drawing or measuring the string and the origin of this glyph.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><span class="type">double</span> <em class="structfield"><code><a name="cairo-glyph-t.y"></a>y</code></em>;</p></td>
+<td class="struct_member_description"><p>the offset in the Y direction between the origin used for
+drawing or measuring the string and the origin of this glyph.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-font-slant-t"></a><h3>enum cairo_font_slant_t</h3>
+<p>Specifies variants of a font face based on their slant.</p>
+<div class="refsect3">
+<a name="cairo-font-slant-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-FONT-SLANT-NORMAL:CAPS"></a>CAIRO_FONT_SLANT_NORMAL</p></td>
+<td class="enum_member_description">
+<p>Upright font style, since 1.0</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-FONT-SLANT-ITALIC:CAPS"></a>CAIRO_FONT_SLANT_ITALIC</p></td>
+<td class="enum_member_description">
+<p>Italic font style, since 1.0</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-FONT-SLANT-OBLIQUE:CAPS"></a>CAIRO_FONT_SLANT_OBLIQUE</p></td>
+<td class="enum_member_description">
+<p>Oblique font style, since 1.0</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-font-weight-t"></a><h3>enum cairo_font_weight_t</h3>
+<p>Specifies variants of a font face based on their weight.</p>
+<div class="refsect3">
+<a name="cairo-font-weight-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-FONT-WEIGHT-NORMAL:CAPS"></a>CAIRO_FONT_WEIGHT_NORMAL</p></td>
+<td class="enum_member_description">
+<p>Normal font weight, since 1.0</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="CAIRO-FONT-WEIGHT-BOLD:CAPS"></a>CAIRO_FONT_WEIGHT_BOLD</p></td>
+<td class="enum_member_description">
+<p>Bold font weight, since 1.0</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-text-cluster-t"></a><h3>cairo_text_cluster_t</h3>
+<pre class="programlisting">typedef struct {
+ int num_bytes;
+ int num_glyphs;
+} cairo_text_cluster_t;
+</pre>
+<p>The <a class="link" href="cairo-text.html#cairo-text-cluster-t" title="cairo_text_cluster_t"><span class="type">cairo_text_cluster_t</span></a> structure holds information about a single
+<em class="firstterm">text cluster</em>. A text cluster is a minimal
+mapping of some glyphs corresponding to some UTF-8 text.</p>
+<p>For a cluster to be valid, both <em class="parameter"><code>num_bytes</code></em>
+ and <em class="parameter"><code>num_glyphs</code></em>
+ 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.</p>
+<p>See <a class="link" href="cairo-text.html#cairo-show-text-glyphs" title="cairo_show_text_glyphs ()"><code class="function">cairo_show_text_glyphs()</code></a> for how clusters are used in advanced
+text operations.</p>
+<div class="refsect3">
+<a name="cairo-text-cluster-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><span class="type">int</span> <em class="structfield"><code><a name="cairo-text-cluster-t.num-bytes"></a>num_bytes</code></em>;</p></td>
+<td class="struct_member_description"><p>the number of bytes of UTF-8 text covered by cluster</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><span class="type">int</span> <em class="structfield"><code><a name="cairo-text-cluster-t.num-glyphs"></a>num_glyphs</code></em>;</p></td>
+<td class="struct_member_description"><p>the number of glyphs covered by cluster</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="cairo-text-cluster-flags-t"></a><h3>enum cairo_text_cluster_flags_t</h3>
+<p>Specifies properties of a text cluster mapping.</p>
+<div class="refsect3">
+<a name="cairo-text-cluster-flags-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody><tr>
+<td class="enum_member_name"><p><a name="CAIRO-TEXT-CLUSTER-FLAG-BACKWARD:CAPS"></a>CAIRO_TEXT_CLUSTER_FLAG_BACKWARD</p></td>
+<td class="enum_member_description">
+<p>The clusters in the cluster array
+map to glyphs in the glyph array from end to start. (Since 1.8)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.8</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="cairo-text.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="cairo-cairo-font-face-t.html#cairo-font-face-t" title="cairo_font_face_t"><span class="type">cairo_font_face_t</span></a>, <a class="link" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" title="cairo_scaled_font_t"><span class="type">cairo_scaled_font_t</span></a>, <a class="link" href="cairo-Paths.html#cairo-text-path" title="cairo_text_path ()"><code class="function">cairo_text_path()</code></a>,
+ <a class="link" href="cairo-Paths.html#cairo-glyph-path" title="cairo_glyph_path ()"><code class="function">cairo_glyph_path()</code></a></p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<book xmlns="http://www.devhelp.net/book" title="Cairo: A Vector Graphics Library" link="index.html" author="" name="cairo" version="2" language="c">
+ <chapters>
+ <sub name="Drawing" link="cairo-drawing.html">
+ <sub name="cairo_t" link="cairo-cairo-t.html"/>
+ <sub name="Paths" link="cairo-Paths.html"/>
+ <sub name="cairo_pattern_t" link="cairo-cairo-pattern-t.html"/>
+ <sub name="Regions" link="cairo-Regions.html"/>
+ <sub name="Transformations" link="cairo-Transformations.html"/>
+ <sub name="text" link="cairo-text.html"/>
+ <sub name="Raster Sources" link="cairo-Raster-Sources.html"/>
+ <sub name="Tags and Links" link="cairo-Tags-and-Links.html"/>
+ </sub>
+ <sub name="Fonts" link="cairo-fonts.html">
+ <sub name="cairo_font_face_t" link="cairo-cairo-font-face-t.html"/>
+ <sub name="cairo_scaled_font_t" link="cairo-cairo-scaled-font-t.html"/>
+ <sub name="cairo_font_options_t" link="cairo-cairo-font-options-t.html"/>
+ <sub name="FreeType Fonts" link="cairo-FreeType-Fonts.html"/>
+ <sub name="Win32 Fonts" link="cairo-Win32-Fonts.html"/>
+ <sub name="Quartz (CGFont) Fonts" link="cairo-Quartz-(CGFont)-Fonts.html"/>
+ <sub name="User Fonts" link="cairo-User-Fonts.html"/>
+ </sub>
+ <sub name="Surfaces" link="cairo-surfaces.html">
+ <sub name="cairo_device_t" link="cairo-cairo-device-t.html"/>
+ <sub name="cairo_surface_t" link="cairo-cairo-surface-t.html"/>
+ <sub name="Image Surfaces" link="cairo-Image-Surfaces.html"/>
+ <sub name="PDF Surfaces" link="cairo-PDF-Surfaces.html"/>
+ <sub name="PNG Support" link="cairo-PNG-Support.html"/>
+ <sub name="PostScript Surfaces" link="cairo-PostScript-Surfaces.html"/>
+ <sub name="Recording Surfaces" link="cairo-Recording-Surfaces.html"/>
+ <sub name="Win32 Surfaces" link="cairo-Win32-Surfaces.html"/>
+ <sub name="SVG Surfaces" link="cairo-SVG-Surfaces.html"/>
+ <sub name="Quartz Surfaces" link="cairo-Quartz-Surfaces.html"/>
+ <sub name="XCB Surfaces" link="cairo-XCB-Surfaces.html"/>
+ <sub name="XLib Surfaces" link="cairo-XLib-Surfaces.html"/>
+ <sub name="XLib-XRender Backend" link="cairo-XLib-XRender-Backend.html"/>
+ <sub name="Script Surfaces" link="cairo-Script-Surfaces.html"/>
+ </sub>
+ <sub name="Utilities" link="cairo-support.html">
+ <sub name="cairo_matrix_t" link="cairo-cairo-matrix-t.html"/>
+ <sub name="Error handling" link="cairo-Error-handling.html"/>
+ <sub name="Version Information" link="cairo-Version-Information.html"/>
+ <sub name="Types" link="cairo-Types.html"/>
+ </sub>
+ <sub name="Index" link="index-all.html"/>
+ <sub name="Index of new symbols in 1.2" link="index-1.2.html"/>
+ <sub name="Index of new symbols in 1.4" link="index-1.4.html"/>
+ <sub name="Index of new symbols in 1.6" link="index-1.6.html"/>
+ <sub name="Index of new symbols in 1.8" link="index-1.8.html"/>
+ <sub name="Index of new symbols in 1.10" link="index-1.10.html"/>
+ <sub name="Index of new symbols in 1.12" link="index-1.12.html"/>
+ <sub name="Index of new symbols in 1.14" link="index-1.14.html"/>
+ <sub name="Index of new symbols in 1.16" link="index-1.16.html"/>
+ <sub name="Creating a language binding for cairo" link="language-bindings.html">
+ <sub name="General considerations" link="language-bindings.html#bindings-general"/>
+ <sub name="Memory management" link="bindings-memory.html"/>
+ <sub name="Multiple return values" link="bindings-return-values.html"/>
+ <sub name="Overloading and optional arguments" link="bindings-overloading.html"/>
+ <sub name="Streams and File I/O" link="bindings-streams.html"/>
+ <sub name="Error handling" link="bindings-errors.html"/>
+ <sub name="Patterns" link="bindings-patterns.html"/>
+ <sub name="Surfaces" link="bindings-surfaces.html"/>
+ <sub name="Fonts" link="bindings-fonts.html"/>
+ <sub name="cairo_path_t" link="bindings-path.html"/>
+ </sub>
+ </chapters>
+ <functions>
+ <keyword type="function" name="cairo_create ()" link="cairo-cairo-t.html#cairo-create" since="1.0"/>
+ <keyword type="function" name="cairo_reference ()" link="cairo-cairo-t.html#cairo-reference" since="1.0"/>
+ <keyword type="function" name="cairo_destroy ()" link="cairo-cairo-t.html#cairo-destroy" since="1.0"/>
+ <keyword type="function" name="cairo_status ()" link="cairo-cairo-t.html#cairo-status" since="1.0"/>
+ <keyword type="function" name="cairo_save ()" link="cairo-cairo-t.html#cairo-save" since="1.0"/>
+ <keyword type="function" name="cairo_restore ()" link="cairo-cairo-t.html#cairo-restore" since="1.0"/>
+ <keyword type="function" name="cairo_get_target ()" link="cairo-cairo-t.html#cairo-get-target" since="1.0"/>
+ <keyword type="function" name="cairo_push_group ()" link="cairo-cairo-t.html#cairo-push-group" since="1.2"/>
+ <keyword type="function" name="cairo_push_group_with_content ()" link="cairo-cairo-t.html#cairo-push-group-with-content" since="1.2"/>
+ <keyword type="function" name="cairo_pop_group ()" link="cairo-cairo-t.html#cairo-pop-group" since="1.2"/>
+ <keyword type="function" name="cairo_pop_group_to_source ()" link="cairo-cairo-t.html#cairo-pop-group-to-source" since="1.2"/>
+ <keyword type="function" name="cairo_get_group_target ()" link="cairo-cairo-t.html#cairo-get-group-target" since="1.2"/>
+ <keyword type="function" name="cairo_set_source_rgb ()" link="cairo-cairo-t.html#cairo-set-source-rgb" since="1.0"/>
+ <keyword type="function" name="cairo_set_source_rgba ()" link="cairo-cairo-t.html#cairo-set-source-rgba" since="1.0"/>
+ <keyword type="function" name="cairo_set_source ()" link="cairo-cairo-t.html#cairo-set-source" since="1.0"/>
+ <keyword type="function" name="cairo_set_source_surface ()" link="cairo-cairo-t.html#cairo-set-source-surface" since="1.0"/>
+ <keyword type="function" name="cairo_get_source ()" link="cairo-cairo-t.html#cairo-get-source" since="1.0"/>
+ <keyword type="function" name="cairo_set_antialias ()" link="cairo-cairo-t.html#cairo-set-antialias" since="1.0"/>
+ <keyword type="function" name="cairo_get_antialias ()" link="cairo-cairo-t.html#cairo-get-antialias" since="1.0"/>
+ <keyword type="function" name="cairo_set_dash ()" link="cairo-cairo-t.html#cairo-set-dash" since="1.0"/>
+ <keyword type="function" name="cairo_get_dash_count ()" link="cairo-cairo-t.html#cairo-get-dash-count" since="1.4"/>
+ <keyword type="function" name="cairo_get_dash ()" link="cairo-cairo-t.html#cairo-get-dash" since="1.4"/>
+ <keyword type="function" name="cairo_set_fill_rule ()" link="cairo-cairo-t.html#cairo-set-fill-rule" since="1.0"/>
+ <keyword type="function" name="cairo_get_fill_rule ()" link="cairo-cairo-t.html#cairo-get-fill-rule" since="1.0"/>
+ <keyword type="function" name="cairo_set_line_cap ()" link="cairo-cairo-t.html#cairo-set-line-cap" since="1.0"/>
+ <keyword type="function" name="cairo_get_line_cap ()" link="cairo-cairo-t.html#cairo-get-line-cap" since="1.0"/>
+ <keyword type="function" name="cairo_set_line_join ()" link="cairo-cairo-t.html#cairo-set-line-join" since="1.0"/>
+ <keyword type="function" name="cairo_get_line_join ()" link="cairo-cairo-t.html#cairo-get-line-join" since="1.0"/>
+ <keyword type="function" name="cairo_set_line_width ()" link="cairo-cairo-t.html#cairo-set-line-width" since="1.0"/>
+ <keyword type="function" name="cairo_get_line_width ()" link="cairo-cairo-t.html#cairo-get-line-width" since="1.0"/>
+ <keyword type="function" name="cairo_set_miter_limit ()" link="cairo-cairo-t.html#cairo-set-miter-limit" since="1.0"/>
+ <keyword type="function" name="cairo_get_miter_limit ()" link="cairo-cairo-t.html#cairo-get-miter-limit" since="1.0"/>
+ <keyword type="function" name="cairo_set_operator ()" link="cairo-cairo-t.html#cairo-set-operator" since="1.0"/>
+ <keyword type="function" name="cairo_get_operator ()" link="cairo-cairo-t.html#cairo-get-operator" since="1.0"/>
+ <keyword type="function" name="cairo_set_tolerance ()" link="cairo-cairo-t.html#cairo-set-tolerance" since="1.0"/>
+ <keyword type="function" name="cairo_get_tolerance ()" link="cairo-cairo-t.html#cairo-get-tolerance" since="1.0"/>
+ <keyword type="function" name="cairo_clip ()" link="cairo-cairo-t.html#cairo-clip" since="1.0"/>
+ <keyword type="function" name="cairo_clip_preserve ()" link="cairo-cairo-t.html#cairo-clip-preserve" since="1.0"/>
+ <keyword type="function" name="cairo_clip_extents ()" link="cairo-cairo-t.html#cairo-clip-extents" since="1.4"/>
+ <keyword type="function" name="cairo_in_clip ()" link="cairo-cairo-t.html#cairo-in-clip" since="1.10"/>
+ <keyword type="function" name="cairo_reset_clip ()" link="cairo-cairo-t.html#cairo-reset-clip" since="1.0"/>
+ <keyword type="function" name="cairo_rectangle_list_destroy ()" link="cairo-cairo-t.html#cairo-rectangle-list-destroy" since="1.4"/>
+ <keyword type="function" name="cairo_copy_clip_rectangle_list ()" link="cairo-cairo-t.html#cairo-copy-clip-rectangle-list" since="1.4"/>
+ <keyword type="function" name="cairo_fill ()" link="cairo-cairo-t.html#cairo-fill" since="1.0"/>
+ <keyword type="function" name="cairo_fill_preserve ()" link="cairo-cairo-t.html#cairo-fill-preserve" since="1.0"/>
+ <keyword type="function" name="cairo_fill_extents ()" link="cairo-cairo-t.html#cairo-fill-extents" since="1.0"/>
+ <keyword type="function" name="cairo_in_fill ()" link="cairo-cairo-t.html#cairo-in-fill" since="1.0"/>
+ <keyword type="function" name="cairo_mask ()" link="cairo-cairo-t.html#cairo-mask" since="1.0"/>
+ <keyword type="function" name="cairo_mask_surface ()" link="cairo-cairo-t.html#cairo-mask-surface" since="1.0"/>
+ <keyword type="function" name="cairo_paint ()" link="cairo-cairo-t.html#cairo-paint" since="1.0"/>
+ <keyword type="function" name="cairo_paint_with_alpha ()" link="cairo-cairo-t.html#cairo-paint-with-alpha" since="1.0"/>
+ <keyword type="function" name="cairo_stroke ()" link="cairo-cairo-t.html#cairo-stroke" since="1.0"/>
+ <keyword type="function" name="cairo_stroke_preserve ()" link="cairo-cairo-t.html#cairo-stroke-preserve" since="1.0"/>
+ <keyword type="function" name="cairo_stroke_extents ()" link="cairo-cairo-t.html#cairo-stroke-extents" since="1.0"/>
+ <keyword type="function" name="cairo_in_stroke ()" link="cairo-cairo-t.html#cairo-in-stroke" since="1.0"/>
+ <keyword type="function" name="cairo_copy_page ()" link="cairo-cairo-t.html#cairo-copy-page" since="1.0"/>
+ <keyword type="function" name="cairo_show_page ()" link="cairo-cairo-t.html#cairo-show-page" since="1.0"/>
+ <keyword type="function" name="cairo_get_reference_count ()" link="cairo-cairo-t.html#cairo-get-reference-count" since="1.4"/>
+ <keyword type="function" name="cairo_set_user_data ()" link="cairo-cairo-t.html#cairo-set-user-data" since="1.4"/>
+ <keyword type="function" name="cairo_get_user_data ()" link="cairo-cairo-t.html#cairo-get-user-data" since="1.4"/>
+ <keyword type="typedef" name="cairo_t" link="cairo-cairo-t.html#cairo-t" since="1.0"/>
+ <keyword type="enum" name="enum cairo_antialias_t" link="cairo-cairo-t.html#cairo-antialias-t" since="1.0"/>
+ <keyword type="enum" name="enum cairo_fill_rule_t" link="cairo-cairo-t.html#cairo-fill-rule-t" since="1.0"/>
+ <keyword type="enum" name="enum cairo_line_cap_t" link="cairo-cairo-t.html#cairo-line-cap-t" since="1.0"/>
+ <keyword type="enum" name="enum cairo_line_join_t" link="cairo-cairo-t.html#cairo-line-join-t" since="1.0"/>
+ <keyword type="enum" name="enum cairo_operator_t" link="cairo-cairo-t.html#cairo-operator-t" since="1.0"/>
+ <keyword type="struct" name="cairo_rectangle_t" link="cairo-cairo-t.html#cairo-rectangle-t" since="1.4"/>
+ <keyword type="struct" name="cairo_rectangle_list_t" link="cairo-cairo-t.html#cairo-rectangle-list-t" since="1.4"/>
+ <keyword type="function" name="cairo_copy_path ()" link="cairo-Paths.html#cairo-copy-path" since="1.0"/>
+ <keyword type="function" name="cairo_copy_path_flat ()" link="cairo-Paths.html#cairo-copy-path-flat" since="1.0"/>
+ <keyword type="function" name="cairo_path_destroy ()" link="cairo-Paths.html#cairo-path-destroy" since="1.0"/>
+ <keyword type="function" name="cairo_append_path ()" link="cairo-Paths.html#cairo-append-path" since="1.0"/>
+ <keyword type="function" name="cairo_has_current_point ()" link="cairo-Paths.html#cairo-has-current-point" since="1.6"/>
+ <keyword type="function" name="cairo_get_current_point ()" link="cairo-Paths.html#cairo-get-current-point" since="1.0"/>
+ <keyword type="function" name="cairo_new_path ()" link="cairo-Paths.html#cairo-new-path" since="1.0"/>
+ <keyword type="function" name="cairo_new_sub_path ()" link="cairo-Paths.html#cairo-new-sub-path" since="1.2"/>
+ <keyword type="function" name="cairo_close_path ()" link="cairo-Paths.html#cairo-close-path" since="1.0"/>
+ <keyword type="function" name="cairo_arc ()" link="cairo-Paths.html#cairo-arc" since="1.0"/>
+ <keyword type="function" name="cairo_arc_negative ()" link="cairo-Paths.html#cairo-arc-negative" since="1.0"/>
+ <keyword type="function" name="cairo_curve_to ()" link="cairo-Paths.html#cairo-curve-to" since="1.0"/>
+ <keyword type="function" name="cairo_line_to ()" link="cairo-Paths.html#cairo-line-to" since="1.0"/>
+ <keyword type="function" name="cairo_move_to ()" link="cairo-Paths.html#cairo-move-to" since="1.0"/>
+ <keyword type="function" name="cairo_rectangle ()" link="cairo-Paths.html#cairo-rectangle" since="1.0"/>
+ <keyword type="function" name="cairo_glyph_path ()" link="cairo-Paths.html#cairo-glyph-path" since="1.0"/>
+ <keyword type="function" name="cairo_text_path ()" link="cairo-Paths.html#cairo-text-path" since="1.0"/>
+ <keyword type="function" name="cairo_rel_curve_to ()" link="cairo-Paths.html#cairo-rel-curve-to" since="1.0"/>
+ <keyword type="function" name="cairo_rel_line_to ()" link="cairo-Paths.html#cairo-rel-line-to" since="1.0"/>
+ <keyword type="function" name="cairo_rel_move_to ()" link="cairo-Paths.html#cairo-rel-move-to" since="1.0"/>
+ <keyword type="function" name="cairo_path_extents ()" link="cairo-Paths.html#cairo-path-extents" since="1.6"/>
+ <keyword type="struct" name="cairo_path_t" link="cairo-Paths.html#cairo-path-t" since="1.0"/>
+ <keyword type="union" name="union cairo_path_data_t" link="cairo-Paths.html#cairo-path-data-t" since="1.0"/>
+ <keyword type="enum" name="enum cairo_path_data_type_t" link="cairo-Paths.html#cairo-path-data-type-t" since="1.0"/>
+ <keyword type="function" name="cairo_pattern_add_color_stop_rgb ()" link="cairo-cairo-pattern-t.html#cairo-pattern-add-color-stop-rgb" since="1.0"/>
+ <keyword type="function" name="cairo_pattern_add_color_stop_rgba ()" link="cairo-cairo-pattern-t.html#cairo-pattern-add-color-stop-rgba" since="1.0"/>
+ <keyword type="function" name="cairo_pattern_get_color_stop_count ()" link="cairo-cairo-pattern-t.html#cairo-pattern-get-color-stop-count" since="1.4"/>
+ <keyword type="function" name="cairo_pattern_get_color_stop_rgba ()" link="cairo-cairo-pattern-t.html#cairo-pattern-get-color-stop-rgba" since="1.4"/>
+ <keyword type="function" name="cairo_pattern_create_rgb ()" link="cairo-cairo-pattern-t.html#cairo-pattern-create-rgb" since="1.0"/>
+ <keyword type="function" name="cairo_pattern_create_rgba ()" link="cairo-cairo-pattern-t.html#cairo-pattern-create-rgba" since="1.0"/>
+ <keyword type="function" name="cairo_pattern_get_rgba ()" link="cairo-cairo-pattern-t.html#cairo-pattern-get-rgba" since="1.4"/>
+ <keyword type="function" name="cairo_pattern_create_for_surface ()" link="cairo-cairo-pattern-t.html#cairo-pattern-create-for-surface" since="1.0"/>
+ <keyword type="function" name="cairo_pattern_get_surface ()" link="cairo-cairo-pattern-t.html#cairo-pattern-get-surface" since="1.4"/>
+ <keyword type="function" name="cairo_pattern_create_linear ()" link="cairo-cairo-pattern-t.html#cairo-pattern-create-linear" since="1.0"/>
+ <keyword type="function" name="cairo_pattern_get_linear_points ()" link="cairo-cairo-pattern-t.html#cairo-pattern-get-linear-points" since="1.4"/>
+ <keyword type="function" name="cairo_pattern_create_radial ()" link="cairo-cairo-pattern-t.html#cairo-pattern-create-radial" since="1.0"/>
+ <keyword type="function" name="cairo_pattern_get_radial_circles ()" link="cairo-cairo-pattern-t.html#cairo-pattern-get-radial-circles" since="1.4"/>
+ <keyword type="function" name="cairo_pattern_create_mesh ()" link="cairo-cairo-pattern-t.html#cairo-pattern-create-mesh" since="1.12"/>
+ <keyword type="function" name="cairo_mesh_pattern_begin_patch ()" link="cairo-cairo-pattern-t.html#cairo-mesh-pattern-begin-patch" since="1.12"/>
+ <keyword type="function" name="cairo_mesh_pattern_end_patch ()" link="cairo-cairo-pattern-t.html#cairo-mesh-pattern-end-patch" since="1.12"/>
+ <keyword type="function" name="cairo_mesh_pattern_move_to ()" link="cairo-cairo-pattern-t.html#cairo-mesh-pattern-move-to" since="1.12"/>
+ <keyword type="function" name="cairo_mesh_pattern_line_to ()" link="cairo-cairo-pattern-t.html#cairo-mesh-pattern-line-to" since="1.12"/>
+ <keyword type="function" name="cairo_mesh_pattern_curve_to ()" link="cairo-cairo-pattern-t.html#cairo-mesh-pattern-curve-to" since="1.12"/>
+ <keyword type="function" name="cairo_mesh_pattern_set_control_point ()" link="cairo-cairo-pattern-t.html#cairo-mesh-pattern-set-control-point" since="1.12"/>
+ <keyword type="function" name="cairo_mesh_pattern_set_corner_color_rgb ()" link="cairo-cairo-pattern-t.html#cairo-mesh-pattern-set-corner-color-rgb" since="1.12"/>
+ <keyword type="function" name="cairo_mesh_pattern_set_corner_color_rgba ()" link="cairo-cairo-pattern-t.html#cairo-mesh-pattern-set-corner-color-rgba" since="1.12"/>
+ <keyword type="function" name="cairo_mesh_pattern_get_patch_count ()" link="cairo-cairo-pattern-t.html#cairo-mesh-pattern-get-patch-count" since="1.12"/>
+ <keyword type="function" name="cairo_mesh_pattern_get_path ()" link="cairo-cairo-pattern-t.html#cairo-mesh-pattern-get-path" since="1.12"/>
+ <keyword type="function" name="cairo_mesh_pattern_get_control_point ()" link="cairo-cairo-pattern-t.html#cairo-mesh-pattern-get-control-point" since="1.12"/>
+ <keyword type="function" name="cairo_mesh_pattern_get_corner_color_rgba ()" link="cairo-cairo-pattern-t.html#cairo-mesh-pattern-get-corner-color-rgba" since="1.12"/>
+ <keyword type="function" name="cairo_pattern_reference ()" link="cairo-cairo-pattern-t.html#cairo-pattern-reference" since="1.0"/>
+ <keyword type="function" name="cairo_pattern_destroy ()" link="cairo-cairo-pattern-t.html#cairo-pattern-destroy" since="1.0"/>
+ <keyword type="function" name="cairo_pattern_status ()" link="cairo-cairo-pattern-t.html#cairo-pattern-status" since="1.0"/>
+ <keyword type="function" name="cairo_pattern_set_extend ()" link="cairo-cairo-pattern-t.html#cairo-pattern-set-extend" since="1.0"/>
+ <keyword type="function" name="cairo_pattern_get_extend ()" link="cairo-cairo-pattern-t.html#cairo-pattern-get-extend" since="1.0"/>
+ <keyword type="function" name="cairo_pattern_set_filter ()" link="cairo-cairo-pattern-t.html#cairo-pattern-set-filter" since="1.0"/>
+ <keyword type="function" name="cairo_pattern_get_filter ()" link="cairo-cairo-pattern-t.html#cairo-pattern-get-filter" since="1.0"/>
+ <keyword type="function" name="cairo_pattern_set_matrix ()" link="cairo-cairo-pattern-t.html#cairo-pattern-set-matrix" since="1.0"/>
+ <keyword type="function" name="cairo_pattern_get_matrix ()" link="cairo-cairo-pattern-t.html#cairo-pattern-get-matrix" since="1.0"/>
+ <keyword type="function" name="cairo_pattern_get_type ()" link="cairo-cairo-pattern-t.html#cairo-pattern-get-type" since="1.2"/>
+ <keyword type="function" name="cairo_pattern_get_reference_count ()" link="cairo-cairo-pattern-t.html#cairo-pattern-get-reference-count" since="1.4"/>
+ <keyword type="function" name="cairo_pattern_set_user_data ()" link="cairo-cairo-pattern-t.html#cairo-pattern-set-user-data" since="1.4"/>
+ <keyword type="function" name="cairo_pattern_get_user_data ()" link="cairo-cairo-pattern-t.html#cairo-pattern-get-user-data" since="1.4"/>
+ <keyword type="typedef" name="cairo_pattern_t" link="cairo-cairo-pattern-t.html#cairo-pattern-t" since="1.0"/>
+ <keyword type="enum" name="enum cairo_extend_t" link="cairo-cairo-pattern-t.html#cairo-extend-t" since="1.0"/>
+ <keyword type="enum" name="enum cairo_filter_t" link="cairo-cairo-pattern-t.html#cairo-filter-t" since="1.0"/>
+ <keyword type="enum" name="enum cairo_pattern_type_t" link="cairo-cairo-pattern-t.html#cairo-pattern-type-t" since="1.2"/>
+ <keyword type="function" name="cairo_region_create ()" link="cairo-Regions.html#cairo-region-create" since="1.10"/>
+ <keyword type="function" name="cairo_region_create_rectangle ()" link="cairo-Regions.html#cairo-region-create-rectangle" since="1.10"/>
+ <keyword type="function" name="cairo_region_create_rectangles ()" link="cairo-Regions.html#cairo-region-create-rectangles" since="1.10"/>
+ <keyword type="function" name="cairo_region_copy ()" link="cairo-Regions.html#cairo-region-copy" since="1.10"/>
+ <keyword type="function" name="cairo_region_reference ()" link="cairo-Regions.html#cairo-region-reference" since="1.10"/>
+ <keyword type="function" name="cairo_region_destroy ()" link="cairo-Regions.html#cairo-region-destroy" since="1.10"/>
+ <keyword type="function" name="cairo_region_status ()" link="cairo-Regions.html#cairo-region-status" since="1.10"/>
+ <keyword type="function" name="cairo_region_get_extents ()" link="cairo-Regions.html#cairo-region-get-extents" since="1.10"/>
+ <keyword type="function" name="cairo_region_num_rectangles ()" link="cairo-Regions.html#cairo-region-num-rectangles" since="1.10"/>
+ <keyword type="function" name="cairo_region_get_rectangle ()" link="cairo-Regions.html#cairo-region-get-rectangle" since="1.10"/>
+ <keyword type="function" name="cairo_region_is_empty ()" link="cairo-Regions.html#cairo-region-is-empty" since="1.10"/>
+ <keyword type="function" name="cairo_region_contains_point ()" link="cairo-Regions.html#cairo-region-contains-point" since="1.10"/>
+ <keyword type="function" name="cairo_region_contains_rectangle ()" link="cairo-Regions.html#cairo-region-contains-rectangle" since="1.10"/>
+ <keyword type="function" name="cairo_region_equal ()" link="cairo-Regions.html#cairo-region-equal" since="1.10"/>
+ <keyword type="function" name="cairo_region_translate ()" link="cairo-Regions.html#cairo-region-translate" since="1.10"/>
+ <keyword type="function" name="cairo_region_intersect ()" link="cairo-Regions.html#cairo-region-intersect" since="1.10"/>
+ <keyword type="function" name="cairo_region_intersect_rectangle ()" link="cairo-Regions.html#cairo-region-intersect-rectangle" since="1.10"/>
+ <keyword type="function" name="cairo_region_subtract ()" link="cairo-Regions.html#cairo-region-subtract" since="1.10"/>
+ <keyword type="function" name="cairo_region_subtract_rectangle ()" link="cairo-Regions.html#cairo-region-subtract-rectangle" since="1.10"/>
+ <keyword type="function" name="cairo_region_union ()" link="cairo-Regions.html#cairo-region-union" since="1.10"/>
+ <keyword type="function" name="cairo_region_union_rectangle ()" link="cairo-Regions.html#cairo-region-union-rectangle" since="1.10"/>
+ <keyword type="function" name="cairo_region_xor ()" link="cairo-Regions.html#cairo-region-xor" since="1.10"/>
+ <keyword type="function" name="cairo_region_xor_rectangle ()" link="cairo-Regions.html#cairo-region-xor-rectangle" since="1.10"/>
+ <keyword type="typedef" name="cairo_region_t" link="cairo-Regions.html#cairo-region-t" since="1.10"/>
+ <keyword type="enum" name="enum cairo_region_overlap_t" link="cairo-Regions.html#cairo-region-overlap-t" since="1.10"/>
+ <keyword type="function" name="cairo_translate ()" link="cairo-Transformations.html#cairo-translate" since="1.0"/>
+ <keyword type="function" name="cairo_scale ()" link="cairo-Transformations.html#cairo-scale" since="1.0"/>
+ <keyword type="function" name="cairo_rotate ()" link="cairo-Transformations.html#cairo-rotate" since="1.0"/>
+ <keyword type="function" name="cairo_transform ()" link="cairo-Transformations.html#cairo-transform" since="1.0"/>
+ <keyword type="function" name="cairo_set_matrix ()" link="cairo-Transformations.html#cairo-set-matrix" since="1.0"/>
+ <keyword type="function" name="cairo_get_matrix ()" link="cairo-Transformations.html#cairo-get-matrix" since="1.0"/>
+ <keyword type="function" name="cairo_identity_matrix ()" link="cairo-Transformations.html#cairo-identity-matrix" since="1.0"/>
+ <keyword type="function" name="cairo_user_to_device ()" link="cairo-Transformations.html#cairo-user-to-device" since="1.0"/>
+ <keyword type="function" name="cairo_user_to_device_distance ()" link="cairo-Transformations.html#cairo-user-to-device-distance" since="1.0"/>
+ <keyword type="function" name="cairo_device_to_user ()" link="cairo-Transformations.html#cairo-device-to-user" since="1.0"/>
+ <keyword type="function" name="cairo_device_to_user_distance ()" link="cairo-Transformations.html#cairo-device-to-user-distance" since="1.0"/>
+ <keyword type="function" name="cairo_select_font_face ()" link="cairo-text.html#cairo-select-font-face" since="1.0"/>
+ <keyword type="function" name="cairo_set_font_size ()" link="cairo-text.html#cairo-set-font-size" since="1.0"/>
+ <keyword type="function" name="cairo_set_font_matrix ()" link="cairo-text.html#cairo-set-font-matrix" since="1.0"/>
+ <keyword type="function" name="cairo_get_font_matrix ()" link="cairo-text.html#cairo-get-font-matrix" since="1.0"/>
+ <keyword type="function" name="cairo_set_font_options ()" link="cairo-text.html#cairo-set-font-options" since="1.0"/>
+ <keyword type="function" name="cairo_get_font_options ()" link="cairo-text.html#cairo-get-font-options" since="1.0"/>
+ <keyword type="function" name="cairo_set_font_face ()" link="cairo-text.html#cairo-set-font-face" since="1.0"/>
+ <keyword type="function" name="cairo_get_font_face ()" link="cairo-text.html#cairo-get-font-face" since="1.0"/>
+ <keyword type="function" name="cairo_set_scaled_font ()" link="cairo-text.html#cairo-set-scaled-font" since="1.2"/>
+ <keyword type="function" name="cairo_get_scaled_font ()" link="cairo-text.html#cairo-get-scaled-font" since="1.4"/>
+ <keyword type="function" name="cairo_show_text ()" link="cairo-text.html#cairo-show-text" since="1.0"/>
+ <keyword type="function" name="cairo_show_glyphs ()" link="cairo-text.html#cairo-show-glyphs" since="1.0"/>
+ <keyword type="function" name="cairo_show_text_glyphs ()" link="cairo-text.html#cairo-show-text-glyphs" since="1.8"/>
+ <keyword type="function" name="cairo_font_extents ()" link="cairo-text.html#cairo-font-extents" since="1.0"/>
+ <keyword type="function" name="cairo_text_extents ()" link="cairo-text.html#cairo-text-extents" since="1.0"/>
+ <keyword type="function" name="cairo_glyph_extents ()" link="cairo-text.html#cairo-glyph-extents" since="1.0"/>
+ <keyword type="function" name="cairo_toy_font_face_create ()" link="cairo-text.html#cairo-toy-font-face-create" since="1.8"/>
+ <keyword type="function" name="cairo_toy_font_face_get_family ()" link="cairo-text.html#cairo-toy-font-face-get-family" since="1.8"/>
+ <keyword type="function" name="cairo_toy_font_face_get_slant ()" link="cairo-text.html#cairo-toy-font-face-get-slant" since="1.8"/>
+ <keyword type="function" name="cairo_toy_font_face_get_weight ()" link="cairo-text.html#cairo-toy-font-face-get-weight" since="1.8"/>
+ <keyword type="function" name="cairo_glyph_allocate ()" link="cairo-text.html#cairo-glyph-allocate" since="1.8"/>
+ <keyword type="function" name="cairo_glyph_free ()" link="cairo-text.html#cairo-glyph-free" since="1.8"/>
+ <keyword type="function" name="cairo_text_cluster_allocate ()" link="cairo-text.html#cairo-text-cluster-allocate" since="1.8"/>
+ <keyword type="function" name="cairo_text_cluster_free ()" link="cairo-text.html#cairo-text-cluster-free" since="1.8"/>
+ <keyword type="struct" name="cairo_glyph_t" link="cairo-text.html#cairo-glyph-t" since="1.0"/>
+ <keyword type="enum" name="enum cairo_font_slant_t" link="cairo-text.html#cairo-font-slant-t" since="1.0"/>
+ <keyword type="enum" name="enum cairo_font_weight_t" link="cairo-text.html#cairo-font-weight-t" since="1.0"/>
+ <keyword type="struct" name="cairo_text_cluster_t" link="cairo-text.html#cairo-text-cluster-t" since="1.8"/>
+ <keyword type="enum" name="enum cairo_text_cluster_flags_t" link="cairo-text.html#cairo-text-cluster-flags-t" since="1.8"/>
+ <keyword type="function" name="cairo_pattern_create_raster_source ()" link="cairo-Raster-Sources.html#cairo-pattern-create-raster-source" since="1.12"/>
+ <keyword type="function" name="cairo_raster_source_pattern_set_callback_data ()" link="cairo-Raster-Sources.html#cairo-raster-source-pattern-set-callback-data" since="1.12"/>
+ <keyword type="function" name="cairo_raster_source_pattern_get_callback_data ()" link="cairo-Raster-Sources.html#cairo-raster-source-pattern-get-callback-data" since="1.12"/>
+ <keyword type="function" name="cairo_raster_source_pattern_set_acquire ()" link="cairo-Raster-Sources.html#cairo-raster-source-pattern-set-acquire" since="1.12"/>
+ <keyword type="function" name="cairo_raster_source_pattern_get_acquire ()" link="cairo-Raster-Sources.html#cairo-raster-source-pattern-get-acquire" since="1.12"/>
+ <keyword type="function" name="cairo_raster_source_pattern_set_snapshot ()" link="cairo-Raster-Sources.html#cairo-raster-source-pattern-set-snapshot" since="1.12"/>
+ <keyword type="function" name="cairo_raster_source_pattern_get_snapshot ()" link="cairo-Raster-Sources.html#cairo-raster-source-pattern-get-snapshot" since="1.12"/>
+ <keyword type="function" name="cairo_raster_source_pattern_set_copy ()" link="cairo-Raster-Sources.html#cairo-raster-source-pattern-set-copy" since="1.12"/>
+ <keyword type="function" name="cairo_raster_source_pattern_get_copy ()" link="cairo-Raster-Sources.html#cairo-raster-source-pattern-get-copy" since="1.12"/>
+ <keyword type="function" name="cairo_raster_source_pattern_set_finish ()" link="cairo-Raster-Sources.html#cairo-raster-source-pattern-set-finish" since="1.12"/>
+ <keyword type="function" name="cairo_raster_source_pattern_get_finish ()" link="cairo-Raster-Sources.html#cairo-raster-source-pattern-get-finish" since="1.12"/>
+ <keyword type="function" name="cairo_raster_source_acquire_func_t ()" link="cairo-Raster-Sources.html#cairo-raster-source-acquire-func-t" since="1.12"/>
+ <keyword type="function" name="cairo_raster_source_release_func_t ()" link="cairo-Raster-Sources.html#cairo-raster-source-release-func-t" since="1.12"/>
+ <keyword type="function" name="cairo_raster_source_snapshot_func_t ()" link="cairo-Raster-Sources.html#cairo-raster-source-snapshot-func-t" since="1.12"/>
+ <keyword type="function" name="cairo_raster_source_copy_func_t ()" link="cairo-Raster-Sources.html#cairo-raster-source-copy-func-t" since="1.12"/>
+ <keyword type="function" name="cairo_raster_source_finish_func_t ()" link="cairo-Raster-Sources.html#cairo-raster-source-finish-func-t" since="1.12"/>
+ <keyword type="function" name="cairo_tag_begin ()" link="cairo-Tags-and-Links.html#cairo-tag-begin" since="1.16"/>
+ <keyword type="function" name="cairo_tag_end ()" link="cairo-Tags-and-Links.html#cairo-tag-end" since="1.16"/>
+ <keyword type="macro" name="CAIRO_TAG_DEST" link="cairo-Tags-and-Links.html#CAIRO-TAG-DEST:CAPS" since="1.16"/>
+ <keyword type="macro" name="CAIRO_TAG_LINK" link="cairo-Tags-and-Links.html#CAIRO-TAG-LINK:CAPS" since="1.16"/>
+ <keyword type="function" name="cairo_font_face_reference ()" link="cairo-cairo-font-face-t.html#cairo-font-face-reference" since="1.0"/>
+ <keyword type="function" name="cairo_font_face_destroy ()" link="cairo-cairo-font-face-t.html#cairo-font-face-destroy" since="1.0"/>
+ <keyword type="function" name="cairo_font_face_status ()" link="cairo-cairo-font-face-t.html#cairo-font-face-status" since="1.0"/>
+ <keyword type="function" name="cairo_font_face_get_type ()" link="cairo-cairo-font-face-t.html#cairo-font-face-get-type" since="1.2"/>
+ <keyword type="function" name="cairo_font_face_get_reference_count ()" link="cairo-cairo-font-face-t.html#cairo-font-face-get-reference-count" since="1.4"/>
+ <keyword type="function" name="cairo_font_face_set_user_data ()" link="cairo-cairo-font-face-t.html#cairo-font-face-set-user-data" since="1.0"/>
+ <keyword type="function" name="cairo_font_face_get_user_data ()" link="cairo-cairo-font-face-t.html#cairo-font-face-get-user-data" since="1.0"/>
+ <keyword type="typedef" name="cairo_font_face_t" link="cairo-cairo-font-face-t.html#cairo-font-face-t" since="1.0"/>
+ <keyword type="enum" name="enum cairo_font_type_t" link="cairo-cairo-font-face-t.html#cairo-font-type-t" since="1.2"/>
+ <keyword type="function" name="cairo_scaled_font_create ()" link="cairo-cairo-scaled-font-t.html#cairo-scaled-font-create" since="1.0"/>
+ <keyword type="function" name="cairo_scaled_font_reference ()" link="cairo-cairo-scaled-font-t.html#cairo-scaled-font-reference" since="1.0"/>
+ <keyword type="function" name="cairo_scaled_font_destroy ()" link="cairo-cairo-scaled-font-t.html#cairo-scaled-font-destroy" since="1.0"/>
+ <keyword type="function" name="cairo_scaled_font_status ()" link="cairo-cairo-scaled-font-t.html#cairo-scaled-font-status" since="1.0"/>
+ <keyword type="function" name="cairo_scaled_font_extents ()" link="cairo-cairo-scaled-font-t.html#cairo-scaled-font-extents" since="1.0"/>
+ <keyword type="function" name="cairo_scaled_font_text_extents ()" link="cairo-cairo-scaled-font-t.html#cairo-scaled-font-text-extents" since="1.2"/>
+ <keyword type="function" name="cairo_scaled_font_glyph_extents ()" link="cairo-cairo-scaled-font-t.html#cairo-scaled-font-glyph-extents" since="1.0"/>
+ <keyword type="function" name="cairo_scaled_font_text_to_glyphs ()" link="cairo-cairo-scaled-font-t.html#cairo-scaled-font-text-to-glyphs" since="1.8"/>
+ <keyword type="function" name="cairo_scaled_font_get_font_face ()" link="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-font-face" since="1.2"/>
+ <keyword type="function" name="cairo_scaled_font_get_font_options ()" link="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-font-options" since="1.2"/>
+ <keyword type="function" name="cairo_scaled_font_get_font_matrix ()" link="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-font-matrix" since="1.2"/>
+ <keyword type="function" name="cairo_scaled_font_get_ctm ()" link="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-ctm" since="1.2"/>
+ <keyword type="function" name="cairo_scaled_font_get_scale_matrix ()" link="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-scale-matrix" since="1.8"/>
+ <keyword type="function" name="cairo_scaled_font_get_type ()" link="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-type" since="1.2"/>
+ <keyword type="function" name="cairo_scaled_font_get_reference_count ()" link="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-reference-count" since="1.4"/>
+ <keyword type="function" name="cairo_scaled_font_set_user_data ()" link="cairo-cairo-scaled-font-t.html#cairo-scaled-font-set-user-data" since="1.4"/>
+ <keyword type="function" name="cairo_scaled_font_get_user_data ()" link="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-user-data" since="1.4"/>
+ <keyword type="typedef" name="cairo_scaled_font_t" link="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t" since="1.0"/>
+ <keyword type="struct" name="cairo_font_extents_t" link="cairo-cairo-scaled-font-t.html#cairo-font-extents-t" since="1.0"/>
+ <keyword type="struct" name="cairo_text_extents_t" link="cairo-cairo-scaled-font-t.html#cairo-text-extents-t" since="1.0"/>
+ <keyword type="function" name="cairo_font_options_create ()" link="cairo-cairo-font-options-t.html#cairo-font-options-create" since="1.0"/>
+ <keyword type="function" name="cairo_font_options_copy ()" link="cairo-cairo-font-options-t.html#cairo-font-options-copy" since="1.0"/>
+ <keyword type="function" name="cairo_font_options_destroy ()" link="cairo-cairo-font-options-t.html#cairo-font-options-destroy" since="1.0"/>
+ <keyword type="function" name="cairo_font_options_status ()" link="cairo-cairo-font-options-t.html#cairo-font-options-status" since="1.0"/>
+ <keyword type="function" name="cairo_font_options_merge ()" link="cairo-cairo-font-options-t.html#cairo-font-options-merge" since="1.0"/>
+ <keyword type="function" name="cairo_font_options_hash ()" link="cairo-cairo-font-options-t.html#cairo-font-options-hash" since="1.0"/>
+ <keyword type="function" name="cairo_font_options_equal ()" link="cairo-cairo-font-options-t.html#cairo-font-options-equal" since="1.0"/>
+ <keyword type="function" name="cairo_font_options_set_antialias ()" link="cairo-cairo-font-options-t.html#cairo-font-options-set-antialias" since="1.0"/>
+ <keyword type="function" name="cairo_font_options_get_antialias ()" link="cairo-cairo-font-options-t.html#cairo-font-options-get-antialias" since="1.0"/>
+ <keyword type="function" name="cairo_font_options_set_subpixel_order ()" link="cairo-cairo-font-options-t.html#cairo-font-options-set-subpixel-order" since="1.0"/>
+ <keyword type="function" name="cairo_font_options_get_subpixel_order ()" link="cairo-cairo-font-options-t.html#cairo-font-options-get-subpixel-order" since="1.0"/>
+ <keyword type="function" name="cairo_font_options_set_hint_style ()" link="cairo-cairo-font-options-t.html#cairo-font-options-set-hint-style" since="1.0"/>
+ <keyword type="function" name="cairo_font_options_get_hint_style ()" link="cairo-cairo-font-options-t.html#cairo-font-options-get-hint-style" since="1.0"/>
+ <keyword type="function" name="cairo_font_options_set_hint_metrics ()" link="cairo-cairo-font-options-t.html#cairo-font-options-set-hint-metrics" since="1.0"/>
+ <keyword type="function" name="cairo_font_options_get_hint_metrics ()" link="cairo-cairo-font-options-t.html#cairo-font-options-get-hint-metrics" since="1.0"/>
+ <keyword type="function" name="cairo_font_options_get_variations ()" link="cairo-cairo-font-options-t.html#cairo-font-options-get-variations" since="1.16"/>
+ <keyword type="function" name="cairo_font_options_set_variations ()" link="cairo-cairo-font-options-t.html#cairo-font-options-set-variations" since="1.16"/>
+ <keyword type="typedef" name="cairo_font_options_t" link="cairo-cairo-font-options-t.html#cairo-font-options-t" since="1.0"/>
+ <keyword type="enum" name="enum cairo_subpixel_order_t" link="cairo-cairo-font-options-t.html#cairo-subpixel-order-t" since="1.0"/>
+ <keyword type="enum" name="enum cairo_hint_style_t" link="cairo-cairo-font-options-t.html#cairo-hint-style-t" since="1.0"/>
+ <keyword type="enum" name="enum cairo_hint_metrics_t" link="cairo-cairo-font-options-t.html#cairo-hint-metrics-t" since="1.0"/>
+ <keyword type="function" name="cairo_ft_font_face_create_for_ft_face ()" link="cairo-FreeType-Fonts.html#cairo-ft-font-face-create-for-ft-face" since="1.0"/>
+ <keyword type="function" name="cairo_ft_font_face_create_for_pattern ()" link="cairo-FreeType-Fonts.html#cairo-ft-font-face-create-for-pattern" since="1.0"/>
+ <keyword type="function" name="cairo_ft_font_options_substitute ()" link="cairo-FreeType-Fonts.html#cairo-ft-font-options-substitute" since="1.0"/>
+ <keyword type="function" name="cairo_ft_scaled_font_lock_face ()" link="cairo-FreeType-Fonts.html#cairo-ft-scaled-font-lock-face" since="1.0"/>
+ <keyword type="function" name="cairo_ft_scaled_font_unlock_face ()" link="cairo-FreeType-Fonts.html#cairo-ft-scaled-font-unlock-face" since="1.0"/>
+ <keyword type="function" name="cairo_ft_font_face_get_synthesize ()" link="cairo-FreeType-Fonts.html#cairo-ft-font-face-get-synthesize" since="1.12"/>
+ <keyword type="function" name="cairo_ft_font_face_set_synthesize ()" link="cairo-FreeType-Fonts.html#cairo-ft-font-face-set-synthesize" since="1.12"/>
+ <keyword type="function" name="cairo_ft_font_face_unset_synthesize ()" link="cairo-FreeType-Fonts.html#cairo-ft-font-face-unset-synthesize" since="1.12"/>
+ <keyword type="macro" name="CAIRO_HAS_FT_FONT" link="cairo-FreeType-Fonts.html#CAIRO-HAS-FT-FONT:CAPS" since="1.0"/>
+ <keyword type="macro" name="CAIRO_HAS_FC_FONT" link="cairo-FreeType-Fonts.html#CAIRO-HAS-FC-FONT:CAPS" since="1.10"/>
+ <keyword type="enum" name="enum cairo_ft_synthesize_t" link="cairo-FreeType-Fonts.html#cairo-ft-synthesize-t" since="1.12"/>
+ <keyword type="function" name="cairo_win32_font_face_create_for_logfontw ()" link="cairo-Win32-Fonts.html#cairo-win32-font-face-create-for-logfontw" since="1.0"/>
+ <keyword type="function" name="cairo_win32_font_face_create_for_hfont ()" link="cairo-Win32-Fonts.html#cairo-win32-font-face-create-for-hfont" since="1.2"/>
+ <keyword type="function" name="cairo_win32_font_face_create_for_logfontw_hfont ()" link="cairo-Win32-Fonts.html#cairo-win32-font-face-create-for-logfontw-hfont" since="1.6"/>
+ <keyword type="function" name="cairo_win32_scaled_font_select_font ()" link="cairo-Win32-Fonts.html#cairo-win32-scaled-font-select-font" since="1.0"/>
+ <keyword type="function" name="cairo_win32_scaled_font_done_font ()" link="cairo-Win32-Fonts.html#cairo-win32-scaled-font-done-font" since="1.0"/>
+ <keyword type="function" name="cairo_win32_scaled_font_get_metrics_factor ()" link="cairo-Win32-Fonts.html#cairo-win32-scaled-font-get-metrics-factor" since="1.0"/>
+ <keyword type="function" name="cairo_win32_scaled_font_get_logical_to_device ()" link="cairo-Win32-Fonts.html#cairo-win32-scaled-font-get-logical-to-device" since="1.4"/>
+ <keyword type="function" name="cairo_win32_scaled_font_get_device_to_logical ()" link="cairo-Win32-Fonts.html#cairo-win32-scaled-font-get-device-to-logical" since="1.4"/>
+ <keyword type="macro" name="CAIRO_HAS_WIN32_FONT" link="cairo-Win32-Fonts.html#CAIRO-HAS-WIN32-FONT:CAPS" since="1.8"/>
+ <keyword type="function" name="cairo_quartz_font_face_create_for_cgfont ()" link="cairo-Quartz-(CGFont)-Fonts.html#cairo-quartz-font-face-create-for-cgfont" since="1.6"/>
+ <keyword type="function" name="cairo_quartz_font_face_create_for_atsu_font_id ()" link="cairo-Quartz-(CGFont)-Fonts.html#cairo-quartz-font-face-create-for-atsu-font-id" since="1.6"/>
+ <keyword type="macro" name="CAIRO_HAS_QUARTZ_FONT" link="cairo-Quartz-(CGFont)-Fonts.html#CAIRO-HAS-QUARTZ-FONT:CAPS" since="1.6"/>
+ <keyword type="function" name="cairo_user_scaled_font_init_func_t ()" link="cairo-User-Fonts.html#cairo-user-scaled-font-init-func-t" since="1.8"/>
+ <keyword type="function" name="cairo_user_scaled_font_render_glyph_func_t ()" link="cairo-User-Fonts.html#cairo-user-scaled-font-render-glyph-func-t" since="1.8"/>
+ <keyword type="function" name="cairo_user_scaled_font_text_to_glyphs_func_t ()" link="cairo-User-Fonts.html#cairo-user-scaled-font-text-to-glyphs-func-t" since="1.8"/>
+ <keyword type="function" name="cairo_user_scaled_font_unicode_to_glyph_func_t ()" link="cairo-User-Fonts.html#cairo-user-scaled-font-unicode-to-glyph-func-t" since="1.8"/>
+ <keyword type="function" name="cairo_user_font_face_create ()" link="cairo-User-Fonts.html#cairo-user-font-face-create" since="1.8"/>
+ <keyword type="function" name="cairo_user_font_face_set_init_func ()" link="cairo-User-Fonts.html#cairo-user-font-face-set-init-func" since="1.8"/>
+ <keyword type="function" name="cairo_user_font_face_get_init_func ()" link="cairo-User-Fonts.html#cairo-user-font-face-get-init-func" since="1.8"/>
+ <keyword type="function" name="cairo_user_font_face_set_render_glyph_func ()" link="cairo-User-Fonts.html#cairo-user-font-face-set-render-glyph-func" since="1.8"/>
+ <keyword type="function" name="cairo_user_font_face_get_render_glyph_func ()" link="cairo-User-Fonts.html#cairo-user-font-face-get-render-glyph-func" since="1.8"/>
+ <keyword type="function" name="cairo_user_font_face_set_unicode_to_glyph_func ()" link="cairo-User-Fonts.html#cairo-user-font-face-set-unicode-to-glyph-func" since="1.8"/>
+ <keyword type="function" name="cairo_user_font_face_get_unicode_to_glyph_func ()" link="cairo-User-Fonts.html#cairo-user-font-face-get-unicode-to-glyph-func" since="1.8"/>
+ <keyword type="function" name="cairo_user_font_face_set_text_to_glyphs_func ()" link="cairo-User-Fonts.html#cairo-user-font-face-set-text-to-glyphs-func" since="1.8"/>
+ <keyword type="function" name="cairo_user_font_face_get_text_to_glyphs_func ()" link="cairo-User-Fonts.html#cairo-user-font-face-get-text-to-glyphs-func" since="1.8"/>
+ <keyword type="macro" name="CAIRO_HAS_USER_FONT" link="cairo-User-Fonts.html#CAIRO-HAS-USER-FONT:CAPS" since="1.8"/>
+ <keyword type="function" name="cairo_device_reference ()" link="cairo-cairo-device-t.html#cairo-device-reference" since="1.10"/>
+ <keyword type="function" name="cairo_device_destroy ()" link="cairo-cairo-device-t.html#cairo-device-destroy" since="1.10"/>
+ <keyword type="function" name="cairo_device_status ()" link="cairo-cairo-device-t.html#cairo-device-status" since="1.10"/>
+ <keyword type="function" name="cairo_device_finish ()" link="cairo-cairo-device-t.html#cairo-device-finish" since="1.10"/>
+ <keyword type="function" name="cairo_device_flush ()" link="cairo-cairo-device-t.html#cairo-device-flush" since="1.10"/>
+ <keyword type="function" name="cairo_device_get_type ()" link="cairo-cairo-device-t.html#cairo-device-get-type" since="1.10"/>
+ <keyword type="function" name="cairo_device_get_reference_count ()" link="cairo-cairo-device-t.html#cairo-device-get-reference-count" since="1.10"/>
+ <keyword type="function" name="cairo_device_set_user_data ()" link="cairo-cairo-device-t.html#cairo-device-set-user-data" since="1.10"/>
+ <keyword type="function" name="cairo_device_get_user_data ()" link="cairo-cairo-device-t.html#cairo-device-get-user-data" since="1.10"/>
+ <keyword type="function" name="cairo_device_acquire ()" link="cairo-cairo-device-t.html#cairo-device-acquire" since="1.10"/>
+ <keyword type="function" name="cairo_device_release ()" link="cairo-cairo-device-t.html#cairo-device-release" since="1.10"/>
+ <keyword type="function" name="cairo_device_observer_elapsed ()" link="cairo-cairo-device-t.html#cairo-device-observer-elapsed"/>
+ <keyword type="function" name="cairo_device_observer_fill_elapsed ()" link="cairo-cairo-device-t.html#cairo-device-observer-fill-elapsed"/>
+ <keyword type="function" name="cairo_device_observer_glyphs_elapsed ()" link="cairo-cairo-device-t.html#cairo-device-observer-glyphs-elapsed"/>
+ <keyword type="function" name="cairo_device_observer_mask_elapsed ()" link="cairo-cairo-device-t.html#cairo-device-observer-mask-elapsed"/>
+ <keyword type="function" name="cairo_device_observer_paint_elapsed ()" link="cairo-cairo-device-t.html#cairo-device-observer-paint-elapsed"/>
+ <keyword type="function" name="cairo_device_observer_print ()" link="cairo-cairo-device-t.html#cairo-device-observer-print"/>
+ <keyword type="function" name="cairo_device_observer_stroke_elapsed ()" link="cairo-cairo-device-t.html#cairo-device-observer-stroke-elapsed"/>
+ <keyword type="typedef" name="cairo_device_t" link="cairo-cairo-device-t.html#cairo-device-t" since="1.10"/>
+ <keyword type="enum" name="enum cairo_device_type_t" link="cairo-cairo-device-t.html#cairo-device-type-t" since="1.10"/>
+ <keyword type="function" name="cairo_surface_create_similar ()" link="cairo-cairo-surface-t.html#cairo-surface-create-similar" since="1.0"/>
+ <keyword type="function" name="cairo_surface_create_similar_image ()" link="cairo-cairo-surface-t.html#cairo-surface-create-similar-image" since="1.12"/>
+ <keyword type="function" name="cairo_surface_create_for_rectangle ()" link="cairo-cairo-surface-t.html#cairo-surface-create-for-rectangle" since="1.10"/>
+ <keyword type="function" name="cairo_surface_reference ()" link="cairo-cairo-surface-t.html#cairo-surface-reference" since="1.0"/>
+ <keyword type="function" name="cairo_surface_destroy ()" link="cairo-cairo-surface-t.html#cairo-surface-destroy" since="1.0"/>
+ <keyword type="function" name="cairo_surface_status ()" link="cairo-cairo-surface-t.html#cairo-surface-status" since="1.0"/>
+ <keyword type="function" name="cairo_surface_finish ()" link="cairo-cairo-surface-t.html#cairo-surface-finish" since="1.0"/>
+ <keyword type="function" name="cairo_surface_flush ()" link="cairo-cairo-surface-t.html#cairo-surface-flush" since="1.0"/>
+ <keyword type="function" name="cairo_surface_get_device ()" link="cairo-cairo-surface-t.html#cairo-surface-get-device" since="1.10"/>
+ <keyword type="function" name="cairo_surface_get_font_options ()" link="cairo-cairo-surface-t.html#cairo-surface-get-font-options" since="1.0"/>
+ <keyword type="function" name="cairo_surface_get_content ()" link="cairo-cairo-surface-t.html#cairo-surface-get-content" since="1.2"/>
+ <keyword type="function" name="cairo_surface_mark_dirty ()" link="cairo-cairo-surface-t.html#cairo-surface-mark-dirty" since="1.0"/>
+ <keyword type="function" name="cairo_surface_mark_dirty_rectangle ()" link="cairo-cairo-surface-t.html#cairo-surface-mark-dirty-rectangle" since="1.0"/>
+ <keyword type="function" name="cairo_surface_set_device_offset ()" link="cairo-cairo-surface-t.html#cairo-surface-set-device-offset" since="1.0"/>
+ <keyword type="function" name="cairo_surface_get_device_offset ()" link="cairo-cairo-surface-t.html#cairo-surface-get-device-offset" since="1.2"/>
+ <keyword type="function" name="cairo_surface_get_device_scale ()" link="cairo-cairo-surface-t.html#cairo-surface-get-device-scale" since="1.14"/>
+ <keyword type="function" name="cairo_surface_set_device_scale ()" link="cairo-cairo-surface-t.html#cairo-surface-set-device-scale" since="1.14"/>
+ <keyword type="function" name="cairo_surface_set_fallback_resolution ()" link="cairo-cairo-surface-t.html#cairo-surface-set-fallback-resolution" since="1.2"/>
+ <keyword type="function" name="cairo_surface_get_fallback_resolution ()" link="cairo-cairo-surface-t.html#cairo-surface-get-fallback-resolution" since="1.8"/>
+ <keyword type="function" name="cairo_surface_get_type ()" link="cairo-cairo-surface-t.html#cairo-surface-get-type" since="1.2"/>
+ <keyword type="function" name="cairo_surface_get_reference_count ()" link="cairo-cairo-surface-t.html#cairo-surface-get-reference-count" since="1.4"/>
+ <keyword type="function" name="cairo_surface_set_user_data ()" link="cairo-cairo-surface-t.html#cairo-surface-set-user-data" since="1.0"/>
+ <keyword type="function" name="cairo_surface_get_user_data ()" link="cairo-cairo-surface-t.html#cairo-surface-get-user-data" since="1.0"/>
+ <keyword type="function" name="cairo_surface_copy_page ()" link="cairo-cairo-surface-t.html#cairo-surface-copy-page" since="1.6"/>
+ <keyword type="function" name="cairo_surface_show_page ()" link="cairo-cairo-surface-t.html#cairo-surface-show-page" since="1.6"/>
+ <keyword type="function" name="cairo_surface_has_show_text_glyphs ()" link="cairo-cairo-surface-t.html#cairo-surface-has-show-text-glyphs" since="1.8"/>
+ <keyword type="function" name="cairo_surface_set_mime_data ()" link="cairo-cairo-surface-t.html#cairo-surface-set-mime-data" since="1.10"/>
+ <keyword type="function" name="cairo_surface_get_mime_data ()" link="cairo-cairo-surface-t.html#cairo-surface-get-mime-data" since="1.10"/>
+ <keyword type="function" name="cairo_surface_supports_mime_type ()" link="cairo-cairo-surface-t.html#cairo-surface-supports-mime-type" since="1.12"/>
+ <keyword type="function" name="cairo_surface_map_to_image ()" link="cairo-cairo-surface-t.html#cairo-surface-map-to-image" since="1.12"/>
+ <keyword type="function" name="cairo_surface_unmap_image ()" link="cairo-cairo-surface-t.html#cairo-surface-unmap-image" since="1.12"/>
+ <keyword type="macro" name="CAIRO_HAS_MIME_SURFACE" link="cairo-cairo-surface-t.html#CAIRO-HAS-MIME-SURFACE:CAPS"/>
+ <keyword type="macro" name="CAIRO_MIME_TYPE_CCITT_FAX" link="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX:CAPS" since="1.16"/>
+ <keyword type="macro" name="CAIRO_MIME_TYPE_CCITT_FAX_PARAMS" link="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS" since="1.16"/>
+ <keyword type="macro" name="CAIRO_MIME_TYPE_EPS" link="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-EPS:CAPS" since="1.16"/>
+ <keyword type="macro" name="CAIRO_MIME_TYPE_EPS_PARAMS" link="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-EPS-PARAMS:CAPS" since="1.16"/>
+ <keyword type="macro" name="CAIRO_MIME_TYPE_JBIG2" link="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2:CAPS" since="1.14"/>
+ <keyword type="macro" name="CAIRO_MIME_TYPE_JBIG2_GLOBAL" link="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL:CAPS" since="1.14"/>
+ <keyword type="macro" name="CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID" link="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL-ID:CAPS" since="1.14"/>
+ <keyword type="macro" name="CAIRO_MIME_TYPE_JP2" link="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JP2:CAPS" since="1.10"/>
+ <keyword type="macro" name="CAIRO_MIME_TYPE_JPEG" link="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JPEG:CAPS" since="1.10"/>
+ <keyword type="macro" name="CAIRO_MIME_TYPE_PNG" link="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-PNG:CAPS" since="1.10"/>
+ <keyword type="macro" name="CAIRO_MIME_TYPE_URI" link="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-URI:CAPS" since="1.10"/>
+ <keyword type="macro" name="CAIRO_MIME_TYPE_UNIQUE_ID" link="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-UNIQUE-ID:CAPS" since="1.12"/>
+ <keyword type="typedef" name="cairo_surface_t" link="cairo-cairo-surface-t.html#cairo-surface-t" since="1.0"/>
+ <keyword type="enum" name="enum cairo_content_t" link="cairo-cairo-surface-t.html#cairo-content-t" since="1.0"/>
+ <keyword type="enum" name="enum cairo_surface_type_t" link="cairo-cairo-surface-t.html#cairo-surface-type-t" since="1.2"/>
+ <keyword type="function" name="cairo_format_stride_for_width ()" link="cairo-Image-Surfaces.html#cairo-format-stride-for-width" since="1.6"/>
+ <keyword type="function" name="cairo_image_surface_create ()" link="cairo-Image-Surfaces.html#cairo-image-surface-create" since="1.0"/>
+ <keyword type="function" name="cairo_image_surface_create_for_data ()" link="cairo-Image-Surfaces.html#cairo-image-surface-create-for-data" since="1.0"/>
+ <keyword type="function" name="cairo_image_surface_get_data ()" link="cairo-Image-Surfaces.html#cairo-image-surface-get-data" since="1.2"/>
+ <keyword type="function" name="cairo_image_surface_get_format ()" link="cairo-Image-Surfaces.html#cairo-image-surface-get-format" since="1.2"/>
+ <keyword type="function" name="cairo_image_surface_get_width ()" link="cairo-Image-Surfaces.html#cairo-image-surface-get-width" since="1.0"/>
+ <keyword type="function" name="cairo_image_surface_get_height ()" link="cairo-Image-Surfaces.html#cairo-image-surface-get-height" since="1.0"/>
+ <keyword type="function" name="cairo_image_surface_get_stride ()" link="cairo-Image-Surfaces.html#cairo-image-surface-get-stride" since="1.2"/>
+ <keyword type="macro" name="CAIRO_HAS_IMAGE_SURFACE" link="cairo-Image-Surfaces.html#CAIRO-HAS-IMAGE-SURFACE:CAPS" since="1.8"/>
+ <keyword type="enum" name="enum cairo_format_t" link="cairo-Image-Surfaces.html#cairo-format-t" since="1.0"/>
+ <keyword type="function" name="cairo_pdf_surface_create ()" link="cairo-PDF-Surfaces.html#cairo-pdf-surface-create" since="1.2"/>
+ <keyword type="function" name="cairo_pdf_surface_create_for_stream ()" link="cairo-PDF-Surfaces.html#cairo-pdf-surface-create-for-stream" since="1.2"/>
+ <keyword type="function" name="cairo_pdf_surface_restrict_to_version ()" link="cairo-PDF-Surfaces.html#cairo-pdf-surface-restrict-to-version" since="1.10"/>
+ <keyword type="function" name="cairo_pdf_get_versions ()" link="cairo-PDF-Surfaces.html#cairo-pdf-get-versions" since="1.10"/>
+ <keyword type="function" name="cairo_pdf_version_to_string ()" link="cairo-PDF-Surfaces.html#cairo-pdf-version-to-string" since="1.10"/>
+ <keyword type="function" name="cairo_pdf_surface_set_size ()" link="cairo-PDF-Surfaces.html#cairo-pdf-surface-set-size" since="1.2"/>
+ <keyword type="function" name="cairo_pdf_surface_add_outline ()" link="cairo-PDF-Surfaces.html#cairo-pdf-surface-add-outline" since="1.16"/>
+ <keyword type="function" name="cairo_pdf_surface_set_metadata ()" link="cairo-PDF-Surfaces.html#cairo-pdf-surface-set-metadata" since="1.16"/>
+ <keyword type="function" name="cairo_pdf_surface_set_page_label ()" link="cairo-PDF-Surfaces.html#cairo-pdf-surface-set-page-label" since="1.16"/>
+ <keyword type="function" name="cairo_pdf_surface_set_thumbnail_size ()" link="cairo-PDF-Surfaces.html#cairo-pdf-surface-set-thumbnail-size" since="1.16"/>
+ <keyword type="macro" name="CAIRO_HAS_PDF_SURFACE" link="cairo-PDF-Surfaces.html#CAIRO-HAS-PDF-SURFACE:CAPS" since="1.2"/>
+ <keyword type="macro" name="CAIRO_PDF_OUTLINE_ROOT" link="cairo-PDF-Surfaces.html#CAIRO-PDF-OUTLINE-ROOT:CAPS" since="1.16"/>
+ <keyword type="enum" name="enum cairo_pdf_outline_flags_t" link="cairo-PDF-Surfaces.html#cairo-pdf-outline-flags-t" since="1.16"/>
+ <keyword type="enum" name="enum cairo_pdf_metadata_t" link="cairo-PDF-Surfaces.html#cairo-pdf-metadata-t" since="1.16"/>
+ <keyword type="enum" name="enum cairo_pdf_version_t" link="cairo-PDF-Surfaces.html#cairo-pdf-version-t" since="1.10"/>
+ <keyword type="function" name="cairo_image_surface_create_from_png ()" link="cairo-PNG-Support.html#cairo-image-surface-create-from-png" since="1.0"/>
+ <keyword type="function" name="cairo_read_func_t ()" link="cairo-PNG-Support.html#cairo-read-func-t" since="1.0"/>
+ <keyword type="function" name="cairo_image_surface_create_from_png_stream ()" link="cairo-PNG-Support.html#cairo-image-surface-create-from-png-stream" since="1.0"/>
+ <keyword type="function" name="cairo_surface_write_to_png ()" link="cairo-PNG-Support.html#cairo-surface-write-to-png" since="1.0"/>
+ <keyword type="function" name="cairo_write_func_t ()" link="cairo-PNG-Support.html#cairo-write-func-t" since="1.0"/>
+ <keyword type="function" name="cairo_surface_write_to_png_stream ()" link="cairo-PNG-Support.html#cairo-surface-write-to-png-stream" since="1.0"/>
+ <keyword type="macro" name="CAIRO_HAS_PNG_FUNCTIONS" link="cairo-PNG-Support.html#CAIRO-HAS-PNG-FUNCTIONS:CAPS" since="1.0"/>
+ <keyword type="function" name="cairo_ps_surface_create ()" link="cairo-PostScript-Surfaces.html#cairo-ps-surface-create" since="1.2"/>
+ <keyword type="function" name="cairo_ps_surface_create_for_stream ()" link="cairo-PostScript-Surfaces.html#cairo-ps-surface-create-for-stream" since="1.2"/>
+ <keyword type="function" name="cairo_ps_surface_restrict_to_level ()" link="cairo-PostScript-Surfaces.html#cairo-ps-surface-restrict-to-level" since="1.6"/>
+ <keyword type="function" name="cairo_ps_get_levels ()" link="cairo-PostScript-Surfaces.html#cairo-ps-get-levels" since="1.6"/>
+ <keyword type="function" name="cairo_ps_level_to_string ()" link="cairo-PostScript-Surfaces.html#cairo-ps-level-to-string" since="1.6"/>
+ <keyword type="function" name="cairo_ps_surface_set_eps ()" link="cairo-PostScript-Surfaces.html#cairo-ps-surface-set-eps" since="1.6"/>
+ <keyword type="function" name="cairo_ps_surface_get_eps ()" link="cairo-PostScript-Surfaces.html#cairo-ps-surface-get-eps" since="1.6"/>
+ <keyword type="function" name="cairo_ps_surface_set_size ()" link="cairo-PostScript-Surfaces.html#cairo-ps-surface-set-size" since="1.2"/>
+ <keyword type="function" name="cairo_ps_surface_dsc_begin_setup ()" link="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-begin-setup" since="1.2"/>
+ <keyword type="function" name="cairo_ps_surface_dsc_begin_page_setup ()" link="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-begin-page-setup" since="1.2"/>
+ <keyword type="function" name="cairo_ps_surface_dsc_comment ()" link="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-comment" since="1.2"/>
+ <keyword type="macro" name="CAIRO_HAS_PS_SURFACE" link="cairo-PostScript-Surfaces.html#CAIRO-HAS-PS-SURFACE:CAPS" since="1.2"/>
+ <keyword type="enum" name="enum cairo_ps_level_t" link="cairo-PostScript-Surfaces.html#cairo-ps-level-t" since="1.6"/>
+ <keyword type="function" name="cairo_recording_surface_create ()" link="cairo-Recording-Surfaces.html#cairo-recording-surface-create" since="1.10"/>
+ <keyword type="function" name="cairo_recording_surface_ink_extents ()" link="cairo-Recording-Surfaces.html#cairo-recording-surface-ink-extents" since="1.10"/>
+ <keyword type="function" name="cairo_recording_surface_get_extents ()" link="cairo-Recording-Surfaces.html#cairo-recording-surface-get-extents" since="1.12"/>
+ <keyword type="macro" name="CAIRO_HAS_RECORDING_SURFACE" link="cairo-Recording-Surfaces.html#CAIRO-HAS-RECORDING-SURFACE:CAPS" since="1.10"/>
+ <keyword type="function" name="cairo_win32_surface_create ()" link="cairo-Win32-Surfaces.html#cairo-win32-surface-create" since="1.0"/>
+ <keyword type="function" name="cairo_win32_surface_create_with_dib ()" link="cairo-Win32-Surfaces.html#cairo-win32-surface-create-with-dib" since="1.2"/>
+ <keyword type="function" name="cairo_win32_surface_create_with_ddb ()" link="cairo-Win32-Surfaces.html#cairo-win32-surface-create-with-ddb" since="1.4"/>
+ <keyword type="function" name="cairo_win32_surface_create_with_format ()" link="cairo-Win32-Surfaces.html#cairo-win32-surface-create-with-format" since="1.14"/>
+ <keyword type="function" name="cairo_win32_printing_surface_create ()" link="cairo-Win32-Surfaces.html#cairo-win32-printing-surface-create" since="1.6"/>
+ <keyword type="function" name="cairo_win32_surface_get_dc ()" link="cairo-Win32-Surfaces.html#cairo-win32-surface-get-dc" since="1.2"/>
+ <keyword type="function" name="cairo_win32_surface_get_image ()" link="cairo-Win32-Surfaces.html#cairo-win32-surface-get-image" since="1.4"/>
+ <keyword type="macro" name="CAIRO_HAS_WIN32_SURFACE" link="cairo-Win32-Surfaces.html#CAIRO-HAS-WIN32-SURFACE:CAPS" since="1.0"/>
+ <keyword type="function" name="cairo_svg_surface_create ()" link="cairo-SVG-Surfaces.html#cairo-svg-surface-create" since="1.2"/>
+ <keyword type="function" name="cairo_svg_surface_create_for_stream ()" link="cairo-SVG-Surfaces.html#cairo-svg-surface-create-for-stream" since="1.2"/>
+ <keyword type="function" name="cairo_svg_surface_get_document_unit ()" link="cairo-SVG-Surfaces.html#cairo-svg-surface-get-document-unit" since="1.16"/>
+ <keyword type="function" name="cairo_svg_surface_set_document_unit ()" link="cairo-SVG-Surfaces.html#cairo-svg-surface-set-document-unit" since="1.16"/>
+ <keyword type="function" name="cairo_svg_surface_restrict_to_version ()" link="cairo-SVG-Surfaces.html#cairo-svg-surface-restrict-to-version" since="1.2"/>
+ <keyword type="function" name="cairo_svg_get_versions ()" link="cairo-SVG-Surfaces.html#cairo-svg-get-versions" since="1.2"/>
+ <keyword type="function" name="cairo_svg_version_to_string ()" link="cairo-SVG-Surfaces.html#cairo-svg-version-to-string" since="1.2"/>
+ <keyword type="macro" name="CAIRO_HAS_SVG_SURFACE" link="cairo-SVG-Surfaces.html#CAIRO-HAS-SVG-SURFACE:CAPS" since="1.2"/>
+ <keyword type="enum" name="enum cairo_svg_version_t" link="cairo-SVG-Surfaces.html#cairo-svg-version-t" since="1.2"/>
+ <keyword type="enum" name="enum cairo_svg_unit_t" link="cairo-SVG-Surfaces.html#cairo-svg-unit-t" since="1.16"/>
+ <keyword type="function" name="cairo_quartz_surface_create ()" link="cairo-Quartz-Surfaces.html#cairo-quartz-surface-create" since="1.6"/>
+ <keyword type="function" name="cairo_quartz_surface_create_for_cg_context ()" link="cairo-Quartz-Surfaces.html#cairo-quartz-surface-create-for-cg-context" since="1.6"/>
+ <keyword type="function" name="cairo_quartz_surface_get_cg_context ()" link="cairo-Quartz-Surfaces.html#cairo-quartz-surface-get-cg-context" since="1.6"/>
+ <keyword type="macro" name="CAIRO_HAS_QUARTZ_SURFACE" link="cairo-Quartz-Surfaces.html#CAIRO-HAS-QUARTZ-SURFACE:CAPS" since="1.6"/>
+ <keyword type="function" name="cairo_xcb_surface_create ()" link="cairo-XCB-Surfaces.html#cairo-xcb-surface-create" since="1.12"/>
+ <keyword type="function" name="cairo_xcb_surface_create_for_bitmap ()" link="cairo-XCB-Surfaces.html#cairo-xcb-surface-create-for-bitmap" since="1.12"/>
+ <keyword type="function" name="cairo_xcb_surface_create_with_xrender_format ()" link="cairo-XCB-Surfaces.html#cairo-xcb-surface-create-with-xrender-format" since="1.12"/>
+ <keyword type="function" name="cairo_xcb_surface_set_size ()" link="cairo-XCB-Surfaces.html#cairo-xcb-surface-set-size" since="1.12"/>
+ <keyword type="function" name="cairo_xcb_surface_set_drawable ()" link="cairo-XCB-Surfaces.html#cairo-xcb-surface-set-drawable" since="1.12"/>
+ <keyword type="function" name="cairo_xcb_device_get_connection ()" link="cairo-XCB-Surfaces.html#cairo-xcb-device-get-connection" since="1.12"/>
+ <keyword type="function" name="cairo_xcb_device_debug_cap_xrender_version ()" link="cairo-XCB-Surfaces.html#cairo-xcb-device-debug-cap-xrender-version" since="1.12"/>
+ <keyword type="function" name="cairo_xcb_device_debug_cap_xshm_version ()" link="cairo-XCB-Surfaces.html#cairo-xcb-device-debug-cap-xshm-version" since="1.12"/>
+ <keyword type="function" name="cairo_xcb_device_debug_get_precision ()" link="cairo-XCB-Surfaces.html#cairo-xcb-device-debug-get-precision" since="1.12"/>
+ <keyword type="function" name="cairo_xcb_device_debug_set_precision ()" link="cairo-XCB-Surfaces.html#cairo-xcb-device-debug-set-precision" since="1.12"/>
+ <keyword type="macro" name="CAIRO_HAS_XCB_SURFACE" link="cairo-XCB-Surfaces.html#CAIRO-HAS-XCB-SURFACE:CAPS" since="1.12"/>
+ <keyword type="macro" name="CAIRO_HAS_XCB_SHM_FUNCTIONS" link="cairo-XCB-Surfaces.html#CAIRO-HAS-XCB-SHM-FUNCTIONS:CAPS"/>
+ <keyword type="function" name="cairo_xlib_surface_create ()" link="cairo-XLib-Surfaces.html#cairo-xlib-surface-create" since="1.0"/>
+ <keyword type="function" name="cairo_xlib_surface_create_for_bitmap ()" link="cairo-XLib-Surfaces.html#cairo-xlib-surface-create-for-bitmap" since="1.0"/>
+ <keyword type="function" name="cairo_xlib_surface_set_size ()" link="cairo-XLib-Surfaces.html#cairo-xlib-surface-set-size" since="1.0"/>
+ <keyword type="function" name="cairo_xlib_surface_get_display ()" link="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-display" since="1.2"/>
+ <keyword type="function" name="cairo_xlib_surface_get_screen ()" link="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-screen" since="1.2"/>
+ <keyword type="function" name="cairo_xlib_surface_set_drawable ()" link="cairo-XLib-Surfaces.html#cairo-xlib-surface-set-drawable" since="1.0"/>
+ <keyword type="function" name="cairo_xlib_surface_get_drawable ()" link="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-drawable" since="1.2"/>
+ <keyword type="function" name="cairo_xlib_surface_get_visual ()" link="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-visual" since="1.2"/>
+ <keyword type="function" name="cairo_xlib_surface_get_width ()" link="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-width" since="1.2"/>
+ <keyword type="function" name="cairo_xlib_surface_get_height ()" link="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-height" since="1.2"/>
+ <keyword type="function" name="cairo_xlib_surface_get_depth ()" link="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-depth" since="1.2"/>
+ <keyword type="function" name="cairo_xlib_device_debug_cap_xrender_version ()" link="cairo-XLib-Surfaces.html#cairo-xlib-device-debug-cap-xrender-version" since="1.12"/>
+ <keyword type="function" name="cairo_xlib_device_debug_get_precision ()" link="cairo-XLib-Surfaces.html#cairo-xlib-device-debug-get-precision" since="1.12"/>
+ <keyword type="function" name="cairo_xlib_device_debug_set_precision ()" link="cairo-XLib-Surfaces.html#cairo-xlib-device-debug-set-precision" since="1.12"/>
+ <keyword type="macro" name="CAIRO_HAS_XLIB_SURFACE" link="cairo-XLib-Surfaces.html#CAIRO-HAS-XLIB-SURFACE:CAPS" since="1.0"/>
+ <keyword type="function" name="cairo_xlib_surface_create_with_xrender_format ()" link="cairo-XLib-XRender-Backend.html#cairo-xlib-surface-create-with-xrender-format" since="1.0"/>
+ <keyword type="function" name="cairo_xlib_surface_get_xrender_format ()" link="cairo-XLib-XRender-Backend.html#cairo-xlib-surface-get-xrender-format" since="1.6"/>
+ <keyword type="macro" name="CAIRO_HAS_XLIB_XRENDER_SURFACE" link="cairo-XLib-XRender-Backend.html#CAIRO-HAS-XLIB-XRENDER-SURFACE:CAPS" since="1.6"/>
+ <keyword type="function" name="cairo_script_create ()" link="cairo-Script-Surfaces.html#cairo-script-create" since="1.12"/>
+ <keyword type="function" name="cairo_script_create_for_stream ()" link="cairo-Script-Surfaces.html#cairo-script-create-for-stream" since="1.12"/>
+ <keyword type="function" name="cairo_script_from_recording_surface ()" link="cairo-Script-Surfaces.html#cairo-script-from-recording-surface" since="1.12"/>
+ <keyword type="function" name="cairo_script_get_mode ()" link="cairo-Script-Surfaces.html#cairo-script-get-mode" since="1.12"/>
+ <keyword type="function" name="cairo_script_set_mode ()" link="cairo-Script-Surfaces.html#cairo-script-set-mode" since="1.12"/>
+ <keyword type="function" name="cairo_script_surface_create ()" link="cairo-Script-Surfaces.html#cairo-script-surface-create" since="1.12"/>
+ <keyword type="function" name="cairo_script_surface_create_for_target ()" link="cairo-Script-Surfaces.html#cairo-script-surface-create-for-target" since="1.12"/>
+ <keyword type="function" name="cairo_script_write_comment ()" link="cairo-Script-Surfaces.html#cairo-script-write-comment" since="1.12"/>
+ <keyword type="macro" name="CAIRO_HAS_SCRIPT_SURFACE" link="cairo-Script-Surfaces.html#CAIRO-HAS-SCRIPT-SURFACE:CAPS" since="1.12"/>
+ <keyword type="enum" name="enum cairo_script_mode_t" link="cairo-Script-Surfaces.html#cairo-script-mode-t" since="1.12"/>
+ <keyword type="function" name="cairo_matrix_init ()" link="cairo-cairo-matrix-t.html#cairo-matrix-init" since="1.0"/>
+ <keyword type="function" name="cairo_matrix_init_identity ()" link="cairo-cairo-matrix-t.html#cairo-matrix-init-identity" since="1.0"/>
+ <keyword type="function" name="cairo_matrix_init_translate ()" link="cairo-cairo-matrix-t.html#cairo-matrix-init-translate" since="1.0"/>
+ <keyword type="function" name="cairo_matrix_init_scale ()" link="cairo-cairo-matrix-t.html#cairo-matrix-init-scale" since="1.0"/>
+ <keyword type="function" name="cairo_matrix_init_rotate ()" link="cairo-cairo-matrix-t.html#cairo-matrix-init-rotate" since="1.0"/>
+ <keyword type="function" name="cairo_matrix_translate ()" link="cairo-cairo-matrix-t.html#cairo-matrix-translate" since="1.0"/>
+ <keyword type="function" name="cairo_matrix_scale ()" link="cairo-cairo-matrix-t.html#cairo-matrix-scale" since="1.0"/>
+ <keyword type="function" name="cairo_matrix_rotate ()" link="cairo-cairo-matrix-t.html#cairo-matrix-rotate" since="1.0"/>
+ <keyword type="function" name="cairo_matrix_invert ()" link="cairo-cairo-matrix-t.html#cairo-matrix-invert" since="1.0"/>
+ <keyword type="function" name="cairo_matrix_multiply ()" link="cairo-cairo-matrix-t.html#cairo-matrix-multiply" since="1.0"/>
+ <keyword type="function" name="cairo_matrix_transform_distance ()" link="cairo-cairo-matrix-t.html#cairo-matrix-transform-distance" since="1.0"/>
+ <keyword type="function" name="cairo_matrix_transform_point ()" link="cairo-cairo-matrix-t.html#cairo-matrix-transform-point" since="1.0"/>
+ <keyword type="struct" name="cairo_matrix_t" link="cairo-cairo-matrix-t.html#cairo-matrix-t" since="1.0"/>
+ <keyword type="function" name="cairo_status_to_string ()" link="cairo-Error-handling.html#cairo-status-to-string" since="1.0"/>
+ <keyword type="function" name="cairo_debug_reset_static_data ()" link="cairo-Error-handling.html#cairo-debug-reset-static-data" since="1.0"/>
+ <keyword type="enum" name="enum cairo_status_t" link="cairo-Error-handling.html#cairo-status-t" since="1.0"/>
+ <keyword type="macro" name="CAIRO_VERSION_ENCODE()" link="cairo-Version-Information.html#CAIRO-VERSION-ENCODE:CAPS" since="1.0"/>
+ <keyword type="macro" name="CAIRO_VERSION_STRINGIZE()" link="cairo-Version-Information.html#CAIRO-VERSION-STRINGIZE:CAPS" since="1.8"/>
+ <keyword type="function" name="cairo_version ()" link="cairo-Version-Information.html#cairo-version" since="1.0"/>
+ <keyword type="function" name="cairo_version_string ()" link="cairo-Version-Information.html#cairo-version-string" since="1.0"/>
+ <keyword type="macro" name="CAIRO_VERSION" link="cairo-Version-Information.html#CAIRO-VERSION:CAPS" since="1.0"/>
+ <keyword type="macro" name="CAIRO_VERSION_MAJOR" link="cairo-Version-Information.html#CAIRO-VERSION-MAJOR:CAPS" since="1.0"/>
+ <keyword type="macro" name="CAIRO_VERSION_MINOR" link="cairo-Version-Information.html#CAIRO-VERSION-MINOR:CAPS" since="1.0"/>
+ <keyword type="macro" name="CAIRO_VERSION_MICRO" link="cairo-Version-Information.html#CAIRO-VERSION-MICRO:CAPS" since="1.0"/>
+ <keyword type="macro" name="CAIRO_VERSION_STRING" link="cairo-Version-Information.html#CAIRO-VERSION-STRING:CAPS" since="1.8"/>
+ <keyword type="function" name="cairo_destroy_func_t ()" link="cairo-Types.html#cairo-destroy-func-t" since="1.0"/>
+ <keyword type="typedef" name="cairo_bool_t" link="cairo-Types.html#cairo-bool-t" since="1.0"/>
+ <keyword type="struct" name="cairo_user_data_key_t" link="cairo-Types.html#cairo-user-data-key-t" since="1.0"/>
+ <keyword type="struct" name="cairo_rectangle_int_t" link="cairo-Types.html#cairo-rectangle-int-t" since="1.10"/>
+ <keyword type="constant" name="CAIRO_ANTIALIAS_DEFAULT" link="cairo-cairo-t.html#CAIRO-ANTIALIAS-DEFAULT:CAPS"/>
+ <keyword type="constant" name="CAIRO_ANTIALIAS_NONE" link="cairo-cairo-t.html#CAIRO-ANTIALIAS-NONE:CAPS"/>
+ <keyword type="constant" name="CAIRO_ANTIALIAS_GRAY" link="cairo-cairo-t.html#CAIRO-ANTIALIAS-GRAY:CAPS"/>
+ <keyword type="constant" name="CAIRO_ANTIALIAS_SUBPIXEL" link="cairo-cairo-t.html#CAIRO-ANTIALIAS-SUBPIXEL:CAPS"/>
+ <keyword type="constant" name="CAIRO_ANTIALIAS_FAST" link="cairo-cairo-t.html#CAIRO-ANTIALIAS-FAST:CAPS"/>
+ <keyword type="constant" name="CAIRO_ANTIALIAS_GOOD" link="cairo-cairo-t.html#CAIRO-ANTIALIAS-GOOD:CAPS"/>
+ <keyword type="constant" name="CAIRO_ANTIALIAS_BEST" link="cairo-cairo-t.html#CAIRO-ANTIALIAS-BEST:CAPS"/>
+ <keyword type="constant" name="CAIRO_FILL_RULE_WINDING" link="cairo-cairo-t.html#CAIRO-FILL-RULE-WINDING:CAPS"/>
+ <keyword type="constant" name="CAIRO_FILL_RULE_EVEN_ODD" link="cairo-cairo-t.html#CAIRO-FILL-RULE-EVEN-ODD:CAPS"/>
+ <keyword type="constant" name="CAIRO_LINE_CAP_BUTT" link="cairo-cairo-t.html#CAIRO-LINE-CAP-BUTT:CAPS"/>
+ <keyword type="constant" name="CAIRO_LINE_CAP_ROUND" link="cairo-cairo-t.html#CAIRO-LINE-CAP-ROUND:CAPS"/>
+ <keyword type="constant" name="CAIRO_LINE_CAP_SQUARE" link="cairo-cairo-t.html#CAIRO-LINE-CAP-SQUARE:CAPS"/>
+ <keyword type="constant" name="CAIRO_LINE_JOIN_MITER" link="cairo-cairo-t.html#CAIRO-LINE-JOIN-MITER:CAPS"/>
+ <keyword type="constant" name="CAIRO_LINE_JOIN_ROUND" link="cairo-cairo-t.html#CAIRO-LINE-JOIN-ROUND:CAPS"/>
+ <keyword type="constant" name="CAIRO_LINE_JOIN_BEVEL" link="cairo-cairo-t.html#CAIRO-LINE-JOIN-BEVEL:CAPS"/>
+ <keyword type="constant" name="CAIRO_OPERATOR_CLEAR" link="cairo-cairo-t.html#CAIRO-OPERATOR-CLEAR:CAPS"/>
+ <keyword type="constant" name="CAIRO_OPERATOR_SOURCE" link="cairo-cairo-t.html#CAIRO-OPERATOR-SOURCE:CAPS"/>
+ <keyword type="constant" name="CAIRO_OPERATOR_OVER" link="cairo-cairo-t.html#CAIRO-OPERATOR-OVER:CAPS"/>
+ <keyword type="constant" name="CAIRO_OPERATOR_IN" link="cairo-cairo-t.html#CAIRO-OPERATOR-IN:CAPS"/>
+ <keyword type="constant" name="CAIRO_OPERATOR_OUT" link="cairo-cairo-t.html#CAIRO-OPERATOR-OUT:CAPS"/>
+ <keyword type="constant" name="CAIRO_OPERATOR_ATOP" link="cairo-cairo-t.html#CAIRO-OPERATOR-ATOP:CAPS"/>
+ <keyword type="constant" name="CAIRO_OPERATOR_DEST" link="cairo-cairo-t.html#CAIRO-OPERATOR-DEST:CAPS"/>
+ <keyword type="constant" name="CAIRO_OPERATOR_DEST_OVER" link="cairo-cairo-t.html#CAIRO-OPERATOR-DEST-OVER:CAPS"/>
+ <keyword type="constant" name="CAIRO_OPERATOR_DEST_IN" link="cairo-cairo-t.html#CAIRO-OPERATOR-DEST-IN:CAPS"/>
+ <keyword type="constant" name="CAIRO_OPERATOR_DEST_OUT" link="cairo-cairo-t.html#CAIRO-OPERATOR-DEST-OUT:CAPS"/>
+ <keyword type="constant" name="CAIRO_OPERATOR_DEST_ATOP" link="cairo-cairo-t.html#CAIRO-OPERATOR-DEST-ATOP:CAPS"/>
+ <keyword type="constant" name="CAIRO_OPERATOR_XOR" link="cairo-cairo-t.html#CAIRO-OPERATOR-XOR:CAPS"/>
+ <keyword type="constant" name="CAIRO_OPERATOR_ADD" link="cairo-cairo-t.html#CAIRO-OPERATOR-ADD:CAPS"/>
+ <keyword type="constant" name="CAIRO_OPERATOR_SATURATE" link="cairo-cairo-t.html#CAIRO-OPERATOR-SATURATE:CAPS"/>
+ <keyword type="constant" name="CAIRO_OPERATOR_MULTIPLY" link="cairo-cairo-t.html#CAIRO-OPERATOR-MULTIPLY:CAPS"/>
+ <keyword type="constant" name="CAIRO_OPERATOR_SCREEN" link="cairo-cairo-t.html#CAIRO-OPERATOR-SCREEN:CAPS"/>
+ <keyword type="constant" name="CAIRO_OPERATOR_OVERLAY" link="cairo-cairo-t.html#CAIRO-OPERATOR-OVERLAY:CAPS"/>
+ <keyword type="constant" name="CAIRO_OPERATOR_DARKEN" link="cairo-cairo-t.html#CAIRO-OPERATOR-DARKEN:CAPS"/>
+ <keyword type="constant" name="CAIRO_OPERATOR_LIGHTEN" link="cairo-cairo-t.html#CAIRO-OPERATOR-LIGHTEN:CAPS"/>
+ <keyword type="constant" name="CAIRO_OPERATOR_COLOR_DODGE" link="cairo-cairo-t.html#CAIRO-OPERATOR-COLOR-DODGE:CAPS"/>
+ <keyword type="constant" name="CAIRO_OPERATOR_COLOR_BURN" link="cairo-cairo-t.html#CAIRO-OPERATOR-COLOR-BURN:CAPS"/>
+ <keyword type="constant" name="CAIRO_OPERATOR_HARD_LIGHT" link="cairo-cairo-t.html#CAIRO-OPERATOR-HARD-LIGHT:CAPS"/>
+ <keyword type="constant" name="CAIRO_OPERATOR_SOFT_LIGHT" link="cairo-cairo-t.html#CAIRO-OPERATOR-SOFT-LIGHT:CAPS"/>
+ <keyword type="constant" name="CAIRO_OPERATOR_DIFFERENCE" link="cairo-cairo-t.html#CAIRO-OPERATOR-DIFFERENCE:CAPS"/>
+ <keyword type="constant" name="CAIRO_OPERATOR_EXCLUSION" link="cairo-cairo-t.html#CAIRO-OPERATOR-EXCLUSION:CAPS"/>
+ <keyword type="constant" name="CAIRO_OPERATOR_HSL_HUE" link="cairo-cairo-t.html#CAIRO-OPERATOR-HSL-HUE:CAPS"/>
+ <keyword type="constant" name="CAIRO_OPERATOR_HSL_SATURATION" link="cairo-cairo-t.html#CAIRO-OPERATOR-HSL-SATURATION:CAPS"/>
+ <keyword type="constant" name="CAIRO_OPERATOR_HSL_COLOR" link="cairo-cairo-t.html#CAIRO-OPERATOR-HSL-COLOR:CAPS"/>
+ <keyword type="constant" name="CAIRO_OPERATOR_HSL_LUMINOSITY" link="cairo-cairo-t.html#CAIRO-OPERATOR-HSL-LUMINOSITY:CAPS"/>
+ <keyword type="constant" name="CAIRO_PATH_MOVE_TO" link="cairo-Paths.html#CAIRO-PATH-MOVE-TO:CAPS"/>
+ <keyword type="constant" name="CAIRO_PATH_LINE_TO" link="cairo-Paths.html#CAIRO-PATH-LINE-TO:CAPS"/>
+ <keyword type="constant" name="CAIRO_PATH_CURVE_TO" link="cairo-Paths.html#CAIRO-PATH-CURVE-TO:CAPS"/>
+ <keyword type="constant" name="CAIRO_PATH_CLOSE_PATH" link="cairo-Paths.html#CAIRO-PATH-CLOSE-PATH:CAPS"/>
+ <keyword type="constant" name="CAIRO_EXTEND_NONE" link="cairo-cairo-pattern-t.html#CAIRO-EXTEND-NONE:CAPS"/>
+ <keyword type="constant" name="CAIRO_EXTEND_REPEAT" link="cairo-cairo-pattern-t.html#CAIRO-EXTEND-REPEAT:CAPS"/>
+ <keyword type="constant" name="CAIRO_EXTEND_REFLECT" link="cairo-cairo-pattern-t.html#CAIRO-EXTEND-REFLECT:CAPS"/>
+ <keyword type="constant" name="CAIRO_EXTEND_PAD" link="cairo-cairo-pattern-t.html#CAIRO-EXTEND-PAD:CAPS"/>
+ <keyword type="constant" name="CAIRO_FILTER_FAST" link="cairo-cairo-pattern-t.html#CAIRO-FILTER-FAST:CAPS"/>
+ <keyword type="constant" name="CAIRO_FILTER_GOOD" link="cairo-cairo-pattern-t.html#CAIRO-FILTER-GOOD:CAPS"/>
+ <keyword type="constant" name="CAIRO_FILTER_BEST" link="cairo-cairo-pattern-t.html#CAIRO-FILTER-BEST:CAPS"/>
+ <keyword type="constant" name="CAIRO_FILTER_NEAREST" link="cairo-cairo-pattern-t.html#CAIRO-FILTER-NEAREST:CAPS"/>
+ <keyword type="constant" name="CAIRO_FILTER_BILINEAR" link="cairo-cairo-pattern-t.html#CAIRO-FILTER-BILINEAR:CAPS"/>
+ <keyword type="constant" name="CAIRO_FILTER_GAUSSIAN" link="cairo-cairo-pattern-t.html#CAIRO-FILTER-GAUSSIAN:CAPS"/>
+ <keyword type="constant" name="CAIRO_PATTERN_TYPE_SOLID" link="cairo-cairo-pattern-t.html#CAIRO-PATTERN-TYPE-SOLID:CAPS"/>
+ <keyword type="constant" name="CAIRO_PATTERN_TYPE_SURFACE" link="cairo-cairo-pattern-t.html#CAIRO-PATTERN-TYPE-SURFACE:CAPS"/>
+ <keyword type="constant" name="CAIRO_PATTERN_TYPE_LINEAR" link="cairo-cairo-pattern-t.html#CAIRO-PATTERN-TYPE-LINEAR:CAPS"/>
+ <keyword type="constant" name="CAIRO_PATTERN_TYPE_RADIAL" link="cairo-cairo-pattern-t.html#CAIRO-PATTERN-TYPE-RADIAL:CAPS"/>
+ <keyword type="constant" name="CAIRO_PATTERN_TYPE_MESH" link="cairo-cairo-pattern-t.html#CAIRO-PATTERN-TYPE-MESH:CAPS"/>
+ <keyword type="constant" name="CAIRO_PATTERN_TYPE_RASTER_SOURCE" link="cairo-cairo-pattern-t.html#CAIRO-PATTERN-TYPE-RASTER-SOURCE:CAPS"/>
+ <keyword type="constant" name="CAIRO_REGION_OVERLAP_IN" link="cairo-Regions.html#CAIRO-REGION-OVERLAP-IN:CAPS"/>
+ <keyword type="constant" name="CAIRO_REGION_OVERLAP_OUT" link="cairo-Regions.html#CAIRO-REGION-OVERLAP-OUT:CAPS"/>
+ <keyword type="constant" name="CAIRO_REGION_OVERLAP_PART" link="cairo-Regions.html#CAIRO-REGION-OVERLAP-PART:CAPS"/>
+ <keyword type="constant" name="CAIRO_FONT_SLANT_NORMAL" link="cairo-text.html#CAIRO-FONT-SLANT-NORMAL:CAPS"/>
+ <keyword type="constant" name="CAIRO_FONT_SLANT_ITALIC" link="cairo-text.html#CAIRO-FONT-SLANT-ITALIC:CAPS"/>
+ <keyword type="constant" name="CAIRO_FONT_SLANT_OBLIQUE" link="cairo-text.html#CAIRO-FONT-SLANT-OBLIQUE:CAPS"/>
+ <keyword type="constant" name="CAIRO_FONT_WEIGHT_NORMAL" link="cairo-text.html#CAIRO-FONT-WEIGHT-NORMAL:CAPS"/>
+ <keyword type="constant" name="CAIRO_FONT_WEIGHT_BOLD" link="cairo-text.html#CAIRO-FONT-WEIGHT-BOLD:CAPS"/>
+ <keyword type="constant" name="CAIRO_TEXT_CLUSTER_FLAG_BACKWARD" link="cairo-text.html#CAIRO-TEXT-CLUSTER-FLAG-BACKWARD:CAPS"/>
+ <keyword type="constant" name="CAIRO_FONT_TYPE_TOY" link="cairo-cairo-font-face-t.html#CAIRO-FONT-TYPE-TOY:CAPS"/>
+ <keyword type="constant" name="CAIRO_FONT_TYPE_FT" link="cairo-cairo-font-face-t.html#CAIRO-FONT-TYPE-FT:CAPS"/>
+ <keyword type="constant" name="CAIRO_FONT_TYPE_WIN32" link="cairo-cairo-font-face-t.html#CAIRO-FONT-TYPE-WIN32:CAPS"/>
+ <keyword type="constant" name="CAIRO_FONT_TYPE_QUARTZ" link="cairo-cairo-font-face-t.html#CAIRO-FONT-TYPE-QUARTZ:CAPS"/>
+ <keyword type="constant" name="CAIRO_FONT_TYPE_USER" link="cairo-cairo-font-face-t.html#CAIRO-FONT-TYPE-USER:CAPS"/>
+ <keyword type="constant" name="CAIRO_SUBPIXEL_ORDER_DEFAULT" link="cairo-cairo-font-options-t.html#CAIRO-SUBPIXEL-ORDER-DEFAULT:CAPS"/>
+ <keyword type="constant" name="CAIRO_SUBPIXEL_ORDER_RGB" link="cairo-cairo-font-options-t.html#CAIRO-SUBPIXEL-ORDER-RGB:CAPS"/>
+ <keyword type="constant" name="CAIRO_SUBPIXEL_ORDER_BGR" link="cairo-cairo-font-options-t.html#CAIRO-SUBPIXEL-ORDER-BGR:CAPS"/>
+ <keyword type="constant" name="CAIRO_SUBPIXEL_ORDER_VRGB" link="cairo-cairo-font-options-t.html#CAIRO-SUBPIXEL-ORDER-VRGB:CAPS"/>
+ <keyword type="constant" name="CAIRO_SUBPIXEL_ORDER_VBGR" link="cairo-cairo-font-options-t.html#CAIRO-SUBPIXEL-ORDER-VBGR:CAPS"/>
+ <keyword type="constant" name="CAIRO_HINT_STYLE_DEFAULT" link="cairo-cairo-font-options-t.html#CAIRO-HINT-STYLE-DEFAULT:CAPS"/>
+ <keyword type="constant" name="CAIRO_HINT_STYLE_NONE" link="cairo-cairo-font-options-t.html#CAIRO-HINT-STYLE-NONE:CAPS"/>
+ <keyword type="constant" name="CAIRO_HINT_STYLE_SLIGHT" link="cairo-cairo-font-options-t.html#CAIRO-HINT-STYLE-SLIGHT:CAPS"/>
+ <keyword type="constant" name="CAIRO_HINT_STYLE_MEDIUM" link="cairo-cairo-font-options-t.html#CAIRO-HINT-STYLE-MEDIUM:CAPS"/>
+ <keyword type="constant" name="CAIRO_HINT_STYLE_FULL" link="cairo-cairo-font-options-t.html#CAIRO-HINT-STYLE-FULL:CAPS"/>
+ <keyword type="constant" name="CAIRO_HINT_METRICS_DEFAULT" link="cairo-cairo-font-options-t.html#CAIRO-HINT-METRICS-DEFAULT:CAPS"/>
+ <keyword type="constant" name="CAIRO_HINT_METRICS_OFF" link="cairo-cairo-font-options-t.html#CAIRO-HINT-METRICS-OFF:CAPS"/>
+ <keyword type="constant" name="CAIRO_HINT_METRICS_ON" link="cairo-cairo-font-options-t.html#CAIRO-HINT-METRICS-ON:CAPS"/>
+ <keyword type="constant" name="CAIRO_FT_SYNTHESIZE_BOLD" link="cairo-FreeType-Fonts.html#CAIRO-FT-SYNTHESIZE-BOLD:CAPS"/>
+ <keyword type="constant" name="CAIRO_FT_SYNTHESIZE_OBLIQUE" link="cairo-FreeType-Fonts.html#CAIRO-FT-SYNTHESIZE-OBLIQUE:CAPS"/>
+ <keyword type="constant" name="CAIRO_DEVICE_TYPE_DRM" link="cairo-cairo-device-t.html#CAIRO-DEVICE-TYPE-DRM:CAPS"/>
+ <keyword type="constant" name="CAIRO_DEVICE_TYPE_GL" link="cairo-cairo-device-t.html#CAIRO-DEVICE-TYPE-GL:CAPS"/>
+ <keyword type="constant" name="CAIRO_DEVICE_TYPE_SCRIPT" link="cairo-cairo-device-t.html#CAIRO-DEVICE-TYPE-SCRIPT:CAPS"/>
+ <keyword type="constant" name="CAIRO_DEVICE_TYPE_XCB" link="cairo-cairo-device-t.html#CAIRO-DEVICE-TYPE-XCB:CAPS"/>
+ <keyword type="constant" name="CAIRO_DEVICE_TYPE_XLIB" link="cairo-cairo-device-t.html#CAIRO-DEVICE-TYPE-XLIB:CAPS"/>
+ <keyword type="constant" name="CAIRO_DEVICE_TYPE_XML" link="cairo-cairo-device-t.html#CAIRO-DEVICE-TYPE-XML:CAPS"/>
+ <keyword type="constant" name="CAIRO_DEVICE_TYPE_COGL" link="cairo-cairo-device-t.html#CAIRO-DEVICE-TYPE-COGL:CAPS"/>
+ <keyword type="constant" name="CAIRO_DEVICE_TYPE_WIN32" link="cairo-cairo-device-t.html#CAIRO-DEVICE-TYPE-WIN32:CAPS"/>
+ <keyword type="constant" name="CAIRO_DEVICE_TYPE_INVALID" link="cairo-cairo-device-t.html#CAIRO-DEVICE-TYPE-INVALID:CAPS"/>
+ <keyword type="constant" name="CAIRO_CONTENT_COLOR" link="cairo-cairo-surface-t.html#CAIRO-CONTENT-COLOR:CAPS"/>
+ <keyword type="constant" name="CAIRO_CONTENT_ALPHA" link="cairo-cairo-surface-t.html#CAIRO-CONTENT-ALPHA:CAPS"/>
+ <keyword type="constant" name="CAIRO_CONTENT_COLOR_ALPHA" link="cairo-cairo-surface-t.html#CAIRO-CONTENT-COLOR-ALPHA:CAPS"/>
+ <keyword type="constant" name="CAIRO_SURFACE_TYPE_IMAGE" link="cairo-cairo-surface-t.html#CAIRO-SURFACE-TYPE-IMAGE:CAPS"/>
+ <keyword type="constant" name="CAIRO_SURFACE_TYPE_PDF" link="cairo-cairo-surface-t.html#CAIRO-SURFACE-TYPE-PDF:CAPS"/>
+ <keyword type="constant" name="CAIRO_SURFACE_TYPE_PS" link="cairo-cairo-surface-t.html#CAIRO-SURFACE-TYPE-PS:CAPS"/>
+ <keyword type="constant" name="CAIRO_SURFACE_TYPE_XLIB" link="cairo-cairo-surface-t.html#CAIRO-SURFACE-TYPE-XLIB:CAPS"/>
+ <keyword type="constant" name="CAIRO_SURFACE_TYPE_XCB" link="cairo-cairo-surface-t.html#CAIRO-SURFACE-TYPE-XCB:CAPS"/>
+ <keyword type="constant" name="CAIRO_SURFACE_TYPE_GLITZ" link="cairo-cairo-surface-t.html#CAIRO-SURFACE-TYPE-GLITZ:CAPS"/>
+ <keyword type="constant" name="CAIRO_SURFACE_TYPE_QUARTZ" link="cairo-cairo-surface-t.html#CAIRO-SURFACE-TYPE-QUARTZ:CAPS"/>
+ <keyword type="constant" name="CAIRO_SURFACE_TYPE_WIN32" link="cairo-cairo-surface-t.html#CAIRO-SURFACE-TYPE-WIN32:CAPS"/>
+ <keyword type="constant" name="CAIRO_SURFACE_TYPE_BEOS" link="cairo-cairo-surface-t.html#CAIRO-SURFACE-TYPE-BEOS:CAPS"/>
+ <keyword type="constant" name="CAIRO_SURFACE_TYPE_DIRECTFB" link="cairo-cairo-surface-t.html#CAIRO-SURFACE-TYPE-DIRECTFB:CAPS"/>
+ <keyword type="constant" name="CAIRO_SURFACE_TYPE_SVG" link="cairo-cairo-surface-t.html#CAIRO-SURFACE-TYPE-SVG:CAPS"/>
+ <keyword type="constant" name="CAIRO_SURFACE_TYPE_OS2" link="cairo-cairo-surface-t.html#CAIRO-SURFACE-TYPE-OS2:CAPS"/>
+ <keyword type="constant" name="CAIRO_SURFACE_TYPE_WIN32_PRINTING" link="cairo-cairo-surface-t.html#CAIRO-SURFACE-TYPE-WIN32-PRINTING:CAPS"/>
+ <keyword type="constant" name="CAIRO_SURFACE_TYPE_QUARTZ_IMAGE" link="cairo-cairo-surface-t.html#CAIRO-SURFACE-TYPE-QUARTZ-IMAGE:CAPS"/>
+ <keyword type="constant" name="CAIRO_SURFACE_TYPE_SCRIPT" link="cairo-cairo-surface-t.html#CAIRO-SURFACE-TYPE-SCRIPT:CAPS"/>
+ <keyword type="constant" name="CAIRO_SURFACE_TYPE_QT" link="cairo-cairo-surface-t.html#CAIRO-SURFACE-TYPE-QT:CAPS"/>
+ <keyword type="constant" name="CAIRO_SURFACE_TYPE_RECORDING" link="cairo-cairo-surface-t.html#CAIRO-SURFACE-TYPE-RECORDING:CAPS"/>
+ <keyword type="constant" name="CAIRO_SURFACE_TYPE_VG" link="cairo-cairo-surface-t.html#CAIRO-SURFACE-TYPE-VG:CAPS"/>
+ <keyword type="constant" name="CAIRO_SURFACE_TYPE_GL" link="cairo-cairo-surface-t.html#CAIRO-SURFACE-TYPE-GL:CAPS"/>
+ <keyword type="constant" name="CAIRO_SURFACE_TYPE_DRM" link="cairo-cairo-surface-t.html#CAIRO-SURFACE-TYPE-DRM:CAPS"/>
+ <keyword type="constant" name="CAIRO_SURFACE_TYPE_TEE" link="cairo-cairo-surface-t.html#CAIRO-SURFACE-TYPE-TEE:CAPS"/>
+ <keyword type="constant" name="CAIRO_SURFACE_TYPE_XML" link="cairo-cairo-surface-t.html#CAIRO-SURFACE-TYPE-XML:CAPS"/>
+ <keyword type="constant" name="CAIRO_SURFACE_TYPE_SKIA" link="cairo-cairo-surface-t.html#CAIRO-SURFACE-TYPE-SKIA:CAPS"/>
+ <keyword type="constant" name="CAIRO_SURFACE_TYPE_SUBSURFACE" link="cairo-cairo-surface-t.html#CAIRO-SURFACE-TYPE-SUBSURFACE:CAPS"/>
+ <keyword type="constant" name="CAIRO_SURFACE_TYPE_COGL" link="cairo-cairo-surface-t.html#CAIRO-SURFACE-TYPE-COGL:CAPS"/>
+ <keyword type="constant" name="CAIRO_FORMAT_INVALID" link="cairo-Image-Surfaces.html#CAIRO-FORMAT-INVALID:CAPS"/>
+ <keyword type="constant" name="CAIRO_FORMAT_ARGB32" link="cairo-Image-Surfaces.html#CAIRO-FORMAT-ARGB32:CAPS"/>
+ <keyword type="constant" name="CAIRO_FORMAT_RGB24" link="cairo-Image-Surfaces.html#CAIRO-FORMAT-RGB24:CAPS"/>
+ <keyword type="constant" name="CAIRO_FORMAT_A8" link="cairo-Image-Surfaces.html#CAIRO-FORMAT-A8:CAPS"/>
+ <keyword type="constant" name="CAIRO_FORMAT_A1" link="cairo-Image-Surfaces.html#CAIRO-FORMAT-A1:CAPS"/>
+ <keyword type="constant" name="CAIRO_FORMAT_RGB16_565" link="cairo-Image-Surfaces.html#CAIRO-FORMAT-RGB16-565:CAPS"/>
+ <keyword type="constant" name="CAIRO_FORMAT_RGB30" link="cairo-Image-Surfaces.html#CAIRO-FORMAT-RGB30:CAPS"/>
+ <keyword type="constant" name="CAIRO_PDF_OUTLINE_FLAG_OPEN" link="cairo-PDF-Surfaces.html#CAIRO-PDF-OUTLINE-FLAG-OPEN:CAPS"/>
+ <keyword type="constant" name="CAIRO_PDF_OUTLINE_FLAG_BOLD" link="cairo-PDF-Surfaces.html#CAIRO-PDF-OUTLINE-FLAG-BOLD:CAPS"/>
+ <keyword type="constant" name="CAIRO_PDF_OUTLINE_FLAG_ITALIC" link="cairo-PDF-Surfaces.html#CAIRO-PDF-OUTLINE-FLAG-ITALIC:CAPS"/>
+ <keyword type="constant" name="CAIRO_PDF_METADATA_TITLE" link="cairo-PDF-Surfaces.html#CAIRO-PDF-METADATA-TITLE:CAPS"/>
+ <keyword type="constant" name="CAIRO_PDF_METADATA_AUTHOR" link="cairo-PDF-Surfaces.html#CAIRO-PDF-METADATA-AUTHOR:CAPS"/>
+ <keyword type="constant" name="CAIRO_PDF_METADATA_SUBJECT" link="cairo-PDF-Surfaces.html#CAIRO-PDF-METADATA-SUBJECT:CAPS"/>
+ <keyword type="constant" name="CAIRO_PDF_METADATA_KEYWORDS" link="cairo-PDF-Surfaces.html#CAIRO-PDF-METADATA-KEYWORDS:CAPS"/>
+ <keyword type="constant" name="CAIRO_PDF_METADATA_CREATOR" link="cairo-PDF-Surfaces.html#CAIRO-PDF-METADATA-CREATOR:CAPS"/>
+ <keyword type="constant" name="CAIRO_PDF_METADATA_CREATE_DATE" link="cairo-PDF-Surfaces.html#CAIRO-PDF-METADATA-CREATE-DATE:CAPS"/>
+ <keyword type="constant" name="CAIRO_PDF_METADATA_MOD_DATE" link="cairo-PDF-Surfaces.html#CAIRO-PDF-METADATA-MOD-DATE:CAPS"/>
+ <keyword type="constant" name="CAIRO_PDF_VERSION_1_4" link="cairo-PDF-Surfaces.html#CAIRO-PDF-VERSION-1-4:CAPS"/>
+ <keyword type="constant" name="CAIRO_PDF_VERSION_1_5" link="cairo-PDF-Surfaces.html#CAIRO-PDF-VERSION-1-5:CAPS"/>
+ <keyword type="constant" name="CAIRO_PS_LEVEL_2" link="cairo-PostScript-Surfaces.html#CAIRO-PS-LEVEL-2:CAPS"/>
+ <keyword type="constant" name="CAIRO_PS_LEVEL_3" link="cairo-PostScript-Surfaces.html#CAIRO-PS-LEVEL-3:CAPS"/>
+ <keyword type="constant" name="CAIRO_SVG_VERSION_1_1" link="cairo-SVG-Surfaces.html#CAIRO-SVG-VERSION-1-1:CAPS"/>
+ <keyword type="constant" name="CAIRO_SVG_VERSION_1_2" link="cairo-SVG-Surfaces.html#CAIRO-SVG-VERSION-1-2:CAPS"/>
+ <keyword type="constant" name="CAIRO_SVG_UNIT_USER" link="cairo-SVG-Surfaces.html#CAIRO-SVG-UNIT-USER:CAPS"/>
+ <keyword type="constant" name="CAIRO_SVG_UNIT_EM" link="cairo-SVG-Surfaces.html#CAIRO-SVG-UNIT-EM:CAPS"/>
+ <keyword type="constant" name="CAIRO_SVG_UNIT_EX" link="cairo-SVG-Surfaces.html#CAIRO-SVG-UNIT-EX:CAPS"/>
+ <keyword type="constant" name="CAIRO_SVG_UNIT_PX" link="cairo-SVG-Surfaces.html#CAIRO-SVG-UNIT-PX:CAPS"/>
+ <keyword type="constant" name="CAIRO_SVG_UNIT_IN" link="cairo-SVG-Surfaces.html#CAIRO-SVG-UNIT-IN:CAPS"/>
+ <keyword type="constant" name="CAIRO_SVG_UNIT_CM" link="cairo-SVG-Surfaces.html#CAIRO-SVG-UNIT-CM:CAPS"/>
+ <keyword type="constant" name="CAIRO_SVG_UNIT_MM" link="cairo-SVG-Surfaces.html#CAIRO-SVG-UNIT-MM:CAPS"/>
+ <keyword type="constant" name="CAIRO_SVG_UNIT_PT" link="cairo-SVG-Surfaces.html#CAIRO-SVG-UNIT-PT:CAPS"/>
+ <keyword type="constant" name="CAIRO_SVG_UNIT_PC" link="cairo-SVG-Surfaces.html#CAIRO-SVG-UNIT-PC:CAPS"/>
+ <keyword type="constant" name="CAIRO_SVG_UNIT_PERCENT" link="cairo-SVG-Surfaces.html#CAIRO-SVG-UNIT-PERCENT:CAPS"/>
+ <keyword type="constant" name="CAIRO_SCRIPT_MODE_ASCII" link="cairo-Script-Surfaces.html#CAIRO-SCRIPT-MODE-ASCII:CAPS"/>
+ <keyword type="constant" name="CAIRO_SCRIPT_MODE_BINARY" link="cairo-Script-Surfaces.html#CAIRO-SCRIPT-MODE-BINARY:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_SUCCESS" link="cairo-Error-handling.html#CAIRO-STATUS-SUCCESS:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_NO_MEMORY" link="cairo-Error-handling.html#CAIRO-STATUS-NO-MEMORY:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_INVALID_RESTORE" link="cairo-Error-handling.html#CAIRO-STATUS-INVALID-RESTORE:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_INVALID_POP_GROUP" link="cairo-Error-handling.html#CAIRO-STATUS-INVALID-POP-GROUP:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_NO_CURRENT_POINT" link="cairo-Error-handling.html#CAIRO-STATUS-NO-CURRENT-POINT:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_INVALID_MATRIX" link="cairo-Error-handling.html#CAIRO-STATUS-INVALID-MATRIX:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_INVALID_STATUS" link="cairo-Error-handling.html#CAIRO-STATUS-INVALID-STATUS:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_NULL_POINTER" link="cairo-Error-handling.html#CAIRO-STATUS-NULL-POINTER:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_INVALID_STRING" link="cairo-Error-handling.html#CAIRO-STATUS-INVALID-STRING:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_INVALID_PATH_DATA" link="cairo-Error-handling.html#CAIRO-STATUS-INVALID-PATH-DATA:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_READ_ERROR" link="cairo-Error-handling.html#CAIRO-STATUS-READ-ERROR:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_WRITE_ERROR" link="cairo-Error-handling.html#CAIRO-STATUS-WRITE-ERROR:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_SURFACE_FINISHED" link="cairo-Error-handling.html#CAIRO-STATUS-SURFACE-FINISHED:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_SURFACE_TYPE_MISMATCH" link="cairo-Error-handling.html#CAIRO-STATUS-SURFACE-TYPE-MISMATCH:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_PATTERN_TYPE_MISMATCH" link="cairo-Error-handling.html#CAIRO-STATUS-PATTERN-TYPE-MISMATCH:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_INVALID_CONTENT" link="cairo-Error-handling.html#CAIRO-STATUS-INVALID-CONTENT:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_INVALID_FORMAT" link="cairo-Error-handling.html#CAIRO-STATUS-INVALID-FORMAT:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_INVALID_VISUAL" link="cairo-Error-handling.html#CAIRO-STATUS-INVALID-VISUAL:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_FILE_NOT_FOUND" link="cairo-Error-handling.html#CAIRO-STATUS-FILE-NOT-FOUND:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_INVALID_DASH" link="cairo-Error-handling.html#CAIRO-STATUS-INVALID-DASH:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_INVALID_DSC_COMMENT" link="cairo-Error-handling.html#CAIRO-STATUS-INVALID-DSC-COMMENT:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_INVALID_INDEX" link="cairo-Error-handling.html#CAIRO-STATUS-INVALID-INDEX:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_CLIP_NOT_REPRESENTABLE" link="cairo-Error-handling.html#CAIRO-STATUS-CLIP-NOT-REPRESENTABLE:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_TEMP_FILE_ERROR" link="cairo-Error-handling.html#CAIRO-STATUS-TEMP-FILE-ERROR:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_INVALID_STRIDE" link="cairo-Error-handling.html#CAIRO-STATUS-INVALID-STRIDE:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_FONT_TYPE_MISMATCH" link="cairo-Error-handling.html#CAIRO-STATUS-FONT-TYPE-MISMATCH:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_USER_FONT_IMMUTABLE" link="cairo-Error-handling.html#CAIRO-STATUS-USER-FONT-IMMUTABLE:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_USER_FONT_ERROR" link="cairo-Error-handling.html#CAIRO-STATUS-USER-FONT-ERROR:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_NEGATIVE_COUNT" link="cairo-Error-handling.html#CAIRO-STATUS-NEGATIVE-COUNT:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_INVALID_CLUSTERS" link="cairo-Error-handling.html#CAIRO-STATUS-INVALID-CLUSTERS:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_INVALID_SLANT" link="cairo-Error-handling.html#CAIRO-STATUS-INVALID-SLANT:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_INVALID_WEIGHT" link="cairo-Error-handling.html#CAIRO-STATUS-INVALID-WEIGHT:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_INVALID_SIZE" link="cairo-Error-handling.html#CAIRO-STATUS-INVALID-SIZE:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED" link="cairo-Error-handling.html#CAIRO-STATUS-USER-FONT-NOT-IMPLEMENTED:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_DEVICE_TYPE_MISMATCH" link="cairo-Error-handling.html#CAIRO-STATUS-DEVICE-TYPE-MISMATCH:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_DEVICE_ERROR" link="cairo-Error-handling.html#CAIRO-STATUS-DEVICE-ERROR:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_INVALID_MESH_CONSTRUCTION" link="cairo-Error-handling.html#CAIRO-STATUS-INVALID-MESH-CONSTRUCTION:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_DEVICE_FINISHED" link="cairo-Error-handling.html#CAIRO-STATUS-DEVICE-FINISHED:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_JBIG2_GLOBAL_MISSING" link="cairo-Error-handling.html#CAIRO-STATUS-JBIG2-GLOBAL-MISSING:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_PNG_ERROR" link="cairo-Error-handling.html#CAIRO-STATUS-PNG-ERROR:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_FREETYPE_ERROR" link="cairo-Error-handling.html#CAIRO-STATUS-FREETYPE-ERROR:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_WIN32_GDI_ERROR" link="cairo-Error-handling.html#CAIRO-STATUS-WIN32-GDI-ERROR:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_TAG_ERROR" link="cairo-Error-handling.html#CAIRO-STATUS-TAG-ERROR:CAPS"/>
+ <keyword type="constant" name="CAIRO_STATUS_LAST_STATUS" link="cairo-Error-handling.html#CAIRO-STATUS-LAST-STATUS:CAPS"/>
+ <keyword type="member" name="cairo-rectangle-t.x" link="cairo-cairo-t.html#cairo-rectangle-t.x"/>
+ <keyword type="member" name="cairo-rectangle-t.y" link="cairo-cairo-t.html#cairo-rectangle-t.y"/>
+ <keyword type="member" name="cairo-rectangle-t.width" link="cairo-cairo-t.html#cairo-rectangle-t.width"/>
+ <keyword type="member" name="cairo-rectangle-t.height" link="cairo-cairo-t.html#cairo-rectangle-t.height"/>
+ <keyword type="member" name="cairo-rectangle-list-t.status" link="cairo-cairo-t.html#cairo-rectangle-list-t.status"/>
+ <keyword type="member" name="cairo-rectangle-list-t.rectangles" link="cairo-cairo-t.html#cairo-rectangle-list-t.rectangles"/>
+ <keyword type="member" name="cairo-rectangle-list-t.num-rectangles" link="cairo-cairo-t.html#cairo-rectangle-list-t.num-rectangles"/>
+ <keyword type="member" name="cairo-path-t.status" link="cairo-Paths.html#cairo-path-t.status"/>
+ <keyword type="member" name="cairo-path-t.data" link="cairo-Paths.html#cairo-path-t.data"/>
+ <keyword type="member" name="cairo-path-t.num-data" link="cairo-Paths.html#cairo-path-t.num-data"/>
+ <keyword type="member" name="cairo-glyph-t.index" link="cairo-text.html#cairo-glyph-t.index"/>
+ <keyword type="member" name="cairo-glyph-t.x" link="cairo-text.html#cairo-glyph-t.x"/>
+ <keyword type="member" name="cairo-glyph-t.y" link="cairo-text.html#cairo-glyph-t.y"/>
+ <keyword type="member" name="cairo-text-cluster-t.num-bytes" link="cairo-text.html#cairo-text-cluster-t.num-bytes"/>
+ <keyword type="member" name="cairo-text-cluster-t.num-glyphs" link="cairo-text.html#cairo-text-cluster-t.num-glyphs"/>
+ <keyword type="member" name="cairo-font-extents-t.ascent" link="cairo-cairo-scaled-font-t.html#cairo-font-extents-t.ascent"/>
+ <keyword type="member" name="cairo-font-extents-t.descent" link="cairo-cairo-scaled-font-t.html#cairo-font-extents-t.descent"/>
+ <keyword type="member" name="cairo-font-extents-t.height" link="cairo-cairo-scaled-font-t.html#cairo-font-extents-t.height"/>
+ <keyword type="member" name="cairo-font-extents-t.max-x-advance" link="cairo-cairo-scaled-font-t.html#cairo-font-extents-t.max-x-advance"/>
+ <keyword type="member" name="cairo-font-extents-t.max-y-advance" link="cairo-cairo-scaled-font-t.html#cairo-font-extents-t.max-y-advance"/>
+ <keyword type="member" name="cairo-text-extents-t.x-bearing" link="cairo-cairo-scaled-font-t.html#cairo-text-extents-t.x-bearing"/>
+ <keyword type="member" name="cairo-text-extents-t.y-bearing" link="cairo-cairo-scaled-font-t.html#cairo-text-extents-t.y-bearing"/>
+ <keyword type="member" name="cairo-text-extents-t.width" link="cairo-cairo-scaled-font-t.html#cairo-text-extents-t.width"/>
+ <keyword type="member" name="cairo-text-extents-t.height" link="cairo-cairo-scaled-font-t.html#cairo-text-extents-t.height"/>
+ <keyword type="member" name="cairo-text-extents-t.x-advance" link="cairo-cairo-scaled-font-t.html#cairo-text-extents-t.x-advance"/>
+ <keyword type="member" name="cairo-text-extents-t.y-advance" link="cairo-cairo-scaled-font-t.html#cairo-text-extents-t.y-advance"/>
+ <keyword type="member" name="cairo-matrix-t.xx" link="cairo-cairo-matrix-t.html#cairo-matrix-t.xx"/>
+ <keyword type="member" name="cairo-matrix-t.yx" link="cairo-cairo-matrix-t.html#cairo-matrix-t.yx"/>
+ <keyword type="member" name="cairo-matrix-t.xy" link="cairo-cairo-matrix-t.html#cairo-matrix-t.xy"/>
+ <keyword type="member" name="cairo-matrix-t.yy" link="cairo-cairo-matrix-t.html#cairo-matrix-t.yy"/>
+ <keyword type="member" name="cairo-matrix-t.x0" link="cairo-cairo-matrix-t.html#cairo-matrix-t.x0"/>
+ <keyword type="member" name="cairo-matrix-t.y0" link="cairo-cairo-matrix-t.html#cairo-matrix-t.y0"/>
+ <keyword type="member" name="cairo-user-data-key-t.unused" link="cairo-Types.html#cairo-user-data-key-t.unused"/>
+ <keyword type="member" name="cairo-rectangle-int-t.x" link="cairo-Types.html#cairo-rectangle-int-t.x"/>
+ <keyword type="member" name="cairo-rectangle-int-t.y" link="cairo-Types.html#cairo-rectangle-int-t.y"/>
+ <keyword type="member" name="cairo-rectangle-int-t.width" link="cairo-Types.html#cairo-rectangle-int-t.width"/>
+ <keyword type="member" name="cairo-rectangle-int-t.height" link="cairo-Types.html#cairo-rectangle-int-t.height"/>
+ </functions>
+</book>
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
--- /dev/null
+++ b/libs/cairo-1.16.0/doc/public/html/home.png
Binary files 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Index of new symbols in 1.10: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="prev" href="index-1.8.html" title="Index of new symbols in 1.8">
+<link rel="next" href="index-1.12.html" title="Index of new symbols in 1.12">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="index-1.8.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="index-1.12.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="index">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="index-1.10"></a>Index of new symbols in 1.10</h1></div></div></div>
+<div xmlns:xlink="http://www.w3.org/1999/xlink" class="index">
+<div class="indexdiv">
+<h3>D</h3>
+<dl>
+<dt id="ientry-idm18286">cairo_device_acquire, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-acquire">cairo_device_acquire ()</a>
+</dt>
+<dt id="ientry-idm17956">cairo_device_destroy, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-destroy">cairo_device_destroy ()</a>
+</dt>
+<dt id="ientry-idm18024">cairo_device_finish, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-finish">cairo_device_finish ()</a>
+</dt>
+<dt id="ientry-idm18064">cairo_device_flush, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-flush">cairo_device_flush ()</a>
+</dt>
+<dt id="ientry-idm18129">cairo_device_get_reference_count, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-get-reference-count">cairo_device_get_reference_count ()</a>
+</dt>
+<dt id="ientry-idm18094">cairo_device_get_type, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-get-type">cairo_device_get_type ()</a>
+</dt>
+<dt id="ientry-idm18238">cairo_device_get_user_data, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-get-user-data">cairo_device_get_user_data ()</a>
+</dt>
+<dt id="ientry-idm17913">cairo_device_reference, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-reference">cairo_device_reference ()</a>
+</dt>
+<dt id="ientry-idm18332">cairo_device_release, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-release">cairo_device_release ()</a>
+</dt>
+<dt id="ientry-idm18163">cairo_device_set_user_data, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-set-user-data">cairo_device_set_user_data ()</a>
+</dt>
+<dt id="ientry-idm17990">cairo_device_status, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-status">cairo_device_status ()</a>
+</dt>
+<dt id="ientry-idm18442">cairo_device_t, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-t">cairo_device_t</a>
+</dt>
+<dt id="ientry-idm18468">cairo_device_type_t, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-type-t">enum cairo_device_type_t</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>H</h3>
+<dl>
+<dt id="ientry-idm16231">CAIRO_HAS_FC_FONT, <a class="indexterm" href="cairo-FreeType-Fonts.html#CAIRO-HAS-FC-FONT:CAPS">CAIRO_HAS_FC_FONT</a>
+</dt>
+<dt id="ientry-idm23540">CAIRO_HAS_RECORDING_SURFACE, <a class="indexterm" href="cairo-Recording-Surfaces.html#CAIRO-HAS-RECORDING-SURFACE:CAPS">CAIRO_HAS_RECORDING_SURFACE</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>I</h3>
+<dl><dt id="ientry-idm2275">cairo_in_clip, <a class="indexterm" href="cairo-cairo-t.html#cairo-in-clip">cairo_in_clip ()</a>
+</dt></dl>
+</div>
+<div class="indexdiv">
+<h3>M</h3>
+<dl>
+<dt id="ientry-idm20505">CAIRO_MIME_TYPE_JP2, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JP2:CAPS">CAIRO_MIME_TYPE_JP2</a>
+</dt>
+<dt id="ientry-idm20513">CAIRO_MIME_TYPE_JPEG, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JPEG:CAPS">CAIRO_MIME_TYPE_JPEG</a>
+</dt>
+<dt id="ientry-idm20521">CAIRO_MIME_TYPE_PNG, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-PNG:CAPS">CAIRO_MIME_TYPE_PNG</a>
+</dt>
+<dt id="ientry-idm20529">CAIRO_MIME_TYPE_URI, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-URI:CAPS">CAIRO_MIME_TYPE_URI</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>P</h3>
+<dl>
+<dt id="ientry-idm21693">cairo_pdf_get_versions, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-get-versions">cairo_pdf_get_versions ()</a>
+</dt>
+<dt id="ientry-idm21651">cairo_pdf_surface_restrict_to_version, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-restrict-to-version">cairo_pdf_surface_restrict_to_version ()</a>
+</dt>
+<dt id="ientry-idm22152">cairo_pdf_version_t, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-version-t">enum cairo_pdf_version_t</a>
+</dt>
+<dt id="ientry-idm21731">cairo_pdf_version_to_string, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-version-to-string">cairo_pdf_version_to_string ()</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>R</h3>
+<dl>
+<dt id="ientry-idm23382">cairo_recording_surface_create, <a class="indexterm" href="cairo-Recording-Surfaces.html#cairo-recording-surface-create">cairo_recording_surface_create ()</a>
+</dt>
+<dt id="ientry-idm23426">cairo_recording_surface_ink_extents, <a class="indexterm" href="cairo-Recording-Surfaces.html#cairo-recording-surface-ink-extents">cairo_recording_surface_ink_extents ()</a>
+</dt>
+<dt id="ientry-idm28466">cairo_rectangle_int_t, <a class="indexterm" href="cairo-Types.html#cairo-rectangle-int-t">cairo_rectangle_int_t</a>
+</dt>
+<dt id="ientry-idm9031">cairo_region_contains_point, <a class="indexterm" href="cairo-Regions.html#cairo-region-contains-point">cairo_region_contains_point ()</a>
+</dt>
+<dt id="ientry-idm9091">cairo_region_contains_rectangle, <a class="indexterm" href="cairo-Regions.html#cairo-region-contains-rectangle">cairo_region_contains_rectangle ()</a>
+</dt>
+<dt id="ientry-idm8717">cairo_region_copy, <a class="indexterm" href="cairo-Regions.html#cairo-region-copy">cairo_region_copy ()</a>
+</dt>
+<dt id="ientry-idm8610">cairo_region_create, <a class="indexterm" href="cairo-Regions.html#cairo-region-create">cairo_region_create ()</a>
+</dt>
+<dt id="ientry-idm8631">cairo_region_create_rectangle, <a class="indexterm" href="cairo-Regions.html#cairo-region-create-rectangle">cairo_region_create_rectangle ()</a>
+</dt>
+<dt id="ientry-idm8670">cairo_region_create_rectangles, <a class="indexterm" href="cairo-Regions.html#cairo-region-create-rectangles">cairo_region_create_rectangles ()</a>
+</dt>
+<dt id="ientry-idm8794">cairo_region_destroy, <a class="indexterm" href="cairo-Regions.html#cairo-region-destroy">cairo_region_destroy ()</a>
+</dt>
+<dt id="ientry-idm9148">cairo_region_equal, <a class="indexterm" href="cairo-Regions.html#cairo-region-equal">cairo_region_equal ()</a>
+</dt>
+<dt id="ientry-idm8867">cairo_region_get_extents, <a class="indexterm" href="cairo-Regions.html#cairo-region-get-extents">cairo_region_get_extents ()</a>
+</dt>
+<dt id="ientry-idm8942">cairo_region_get_rectangle, <a class="indexterm" href="cairo-Regions.html#cairo-region-get-rectangle">cairo_region_get_rectangle ()</a>
+</dt>
+<dt id="ientry-idm9253">cairo_region_intersect, <a class="indexterm" href="cairo-Regions.html#cairo-region-intersect">cairo_region_intersect ()</a>
+</dt>
+<dt id="ientry-idm9303">cairo_region_intersect_rectangle, <a class="indexterm" href="cairo-Regions.html#cairo-region-intersect-rectangle">cairo_region_intersect_rectangle ()</a>
+</dt>
+<dt id="ientry-idm8993">cairo_region_is_empty, <a class="indexterm" href="cairo-Regions.html#cairo-region-is-empty">cairo_region_is_empty ()</a>
+</dt>
+<dt id="ientry-idm8908">cairo_region_num_rectangles, <a class="indexterm" href="cairo-Regions.html#cairo-region-num-rectangles">cairo_region_num_rectangles ()</a>
+</dt>
+<dt id="ientry-idm9683">cairo_region_overlap_t, <a class="indexterm" href="cairo-Regions.html#cairo-region-overlap-t">enum cairo_region_overlap_t</a>
+</dt>
+<dt id="ientry-idm8756">cairo_region_reference, <a class="indexterm" href="cairo-Regions.html#cairo-region-reference">cairo_region_reference ()</a>
+</dt>
+<dt id="ientry-idm8831">cairo_region_status, <a class="indexterm" href="cairo-Regions.html#cairo-region-status">cairo_region_status ()</a>
+</dt>
+<dt id="ientry-idm9353">cairo_region_subtract, <a class="indexterm" href="cairo-Regions.html#cairo-region-subtract">cairo_region_subtract ()</a>
+</dt>
+<dt id="ientry-idm9403">cairo_region_subtract_rectangle, <a class="indexterm" href="cairo-Regions.html#cairo-region-subtract-rectangle">cairo_region_subtract_rectangle ()</a>
+</dt>
+<dt id="ientry-idm9661">cairo_region_t, <a class="indexterm" href="cairo-Regions.html#cairo-region-t">cairo_region_t</a>
+</dt>
+<dt id="ientry-idm9203">cairo_region_translate, <a class="indexterm" href="cairo-Regions.html#cairo-region-translate">cairo_region_translate ()</a>
+</dt>
+<dt id="ientry-idm9453">cairo_region_union, <a class="indexterm" href="cairo-Regions.html#cairo-region-union">cairo_region_union ()</a>
+</dt>
+<dt id="ientry-idm9503">cairo_region_union_rectangle, <a class="indexterm" href="cairo-Regions.html#cairo-region-union-rectangle">cairo_region_union_rectangle ()</a>
+</dt>
+<dt id="ientry-idm9553">cairo_region_xor, <a class="indexterm" href="cairo-Regions.html#cairo-region-xor">cairo_region_xor ()</a>
+</dt>
+<dt id="ientry-idm9606">cairo_region_xor_rectangle, <a class="indexterm" href="cairo-Regions.html#cairo-region-xor-rectangle">cairo_region_xor_rectangle ()</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>S</h3>
+<dl>
+<dt id="ientry-idm19019">cairo_surface_create_for_rectangle, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-create-for-rectangle">cairo_surface_create_for_rectangle ()</a>
+</dt>
+<dt id="ientry-idm19280">cairo_surface_get_device, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-device">cairo_surface_get_device ()</a>
+</dt>
+<dt id="ientry-idm20230">cairo_surface_get_mime_data, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-mime-data">cairo_surface_get_mime_data ()</a>
+</dt>
+<dt id="ientry-idm20117">cairo_surface_set_mime_data, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-set-mime-data">cairo_surface_set_mime_data ()</a>
+</dt>
+</dl>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Index of new symbols in 1.12: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="prev" href="index-1.10.html" title="Index of new symbols in 1.10">
+<link rel="next" href="index-1.14.html" title="Index of new symbols in 1.14">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="index-1.10.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="index-1.14.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="index">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="index-1.12"></a>Index of new symbols in 1.12</h1></div></div></div>
+<div xmlns:xlink="http://www.w3.org/1999/xlink" class="index">
+<div class="indexdiv">
+<h3>F</h3>
+<dl>
+<dt id="ientry-idm16107">cairo_ft_font_face_get_synthesize, <a class="indexterm" href="cairo-FreeType-Fonts.html#cairo-ft-font-face-get-synthesize">cairo_ft_font_face_get_synthesize ()</a>
+</dt>
+<dt id="ientry-idm16141">cairo_ft_font_face_set_synthesize, <a class="indexterm" href="cairo-FreeType-Fonts.html#cairo-ft-font-face-set-synthesize">cairo_ft_font_face_set_synthesize ()</a>
+</dt>
+<dt id="ientry-idm16181">cairo_ft_font_face_unset_synthesize, <a class="indexterm" href="cairo-FreeType-Fonts.html#cairo-ft-font-face-unset-synthesize">cairo_ft_font_face_unset_synthesize ()</a>
+</dt>
+<dt id="ientry-idm16239">cairo_ft_synthesize_t, <a class="indexterm" href="cairo-FreeType-Fonts.html#cairo-ft-synthesize-t">enum cairo_ft_synthesize_t</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>H</h3>
+<dl>
+<dt id="ientry-idm26766">CAIRO_HAS_SCRIPT_SURFACE, <a class="indexterm" href="cairo-Script-Surfaces.html#CAIRO-HAS-SCRIPT-SURFACE:CAPS">CAIRO_HAS_SCRIPT_SURFACE</a>
+</dt>
+<dt id="ientry-idm25387">CAIRO_HAS_XCB_SURFACE, <a class="indexterm" href="cairo-XCB-Surfaces.html#CAIRO-HAS-XCB-SURFACE:CAPS">CAIRO_HAS_XCB_SURFACE</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>M</h3>
+<dl>
+<dt id="ientry-idm6746">cairo_mesh_pattern_begin_patch, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-begin-patch">cairo_mesh_pattern_begin_patch ()</a>
+</dt>
+<dt id="ientry-idm6961">cairo_mesh_pattern_curve_to, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-curve-to">cairo_mesh_pattern_curve_to ()</a>
+</dt>
+<dt id="ientry-idm6794">cairo_mesh_pattern_end_patch, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-end-patch">cairo_mesh_pattern_end_patch ()</a>
+</dt>
+<dt id="ientry-idm7425">cairo_mesh_pattern_get_control_point, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-get-control-point">cairo_mesh_pattern_get_control_point ()</a>
+</dt>
+<dt id="ientry-idm7517">cairo_mesh_pattern_get_corner_color_rgba, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-get-corner-color-rgba">cairo_mesh_pattern_get_corner_color_rgba ()</a>
+</dt>
+<dt id="ientry-idm7320">cairo_mesh_pattern_get_patch_count, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-get-patch-count">cairo_mesh_pattern_get_patch_count ()</a>
+</dt>
+<dt id="ientry-idm7371">cairo_mesh_pattern_get_path, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-get-path">cairo_mesh_pattern_get_path ()</a>
+</dt>
+<dt id="ientry-idm6894">cairo_mesh_pattern_line_to, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-line-to">cairo_mesh_pattern_line_to ()</a>
+</dt>
+<dt id="ientry-idm6835">cairo_mesh_pattern_move_to, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-move-to">cairo_mesh_pattern_move_to ()</a>
+</dt>
+<dt id="ientry-idm7068">cairo_mesh_pattern_set_control_point, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-set-control-point">cairo_mesh_pattern_set_control_point ()</a>
+</dt>
+<dt id="ientry-idm7141">cairo_mesh_pattern_set_corner_color_rgb, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-set-corner-color-rgb">cairo_mesh_pattern_set_corner_color_rgb ()</a>
+</dt>
+<dt id="ientry-idm7226">cairo_mesh_pattern_set_corner_color_rgba, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-set-corner-color-rgba">cairo_mesh_pattern_set_corner_color_rgba ()</a>
+</dt>
+<dt id="ientry-idm20537">CAIRO_MIME_TYPE_UNIQUE_ID, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-UNIQUE-ID:CAPS">CAIRO_MIME_TYPE_UNIQUE_ID</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>P</h3>
+<dl>
+<dt id="ientry-idm6677">cairo_pattern_create_mesh, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-create-mesh">cairo_pattern_create_mesh ()</a>
+</dt>
+<dt id="ientry-idm12022">cairo_pattern_create_raster_source, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-pattern-create-raster-source">cairo_pattern_create_raster_source ()</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>R</h3>
+<dl>
+<dt id="ientry-idm12444">cairo_raster_source_acquire_func_t, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-acquire-func-t">cairo_raster_source_acquire_func_t ()</a>
+</dt>
+<dt id="ientry-idm12605">cairo_raster_source_copy_func_t, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-copy-func-t">cairo_raster_source_copy_func_t ()</a>
+</dt>
+<dt id="ientry-idm12663">cairo_raster_source_finish_func_t, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-finish-func-t">cairo_raster_source_finish_func_t ()</a>
+</dt>
+<dt id="ientry-idm12201">cairo_raster_source_pattern_get_acquire, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-get-acquire">cairo_raster_source_pattern_get_acquire ()</a>
+</dt>
+<dt id="ientry-idm12120">cairo_raster_source_pattern_get_callback_data, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-get-callback-data">cairo_raster_source_pattern_get_callback_data ()</a>
+</dt>
+<dt id="ientry-idm12348">cairo_raster_source_pattern_get_copy, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-get-copy">cairo_raster_source_pattern_get_copy ()</a>
+</dt>
+<dt id="ientry-idm12414">cairo_raster_source_pattern_get_finish, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-get-finish">cairo_raster_source_pattern_get_finish ()</a>
+</dt>
+<dt id="ientry-idm12282">cairo_raster_source_pattern_get_snapshot, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-get-snapshot">cairo_raster_source_pattern_get_snapshot ()</a>
+</dt>
+<dt id="ientry-idm12150">cairo_raster_source_pattern_set_acquire, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-set-acquire">cairo_raster_source_pattern_set_acquire ()</a>
+</dt>
+<dt id="ientry-idm12084">cairo_raster_source_pattern_set_callback_data, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-set-callback-data">cairo_raster_source_pattern_set_callback_data ()</a>
+</dt>
+<dt id="ientry-idm12312">cairo_raster_source_pattern_set_copy, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-set-copy">cairo_raster_source_pattern_set_copy ()</a>
+</dt>
+<dt id="ientry-idm12378">cairo_raster_source_pattern_set_finish, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-set-finish">cairo_raster_source_pattern_set_finish ()</a>
+</dt>
+<dt id="ientry-idm12246">cairo_raster_source_pattern_set_snapshot, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-set-snapshot">cairo_raster_source_pattern_set_snapshot ()</a>
+</dt>
+<dt id="ientry-idm12511">cairo_raster_source_release_func_t, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-release-func-t">cairo_raster_source_release_func_t ()</a>
+</dt>
+<dt id="ientry-idm12560">cairo_raster_source_snapshot_func_t, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-snapshot-func-t">cairo_raster_source_snapshot_func_t ()</a>
+</dt>
+<dt id="ientry-idm23491">cairo_recording_surface_get_extents, <a class="indexterm" href="cairo-Recording-Surfaces.html#cairo-recording-surface-get-extents">cairo_recording_surface_get_extents ()</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>S</h3>
+<dl>
+<dt id="ientry-idm26421">cairo_script_create, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-create">cairo_script_create ()</a>
+</dt>
+<dt id="ientry-idm26456">cairo_script_create_for_stream, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-create-for-stream">cairo_script_create_for_stream ()</a>
+</dt>
+<dt id="ientry-idm26500">cairo_script_from_recording_surface, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-from-recording-surface">cairo_script_from_recording_surface ()</a>
+</dt>
+<dt id="ientry-idm26542">cairo_script_get_mode, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-get-mode">cairo_script_get_mode ()</a>
+</dt>
+<dt id="ientry-idm26774">cairo_script_mode_t, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-mode-t">enum cairo_script_mode_t</a>
+</dt>
+<dt id="ientry-idm26572">cairo_script_set_mode, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-set-mode">cairo_script_set_mode ()</a>
+</dt>
+<dt id="ientry-idm26608">cairo_script_surface_create, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-surface-create">cairo_script_surface_create ()</a>
+</dt>
+<dt id="ientry-idm26671">cairo_script_surface_create_for_target, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-surface-create-for-target">cairo_script_surface_create_for_target ()</a>
+</dt>
+<dt id="ientry-idm26717">cairo_script_write_comment, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-write-comment">cairo_script_write_comment ()</a>
+</dt>
+<dt id="ientry-idm18951">cairo_surface_create_similar_image, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-create-similar-image">cairo_surface_create_similar_image ()</a>
+</dt>
+<dt id="ientry-idm20339">cairo_surface_map_to_image, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-map-to-image">cairo_surface_map_to_image ()</a>
+</dt>
+<dt id="ientry-idm20290">cairo_surface_supports_mime_type, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-supports-mime-type">cairo_surface_supports_mime_type ()</a>
+</dt>
+<dt id="ientry-idm20393">cairo_surface_unmap_image, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-unmap-image">cairo_surface_unmap_image ()</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>X</h3>
+<dl>
+<dt id="ientry-idm25219">cairo_xcb_device_debug_cap_xrender_version, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-device-debug-cap-xrender-version">cairo_xcb_device_debug_cap_xrender_version ()</a>
+</dt>
+<dt id="ientry-idm25267">cairo_xcb_device_debug_cap_xshm_version, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-device-debug-cap-xshm-version">cairo_xcb_device_debug_cap_xshm_version ()</a>
+</dt>
+<dt id="ientry-idm25315">cairo_xcb_device_debug_get_precision, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-device-debug-get-precision">cairo_xcb_device_debug_get_precision ()</a>
+</dt>
+<dt id="ientry-idm25347">cairo_xcb_device_debug_set_precision, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-device-debug-set-precision">cairo_xcb_device_debug_set_precision ()</a>
+</dt>
+<dt id="ientry-idm25185">cairo_xcb_device_get_connection, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-device-get-connection">cairo_xcb_device_get_connection ()</a>
+</dt>
+<dt id="ientry-idm24828">cairo_xcb_surface_create, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-surface-create">cairo_xcb_surface_create ()</a>
+</dt>
+<dt id="ientry-idm24908">cairo_xcb_surface_create_for_bitmap, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-surface-create-for-bitmap">cairo_xcb_surface_create_for_bitmap ()</a>
+</dt>
+<dt id="ientry-idm24984">cairo_xcb_surface_create_with_xrender_format, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-surface-create-with-xrender-format">cairo_xcb_surface_create_with_xrender_format ()</a>
+</dt>
+<dt id="ientry-idm25126">cairo_xcb_surface_set_drawable, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-surface-set-drawable">cairo_xcb_surface_set_drawable ()</a>
+</dt>
+<dt id="ientry-idm25075">cairo_xcb_surface_set_size, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-surface-set-size">cairo_xcb_surface_set_size ()</a>
+</dt>
+<dt id="ientry-idm26016">cairo_xlib_device_debug_cap_xrender_version, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-device-debug-cap-xrender-version">cairo_xlib_device_debug_cap_xrender_version ()</a>
+</dt>
+<dt id="ientry-idm26064">cairo_xlib_device_debug_get_precision, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-device-debug-get-precision">cairo_xlib_device_debug_get_precision ()</a>
+</dt>
+<dt id="ientry-idm26096">cairo_xlib_device_debug_set_precision, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-device-debug-set-precision">cairo_xlib_device_debug_set_precision ()</a>
+</dt>
+</dl>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Index of new symbols in 1.14: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="prev" href="index-1.12.html" title="Index of new symbols in 1.12">
+<link rel="next" href="index-1.16.html" title="Index of new symbols in 1.16">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="index-1.12.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="index-1.16.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="index">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="index-1.14"></a>Index of new symbols in 1.14</h1></div></div></div>
+<div xmlns:xlink="http://www.w3.org/1999/xlink" class="index">
+<div class="indexdiv">
+<h3>M</h3>
+<dl>
+<dt id="ientry-idm20481">CAIRO_MIME_TYPE_JBIG2, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2:CAPS">CAIRO_MIME_TYPE_JBIG2</a>
+</dt>
+<dt id="ientry-idm20489">CAIRO_MIME_TYPE_JBIG2_GLOBAL, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL:CAPS">CAIRO_MIME_TYPE_JBIG2_GLOBAL</a>
+</dt>
+<dt id="ientry-idm20497">CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL-ID:CAPS">CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>S</h3>
+<dl>
+<dt id="ientry-idm19599">cairo_surface_get_device_scale, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-device-scale">cairo_surface_get_device_scale ()</a>
+</dt>
+<dt id="ientry-idm19648">cairo_surface_set_device_scale, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-set-device-scale">cairo_surface_set_device_scale ()</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>W</h3>
+<dl><dt id="ientry-idm23782">cairo_win32_surface_create_with_format, <a class="indexterm" href="cairo-Win32-Surfaces.html#cairo-win32-surface-create-with-format">cairo_win32_surface_create_with_format ()</a>
+</dt></dl>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Index of new symbols in 1.16: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="prev" href="index-1.14.html" title="Index of new symbols in 1.14">
+<link rel="next" href="language-bindings.html" title="Appendix A. Creating a language binding for cairo">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="index-1.14.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="language-bindings.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="index">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="index-1.16"></a>Index of new symbols in 1.16</h1></div></div></div>
+<div xmlns:xlink="http://www.w3.org/1999/xlink" class="index">
+<div class="indexdiv">
+<h3>F</h3>
+<dl>
+<dt id="ientry-idm15481">cairo_font_options_get_variations, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-get-variations">cairo_font_options_get_variations ()</a>
+</dt>
+<dt id="ientry-idm15518">cairo_font_options_set_variations, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-set-variations">cairo_font_options_set_variations ()</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>M</h3>
+<dl>
+<dt id="ientry-idm20446">CAIRO_MIME_TYPE_CCITT_FAX, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX:CAPS">CAIRO_MIME_TYPE_CCITT_FAX</a>
+</dt>
+<dt id="ientry-idm20454">CAIRO_MIME_TYPE_CCITT_FAX_PARAMS, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS">CAIRO_MIME_TYPE_CCITT_FAX_PARAMS</a>
+</dt>
+<dt id="ientry-idm20463">CAIRO_MIME_TYPE_EPS, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-EPS:CAPS">CAIRO_MIME_TYPE_EPS</a>
+</dt>
+<dt id="ientry-idm20472">CAIRO_MIME_TYPE_EPS_PARAMS, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-EPS-PARAMS:CAPS">CAIRO_MIME_TYPE_EPS_PARAMS</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>P</h3>
+<dl>
+<dt id="ientry-idm22091">cairo_pdf_metadata_t, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-metadata-t">enum cairo_pdf_metadata_t</a>
+</dt>
+<dt id="ientry-idm22054">cairo_pdf_outline_flags_t, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-outline-flags-t">enum cairo_pdf_outline_flags_t</a>
+</dt>
+<dt id="ientry-idm22044">CAIRO_PDF_OUTLINE_ROOT, <a class="indexterm" href="cairo-PDF-Surfaces.html#CAIRO-PDF-OUTLINE-ROOT:CAPS">CAIRO_PDF_OUTLINE_ROOT</a>
+</dt>
+<dt id="ientry-idm21819">cairo_pdf_surface_add_outline, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-add-outline">cairo_pdf_surface_add_outline ()</a>
+</dt>
+<dt id="ientry-idm21895">cairo_pdf_surface_set_metadata, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-set-metadata">cairo_pdf_surface_set_metadata ()</a>
+</dt>
+<dt id="ientry-idm21949">cairo_pdf_surface_set_page_label, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-set-page-label">cairo_pdf_surface_set_page_label ()</a>
+</dt>
+<dt id="ientry-idm21987">cairo_pdf_surface_set_thumbnail_size, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-set-thumbnail-size">cairo_pdf_surface_set_thumbnail_size ()</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>S</h3>
+<dl>
+<dt id="ientry-idm24199">cairo_svg_surface_get_document_unit, <a class="indexterm" href="cairo-SVG-Surfaces.html#cairo-svg-surface-get-document-unit">cairo_svg_surface_get_document_unit ()</a>
+</dt>
+<dt id="ientry-idm24232">cairo_svg_surface_set_document_unit, <a class="indexterm" href="cairo-SVG-Surfaces.html#cairo-svg-surface-set-document-unit">cairo_svg_surface_set_document_unit ()</a>
+</dt>
+<dt id="ientry-idm24431">cairo_svg_unit_t, <a class="indexterm" href="cairo-SVG-Surfaces.html#cairo-svg-unit-t">enum cairo_svg_unit_t</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>T</h3>
+<dl>
+<dt id="ientry-idm12875">cairo_tag_begin, <a class="indexterm" href="cairo-Tags-and-Links.html#cairo-tag-begin">cairo_tag_begin ()</a>
+</dt>
+<dt id="ientry-idm12985">CAIRO_TAG_DEST, <a class="indexterm" href="cairo-Tags-and-Links.html#CAIRO-TAG-DEST:CAPS">CAIRO_TAG_DEST</a>
+</dt>
+<dt id="ientry-idm12939">cairo_tag_end, <a class="indexterm" href="cairo-Tags-and-Links.html#cairo-tag-end">cairo_tag_end ()</a>
+</dt>
+<dt id="ientry-idm12994">CAIRO_TAG_LINK, <a class="indexterm" href="cairo-Tags-and-Links.html#CAIRO-TAG-LINK:CAPS">CAIRO_TAG_LINK</a>
+</dt>
+</dl>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Index of new symbols in 1.2: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="prev" href="index-all.html" title="Index">
+<link rel="next" href="index-1.4.html" title="Index of new symbols in 1.4">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="index-all.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="index-1.4.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="index">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="index-1.2"></a>Index of new symbols in 1.2</h1></div></div></div>
+<div xmlns:xlink="http://www.w3.org/1999/xlink" class="index">
+<div class="indexdiv">
+<h3>F</h3>
+<dl>
+<dt id="ientry-idm13219">cairo_font_face_get_type, <a class="indexterm" href="cairo-cairo-font-face-t.html#cairo-font-face-get-type">cairo_font_face_get_type ()</a>
+</dt>
+<dt id="ientry-idm13436">cairo_font_type_t, <a class="indexterm" href="cairo-cairo-font-face-t.html#cairo-font-type-t">enum cairo_font_type_t</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>G</h3>
+<dl><dt id="ientry-idm989">cairo_get_group_target, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-group-target">cairo_get_group_target ()</a>
+</dt></dl>
+</div>
+<div class="indexdiv">
+<h3>H</h3>
+<dl>
+<dt id="ientry-idm22036">CAIRO_HAS_PDF_SURFACE, <a class="indexterm" href="cairo-PDF-Surfaces.html#CAIRO-HAS-PDF-SURFACE:CAPS">CAIRO_HAS_PDF_SURFACE</a>
+</dt>
+<dt id="ientry-idm23283">CAIRO_HAS_PS_SURFACE, <a class="indexterm" href="cairo-PostScript-Surfaces.html#CAIRO-HAS-PS-SURFACE:CAPS">CAIRO_HAS_PS_SURFACE</a>
+</dt>
+<dt id="ientry-idm24394">CAIRO_HAS_SVG_SURFACE, <a class="indexterm" href="cairo-SVG-Surfaces.html#CAIRO-HAS-SVG-SURFACE:CAPS">CAIRO_HAS_SVG_SURFACE</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>I</h3>
+<dl>
+<dt id="ientry-idm21097">cairo_image_surface_get_data, <a class="indexterm" href="cairo-Image-Surfaces.html#cairo-image-surface-get-data">cairo_image_surface_get_data ()</a>
+</dt>
+<dt id="ientry-idm21139">cairo_image_surface_get_format, <a class="indexterm" href="cairo-Image-Surfaces.html#cairo-image-surface-get-format">cairo_image_surface_get_format ()</a>
+</dt>
+<dt id="ientry-idm21235">cairo_image_surface_get_stride, <a class="indexterm" href="cairo-Image-Surfaces.html#cairo-image-surface-get-stride">cairo_image_surface_get_stride ()</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>N</h3>
+<dl><dt id="ientry-idm4325">cairo_new_sub_path, <a class="indexterm" href="cairo-Paths.html#cairo-new-sub-path">cairo_new_sub_path ()</a>
+</dt></dl>
+</div>
+<div class="indexdiv">
+<h3>P</h3>
+<dl>
+<dt id="ientry-idm8006">cairo_pattern_get_type, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-type">cairo_pattern_get_type ()</a>
+</dt>
+<dt id="ientry-idm8338">cairo_pattern_type_t, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-type-t">enum cairo_pattern_type_t</a>
+</dt>
+<dt id="ientry-idm21524">cairo_pdf_surface_create, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-create">cairo_pdf_surface_create ()</a>
+</dt>
+<dt id="ientry-idm21580">cairo_pdf_surface_create_for_stream, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-create-for-stream">cairo_pdf_surface_create_for_stream ()</a>
+</dt>
+<dt id="ientry-idm21767">cairo_pdf_surface_set_size, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-set-size">cairo_pdf_surface_set_size ()</a>
+</dt>
+<dt id="ientry-idm904">cairo_pop_group, <a class="indexterm" href="cairo-cairo-t.html#cairo-pop-group">cairo_pop_group ()</a>
+</dt>
+<dt id="ientry-idm947">cairo_pop_group_to_source, <a class="indexterm" href="cairo-cairo-t.html#cairo-pop-group-to-source">cairo_pop_group_to_source ()</a>
+</dt>
+<dt id="ientry-idm22755">cairo_ps_surface_create, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-create">cairo_ps_surface_create ()</a>
+</dt>
+<dt id="ientry-idm22816">cairo_ps_surface_create_for_stream, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-create-for-stream">cairo_ps_surface_create_for_stream ()</a>
+</dt>
+<dt id="ientry-idm23175">cairo_ps_surface_dsc_begin_page_setup, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-begin-page-setup">cairo_ps_surface_dsc_begin_page_setup ()</a>
+</dt>
+<dt id="ientry-idm23138">cairo_ps_surface_dsc_begin_setup, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-begin-setup">cairo_ps_surface_dsc_begin_setup ()</a>
+</dt>
+<dt id="ientry-idm23212">cairo_ps_surface_dsc_comment, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-comment">cairo_ps_surface_dsc_comment ()</a>
+</dt>
+<dt id="ientry-idm23086">cairo_ps_surface_set_size, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-set-size">cairo_ps_surface_set_size ()</a>
+</dt>
+<dt id="ientry-idm806">cairo_push_group, <a class="indexterm" href="cairo-cairo-t.html#cairo-push-group">cairo_push_group ()</a>
+</dt>
+<dt id="ientry-idm858">cairo_push_group_with_content, <a class="indexterm" href="cairo-cairo-t.html#cairo-push-group-with-content">cairo_push_group_with_content ()</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>S</h3>
+<dl>
+<dt id="ientry-idm14313">cairo_scaled_font_get_ctm, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-ctm">cairo_scaled_font_get_ctm ()</a>
+</dt>
+<dt id="ientry-idm14194">cairo_scaled_font_get_font_face, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-font-face">cairo_scaled_font_get_font_face ()</a>
+</dt>
+<dt id="ientry-idm14273">cairo_scaled_font_get_font_matrix, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-font-matrix">cairo_scaled_font_get_font_matrix ()</a>
+</dt>
+<dt id="ientry-idm14233">cairo_scaled_font_get_font_options, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-font-options">cairo_scaled_font_get_font_options ()</a>
+</dt>
+<dt id="ientry-idm14395">cairo_scaled_font_get_type, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-type">cairo_scaled_font_get_type ()</a>
+</dt>
+<dt id="ientry-idm13893">cairo_scaled_font_text_extents, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-text-extents">cairo_scaled_font_text_extents ()</a>
+</dt>
+<dt id="ientry-idm10918">cairo_set_scaled_font, <a class="indexterm" href="cairo-text.html#cairo-set-scaled-font">cairo_set_scaled_font ()</a>
+</dt>
+<dt id="ientry-idm19360">cairo_surface_get_content, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-content">cairo_surface_get_content ()</a>
+</dt>
+<dt id="ientry-idm19550">cairo_surface_get_device_offset, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-device-offset">cairo_surface_get_device_offset ()</a>
+</dt>
+<dt id="ientry-idm19806">cairo_surface_get_type, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-type">cairo_surface_get_type ()</a>
+</dt>
+<dt id="ientry-idm19701">cairo_surface_set_fallback_resolution, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-set-fallback-resolution">cairo_surface_set_fallback_resolution ()</a>
+</dt>
+<dt id="ientry-idm20624">cairo_surface_type_t, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-type-t">enum cairo_surface_type_t</a>
+</dt>
+<dt id="ientry-idm24318">cairo_svg_get_versions, <a class="indexterm" href="cairo-SVG-Surfaces.html#cairo-svg-get-versions">cairo_svg_get_versions ()</a>
+</dt>
+<dt id="ientry-idm24050">cairo_svg_surface_create, <a class="indexterm" href="cairo-SVG-Surfaces.html#cairo-svg-surface-create">cairo_svg_surface_create ()</a>
+</dt>
+<dt id="ientry-idm24128">cairo_svg_surface_create_for_stream, <a class="indexterm" href="cairo-SVG-Surfaces.html#cairo-svg-surface-create-for-stream">cairo_svg_surface_create_for_stream ()</a>
+</dt>
+<dt id="ientry-idm24276">cairo_svg_surface_restrict_to_version, <a class="indexterm" href="cairo-SVG-Surfaces.html#cairo-svg-surface-restrict-to-version">cairo_svg_surface_restrict_to_version ()</a>
+</dt>
+<dt id="ientry-idm24402">cairo_svg_version_t, <a class="indexterm" href="cairo-SVG-Surfaces.html#cairo-svg-version-t">enum cairo_svg_version_t</a>
+</dt>
+<dt id="ientry-idm24356">cairo_svg_version_to_string, <a class="indexterm" href="cairo-SVG-Surfaces.html#cairo-svg-version-to-string">cairo_svg_version_to_string ()</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>W</h3>
+<dl>
+<dt id="ientry-idm16416">cairo_win32_font_face_create_for_hfont, <a class="indexterm" href="cairo-Win32-Fonts.html#cairo-win32-font-face-create-for-hfont">cairo_win32_font_face_create_for_hfont ()</a>
+</dt>
+<dt id="ientry-idm23677">cairo_win32_surface_create_with_dib, <a class="indexterm" href="cairo-Win32-Surfaces.html#cairo-win32-surface-create-with-dib">cairo_win32_surface_create_with_dib ()</a>
+</dt>
+<dt id="ientry-idm23862">cairo_win32_surface_get_dc, <a class="indexterm" href="cairo-Win32-Surfaces.html#cairo-win32-surface-get-dc">cairo_win32_surface_get_dc ()</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>X</h3>
+<dl>
+<dt id="ientry-idm25984">cairo_xlib_surface_get_depth, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-depth">cairo_xlib_surface_get_depth ()</a>
+</dt>
+<dt id="ientry-idm25729">cairo_xlib_surface_get_display, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-display">cairo_xlib_surface_get_display ()</a>
+</dt>
+<dt id="ientry-idm25849">cairo_xlib_surface_get_drawable, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-drawable">cairo_xlib_surface_get_drawable ()</a>
+</dt>
+<dt id="ientry-idm25952">cairo_xlib_surface_get_height, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-height">cairo_xlib_surface_get_height ()</a>
+</dt>
+<dt id="ientry-idm25761">cairo_xlib_surface_get_screen, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-screen">cairo_xlib_surface_get_screen ()</a>
+</dt>
+<dt id="ientry-idm25881">cairo_xlib_surface_get_visual, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-visual">cairo_xlib_surface_get_visual ()</a>
+</dt>
+<dt id="ientry-idm25920">cairo_xlib_surface_get_width, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-width">cairo_xlib_surface_get_width ()</a>
+</dt>
+</dl>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Index of new symbols in 1.4: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="prev" href="index-1.2.html" title="Index of new symbols in 1.2">
+<link rel="next" href="index-1.6.html" title="Index of new symbols in 1.6">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="index-1.2.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="index-1.6.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="index">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="index-1.4"></a>Index of new symbols in 1.4</h1></div></div></div>
+<div xmlns:xlink="http://www.w3.org/1999/xlink" class="index">
+<div class="indexdiv">
+<h3>C</h3>
+<dl>
+<dt id="ientry-idm2212">cairo_clip_extents, <a class="indexterm" href="cairo-cairo-t.html#cairo-clip-extents">cairo_clip_extents ()</a>
+</dt>
+<dt id="ientry-idm2399">cairo_copy_clip_rectangle_list, <a class="indexterm" href="cairo-cairo-t.html#cairo-copy-clip-rectangle-list">cairo_copy_clip_rectangle_list ()</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>F</h3>
+<dl><dt id="ientry-idm13252">cairo_font_face_get_reference_count, <a class="indexterm" href="cairo-cairo-font-face-t.html#cairo-font-face-get-reference-count">cairo_font_face_get_reference_count ()</a>
+</dt></dl>
+</div>
+<div class="indexdiv">
+<h3>G</h3>
+<dl>
+<dt id="ientry-idm1503">cairo_get_dash, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-dash">cairo_get_dash ()</a>
+</dt>
+<dt id="ientry-idm1465">cairo_get_dash_count, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-dash-count">cairo_get_dash_count ()</a>
+</dt>
+<dt id="ientry-idm3135">cairo_get_reference_count, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-reference-count">cairo_get_reference_count ()</a>
+</dt>
+<dt id="ientry-idm10968">cairo_get_scaled_font, <a class="indexterm" href="cairo-text.html#cairo-get-scaled-font">cairo_get_scaled_font ()</a>
+</dt>
+<dt id="ientry-idm3244">cairo_get_user_data, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-user-data">cairo_get_user_data ()</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>P</h3>
+<dl>
+<dt id="ientry-idm5879">cairo_pattern_get_color_stop_count, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-color-stop-count">cairo_pattern_get_color_stop_count ()</a>
+</dt>
+<dt id="ientry-idm5927">cairo_pattern_get_color_stop_rgba, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-color-stop-rgba">cairo_pattern_get_color_stop_rgba ()</a>
+</dt>
+<dt id="ientry-idm6402">cairo_pattern_get_linear_points, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-linear-points">cairo_pattern_get_linear_points ()</a>
+</dt>
+<dt id="ientry-idm6574">cairo_pattern_get_radial_circles, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-radial-circles">cairo_pattern_get_radial_circles ()</a>
+</dt>
+<dt id="ientry-idm8041">cairo_pattern_get_reference_count, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-reference-count">cairo_pattern_get_reference_count ()</a>
+</dt>
+<dt id="ientry-idm6160">cairo_pattern_get_rgba, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-rgba">cairo_pattern_get_rgba ()</a>
+</dt>
+<dt id="ientry-idm6279">cairo_pattern_get_surface, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-surface">cairo_pattern_get_surface ()</a>
+</dt>
+<dt id="ientry-idm8150">cairo_pattern_get_user_data, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-user-data">cairo_pattern_get_user_data ()</a>
+</dt>
+<dt id="ientry-idm8075">cairo_pattern_set_user_data, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-set-user-data">cairo_pattern_set_user_data ()</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>R</h3>
+<dl>
+<dt id="ientry-idm2368">cairo_rectangle_list_destroy, <a class="indexterm" href="cairo-cairo-t.html#cairo-rectangle-list-destroy">cairo_rectangle_list_destroy ()</a>
+</dt>
+<dt id="ientry-idm3744">cairo_rectangle_list_t, <a class="indexterm" href="cairo-cairo-t.html#cairo-rectangle-list-t">cairo_rectangle_list_t</a>
+</dt>
+<dt id="ientry-idm3692">cairo_rectangle_t, <a class="indexterm" href="cairo-cairo-t.html#cairo-rectangle-t">cairo_rectangle_t</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>S</h3>
+<dl>
+<dt id="ientry-idm14432">cairo_scaled_font_get_reference_count, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-reference-count">cairo_scaled_font_get_reference_count ()</a>
+</dt>
+<dt id="ientry-idm14541">cairo_scaled_font_get_user_data, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-user-data">cairo_scaled_font_get_user_data ()</a>
+</dt>
+<dt id="ientry-idm14466">cairo_scaled_font_set_user_data, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-set-user-data">cairo_scaled_font_set_user_data ()</a>
+</dt>
+<dt id="ientry-idm3169">cairo_set_user_data, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-user-data">cairo_set_user_data ()</a>
+</dt>
+<dt id="ientry-idm19841">cairo_surface_get_reference_count, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-reference-count">cairo_surface_get_reference_count ()</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>W</h3>
+<dl>
+<dt id="ientry-idm16681">cairo_win32_scaled_font_get_device_to_logical, <a class="indexterm" href="cairo-Win32-Fonts.html#cairo-win32-scaled-font-get-device-to-logical">cairo_win32_scaled_font_get_device_to_logical ()</a>
+</dt>
+<dt id="ientry-idm16644">cairo_win32_scaled_font_get_logical_to_device, <a class="indexterm" href="cairo-Win32-Fonts.html#cairo-win32-scaled-font-get-logical-to-device">cairo_win32_scaled_font_get_logical_to_device ()</a>
+</dt>
+<dt id="ientry-idm23725">cairo_win32_surface_create_with_ddb, <a class="indexterm" href="cairo-Win32-Surfaces.html#cairo-win32-surface-create-with-ddb">cairo_win32_surface_create_with_ddb ()</a>
+</dt>
+<dt id="ientry-idm23905">cairo_win32_surface_get_image, <a class="indexterm" href="cairo-Win32-Surfaces.html#cairo-win32-surface-get-image">cairo_win32_surface_get_image ()</a>
+</dt>
+</dl>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Index of new symbols in 1.6: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="prev" href="index-1.4.html" title="Index of new symbols in 1.4">
+<link rel="next" href="index-1.8.html" title="Index of new symbols in 1.8">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="index-1.4.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="index-1.8.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="index">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="index-1.6"></a>Index of new symbols in 1.6</h1></div></div></div>
+<div xmlns:xlink="http://www.w3.org/1999/xlink" class="index">
+<div class="indexdiv">
+<h3>F</h3>
+<dl><dt id="ientry-idm20909">cairo_format_stride_for_width, <a class="indexterm" href="cairo-Image-Surfaces.html#cairo-format-stride-for-width">cairo_format_stride_for_width ()</a>
+</dt></dl>
+</div>
+<div class="indexdiv">
+<h3>H</h3>
+<dl>
+<dt id="ientry-idm4174">cairo_has_current_point, <a class="indexterm" href="cairo-Paths.html#cairo-has-current-point">cairo_has_current_point ()</a>
+</dt>
+<dt id="ientry-idm16862">CAIRO_HAS_QUARTZ_FONT, <a class="indexterm" href="cairo-Quartz-(CGFont)-Fonts.html#CAIRO-HAS-QUARTZ-FONT:CAPS">CAIRO_HAS_QUARTZ_FONT</a>
+</dt>
+<dt id="ientry-idm24709">CAIRO_HAS_QUARTZ_SURFACE, <a class="indexterm" href="cairo-Quartz-Surfaces.html#CAIRO-HAS-QUARTZ-SURFACE:CAPS">CAIRO_HAS_QUARTZ_SURFACE</a>
+</dt>
+<dt id="ientry-idm26317">CAIRO_HAS_XLIB_XRENDER_SURFACE, <a class="indexterm" href="cairo-XLib-XRender-Backend.html#CAIRO-HAS-XLIB-XRENDER-SURFACE:CAPS">CAIRO_HAS_XLIB_XRENDER_SURFACE</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>P</h3>
+<dl>
+<dt id="ientry-idm5183">cairo_path_extents, <a class="indexterm" href="cairo-Paths.html#cairo-path-extents">cairo_path_extents ()</a>
+</dt>
+<dt id="ientry-idm22934">cairo_ps_get_levels, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-get-levels">cairo_ps_get_levels ()</a>
+</dt>
+<dt id="ientry-idm23291">cairo_ps_level_t, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-level-t">enum cairo_ps_level_t</a>
+</dt>
+<dt id="ientry-idm22972">cairo_ps_level_to_string, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-level-to-string">cairo_ps_level_to_string ()</a>
+</dt>
+<dt id="ientry-idm23052">cairo_ps_surface_get_eps, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-get-eps">cairo_ps_surface_get_eps ()</a>
+</dt>
+<dt id="ientry-idm22892">cairo_ps_surface_restrict_to_level, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-restrict-to-level">cairo_ps_surface_restrict_to_level ()</a>
+</dt>
+<dt id="ientry-idm23008">cairo_ps_surface_set_eps, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-set-eps">cairo_ps_surface_set_eps ()</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>Q</h3>
+<dl>
+<dt id="ientry-idm16820">cairo_quartz_font_face_create_for_atsu_font_id, <a class="indexterm" href="cairo-Quartz-(CGFont)-Fonts.html#cairo-quartz-font-face-create-for-atsu-font-id">cairo_quartz_font_face_create_for_atsu_font_id ()</a>
+</dt>
+<dt id="ientry-idm16778">cairo_quartz_font_face_create_for_cgfont, <a class="indexterm" href="cairo-Quartz-(CGFont)-Fonts.html#cairo-quartz-font-face-create-for-cgfont">cairo_quartz_font_face_create_for_cgfont ()</a>
+</dt>
+<dt id="ientry-idm24573">cairo_quartz_surface_create, <a class="indexterm" href="cairo-Quartz-Surfaces.html#cairo-quartz-surface-create">cairo_quartz_surface_create ()</a>
+</dt>
+<dt id="ientry-idm24621">cairo_quartz_surface_create_for_cg_context, <a class="indexterm" href="cairo-Quartz-Surfaces.html#cairo-quartz-surface-create-for-cg-context">cairo_quartz_surface_create_for_cg_context ()</a>
+</dt>
+<dt id="ientry-idm24672">cairo_quartz_surface_get_cg_context, <a class="indexterm" href="cairo-Quartz-Surfaces.html#cairo-quartz-surface-get-cg-context">cairo_quartz_surface_get_cg_context ()</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>S</h3>
+<dl>
+<dt id="ientry-idm19994">cairo_surface_copy_page, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-copy-page">cairo_surface_copy_page ()</a>
+</dt>
+<dt id="ientry-idm20030">cairo_surface_show_page, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-show-page">cairo_surface_show_page ()</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>W</h3>
+<dl>
+<dt id="ientry-idm16464">cairo_win32_font_face_create_for_logfontw_hfont, <a class="indexterm" href="cairo-Win32-Fonts.html#cairo-win32-font-face-create-for-logfontw-hfont">cairo_win32_font_face_create_for_logfontw_hfont ()</a>
+</dt>
+<dt id="ientry-idm23829">cairo_win32_printing_surface_create, <a class="indexterm" href="cairo-Win32-Surfaces.html#cairo-win32-printing-surface-create">cairo_win32_printing_surface_create ()</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>X</h3>
+<dl><dt id="ientry-idm26279">cairo_xlib_surface_get_xrender_format, <a class="indexterm" href="cairo-XLib-XRender-Backend.html#cairo-xlib-surface-get-xrender-format">cairo_xlib_surface_get_xrender_format ()</a>
+</dt></dl>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Index of new symbols in 1.8: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="prev" href="index-1.6.html" title="Index of new symbols in 1.6">
+<link rel="next" href="index-1.10.html" title="Index of new symbols in 1.10">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="index-1.6.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="index-1.10.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="index">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="index-1.8"></a>Index of new symbols in 1.8</h1></div></div></div>
+<div xmlns:xlink="http://www.w3.org/1999/xlink" class="index">
+<div class="indexdiv">
+<h3>G</h3>
+<dl>
+<dt id="ientry-idm11537">cairo_glyph_allocate, <a class="indexterm" href="cairo-text.html#cairo-glyph-allocate">cairo_glyph_allocate ()</a>
+</dt>
+<dt id="ientry-idm11580">cairo_glyph_free, <a class="indexterm" href="cairo-text.html#cairo-glyph-free">cairo_glyph_free ()</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>H</h3>
+<dl>
+<dt id="ientry-idm21270">CAIRO_HAS_IMAGE_SURFACE, <a class="indexterm" href="cairo-Image-Surfaces.html#CAIRO-HAS-IMAGE-SURFACE:CAPS">CAIRO_HAS_IMAGE_SURFACE</a>
+</dt>
+<dt id="ientry-idm17724">CAIRO_HAS_USER_FONT, <a class="indexterm" href="cairo-User-Fonts.html#CAIRO-HAS-USER-FONT:CAPS">CAIRO_HAS_USER_FONT</a>
+</dt>
+<dt id="ientry-idm16720">CAIRO_HAS_WIN32_FONT, <a class="indexterm" href="cairo-Win32-Fonts.html#CAIRO-HAS-WIN32-FONT:CAPS">CAIRO_HAS_WIN32_FONT</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>S</h3>
+<dl>
+<dt id="ientry-idm14355">cairo_scaled_font_get_scale_matrix, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-scale-matrix">cairo_scaled_font_get_scale_matrix ()</a>
+</dt>
+<dt id="ientry-idm14013">cairo_scaled_font_text_to_glyphs, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-text-to-glyphs">cairo_scaled_font_text_to_glyphs ()</a>
+</dt>
+<dt id="ientry-idm11109">cairo_show_text_glyphs, <a class="indexterm" href="cairo-text.html#cairo-show-text-glyphs">cairo_show_text_glyphs ()</a>
+</dt>
+<dt id="ientry-idm19757">cairo_surface_get_fallback_resolution, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-fallback-resolution">cairo_surface_get_fallback_resolution ()</a>
+</dt>
+<dt id="ientry-idm20066">cairo_surface_has_show_text_glyphs, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-has-show-text-glyphs">cairo_surface_has_show_text_glyphs ()</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>T</h3>
+<dl>
+<dt id="ientry-idm11615">cairo_text_cluster_allocate, <a class="indexterm" href="cairo-text.html#cairo-text-cluster-allocate">cairo_text_cluster_allocate ()</a>
+</dt>
+<dt id="ientry-idm11847">cairo_text_cluster_flags_t, <a class="indexterm" href="cairo-text.html#cairo-text-cluster-flags-t">enum cairo_text_cluster_flags_t</a>
+</dt>
+<dt id="ientry-idm11658">cairo_text_cluster_free, <a class="indexterm" href="cairo-text.html#cairo-text-cluster-free">cairo_text_cluster_free ()</a>
+</dt>
+<dt id="ientry-idm11804">cairo_text_cluster_t, <a class="indexterm" href="cairo-text.html#cairo-text-cluster-t">cairo_text_cluster_t</a>
+</dt>
+<dt id="ientry-idm11386">cairo_toy_font_face_create, <a class="indexterm" href="cairo-text.html#cairo-toy-font-face-create">cairo_toy_font_face_create ()</a>
+</dt>
+<dt id="ientry-idm11447">cairo_toy_font_face_get_family, <a class="indexterm" href="cairo-text.html#cairo-toy-font-face-get-family">cairo_toy_font_face_get_family ()</a>
+</dt>
+<dt id="ientry-idm11477">cairo_toy_font_face_get_slant, <a class="indexterm" href="cairo-text.html#cairo-toy-font-face-get-slant">cairo_toy_font_face_get_slant ()</a>
+</dt>
+<dt id="ientry-idm11507">cairo_toy_font_face_get_weight, <a class="indexterm" href="cairo-text.html#cairo-toy-font-face-get-weight">cairo_toy_font_face_get_weight ()</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>U</h3>
+<dl>
+<dt id="ientry-idm17385">cairo_user_font_face_create, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-create">cairo_user_font_face_create ()</a>
+</dt>
+<dt id="ientry-idm17455">cairo_user_font_face_get_init_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-get-init-func">cairo_user_font_face_get_init_func ()</a>
+</dt>
+<dt id="ientry-idm17537">cairo_user_font_face_get_render_glyph_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-get-render-glyph-func">cairo_user_font_face_get_render_glyph_func ()</a>
+</dt>
+<dt id="ientry-idm17689">cairo_user_font_face_get_text_to_glyphs_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-get-text-to-glyphs-func">cairo_user_font_face_get_text_to_glyphs_func ()</a>
+</dt>
+<dt id="ientry-idm17613">cairo_user_font_face_get_unicode_to_glyph_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-get-unicode-to-glyph-func">cairo_user_font_face_get_unicode_to_glyph_func ()</a>
+</dt>
+<dt id="ientry-idm17412">cairo_user_font_face_set_init_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-set-init-func">cairo_user_font_face_set_init_func ()</a>
+</dt>
+<dt id="ientry-idm17488">cairo_user_font_face_set_render_glyph_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-set-render-glyph-func">cairo_user_font_face_set_render_glyph_func ()</a>
+</dt>
+<dt id="ientry-idm17646">cairo_user_font_face_set_text_to_glyphs_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-set-text-to-glyphs-func">cairo_user_font_face_set_text_to_glyphs_func ()</a>
+</dt>
+<dt id="ientry-idm17570">cairo_user_font_face_set_unicode_to_glyph_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-set-unicode-to-glyph-func">cairo_user_font_face_set_unicode_to_glyph_func ()</a>
+</dt>
+<dt id="ientry-idm17005">cairo_user_scaled_font_init_func_t, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-scaled-font-init-func-t">cairo_user_scaled_font_init_func_t ()</a>
+</dt>
+<dt id="ientry-idm17069">cairo_user_scaled_font_render_glyph_func_t, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-scaled-font-render-glyph-func-t">cairo_user_scaled_font_render_glyph_func_t ()</a>
+</dt>
+<dt id="ientry-idm17166">cairo_user_scaled_font_text_to_glyphs_func_t, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-scaled-font-text-to-glyphs-func-t">cairo_user_scaled_font_text_to_glyphs_func_t ()</a>
+</dt>
+<dt id="ientry-idm17319">cairo_user_scaled_font_unicode_to_glyph_func_t, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-scaled-font-unicode-to-glyph-func-t">cairo_user_scaled_font_unicode_to_glyph_func_t ()</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>V</h3>
+<dl>
+<dt id="ientry-idm28332">CAIRO_VERSION_STRING, <a class="indexterm" href="cairo-Version-Information.html#CAIRO-VERSION-STRING:CAPS">CAIRO_VERSION_STRING</a>
+</dt>
+<dt id="ientry-idm28206">CAIRO_VERSION_STRINGIZE, <a class="indexterm" href="cairo-Version-Information.html#CAIRO-VERSION-STRINGIZE:CAPS">CAIRO_VERSION_STRINGIZE()</a>
+</dt>
+</dl>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Index: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="prev" href="cairo-Types.html" title="Types">
+<link rel="next" href="index-1.2.html" title="Index of new symbols in 1.2">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="cairo-Types.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="index-1.2.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="index">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="index-all"></a>Index</h1></div></div></div>
+<div xmlns:xlink="http://www.w3.org/1999/xlink" class="index">
+<div class="indexdiv">
+<h3>A</h3>
+<dl>
+<dt id="ientry-idm3316">cairo_antialias_t, <a class="indexterm" href="cairo-cairo-t.html#cairo-antialias-t">enum cairo_antialias_t</a>
+</dt>
+<dt id="ientry-idm4127">cairo_append_path, <a class="indexterm" href="cairo-Paths.html#cairo-append-path">cairo_append_path ()</a>
+</dt>
+<dt id="ientry-idm4404">cairo_arc, <a class="indexterm" href="cairo-Paths.html#cairo-arc">cairo_arc ()</a>
+</dt>
+<dt id="ientry-idm4504">cairo_arc_negative, <a class="indexterm" href="cairo-Paths.html#cairo-arc-negative">cairo_arc_negative ()</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>B</h3>
+<dl><dt id="ientry-idm28421">cairo_bool_t, <a class="indexterm" href="cairo-Types.html#cairo-bool-t">cairo_bool_t</a>
+</dt></dl>
+</div>
+<div class="indexdiv">
+<h3>C</h3>
+<dl>
+<dt id="ientry-idm2118">cairo_clip, <a class="indexterm" href="cairo-cairo-t.html#cairo-clip">cairo_clip ()</a>
+</dt>
+<dt id="ientry-idm2212">cairo_clip_extents, <a class="indexterm" href="cairo-cairo-t.html#cairo-clip-extents">cairo_clip_extents ()</a>
+</dt>
+<dt id="ientry-idm2164">cairo_clip_preserve, <a class="indexterm" href="cairo-cairo-t.html#cairo-clip-preserve">cairo_clip_preserve ()</a>
+</dt>
+<dt id="ientry-idm4362">cairo_close_path, <a class="indexterm" href="cairo-Paths.html#cairo-close-path">cairo_close_path ()</a>
+</dt>
+<dt id="ientry-idm20584">cairo_content_t, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-content-t">enum cairo_content_t</a>
+</dt>
+<dt id="ientry-idm2399">cairo_copy_clip_rectangle_list, <a class="indexterm" href="cairo-cairo-t.html#cairo-copy-clip-rectangle-list">cairo_copy_clip_rectangle_list ()</a>
+</dt>
+<dt id="ientry-idm3069">cairo_copy_page, <a class="indexterm" href="cairo-cairo-t.html#cairo-copy-page">cairo_copy_page ()</a>
+</dt>
+<dt id="ientry-idm3978">cairo_copy_path, <a class="indexterm" href="cairo-Paths.html#cairo-copy-path">cairo_copy_path ()</a>
+</dt>
+<dt id="ientry-idm4029">cairo_copy_path_flat, <a class="indexterm" href="cairo-Paths.html#cairo-copy-path-flat">cairo_copy_path_flat ()</a>
+</dt>
+<dt id="ientry-idm510">cairo_create, <a class="indexterm" href="cairo-cairo-t.html#cairo-create">cairo_create ()</a>
+</dt>
+<dt id="ientry-idm4588">cairo_curve_to, <a class="indexterm" href="cairo-Paths.html#cairo-curve-to">cairo_curve_to ()</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>D</h3>
+<dl>
+<dt id="ientry-idm27724">cairo_debug_reset_static_data, <a class="indexterm" href="cairo-Error-handling.html#cairo-debug-reset-static-data">cairo_debug_reset_static_data ()</a>
+</dt>
+<dt id="ientry-idm612">cairo_destroy, <a class="indexterm" href="cairo-cairo-t.html#cairo-destroy">cairo_destroy ()</a>
+</dt>
+<dt id="ientry-idm28388">cairo_destroy_func_t, <a class="indexterm" href="cairo-Types.html#cairo-destroy-func-t">cairo_destroy_func_t ()</a>
+</dt>
+<dt id="ientry-idm18286">cairo_device_acquire, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-acquire">cairo_device_acquire ()</a>
+</dt>
+<dt id="ientry-idm17956">cairo_device_destroy, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-destroy">cairo_device_destroy ()</a>
+</dt>
+<dt id="ientry-idm18024">cairo_device_finish, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-finish">cairo_device_finish ()</a>
+</dt>
+<dt id="ientry-idm18064">cairo_device_flush, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-flush">cairo_device_flush ()</a>
+</dt>
+<dt id="ientry-idm18129">cairo_device_get_reference_count, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-get-reference-count">cairo_device_get_reference_count ()</a>
+</dt>
+<dt id="ientry-idm18094">cairo_device_get_type, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-get-type">cairo_device_get_type ()</a>
+</dt>
+<dt id="ientry-idm18238">cairo_device_get_user_data, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-get-user-data">cairo_device_get_user_data ()</a>
+</dt>
+<dt id="ientry-idm18364">cairo_device_observer_elapsed, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-observer-elapsed">cairo_device_observer_elapsed ()</a>
+</dt>
+<dt id="ientry-idm18374">cairo_device_observer_fill_elapsed, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-observer-fill-elapsed">cairo_device_observer_fill_elapsed ()</a>
+</dt>
+<dt id="ientry-idm18384">cairo_device_observer_glyphs_elapsed, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-observer-glyphs-elapsed">cairo_device_observer_glyphs_elapsed ()</a>
+</dt>
+<dt id="ientry-idm18394">cairo_device_observer_mask_elapsed, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-observer-mask-elapsed">cairo_device_observer_mask_elapsed ()</a>
+</dt>
+<dt id="ientry-idm18404">cairo_device_observer_paint_elapsed, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-observer-paint-elapsed">cairo_device_observer_paint_elapsed ()</a>
+</dt>
+<dt id="ientry-idm18414">cairo_device_observer_print, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-observer-print">cairo_device_observer_print ()</a>
+</dt>
+<dt id="ientry-idm18430">cairo_device_observer_stroke_elapsed, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-observer-stroke-elapsed">cairo_device_observer_stroke_elapsed ()</a>
+</dt>
+<dt id="ientry-idm17913">cairo_device_reference, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-reference">cairo_device_reference ()</a>
+</dt>
+<dt id="ientry-idm18332">cairo_device_release, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-release">cairo_device_release ()</a>
+</dt>
+<dt id="ientry-idm18163">cairo_device_set_user_data, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-set-user-data">cairo_device_set_user_data ()</a>
+</dt>
+<dt id="ientry-idm17990">cairo_device_status, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-status">cairo_device_status ()</a>
+</dt>
+<dt id="ientry-idm18442">cairo_device_t, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-t">cairo_device_t</a>
+</dt>
+<dt id="ientry-idm10183">cairo_device_to_user, <a class="indexterm" href="cairo-Transformations.html#cairo-device-to-user">cairo_device_to_user ()</a>
+</dt>
+<dt id="ientry-idm10228">cairo_device_to_user_distance, <a class="indexterm" href="cairo-Transformations.html#cairo-device-to-user-distance">cairo_device_to_user_distance ()</a>
+</dt>
+<dt id="ientry-idm18468">cairo_device_type_t, <a class="indexterm" href="cairo-cairo-device-t.html#cairo-device-type-t">enum cairo_device_type_t</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>E</h3>
+<dl><dt id="ientry-idm8231">cairo_extend_t, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-extend-t">enum cairo_extend_t</a>
+</dt></dl>
+</div>
+<div class="indexdiv">
+<h3>F</h3>
+<dl>
+<dt id="ientry-idm2436">cairo_fill, <a class="indexterm" href="cairo-cairo-t.html#cairo-fill">cairo_fill ()</a>
+</dt>
+<dt id="ientry-idm2505">cairo_fill_extents, <a class="indexterm" href="cairo-cairo-t.html#cairo-fill-extents">cairo_fill_extents ()</a>
+</dt>
+<dt id="ientry-idm2469">cairo_fill_preserve, <a class="indexterm" href="cairo-cairo-t.html#cairo-fill-preserve">cairo_fill_preserve ()</a>
+</dt>
+<dt id="ientry-idm3386">cairo_fill_rule_t, <a class="indexterm" href="cairo-cairo-t.html#cairo-fill-rule-t">enum cairo_fill_rule_t</a>
+</dt>
+<dt id="ientry-idm8279">cairo_filter_t, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-filter-t">enum cairo_filter_t</a>
+</dt>
+<dt id="ientry-idm11224">cairo_font_extents, <a class="indexterm" href="cairo-text.html#cairo-font-extents">cairo_font_extents ()</a>
+</dt>
+<dt id="ientry-idm14614">cairo_font_extents_t, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-font-extents-t">cairo_font_extents_t</a>
+</dt>
+<dt id="ientry-idm13150">cairo_font_face_destroy, <a class="indexterm" href="cairo-cairo-font-face-t.html#cairo-font-face-destroy">cairo_font_face_destroy ()</a>
+</dt>
+<dt id="ientry-idm13252">cairo_font_face_get_reference_count, <a class="indexterm" href="cairo-cairo-font-face-t.html#cairo-font-face-get-reference-count">cairo_font_face_get_reference_count ()</a>
+</dt>
+<dt id="ientry-idm13219">cairo_font_face_get_type, <a class="indexterm" href="cairo-cairo-font-face-t.html#cairo-font-face-get-type">cairo_font_face_get_type ()</a>
+</dt>
+<dt id="ientry-idm13357">cairo_font_face_get_user_data, <a class="indexterm" href="cairo-cairo-font-face-t.html#cairo-font-face-get-user-data">cairo_font_face_get_user_data ()</a>
+</dt>
+<dt id="ientry-idm13105">cairo_font_face_reference, <a class="indexterm" href="cairo-cairo-font-face-t.html#cairo-font-face-reference">cairo_font_face_reference ()</a>
+</dt>
+<dt id="ientry-idm13286">cairo_font_face_set_user_data, <a class="indexterm" href="cairo-cairo-font-face-t.html#cairo-font-face-set-user-data">cairo_font_face_set_user_data ()</a>
+</dt>
+<dt id="ientry-idm13183">cairo_font_face_status, <a class="indexterm" href="cairo-cairo-font-face-t.html#cairo-font-face-status">cairo_font_face_status ()</a>
+</dt>
+<dt id="ientry-idm13407">cairo_font_face_t, <a class="indexterm" href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a>
+</dt>
+<dt id="ientry-idm14950">cairo_font_options_copy, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-copy">cairo_font_options_copy ()</a>
+</dt>
+<dt id="ientry-idm14929">cairo_font_options_create, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-create">cairo_font_options_create ()</a>
+</dt>
+<dt id="ientry-idm14989">cairo_font_options_destroy, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-destroy">cairo_font_options_destroy ()</a>
+</dt>
+<dt id="ientry-idm15140">cairo_font_options_equal, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-equal">cairo_font_options_equal ()</a>
+</dt>
+<dt id="ientry-idm15225">cairo_font_options_get_antialias, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-get-antialias">cairo_font_options_get_antialias ()</a>
+</dt>
+<dt id="ientry-idm15447">cairo_font_options_get_hint_metrics, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-get-hint-metrics">cairo_font_options_get_hint_metrics ()</a>
+</dt>
+<dt id="ientry-idm15373">cairo_font_options_get_hint_style, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-get-hint-style">cairo_font_options_get_hint_style ()</a>
+</dt>
+<dt id="ientry-idm15299">cairo_font_options_get_subpixel_order, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-get-subpixel-order">cairo_font_options_get_subpixel_order ()</a>
+</dt>
+<dt id="ientry-idm15481">cairo_font_options_get_variations, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-get-variations">cairo_font_options_get_variations ()</a>
+</dt>
+<dt id="ientry-idm15106">cairo_font_options_hash, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-hash">cairo_font_options_hash ()</a>
+</dt>
+<dt id="ientry-idm15060">cairo_font_options_merge, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-merge">cairo_font_options_merge ()</a>
+</dt>
+<dt id="ientry-idm15187">cairo_font_options_set_antialias, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-set-antialias">cairo_font_options_set_antialias ()</a>
+</dt>
+<dt id="ientry-idm15407">cairo_font_options_set_hint_metrics, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-set-hint-metrics">cairo_font_options_set_hint_metrics ()</a>
+</dt>
+<dt id="ientry-idm15333">cairo_font_options_set_hint_style, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-set-hint-style">cairo_font_options_set_hint_style ()</a>
+</dt>
+<dt id="ientry-idm15257">cairo_font_options_set_subpixel_order, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-set-subpixel-order">cairo_font_options_set_subpixel_order ()</a>
+</dt>
+<dt id="ientry-idm15518">cairo_font_options_set_variations, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-set-variations">cairo_font_options_set_variations ()</a>
+</dt>
+<dt id="ientry-idm15024">cairo_font_options_status, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-status">cairo_font_options_status ()</a>
+</dt>
+<dt id="ientry-idm15563">cairo_font_options_t, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-font-options-t">cairo_font_options_t</a>
+</dt>
+<dt id="ientry-idm11744">cairo_font_slant_t, <a class="indexterm" href="cairo-text.html#cairo-font-slant-t">enum cairo_font_slant_t</a>
+</dt>
+<dt id="ientry-idm13436">cairo_font_type_t, <a class="indexterm" href="cairo-cairo-font-face-t.html#cairo-font-type-t">enum cairo_font_type_t</a>
+</dt>
+<dt id="ientry-idm11777">cairo_font_weight_t, <a class="indexterm" href="cairo-text.html#cairo-font-weight-t">enum cairo_font_weight_t</a>
+</dt>
+<dt id="ientry-idm20909">cairo_format_stride_for_width, <a class="indexterm" href="cairo-Image-Surfaces.html#cairo-format-stride-for-width">cairo_format_stride_for_width ()</a>
+</dt>
+<dt id="ientry-idm21278">cairo_format_t, <a class="indexterm" href="cairo-Image-Surfaces.html#cairo-format-t">enum cairo_format_t</a>
+</dt>
+<dt id="ientry-idm15821">cairo_ft_font_face_create_for_ft_face, <a class="indexterm" href="cairo-FreeType-Fonts.html#cairo-ft-font-face-create-for-ft-face">cairo_ft_font_face_create_for_ft_face ()</a>
+</dt>
+<dt id="ientry-idm15897">cairo_ft_font_face_create_for_pattern, <a class="indexterm" href="cairo-FreeType-Fonts.html#cairo-ft-font-face-create-for-pattern">cairo_ft_font_face_create_for_pattern ()</a>
+</dt>
+<dt id="ientry-idm16107">cairo_ft_font_face_get_synthesize, <a class="indexterm" href="cairo-FreeType-Fonts.html#cairo-ft-font-face-get-synthesize">cairo_ft_font_face_get_synthesize ()</a>
+</dt>
+<dt id="ientry-idm16141">cairo_ft_font_face_set_synthesize, <a class="indexterm" href="cairo-FreeType-Fonts.html#cairo-ft-font-face-set-synthesize">cairo_ft_font_face_set_synthesize ()</a>
+</dt>
+<dt id="ientry-idm16181">cairo_ft_font_face_unset_synthesize, <a class="indexterm" href="cairo-FreeType-Fonts.html#cairo-ft-font-face-unset-synthesize">cairo_ft_font_face_unset_synthesize ()</a>
+</dt>
+<dt id="ientry-idm15963">cairo_ft_font_options_substitute, <a class="indexterm" href="cairo-FreeType-Fonts.html#cairo-ft-font-options-substitute">cairo_ft_font_options_substitute ()</a>
+</dt>
+<dt id="ientry-idm16011">cairo_ft_scaled_font_lock_face, <a class="indexterm" href="cairo-FreeType-Fonts.html#cairo-ft-scaled-font-lock-face">cairo_ft_scaled_font_lock_face ()</a>
+</dt>
+<dt id="ientry-idm16070">cairo_ft_scaled_font_unlock_face, <a class="indexterm" href="cairo-FreeType-Fonts.html#cairo-ft-scaled-font-unlock-face">cairo_ft_scaled_font_unlock_face ()</a>
+</dt>
+<dt id="ientry-idm16239">cairo_ft_synthesize_t, <a class="indexterm" href="cairo-FreeType-Fonts.html#cairo-ft-synthesize-t">enum cairo_ft_synthesize_t</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>G</h3>
+<dl>
+<dt id="ientry-idm1357">cairo_get_antialias, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-antialias">cairo_get_antialias ()</a>
+</dt>
+<dt id="ientry-idm4206">cairo_get_current_point, <a class="indexterm" href="cairo-Paths.html#cairo-get-current-point">cairo_get_current_point ()</a>
+</dt>
+<dt id="ientry-idm1503">cairo_get_dash, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-dash">cairo_get_dash ()</a>
+</dt>
+<dt id="ientry-idm1465">cairo_get_dash_count, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-dash-count">cairo_get_dash_count ()</a>
+</dt>
+<dt id="ientry-idm1608">cairo_get_fill_rule, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-fill-rule">cairo_get_fill_rule ()</a>
+</dt>
+<dt id="ientry-idm10869">cairo_get_font_face, <a class="indexterm" href="cairo-text.html#cairo-get-font-face">cairo_get_font_face ()</a>
+</dt>
+<dt id="ientry-idm10692">cairo_get_font_matrix, <a class="indexterm" href="cairo-text.html#cairo-get-font-matrix">cairo_get_font_matrix ()</a>
+</dt>
+<dt id="ientry-idm10776">cairo_get_font_options, <a class="indexterm" href="cairo-text.html#cairo-get-font-options">cairo_get_font_options ()</a>
+</dt>
+<dt id="ientry-idm989">cairo_get_group_target, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-group-target">cairo_get_group_target ()</a>
+</dt>
+<dt id="ientry-idm1688">cairo_get_line_cap, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-line-cap">cairo_get_line_cap ()</a>
+</dt>
+<dt id="ientry-idm1768">cairo_get_line_join, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-line-join">cairo_get_line_join ()</a>
+</dt>
+<dt id="ientry-idm1853">cairo_get_line_width, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-line-width">cairo_get_line_width ()</a>
+</dt>
+<dt id="ientry-idm10025">cairo_get_matrix, <a class="indexterm" href="cairo-Transformations.html#cairo-get-matrix">cairo_get_matrix ()</a>
+</dt>
+<dt id="ientry-idm1939">cairo_get_miter_limit, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-miter-limit">cairo_get_miter_limit ()</a>
+</dt>
+<dt id="ientry-idm2016">cairo_get_operator, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-operator">cairo_get_operator ()</a>
+</dt>
+<dt id="ientry-idm3135">cairo_get_reference_count, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-reference-count">cairo_get_reference_count ()</a>
+</dt>
+<dt id="ientry-idm10968">cairo_get_scaled_font, <a class="indexterm" href="cairo-text.html#cairo-get-scaled-font">cairo_get_scaled_font ()</a>
+</dt>
+<dt id="ientry-idm1281">cairo_get_source, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-source">cairo_get_source ()</a>
+</dt>
+<dt id="ientry-idm760">cairo_get_target, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-target">cairo_get_target ()</a>
+</dt>
+<dt id="ientry-idm2086">cairo_get_tolerance, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-tolerance">cairo_get_tolerance ()</a>
+</dt>
+<dt id="ientry-idm3244">cairo_get_user_data, <a class="indexterm" href="cairo-cairo-t.html#cairo-get-user-data">cairo_get_user_data ()</a>
+</dt>
+<dt id="ientry-idm11537">cairo_glyph_allocate, <a class="indexterm" href="cairo-text.html#cairo-glyph-allocate">cairo_glyph_allocate ()</a>
+</dt>
+<dt id="ientry-idm11320">cairo_glyph_extents, <a class="indexterm" href="cairo-text.html#cairo-glyph-extents">cairo_glyph_extents ()</a>
+</dt>
+<dt id="ientry-idm11580">cairo_glyph_free, <a class="indexterm" href="cairo-text.html#cairo-glyph-free">cairo_glyph_free ()</a>
+</dt>
+<dt id="ientry-idm4853">cairo_glyph_path, <a class="indexterm" href="cairo-Paths.html#cairo-glyph-path">cairo_glyph_path ()</a>
+</dt>
+<dt id="ientry-idm11695">cairo_glyph_t, <a class="indexterm" href="cairo-text.html#cairo-glyph-t">cairo_glyph_t</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>H</h3>
+<dl>
+<dt id="ientry-idm4174">cairo_has_current_point, <a class="indexterm" href="cairo-Paths.html#cairo-has-current-point">cairo_has_current_point ()</a>
+</dt>
+<dt id="ientry-idm16231">CAIRO_HAS_FC_FONT, <a class="indexterm" href="cairo-FreeType-Fonts.html#CAIRO-HAS-FC-FONT:CAPS">CAIRO_HAS_FC_FONT</a>
+</dt>
+<dt id="ientry-idm16223">CAIRO_HAS_FT_FONT, <a class="indexterm" href="cairo-FreeType-Fonts.html#CAIRO-HAS-FT-FONT:CAPS">CAIRO_HAS_FT_FONT</a>
+</dt>
+<dt id="ientry-idm21270">CAIRO_HAS_IMAGE_SURFACE, <a class="indexterm" href="cairo-Image-Surfaces.html#CAIRO-HAS-IMAGE-SURFACE:CAPS">CAIRO_HAS_IMAGE_SURFACE</a>
+</dt>
+<dt id="ientry-idm20441">CAIRO_HAS_MIME_SURFACE, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-HAS-MIME-SURFACE:CAPS">CAIRO_HAS_MIME_SURFACE</a>
+</dt>
+<dt id="ientry-idm22036">CAIRO_HAS_PDF_SURFACE, <a class="indexterm" href="cairo-PDF-Surfaces.html#CAIRO-HAS-PDF-SURFACE:CAPS">CAIRO_HAS_PDF_SURFACE</a>
+</dt>
+<dt id="ientry-idm22590">CAIRO_HAS_PNG_FUNCTIONS, <a class="indexterm" href="cairo-PNG-Support.html#CAIRO-HAS-PNG-FUNCTIONS:CAPS">CAIRO_HAS_PNG_FUNCTIONS</a>
+</dt>
+<dt id="ientry-idm23283">CAIRO_HAS_PS_SURFACE, <a class="indexterm" href="cairo-PostScript-Surfaces.html#CAIRO-HAS-PS-SURFACE:CAPS">CAIRO_HAS_PS_SURFACE</a>
+</dt>
+<dt id="ientry-idm16862">CAIRO_HAS_QUARTZ_FONT, <a class="indexterm" href="cairo-Quartz-(CGFont)-Fonts.html#CAIRO-HAS-QUARTZ-FONT:CAPS">CAIRO_HAS_QUARTZ_FONT</a>
+</dt>
+<dt id="ientry-idm24709">CAIRO_HAS_QUARTZ_SURFACE, <a class="indexterm" href="cairo-Quartz-Surfaces.html#CAIRO-HAS-QUARTZ-SURFACE:CAPS">CAIRO_HAS_QUARTZ_SURFACE</a>
+</dt>
+<dt id="ientry-idm23540">CAIRO_HAS_RECORDING_SURFACE, <a class="indexterm" href="cairo-Recording-Surfaces.html#CAIRO-HAS-RECORDING-SURFACE:CAPS">CAIRO_HAS_RECORDING_SURFACE</a>
+</dt>
+<dt id="ientry-idm26766">CAIRO_HAS_SCRIPT_SURFACE, <a class="indexterm" href="cairo-Script-Surfaces.html#CAIRO-HAS-SCRIPT-SURFACE:CAPS">CAIRO_HAS_SCRIPT_SURFACE</a>
+</dt>
+<dt id="ientry-idm24394">CAIRO_HAS_SVG_SURFACE, <a class="indexterm" href="cairo-SVG-Surfaces.html#CAIRO-HAS-SVG-SURFACE:CAPS">CAIRO_HAS_SVG_SURFACE</a>
+</dt>
+<dt id="ientry-idm17724">CAIRO_HAS_USER_FONT, <a class="indexterm" href="cairo-User-Fonts.html#CAIRO-HAS-USER-FONT:CAPS">CAIRO_HAS_USER_FONT</a>
+</dt>
+<dt id="ientry-idm16720">CAIRO_HAS_WIN32_FONT, <a class="indexterm" href="cairo-Win32-Fonts.html#CAIRO-HAS-WIN32-FONT:CAPS">CAIRO_HAS_WIN32_FONT</a>
+</dt>
+<dt id="ientry-idm23949">CAIRO_HAS_WIN32_SURFACE, <a class="indexterm" href="cairo-Win32-Surfaces.html#CAIRO-HAS-WIN32-SURFACE:CAPS">CAIRO_HAS_WIN32_SURFACE</a>
+</dt>
+<dt id="ientry-idm25395">CAIRO_HAS_XCB_SHM_FUNCTIONS, <a class="indexterm" href="cairo-XCB-Surfaces.html#CAIRO-HAS-XCB-SHM-FUNCTIONS:CAPS">CAIRO_HAS_XCB_SHM_FUNCTIONS</a>
+</dt>
+<dt id="ientry-idm25387">CAIRO_HAS_XCB_SURFACE, <a class="indexterm" href="cairo-XCB-Surfaces.html#CAIRO-HAS-XCB-SURFACE:CAPS">CAIRO_HAS_XCB_SURFACE</a>
+</dt>
+<dt id="ientry-idm26136">CAIRO_HAS_XLIB_SURFACE, <a class="indexterm" href="cairo-XLib-Surfaces.html#CAIRO-HAS-XLIB-SURFACE:CAPS">CAIRO_HAS_XLIB_SURFACE</a>
+</dt>
+<dt id="ientry-idm26317">CAIRO_HAS_XLIB_XRENDER_SURFACE, <a class="indexterm" href="cairo-XLib-XRender-Backend.html#CAIRO-HAS-XLIB-XRENDER-SURFACE:CAPS">CAIRO_HAS_XLIB_XRENDER_SURFACE</a>
+</dt>
+<dt id="ientry-idm15688">cairo_hint_metrics_t, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-hint-metrics-t">enum cairo_hint_metrics_t</a>
+</dt>
+<dt id="ientry-idm15642">cairo_hint_style_t, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-hint-style-t">enum cairo_hint_style_t</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>I</h3>
+<dl>
+<dt id="ientry-idm10062">cairo_identity_matrix, <a class="indexterm" href="cairo-Transformations.html#cairo-identity-matrix">cairo_identity_matrix ()</a>
+</dt>
+<dt id="ientry-idm20952">cairo_image_surface_create, <a class="indexterm" href="cairo-Image-Surfaces.html#cairo-image-surface-create">cairo_image_surface_create ()</a>
+</dt>
+<dt id="ientry-idm21005">cairo_image_surface_create_for_data, <a class="indexterm" href="cairo-Image-Surfaces.html#cairo-image-surface-create-for-data">cairo_image_surface_create_for_data ()</a>
+</dt>
+<dt id="ientry-idm22266">cairo_image_surface_create_from_png, <a class="indexterm" href="cairo-PNG-Support.html#cairo-image-surface-create-from-png">cairo_image_surface_create_from_png ()</a>
+</dt>
+<dt id="ientry-idm22366">cairo_image_surface_create_from_png_stream, <a class="indexterm" href="cairo-PNG-Support.html#cairo-image-surface-create-from-png-stream">cairo_image_surface_create_from_png_stream ()</a>
+</dt>
+<dt id="ientry-idm21097">cairo_image_surface_get_data, <a class="indexterm" href="cairo-Image-Surfaces.html#cairo-image-surface-get-data">cairo_image_surface_get_data ()</a>
+</dt>
+<dt id="ientry-idm21139">cairo_image_surface_get_format, <a class="indexterm" href="cairo-Image-Surfaces.html#cairo-image-surface-get-format">cairo_image_surface_get_format ()</a>
+</dt>
+<dt id="ientry-idm21203">cairo_image_surface_get_height, <a class="indexterm" href="cairo-Image-Surfaces.html#cairo-image-surface-get-height">cairo_image_surface_get_height ()</a>
+</dt>
+<dt id="ientry-idm21235">cairo_image_surface_get_stride, <a class="indexterm" href="cairo-Image-Surfaces.html#cairo-image-surface-get-stride">cairo_image_surface_get_stride ()</a>
+</dt>
+<dt id="ientry-idm21171">cairo_image_surface_get_width, <a class="indexterm" href="cairo-Image-Surfaces.html#cairo-image-surface-get-width">cairo_image_surface_get_width ()</a>
+</dt>
+<dt id="ientry-idm2275">cairo_in_clip, <a class="indexterm" href="cairo-cairo-t.html#cairo-in-clip">cairo_in_clip ()</a>
+</dt>
+<dt id="ientry-idm2585">cairo_in_fill, <a class="indexterm" href="cairo-cairo-t.html#cairo-in-fill">cairo_in_fill ()</a>
+</dt>
+<dt id="ientry-idm3006">cairo_in_stroke, <a class="indexterm" href="cairo-cairo-t.html#cairo-in-stroke">cairo_in_stroke ()</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>L</h3>
+<dl>
+<dt id="ientry-idm3419">cairo_line_cap_t, <a class="indexterm" href="cairo-cairo-t.html#cairo-line-cap-t">enum cairo_line_cap_t</a>
+</dt>
+<dt id="ientry-idm3455">cairo_line_join_t, <a class="indexterm" href="cairo-cairo-t.html#cairo-line-join-t">enum cairo_line_join_t</a>
+</dt>
+<dt id="ientry-idm4683">cairo_line_to, <a class="indexterm" href="cairo-Paths.html#cairo-line-to">cairo_line_to ()</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>M</h3>
+<dl>
+<dt id="ientry-idm2642">cairo_mask, <a class="indexterm" href="cairo-cairo-t.html#cairo-mask">cairo_mask ()</a>
+</dt>
+<dt id="ientry-idm2682">cairo_mask_surface, <a class="indexterm" href="cairo-cairo-t.html#cairo-mask-surface">cairo_mask_surface ()</a>
+</dt>
+<dt id="ientry-idm26939">cairo_matrix_init, <a class="indexterm" href="cairo-cairo-matrix-t.html#cairo-matrix-init">cairo_matrix_init ()</a>
+</dt>
+<dt id="ientry-idm27030">cairo_matrix_init_identity, <a class="indexterm" href="cairo-cairo-matrix-t.html#cairo-matrix-init-identity">cairo_matrix_init_identity ()</a>
+</dt>
+<dt id="ientry-idm27160">cairo_matrix_init_rotate, <a class="indexterm" href="cairo-cairo-matrix-t.html#cairo-matrix-init-rotate">cairo_matrix_init_rotate ()</a>
+</dt>
+<dt id="ientry-idm27110">cairo_matrix_init_scale, <a class="indexterm" href="cairo-cairo-matrix-t.html#cairo-matrix-init-scale">cairo_matrix_init_scale ()</a>
+</dt>
+<dt id="ientry-idm27060">cairo_matrix_init_translate, <a class="indexterm" href="cairo-cairo-matrix-t.html#cairo-matrix-init-translate">cairo_matrix_init_translate ()</a>
+</dt>
+<dt id="ientry-idm27345">cairo_matrix_invert, <a class="indexterm" href="cairo-cairo-matrix-t.html#cairo-matrix-invert">cairo_matrix_invert ()</a>
+</dt>
+<dt id="ientry-idm27385">cairo_matrix_multiply, <a class="indexterm" href="cairo-cairo-matrix-t.html#cairo-matrix-multiply">cairo_matrix_multiply ()</a>
+</dt>
+<dt id="ientry-idm27304">cairo_matrix_rotate, <a class="indexterm" href="cairo-cairo-matrix-t.html#cairo-matrix-rotate">cairo_matrix_rotate ()</a>
+</dt>
+<dt id="ientry-idm27252">cairo_matrix_scale, <a class="indexterm" href="cairo-cairo-matrix-t.html#cairo-matrix-scale">cairo_matrix_scale ()</a>
+</dt>
+<dt id="ientry-idm27565">cairo_matrix_t, <a class="indexterm" href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a>
+</dt>
+<dt id="ientry-idm27445">cairo_matrix_transform_distance, <a class="indexterm" href="cairo-cairo-matrix-t.html#cairo-matrix-transform-distance">cairo_matrix_transform_distance ()</a>
+</dt>
+<dt id="ientry-idm27513">cairo_matrix_transform_point, <a class="indexterm" href="cairo-cairo-matrix-t.html#cairo-matrix-transform-point">cairo_matrix_transform_point ()</a>
+</dt>
+<dt id="ientry-idm27200">cairo_matrix_translate, <a class="indexterm" href="cairo-cairo-matrix-t.html#cairo-matrix-translate">cairo_matrix_translate ()</a>
+</dt>
+<dt id="ientry-idm6746">cairo_mesh_pattern_begin_patch, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-begin-patch">cairo_mesh_pattern_begin_patch ()</a>
+</dt>
+<dt id="ientry-idm6961">cairo_mesh_pattern_curve_to, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-curve-to">cairo_mesh_pattern_curve_to ()</a>
+</dt>
+<dt id="ientry-idm6794">cairo_mesh_pattern_end_patch, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-end-patch">cairo_mesh_pattern_end_patch ()</a>
+</dt>
+<dt id="ientry-idm7425">cairo_mesh_pattern_get_control_point, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-get-control-point">cairo_mesh_pattern_get_control_point ()</a>
+</dt>
+<dt id="ientry-idm7517">cairo_mesh_pattern_get_corner_color_rgba, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-get-corner-color-rgba">cairo_mesh_pattern_get_corner_color_rgba ()</a>
+</dt>
+<dt id="ientry-idm7320">cairo_mesh_pattern_get_patch_count, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-get-patch-count">cairo_mesh_pattern_get_patch_count ()</a>
+</dt>
+<dt id="ientry-idm7371">cairo_mesh_pattern_get_path, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-get-path">cairo_mesh_pattern_get_path ()</a>
+</dt>
+<dt id="ientry-idm6894">cairo_mesh_pattern_line_to, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-line-to">cairo_mesh_pattern_line_to ()</a>
+</dt>
+<dt id="ientry-idm6835">cairo_mesh_pattern_move_to, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-move-to">cairo_mesh_pattern_move_to ()</a>
+</dt>
+<dt id="ientry-idm7068">cairo_mesh_pattern_set_control_point, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-set-control-point">cairo_mesh_pattern_set_control_point ()</a>
+</dt>
+<dt id="ientry-idm7141">cairo_mesh_pattern_set_corner_color_rgb, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-set-corner-color-rgb">cairo_mesh_pattern_set_corner_color_rgb ()</a>
+</dt>
+<dt id="ientry-idm7226">cairo_mesh_pattern_set_corner_color_rgba, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-mesh-pattern-set-corner-color-rgba">cairo_mesh_pattern_set_corner_color_rgba ()</a>
+</dt>
+<dt id="ientry-idm20446">CAIRO_MIME_TYPE_CCITT_FAX, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX:CAPS">CAIRO_MIME_TYPE_CCITT_FAX</a>
+</dt>
+<dt id="ientry-idm20454">CAIRO_MIME_TYPE_CCITT_FAX_PARAMS, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-CCITT-FAX-PARAMS:CAPS">CAIRO_MIME_TYPE_CCITT_FAX_PARAMS</a>
+</dt>
+<dt id="ientry-idm20463">CAIRO_MIME_TYPE_EPS, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-EPS:CAPS">CAIRO_MIME_TYPE_EPS</a>
+</dt>
+<dt id="ientry-idm20472">CAIRO_MIME_TYPE_EPS_PARAMS, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-EPS-PARAMS:CAPS">CAIRO_MIME_TYPE_EPS_PARAMS</a>
+</dt>
+<dt id="ientry-idm20481">CAIRO_MIME_TYPE_JBIG2, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2:CAPS">CAIRO_MIME_TYPE_JBIG2</a>
+</dt>
+<dt id="ientry-idm20489">CAIRO_MIME_TYPE_JBIG2_GLOBAL, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL:CAPS">CAIRO_MIME_TYPE_JBIG2_GLOBAL</a>
+</dt>
+<dt id="ientry-idm20497">CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JBIG2-GLOBAL-ID:CAPS">CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID</a>
+</dt>
+<dt id="ientry-idm20505">CAIRO_MIME_TYPE_JP2, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JP2:CAPS">CAIRO_MIME_TYPE_JP2</a>
+</dt>
+<dt id="ientry-idm20513">CAIRO_MIME_TYPE_JPEG, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-JPEG:CAPS">CAIRO_MIME_TYPE_JPEG</a>
+</dt>
+<dt id="ientry-idm20521">CAIRO_MIME_TYPE_PNG, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-PNG:CAPS">CAIRO_MIME_TYPE_PNG</a>
+</dt>
+<dt id="ientry-idm20537">CAIRO_MIME_TYPE_UNIQUE_ID, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-UNIQUE-ID:CAPS">CAIRO_MIME_TYPE_UNIQUE_ID</a>
+</dt>
+<dt id="ientry-idm20529">CAIRO_MIME_TYPE_URI, <a class="indexterm" href="cairo-cairo-surface-t.html#CAIRO-MIME-TYPE-URI:CAPS">CAIRO_MIME_TYPE_URI</a>
+</dt>
+<dt id="ientry-idm4738">cairo_move_to, <a class="indexterm" href="cairo-Paths.html#cairo-move-to">cairo_move_to ()</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>N</h3>
+<dl>
+<dt id="ientry-idm4298">cairo_new_path, <a class="indexterm" href="cairo-Paths.html#cairo-new-path">cairo_new_path ()</a>
+</dt>
+<dt id="ientry-idm4325">cairo_new_sub_path, <a class="indexterm" href="cairo-Paths.html#cairo-new-sub-path">cairo_new_sub_path ()</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>O</h3>
+<dl><dt id="ientry-idm3493">cairo_operator_t, <a class="indexterm" href="cairo-cairo-t.html#cairo-operator-t">enum cairo_operator_t</a>
+</dt></dl>
+</div>
+<div class="indexdiv">
+<h3>P</h3>
+<dl>
+<dt id="ientry-idm2742">cairo_paint, <a class="indexterm" href="cairo-cairo-t.html#cairo-paint">cairo_paint ()</a>
+</dt>
+<dt id="ientry-idm2769">cairo_paint_with_alpha, <a class="indexterm" href="cairo-cairo-t.html#cairo-paint-with-alpha">cairo_paint_with_alpha ()</a>
+</dt>
+<dt id="ientry-idm5326">cairo_path_data_t, <a class="indexterm" href="cairo-Paths.html#cairo-path-data-t">union cairo_path_data_t</a>
+</dt>
+<dt id="ientry-idm5358">cairo_path_data_type_t, <a class="indexterm" href="cairo-Paths.html#cairo-path-data-type-t">enum cairo_path_data_type_t</a>
+</dt>
+<dt id="ientry-idm4087">cairo_path_destroy, <a class="indexterm" href="cairo-Paths.html#cairo-path-destroy">cairo_path_destroy ()</a>
+</dt>
+<dt id="ientry-idm5183">cairo_path_extents, <a class="indexterm" href="cairo-Paths.html#cairo-path-extents">cairo_path_extents ()</a>
+</dt>
+<dt id="ientry-idm5271">cairo_path_t, <a class="indexterm" href="cairo-Paths.html#cairo-path-t">cairo_path_t</a>
+</dt>
+<dt id="ientry-idm5726">cairo_pattern_add_color_stop_rgb, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-add-color-stop-rgb">cairo_pattern_add_color_stop_rgb ()</a>
+</dt>
+<dt id="ientry-idm5798">cairo_pattern_add_color_stop_rgba, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-add-color-stop-rgba">cairo_pattern_add_color_stop_rgba ()</a>
+</dt>
+<dt id="ientry-idm6240">cairo_pattern_create_for_surface, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-create-for-surface">cairo_pattern_create_for_surface ()</a>
+</dt>
+<dt id="ientry-idm6329">cairo_pattern_create_linear, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-create-linear">cairo_pattern_create_linear ()</a>
+</dt>
+<dt id="ientry-idm6677">cairo_pattern_create_mesh, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-create-mesh">cairo_pattern_create_mesh ()</a>
+</dt>
+<dt id="ientry-idm6483">cairo_pattern_create_radial, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-create-radial">cairo_pattern_create_radial ()</a>
+</dt>
+<dt id="ientry-idm12022">cairo_pattern_create_raster_source, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-pattern-create-raster-source">cairo_pattern_create_raster_source ()</a>
+</dt>
+<dt id="ientry-idm6034">cairo_pattern_create_rgb, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-create-rgb">cairo_pattern_create_rgb ()</a>
+</dt>
+<dt id="ientry-idm6091">cairo_pattern_create_rgba, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-create-rgba">cairo_pattern_create_rgba ()</a>
+</dt>
+<dt id="ientry-idm7674">cairo_pattern_destroy, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-destroy">cairo_pattern_destroy ()</a>
+</dt>
+<dt id="ientry-idm5879">cairo_pattern_get_color_stop_count, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-color-stop-count">cairo_pattern_get_color_stop_count ()</a>
+</dt>
+<dt id="ientry-idm5927">cairo_pattern_get_color_stop_rgba, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-color-stop-rgba">cairo_pattern_get_color_stop_rgba ()</a>
+</dt>
+<dt id="ientry-idm7796">cairo_pattern_get_extend, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-extend">cairo_pattern_get_extend ()</a>
+</dt>
+<dt id="ientry-idm7883">cairo_pattern_get_filter, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-filter">cairo_pattern_get_filter ()</a>
+</dt>
+<dt id="ientry-idm6402">cairo_pattern_get_linear_points, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-linear-points">cairo_pattern_get_linear_points ()</a>
+</dt>
+<dt id="ientry-idm7967">cairo_pattern_get_matrix, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-matrix">cairo_pattern_get_matrix ()</a>
+</dt>
+<dt id="ientry-idm6574">cairo_pattern_get_radial_circles, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-radial-circles">cairo_pattern_get_radial_circles ()</a>
+</dt>
+<dt id="ientry-idm8041">cairo_pattern_get_reference_count, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-reference-count">cairo_pattern_get_reference_count ()</a>
+</dt>
+<dt id="ientry-idm6160">cairo_pattern_get_rgba, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-rgba">cairo_pattern_get_rgba ()</a>
+</dt>
+<dt id="ientry-idm6279">cairo_pattern_get_surface, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-surface">cairo_pattern_get_surface ()</a>
+</dt>
+<dt id="ientry-idm8006">cairo_pattern_get_type, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-type">cairo_pattern_get_type ()</a>
+</dt>
+<dt id="ientry-idm8150">cairo_pattern_get_user_data, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-get-user-data">cairo_pattern_get_user_data ()</a>
+</dt>
+<dt id="ientry-idm7631">cairo_pattern_reference, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-reference">cairo_pattern_reference ()</a>
+</dt>
+<dt id="ientry-idm7749">cairo_pattern_set_extend, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-set-extend">cairo_pattern_set_extend ()</a>
+</dt>
+<dt id="ientry-idm7830">cairo_pattern_set_filter, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-set-filter">cairo_pattern_set_filter ()</a>
+</dt>
+<dt id="ientry-idm7917">cairo_pattern_set_matrix, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-set-matrix">cairo_pattern_set_matrix ()</a>
+</dt>
+<dt id="ientry-idm8075">cairo_pattern_set_user_data, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-set-user-data">cairo_pattern_set_user_data ()</a>
+</dt>
+<dt id="ientry-idm7707">cairo_pattern_status, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-status">cairo_pattern_status ()</a>
+</dt>
+<dt id="ientry-idm8200">cairo_pattern_t, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-t">cairo_pattern_t</a>
+</dt>
+<dt id="ientry-idm8338">cairo_pattern_type_t, <a class="indexterm" href="cairo-cairo-pattern-t.html#cairo-pattern-type-t">enum cairo_pattern_type_t</a>
+</dt>
+<dt id="ientry-idm21693">cairo_pdf_get_versions, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-get-versions">cairo_pdf_get_versions ()</a>
+</dt>
+<dt id="ientry-idm22091">cairo_pdf_metadata_t, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-metadata-t">enum cairo_pdf_metadata_t</a>
+</dt>
+<dt id="ientry-idm22054">cairo_pdf_outline_flags_t, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-outline-flags-t">enum cairo_pdf_outline_flags_t</a>
+</dt>
+<dt id="ientry-idm22044">CAIRO_PDF_OUTLINE_ROOT, <a class="indexterm" href="cairo-PDF-Surfaces.html#CAIRO-PDF-OUTLINE-ROOT:CAPS">CAIRO_PDF_OUTLINE_ROOT</a>
+</dt>
+<dt id="ientry-idm21819">cairo_pdf_surface_add_outline, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-add-outline">cairo_pdf_surface_add_outline ()</a>
+</dt>
+<dt id="ientry-idm21524">cairo_pdf_surface_create, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-create">cairo_pdf_surface_create ()</a>
+</dt>
+<dt id="ientry-idm21580">cairo_pdf_surface_create_for_stream, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-create-for-stream">cairo_pdf_surface_create_for_stream ()</a>
+</dt>
+<dt id="ientry-idm21651">cairo_pdf_surface_restrict_to_version, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-restrict-to-version">cairo_pdf_surface_restrict_to_version ()</a>
+</dt>
+<dt id="ientry-idm21895">cairo_pdf_surface_set_metadata, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-set-metadata">cairo_pdf_surface_set_metadata ()</a>
+</dt>
+<dt id="ientry-idm21949">cairo_pdf_surface_set_page_label, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-set-page-label">cairo_pdf_surface_set_page_label ()</a>
+</dt>
+<dt id="ientry-idm21767">cairo_pdf_surface_set_size, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-set-size">cairo_pdf_surface_set_size ()</a>
+</dt>
+<dt id="ientry-idm21987">cairo_pdf_surface_set_thumbnail_size, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-surface-set-thumbnail-size">cairo_pdf_surface_set_thumbnail_size ()</a>
+</dt>
+<dt id="ientry-idm22152">cairo_pdf_version_t, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-version-t">enum cairo_pdf_version_t</a>
+</dt>
+<dt id="ientry-idm21731">cairo_pdf_version_to_string, <a class="indexterm" href="cairo-PDF-Surfaces.html#cairo-pdf-version-to-string">cairo_pdf_version_to_string ()</a>
+</dt>
+<dt id="ientry-idm904">cairo_pop_group, <a class="indexterm" href="cairo-cairo-t.html#cairo-pop-group">cairo_pop_group ()</a>
+</dt>
+<dt id="ientry-idm947">cairo_pop_group_to_source, <a class="indexterm" href="cairo-cairo-t.html#cairo-pop-group-to-source">cairo_pop_group_to_source ()</a>
+</dt>
+<dt id="ientry-idm22934">cairo_ps_get_levels, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-get-levels">cairo_ps_get_levels ()</a>
+</dt>
+<dt id="ientry-idm23291">cairo_ps_level_t, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-level-t">enum cairo_ps_level_t</a>
+</dt>
+<dt id="ientry-idm22972">cairo_ps_level_to_string, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-level-to-string">cairo_ps_level_to_string ()</a>
+</dt>
+<dt id="ientry-idm22755">cairo_ps_surface_create, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-create">cairo_ps_surface_create ()</a>
+</dt>
+<dt id="ientry-idm22816">cairo_ps_surface_create_for_stream, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-create-for-stream">cairo_ps_surface_create_for_stream ()</a>
+</dt>
+<dt id="ientry-idm23175">cairo_ps_surface_dsc_begin_page_setup, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-begin-page-setup">cairo_ps_surface_dsc_begin_page_setup ()</a>
+</dt>
+<dt id="ientry-idm23138">cairo_ps_surface_dsc_begin_setup, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-begin-setup">cairo_ps_surface_dsc_begin_setup ()</a>
+</dt>
+<dt id="ientry-idm23212">cairo_ps_surface_dsc_comment, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-dsc-comment">cairo_ps_surface_dsc_comment ()</a>
+</dt>
+<dt id="ientry-idm23052">cairo_ps_surface_get_eps, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-get-eps">cairo_ps_surface_get_eps ()</a>
+</dt>
+<dt id="ientry-idm22892">cairo_ps_surface_restrict_to_level, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-restrict-to-level">cairo_ps_surface_restrict_to_level ()</a>
+</dt>
+<dt id="ientry-idm23008">cairo_ps_surface_set_eps, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-set-eps">cairo_ps_surface_set_eps ()</a>
+</dt>
+<dt id="ientry-idm23086">cairo_ps_surface_set_size, <a class="indexterm" href="cairo-PostScript-Surfaces.html#cairo-ps-surface-set-size">cairo_ps_surface_set_size ()</a>
+</dt>
+<dt id="ientry-idm806">cairo_push_group, <a class="indexterm" href="cairo-cairo-t.html#cairo-push-group">cairo_push_group ()</a>
+</dt>
+<dt id="ientry-idm858">cairo_push_group_with_content, <a class="indexterm" href="cairo-cairo-t.html#cairo-push-group-with-content">cairo_push_group_with_content ()</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>Q</h3>
+<dl>
+<dt id="ientry-idm16820">cairo_quartz_font_face_create_for_atsu_font_id, <a class="indexterm" href="cairo-Quartz-(CGFont)-Fonts.html#cairo-quartz-font-face-create-for-atsu-font-id">cairo_quartz_font_face_create_for_atsu_font_id ()</a>
+</dt>
+<dt id="ientry-idm16778">cairo_quartz_font_face_create_for_cgfont, <a class="indexterm" href="cairo-Quartz-(CGFont)-Fonts.html#cairo-quartz-font-face-create-for-cgfont">cairo_quartz_font_face_create_for_cgfont ()</a>
+</dt>
+<dt id="ientry-idm24573">cairo_quartz_surface_create, <a class="indexterm" href="cairo-Quartz-Surfaces.html#cairo-quartz-surface-create">cairo_quartz_surface_create ()</a>
+</dt>
+<dt id="ientry-idm24621">cairo_quartz_surface_create_for_cg_context, <a class="indexterm" href="cairo-Quartz-Surfaces.html#cairo-quartz-surface-create-for-cg-context">cairo_quartz_surface_create_for_cg_context ()</a>
+</dt>
+<dt id="ientry-idm24672">cairo_quartz_surface_get_cg_context, <a class="indexterm" href="cairo-Quartz-Surfaces.html#cairo-quartz-surface-get-cg-context">cairo_quartz_surface_get_cg_context ()</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>R</h3>
+<dl>
+<dt id="ientry-idm12444">cairo_raster_source_acquire_func_t, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-acquire-func-t">cairo_raster_source_acquire_func_t ()</a>
+</dt>
+<dt id="ientry-idm12605">cairo_raster_source_copy_func_t, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-copy-func-t">cairo_raster_source_copy_func_t ()</a>
+</dt>
+<dt id="ientry-idm12663">cairo_raster_source_finish_func_t, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-finish-func-t">cairo_raster_source_finish_func_t ()</a>
+</dt>
+<dt id="ientry-idm12201">cairo_raster_source_pattern_get_acquire, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-get-acquire">cairo_raster_source_pattern_get_acquire ()</a>
+</dt>
+<dt id="ientry-idm12120">cairo_raster_source_pattern_get_callback_data, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-get-callback-data">cairo_raster_source_pattern_get_callback_data ()</a>
+</dt>
+<dt id="ientry-idm12348">cairo_raster_source_pattern_get_copy, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-get-copy">cairo_raster_source_pattern_get_copy ()</a>
+</dt>
+<dt id="ientry-idm12414">cairo_raster_source_pattern_get_finish, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-get-finish">cairo_raster_source_pattern_get_finish ()</a>
+</dt>
+<dt id="ientry-idm12282">cairo_raster_source_pattern_get_snapshot, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-get-snapshot">cairo_raster_source_pattern_get_snapshot ()</a>
+</dt>
+<dt id="ientry-idm12150">cairo_raster_source_pattern_set_acquire, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-set-acquire">cairo_raster_source_pattern_set_acquire ()</a>
+</dt>
+<dt id="ientry-idm12084">cairo_raster_source_pattern_set_callback_data, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-set-callback-data">cairo_raster_source_pattern_set_callback_data ()</a>
+</dt>
+<dt id="ientry-idm12312">cairo_raster_source_pattern_set_copy, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-set-copy">cairo_raster_source_pattern_set_copy ()</a>
+</dt>
+<dt id="ientry-idm12378">cairo_raster_source_pattern_set_finish, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-set-finish">cairo_raster_source_pattern_set_finish ()</a>
+</dt>
+<dt id="ientry-idm12246">cairo_raster_source_pattern_set_snapshot, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-pattern-set-snapshot">cairo_raster_source_pattern_set_snapshot ()</a>
+</dt>
+<dt id="ientry-idm12511">cairo_raster_source_release_func_t, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-release-func-t">cairo_raster_source_release_func_t ()</a>
+</dt>
+<dt id="ientry-idm12560">cairo_raster_source_snapshot_func_t, <a class="indexterm" href="cairo-Raster-Sources.html#cairo-raster-source-snapshot-func-t">cairo_raster_source_snapshot_func_t ()</a>
+</dt>
+<dt id="ientry-idm22310">cairo_read_func_t, <a class="indexterm" href="cairo-PNG-Support.html#cairo-read-func-t">cairo_read_func_t ()</a>
+</dt>
+<dt id="ientry-idm23382">cairo_recording_surface_create, <a class="indexterm" href="cairo-Recording-Surfaces.html#cairo-recording-surface-create">cairo_recording_surface_create ()</a>
+</dt>
+<dt id="ientry-idm23491">cairo_recording_surface_get_extents, <a class="indexterm" href="cairo-Recording-Surfaces.html#cairo-recording-surface-get-extents">cairo_recording_surface_get_extents ()</a>
+</dt>
+<dt id="ientry-idm23426">cairo_recording_surface_ink_extents, <a class="indexterm" href="cairo-Recording-Surfaces.html#cairo-recording-surface-ink-extents">cairo_recording_surface_ink_extents ()</a>
+</dt>
+<dt id="ientry-idm4785">cairo_rectangle, <a class="indexterm" href="cairo-Paths.html#cairo-rectangle">cairo_rectangle ()</a>
+</dt>
+<dt id="ientry-idm28466">cairo_rectangle_int_t, <a class="indexterm" href="cairo-Types.html#cairo-rectangle-int-t">cairo_rectangle_int_t</a>
+</dt>
+<dt id="ientry-idm2368">cairo_rectangle_list_destroy, <a class="indexterm" href="cairo-cairo-t.html#cairo-rectangle-list-destroy">cairo_rectangle_list_destroy ()</a>
+</dt>
+<dt id="ientry-idm3744">cairo_rectangle_list_t, <a class="indexterm" href="cairo-cairo-t.html#cairo-rectangle-list-t">cairo_rectangle_list_t</a>
+</dt>
+<dt id="ientry-idm3692">cairo_rectangle_t, <a class="indexterm" href="cairo-cairo-t.html#cairo-rectangle-t">cairo_rectangle_t</a>
+</dt>
+<dt id="ientry-idm569">cairo_reference, <a class="indexterm" href="cairo-cairo-t.html#cairo-reference">cairo_reference ()</a>
+</dt>
+<dt id="ientry-idm9031">cairo_region_contains_point, <a class="indexterm" href="cairo-Regions.html#cairo-region-contains-point">cairo_region_contains_point ()</a>
+</dt>
+<dt id="ientry-idm9091">cairo_region_contains_rectangle, <a class="indexterm" href="cairo-Regions.html#cairo-region-contains-rectangle">cairo_region_contains_rectangle ()</a>
+</dt>
+<dt id="ientry-idm8717">cairo_region_copy, <a class="indexterm" href="cairo-Regions.html#cairo-region-copy">cairo_region_copy ()</a>
+</dt>
+<dt id="ientry-idm8610">cairo_region_create, <a class="indexterm" href="cairo-Regions.html#cairo-region-create">cairo_region_create ()</a>
+</dt>
+<dt id="ientry-idm8631">cairo_region_create_rectangle, <a class="indexterm" href="cairo-Regions.html#cairo-region-create-rectangle">cairo_region_create_rectangle ()</a>
+</dt>
+<dt id="ientry-idm8670">cairo_region_create_rectangles, <a class="indexterm" href="cairo-Regions.html#cairo-region-create-rectangles">cairo_region_create_rectangles ()</a>
+</dt>
+<dt id="ientry-idm8794">cairo_region_destroy, <a class="indexterm" href="cairo-Regions.html#cairo-region-destroy">cairo_region_destroy ()</a>
+</dt>
+<dt id="ientry-idm9148">cairo_region_equal, <a class="indexterm" href="cairo-Regions.html#cairo-region-equal">cairo_region_equal ()</a>
+</dt>
+<dt id="ientry-idm8867">cairo_region_get_extents, <a class="indexterm" href="cairo-Regions.html#cairo-region-get-extents">cairo_region_get_extents ()</a>
+</dt>
+<dt id="ientry-idm8942">cairo_region_get_rectangle, <a class="indexterm" href="cairo-Regions.html#cairo-region-get-rectangle">cairo_region_get_rectangle ()</a>
+</dt>
+<dt id="ientry-idm9253">cairo_region_intersect, <a class="indexterm" href="cairo-Regions.html#cairo-region-intersect">cairo_region_intersect ()</a>
+</dt>
+<dt id="ientry-idm9303">cairo_region_intersect_rectangle, <a class="indexterm" href="cairo-Regions.html#cairo-region-intersect-rectangle">cairo_region_intersect_rectangle ()</a>
+</dt>
+<dt id="ientry-idm8993">cairo_region_is_empty, <a class="indexterm" href="cairo-Regions.html#cairo-region-is-empty">cairo_region_is_empty ()</a>
+</dt>
+<dt id="ientry-idm8908">cairo_region_num_rectangles, <a class="indexterm" href="cairo-Regions.html#cairo-region-num-rectangles">cairo_region_num_rectangles ()</a>
+</dt>
+<dt id="ientry-idm9683">cairo_region_overlap_t, <a class="indexterm" href="cairo-Regions.html#cairo-region-overlap-t">enum cairo_region_overlap_t</a>
+</dt>
+<dt id="ientry-idm8756">cairo_region_reference, <a class="indexterm" href="cairo-Regions.html#cairo-region-reference">cairo_region_reference ()</a>
+</dt>
+<dt id="ientry-idm8831">cairo_region_status, <a class="indexterm" href="cairo-Regions.html#cairo-region-status">cairo_region_status ()</a>
+</dt>
+<dt id="ientry-idm9353">cairo_region_subtract, <a class="indexterm" href="cairo-Regions.html#cairo-region-subtract">cairo_region_subtract ()</a>
+</dt>
+<dt id="ientry-idm9403">cairo_region_subtract_rectangle, <a class="indexterm" href="cairo-Regions.html#cairo-region-subtract-rectangle">cairo_region_subtract_rectangle ()</a>
+</dt>
+<dt id="ientry-idm9661">cairo_region_t, <a class="indexterm" href="cairo-Regions.html#cairo-region-t">cairo_region_t</a>
+</dt>
+<dt id="ientry-idm9203">cairo_region_translate, <a class="indexterm" href="cairo-Regions.html#cairo-region-translate">cairo_region_translate ()</a>
+</dt>
+<dt id="ientry-idm9453">cairo_region_union, <a class="indexterm" href="cairo-Regions.html#cairo-region-union">cairo_region_union ()</a>
+</dt>
+<dt id="ientry-idm9503">cairo_region_union_rectangle, <a class="indexterm" href="cairo-Regions.html#cairo-region-union-rectangle">cairo_region_union_rectangle ()</a>
+</dt>
+<dt id="ientry-idm9553">cairo_region_xor, <a class="indexterm" href="cairo-Regions.html#cairo-region-xor">cairo_region_xor ()</a>
+</dt>
+<dt id="ientry-idm9606">cairo_region_xor_rectangle, <a class="indexterm" href="cairo-Regions.html#cairo-region-xor-rectangle">cairo_region_xor_rectangle ()</a>
+</dt>
+<dt id="ientry-idm4953">cairo_rel_curve_to, <a class="indexterm" href="cairo-Paths.html#cairo-rel-curve-to">cairo_rel_curve_to ()</a>
+</dt>
+<dt id="ientry-idm5063">cairo_rel_line_to, <a class="indexterm" href="cairo-Paths.html#cairo-rel-line-to">cairo_rel_line_to ()</a>
+</dt>
+<dt id="ientry-idm5125">cairo_rel_move_to, <a class="indexterm" href="cairo-Paths.html#cairo-rel-move-to">cairo_rel_move_to ()</a>
+</dt>
+<dt id="ientry-idm2330">cairo_reset_clip, <a class="indexterm" href="cairo-cairo-t.html#cairo-reset-clip">cairo_reset_clip ()</a>
+</dt>
+<dt id="ientry-idm728">cairo_restore, <a class="indexterm" href="cairo-cairo-t.html#cairo-restore">cairo_restore ()</a>
+</dt>
+<dt id="ientry-idm9914">cairo_rotate, <a class="indexterm" href="cairo-Transformations.html#cairo-rotate">cairo_rotate ()</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>S</h3>
+<dl>
+<dt id="ientry-idm677">cairo_save, <a class="indexterm" href="cairo-cairo-t.html#cairo-save">cairo_save ()</a>
+</dt>
+<dt id="ientry-idm9867">cairo_scale, <a class="indexterm" href="cairo-Transformations.html#cairo-scale">cairo_scale ()</a>
+</dt>
+<dt id="ientry-idm13670">cairo_scaled_font_create, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-create">cairo_scaled_font_create ()</a>
+</dt>
+<dt id="ientry-idm13782">cairo_scaled_font_destroy, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-destroy">cairo_scaled_font_destroy ()</a>
+</dt>
+<dt id="ientry-idm13851">cairo_scaled_font_extents, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-extents">cairo_scaled_font_extents ()</a>
+</dt>
+<dt id="ientry-idm14313">cairo_scaled_font_get_ctm, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-ctm">cairo_scaled_font_get_ctm ()</a>
+</dt>
+<dt id="ientry-idm14194">cairo_scaled_font_get_font_face, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-font-face">cairo_scaled_font_get_font_face ()</a>
+</dt>
+<dt id="ientry-idm14273">cairo_scaled_font_get_font_matrix, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-font-matrix">cairo_scaled_font_get_font_matrix ()</a>
+</dt>
+<dt id="ientry-idm14233">cairo_scaled_font_get_font_options, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-font-options">cairo_scaled_font_get_font_options ()</a>
+</dt>
+<dt id="ientry-idm14432">cairo_scaled_font_get_reference_count, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-reference-count">cairo_scaled_font_get_reference_count ()</a>
+</dt>
+<dt id="ientry-idm14355">cairo_scaled_font_get_scale_matrix, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-scale-matrix">cairo_scaled_font_get_scale_matrix ()</a>
+</dt>
+<dt id="ientry-idm14395">cairo_scaled_font_get_type, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-type">cairo_scaled_font_get_type ()</a>
+</dt>
+<dt id="ientry-idm14541">cairo_scaled_font_get_user_data, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-get-user-data">cairo_scaled_font_get_user_data ()</a>
+</dt>
+<dt id="ientry-idm13948">cairo_scaled_font_glyph_extents, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-glyph-extents">cairo_scaled_font_glyph_extents ()</a>
+</dt>
+<dt id="ientry-idm13737">cairo_scaled_font_reference, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-reference">cairo_scaled_font_reference ()</a>
+</dt>
+<dt id="ientry-idm14466">cairo_scaled_font_set_user_data, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-set-user-data">cairo_scaled_font_set_user_data ()</a>
+</dt>
+<dt id="ientry-idm13815">cairo_scaled_font_status, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-status">cairo_scaled_font_status ()</a>
+</dt>
+<dt id="ientry-idm14591">cairo_scaled_font_t, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-t">cairo_scaled_font_t</a>
+</dt>
+<dt id="ientry-idm13893">cairo_scaled_font_text_extents, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-text-extents">cairo_scaled_font_text_extents ()</a>
+</dt>
+<dt id="ientry-idm14013">cairo_scaled_font_text_to_glyphs, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-scaled-font-text-to-glyphs">cairo_scaled_font_text_to_glyphs ()</a>
+</dt>
+<dt id="ientry-idm26421">cairo_script_create, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-create">cairo_script_create ()</a>
+</dt>
+<dt id="ientry-idm26456">cairo_script_create_for_stream, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-create-for-stream">cairo_script_create_for_stream ()</a>
+</dt>
+<dt id="ientry-idm26500">cairo_script_from_recording_surface, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-from-recording-surface">cairo_script_from_recording_surface ()</a>
+</dt>
+<dt id="ientry-idm26542">cairo_script_get_mode, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-get-mode">cairo_script_get_mode ()</a>
+</dt>
+<dt id="ientry-idm26774">cairo_script_mode_t, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-mode-t">enum cairo_script_mode_t</a>
+</dt>
+<dt id="ientry-idm26572">cairo_script_set_mode, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-set-mode">cairo_script_set_mode ()</a>
+</dt>
+<dt id="ientry-idm26608">cairo_script_surface_create, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-surface-create">cairo_script_surface_create ()</a>
+</dt>
+<dt id="ientry-idm26671">cairo_script_surface_create_for_target, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-surface-create-for-target">cairo_script_surface_create_for_target ()</a>
+</dt>
+<dt id="ientry-idm26717">cairo_script_write_comment, <a class="indexterm" href="cairo-Script-Surfaces.html#cairo-script-write-comment">cairo_script_write_comment ()</a>
+</dt>
+<dt id="ientry-idm10505">cairo_select_font_face, <a class="indexterm" href="cairo-text.html#cairo-select-font-face">cairo_select_font_face ()</a>
+</dt>
+<dt id="ientry-idm1314">cairo_set_antialias, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-antialias">cairo_set_antialias ()</a>
+</dt>
+<dt id="ientry-idm1389">cairo_set_dash, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-dash">cairo_set_dash ()</a>
+</dt>
+<dt id="ientry-idm1559">cairo_set_fill_rule, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-fill-rule">cairo_set_fill_rule ()</a>
+</dt>
+<dt id="ientry-idm10820">cairo_set_font_face, <a class="indexterm" href="cairo-text.html#cairo-set-font-face">cairo_set_font_face ()</a>
+</dt>
+<dt id="ientry-idm10649">cairo_set_font_matrix, <a class="indexterm" href="cairo-text.html#cairo-set-font-matrix">cairo_set_font_matrix ()</a>
+</dt>
+<dt id="ientry-idm10733">cairo_set_font_options, <a class="indexterm" href="cairo-text.html#cairo-set-font-options">cairo_set_font_options ()</a>
+</dt>
+<dt id="ientry-idm10596">cairo_set_font_size, <a class="indexterm" href="cairo-text.html#cairo-set-font-size">cairo_set_font_size ()</a>
+</dt>
+<dt id="ientry-idm1640">cairo_set_line_cap, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-line-cap">cairo_set_line_cap ()</a>
+</dt>
+<dt id="ientry-idm1720">cairo_set_line_join, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-line-join">cairo_set_line_join ()</a>
+</dt>
+<dt id="ientry-idm1800">cairo_set_line_width, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-line-width">cairo_set_line_width ()</a>
+</dt>
+<dt id="ientry-idm9988">cairo_set_matrix, <a class="indexterm" href="cairo-Transformations.html#cairo-set-matrix">cairo_set_matrix ()</a>
+</dt>
+<dt id="ientry-idm1889">cairo_set_miter_limit, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-miter-limit">cairo_set_miter_limit ()</a>
+</dt>
+<dt id="ientry-idm1971">cairo_set_operator, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-operator">cairo_set_operator ()</a>
+</dt>
+<dt id="ientry-idm10918">cairo_set_scaled_font, <a class="indexterm" href="cairo-text.html#cairo-set-scaled-font">cairo_set_scaled_font ()</a>
+</dt>
+<dt id="ientry-idm1165">cairo_set_source, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-source">cairo_set_source ()</a>
+</dt>
+<dt id="ientry-idm1039">cairo_set_source_rgb, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-source-rgb">cairo_set_source_rgb ()</a>
+</dt>
+<dt id="ientry-idm1099">cairo_set_source_rgba, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-source-rgba">cairo_set_source_rgba ()</a>
+</dt>
+<dt id="ientry-idm1211">cairo_set_source_surface, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-source-surface">cairo_set_source_surface ()</a>
+</dt>
+<dt id="ientry-idm2046">cairo_set_tolerance, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-tolerance">cairo_set_tolerance ()</a>
+</dt>
+<dt id="ientry-idm3169">cairo_set_user_data, <a class="indexterm" href="cairo-cairo-t.html#cairo-set-user-data">cairo_set_user_data ()</a>
+</dt>
+<dt id="ientry-idm11064">cairo_show_glyphs, <a class="indexterm" href="cairo-text.html#cairo-show-glyphs">cairo_show_glyphs ()</a>
+</dt>
+<dt id="ientry-idm3102">cairo_show_page, <a class="indexterm" href="cairo-cairo-t.html#cairo-show-page">cairo_show_page ()</a>
+</dt>
+<dt id="ientry-idm11017">cairo_show_text, <a class="indexterm" href="cairo-text.html#cairo-show-text">cairo_show_text ()</a>
+</dt>
+<dt id="ientry-idm11109">cairo_show_text_glyphs, <a class="indexterm" href="cairo-text.html#cairo-show-text-glyphs">cairo_show_text_glyphs ()</a>
+</dt>
+<dt id="ientry-idm645">cairo_status, <a class="indexterm" href="cairo-cairo-t.html#cairo-status">cairo_status ()</a>
+</dt>
+<dt id="ientry-idm27744">cairo_status_t, <a class="indexterm" href="cairo-Error-handling.html#cairo-status-t">enum cairo_status_t</a>
+</dt>
+<dt id="ientry-idm27692">cairo_status_to_string, <a class="indexterm" href="cairo-Error-handling.html#cairo-status-to-string">cairo_status_to_string ()</a>
+</dt>
+<dt id="ientry-idm2808">cairo_stroke, <a class="indexterm" href="cairo-cairo-t.html#cairo-stroke">cairo_stroke ()</a>
+</dt>
+<dt id="ientry-idm2918">cairo_stroke_extents, <a class="indexterm" href="cairo-cairo-t.html#cairo-stroke-extents">cairo_stroke_extents ()</a>
+</dt>
+<dt id="ientry-idm2876">cairo_stroke_preserve, <a class="indexterm" href="cairo-cairo-t.html#cairo-stroke-preserve">cairo_stroke_preserve ()</a>
+</dt>
+<dt id="ientry-idm15595">cairo_subpixel_order_t, <a class="indexterm" href="cairo-cairo-font-options-t.html#cairo-subpixel-order-t">enum cairo_subpixel_order_t</a>
+</dt>
+<dt id="ientry-idm19994">cairo_surface_copy_page, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-copy-page">cairo_surface_copy_page ()</a>
+</dt>
+<dt id="ientry-idm19019">cairo_surface_create_for_rectangle, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-create-for-rectangle">cairo_surface_create_for_rectangle ()</a>
+</dt>
+<dt id="ientry-idm18882">cairo_surface_create_similar, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-create-similar">cairo_surface_create_similar ()</a>
+</dt>
+<dt id="ientry-idm18951">cairo_surface_create_similar_image, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-create-similar-image">cairo_surface_create_similar_image ()</a>
+</dt>
+<dt id="ientry-idm19134">cairo_surface_destroy, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-destroy">cairo_surface_destroy ()</a>
+</dt>
+<dt id="ientry-idm19213">cairo_surface_finish, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-finish">cairo_surface_finish ()</a>
+</dt>
+<dt id="ientry-idm19251">cairo_surface_flush, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-flush">cairo_surface_flush ()</a>
+</dt>
+<dt id="ientry-idm19360">cairo_surface_get_content, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-content">cairo_surface_get_content ()</a>
+</dt>
+<dt id="ientry-idm19280">cairo_surface_get_device, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-device">cairo_surface_get_device ()</a>
+</dt>
+<dt id="ientry-idm19550">cairo_surface_get_device_offset, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-device-offset">cairo_surface_get_device_offset ()</a>
+</dt>
+<dt id="ientry-idm19599">cairo_surface_get_device_scale, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-device-scale">cairo_surface_get_device_scale ()</a>
+</dt>
+<dt id="ientry-idm19757">cairo_surface_get_fallback_resolution, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-fallback-resolution">cairo_surface_get_fallback_resolution ()</a>
+</dt>
+<dt id="ientry-idm19318">cairo_surface_get_font_options, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-font-options">cairo_surface_get_font_options ()</a>
+</dt>
+<dt id="ientry-idm20230">cairo_surface_get_mime_data, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-mime-data">cairo_surface_get_mime_data ()</a>
+</dt>
+<dt id="ientry-idm19841">cairo_surface_get_reference_count, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-reference-count">cairo_surface_get_reference_count ()</a>
+</dt>
+<dt id="ientry-idm19806">cairo_surface_get_type, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-type">cairo_surface_get_type ()</a>
+</dt>
+<dt id="ientry-idm19946">cairo_surface_get_user_data, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-get-user-data">cairo_surface_get_user_data ()</a>
+</dt>
+<dt id="ientry-idm20066">cairo_surface_has_show_text_glyphs, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-has-show-text-glyphs">cairo_surface_has_show_text_glyphs ()</a>
+</dt>
+<dt id="ientry-idm20339">cairo_surface_map_to_image, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-map-to-image">cairo_surface_map_to_image ()</a>
+</dt>
+<dt id="ientry-idm19396">cairo_surface_mark_dirty, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-mark-dirty">cairo_surface_mark_dirty ()</a>
+</dt>
+<dt id="ientry-idm19427">cairo_surface_mark_dirty_rectangle, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-mark-dirty-rectangle">cairo_surface_mark_dirty_rectangle ()</a>
+</dt>
+<dt id="ientry-idm19091">cairo_surface_reference, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-reference">cairo_surface_reference ()</a>
+</dt>
+<dt id="ientry-idm19495">cairo_surface_set_device_offset, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-set-device-offset">cairo_surface_set_device_offset ()</a>
+</dt>
+<dt id="ientry-idm19648">cairo_surface_set_device_scale, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-set-device-scale">cairo_surface_set_device_scale ()</a>
+</dt>
+<dt id="ientry-idm19701">cairo_surface_set_fallback_resolution, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-set-fallback-resolution">cairo_surface_set_fallback_resolution ()</a>
+</dt>
+<dt id="ientry-idm20117">cairo_surface_set_mime_data, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-set-mime-data">cairo_surface_set_mime_data ()</a>
+</dt>
+<dt id="ientry-idm19875">cairo_surface_set_user_data, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-set-user-data">cairo_surface_set_user_data ()</a>
+</dt>
+<dt id="ientry-idm20030">cairo_surface_show_page, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-show-page">cairo_surface_show_page ()</a>
+</dt>
+<dt id="ientry-idm19167">cairo_surface_status, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-status">cairo_surface_status ()</a>
+</dt>
+<dt id="ientry-idm20290">cairo_surface_supports_mime_type, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-supports-mime-type">cairo_surface_supports_mime_type ()</a>
+</dt>
+<dt id="ientry-idm20545">cairo_surface_t, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>
+</dt>
+<dt id="ientry-idm20624">cairo_surface_type_t, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-type-t">enum cairo_surface_type_t</a>
+</dt>
+<dt id="ientry-idm20393">cairo_surface_unmap_image, <a class="indexterm" href="cairo-cairo-surface-t.html#cairo-surface-unmap-image">cairo_surface_unmap_image ()</a>
+</dt>
+<dt id="ientry-idm22419">cairo_surface_write_to_png, <a class="indexterm" href="cairo-PNG-Support.html#cairo-surface-write-to-png">cairo_surface_write_to_png ()</a>
+</dt>
+<dt id="ientry-idm22528">cairo_surface_write_to_png_stream, <a class="indexterm" href="cairo-PNG-Support.html#cairo-surface-write-to-png-stream">cairo_surface_write_to_png_stream ()</a>
+</dt>
+<dt id="ientry-idm24318">cairo_svg_get_versions, <a class="indexterm" href="cairo-SVG-Surfaces.html#cairo-svg-get-versions">cairo_svg_get_versions ()</a>
+</dt>
+<dt id="ientry-idm24050">cairo_svg_surface_create, <a class="indexterm" href="cairo-SVG-Surfaces.html#cairo-svg-surface-create">cairo_svg_surface_create ()</a>
+</dt>
+<dt id="ientry-idm24128">cairo_svg_surface_create_for_stream, <a class="indexterm" href="cairo-SVG-Surfaces.html#cairo-svg-surface-create-for-stream">cairo_svg_surface_create_for_stream ()</a>
+</dt>
+<dt id="ientry-idm24199">cairo_svg_surface_get_document_unit, <a class="indexterm" href="cairo-SVG-Surfaces.html#cairo-svg-surface-get-document-unit">cairo_svg_surface_get_document_unit ()</a>
+</dt>
+<dt id="ientry-idm24276">cairo_svg_surface_restrict_to_version, <a class="indexterm" href="cairo-SVG-Surfaces.html#cairo-svg-surface-restrict-to-version">cairo_svg_surface_restrict_to_version ()</a>
+</dt>
+<dt id="ientry-idm24232">cairo_svg_surface_set_document_unit, <a class="indexterm" href="cairo-SVG-Surfaces.html#cairo-svg-surface-set-document-unit">cairo_svg_surface_set_document_unit ()</a>
+</dt>
+<dt id="ientry-idm24431">cairo_svg_unit_t, <a class="indexterm" href="cairo-SVG-Surfaces.html#cairo-svg-unit-t">enum cairo_svg_unit_t</a>
+</dt>
+<dt id="ientry-idm24402">cairo_svg_version_t, <a class="indexterm" href="cairo-SVG-Surfaces.html#cairo-svg-version-t">enum cairo_svg_version_t</a>
+</dt>
+<dt id="ientry-idm24356">cairo_svg_version_to_string, <a class="indexterm" href="cairo-SVG-Surfaces.html#cairo-svg-version-to-string">cairo_svg_version_to_string ()</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>T</h3>
+<dl>
+<dt id="ientry-idm3294">cairo_t, <a class="indexterm" href="cairo-cairo-t.html#cairo-t">cairo_t</a>
+</dt>
+<dt id="ientry-idm12875">cairo_tag_begin, <a class="indexterm" href="cairo-Tags-and-Links.html#cairo-tag-begin">cairo_tag_begin ()</a>
+</dt>
+<dt id="ientry-idm12985">CAIRO_TAG_DEST, <a class="indexterm" href="cairo-Tags-and-Links.html#CAIRO-TAG-DEST:CAPS">CAIRO_TAG_DEST</a>
+</dt>
+<dt id="ientry-idm12939">cairo_tag_end, <a class="indexterm" href="cairo-Tags-and-Links.html#cairo-tag-end">cairo_tag_end ()</a>
+</dt>
+<dt id="ientry-idm12994">CAIRO_TAG_LINK, <a class="indexterm" href="cairo-Tags-and-Links.html#CAIRO-TAG-LINK:CAPS">CAIRO_TAG_LINK</a>
+</dt>
+<dt id="ientry-idm11615">cairo_text_cluster_allocate, <a class="indexterm" href="cairo-text.html#cairo-text-cluster-allocate">cairo_text_cluster_allocate ()</a>
+</dt>
+<dt id="ientry-idm11847">cairo_text_cluster_flags_t, <a class="indexterm" href="cairo-text.html#cairo-text-cluster-flags-t">enum cairo_text_cluster_flags_t</a>
+</dt>
+<dt id="ientry-idm11658">cairo_text_cluster_free, <a class="indexterm" href="cairo-text.html#cairo-text-cluster-free">cairo_text_cluster_free ()</a>
+</dt>
+<dt id="ientry-idm11804">cairo_text_cluster_t, <a class="indexterm" href="cairo-text.html#cairo-text-cluster-t">cairo_text_cluster_t</a>
+</dt>
+<dt id="ientry-idm11264">cairo_text_extents, <a class="indexterm" href="cairo-text.html#cairo-text-extents">cairo_text_extents ()</a>
+</dt>
+<dt id="ientry-idm14685">cairo_text_extents_t, <a class="indexterm" href="cairo-cairo-scaled-font-t.html#cairo-text-extents-t">cairo_text_extents_t</a>
+</dt>
+<dt id="ientry-idm4900">cairo_text_path, <a class="indexterm" href="cairo-Paths.html#cairo-text-path">cairo_text_path ()</a>
+</dt>
+<dt id="ientry-idm11386">cairo_toy_font_face_create, <a class="indexterm" href="cairo-text.html#cairo-toy-font-face-create">cairo_toy_font_face_create ()</a>
+</dt>
+<dt id="ientry-idm11447">cairo_toy_font_face_get_family, <a class="indexterm" href="cairo-text.html#cairo-toy-font-face-get-family">cairo_toy_font_face_get_family ()</a>
+</dt>
+<dt id="ientry-idm11477">cairo_toy_font_face_get_slant, <a class="indexterm" href="cairo-text.html#cairo-toy-font-face-get-slant">cairo_toy_font_face_get_slant ()</a>
+</dt>
+<dt id="ientry-idm11507">cairo_toy_font_face_get_weight, <a class="indexterm" href="cairo-text.html#cairo-toy-font-face-get-weight">cairo_toy_font_face_get_weight ()</a>
+</dt>
+<dt id="ientry-idm9951">cairo_transform, <a class="indexterm" href="cairo-Transformations.html#cairo-transform">cairo_transform ()</a>
+</dt>
+<dt id="ientry-idm9818">cairo_translate, <a class="indexterm" href="cairo-Transformations.html#cairo-translate">cairo_translate ()</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>U</h3>
+<dl>
+<dt id="ientry-idm28435">cairo_user_data_key_t, <a class="indexterm" href="cairo-Types.html#cairo-user-data-key-t">cairo_user_data_key_t</a>
+</dt>
+<dt id="ientry-idm17385">cairo_user_font_face_create, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-create">cairo_user_font_face_create ()</a>
+</dt>
+<dt id="ientry-idm17455">cairo_user_font_face_get_init_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-get-init-func">cairo_user_font_face_get_init_func ()</a>
+</dt>
+<dt id="ientry-idm17537">cairo_user_font_face_get_render_glyph_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-get-render-glyph-func">cairo_user_font_face_get_render_glyph_func ()</a>
+</dt>
+<dt id="ientry-idm17689">cairo_user_font_face_get_text_to_glyphs_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-get-text-to-glyphs-func">cairo_user_font_face_get_text_to_glyphs_func ()</a>
+</dt>
+<dt id="ientry-idm17613">cairo_user_font_face_get_unicode_to_glyph_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-get-unicode-to-glyph-func">cairo_user_font_face_get_unicode_to_glyph_func ()</a>
+</dt>
+<dt id="ientry-idm17412">cairo_user_font_face_set_init_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-set-init-func">cairo_user_font_face_set_init_func ()</a>
+</dt>
+<dt id="ientry-idm17488">cairo_user_font_face_set_render_glyph_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-set-render-glyph-func">cairo_user_font_face_set_render_glyph_func ()</a>
+</dt>
+<dt id="ientry-idm17646">cairo_user_font_face_set_text_to_glyphs_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-set-text-to-glyphs-func">cairo_user_font_face_set_text_to_glyphs_func ()</a>
+</dt>
+<dt id="ientry-idm17570">cairo_user_font_face_set_unicode_to_glyph_func, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-font-face-set-unicode-to-glyph-func">cairo_user_font_face_set_unicode_to_glyph_func ()</a>
+</dt>
+<dt id="ientry-idm17005">cairo_user_scaled_font_init_func_t, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-scaled-font-init-func-t">cairo_user_scaled_font_init_func_t ()</a>
+</dt>
+<dt id="ientry-idm17069">cairo_user_scaled_font_render_glyph_func_t, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-scaled-font-render-glyph-func-t">cairo_user_scaled_font_render_glyph_func_t ()</a>
+</dt>
+<dt id="ientry-idm17166">cairo_user_scaled_font_text_to_glyphs_func_t, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-scaled-font-text-to-glyphs-func-t">cairo_user_scaled_font_text_to_glyphs_func_t ()</a>
+</dt>
+<dt id="ientry-idm17319">cairo_user_scaled_font_unicode_to_glyph_func_t, <a class="indexterm" href="cairo-User-Fonts.html#cairo-user-scaled-font-unicode-to-glyph-func-t">cairo_user_scaled_font_unicode_to_glyph_func_t ()</a>
+</dt>
+<dt id="ientry-idm10089">cairo_user_to_device, <a class="indexterm" href="cairo-Transformations.html#cairo-user-to-device">cairo_user_to_device ()</a>
+</dt>
+<dt id="ientry-idm10134">cairo_user_to_device_distance, <a class="indexterm" href="cairo-Transformations.html#cairo-user-to-device-distance">cairo_user_to_device_distance ()</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>V</h3>
+<dl>
+<dt id="ientry-idm28247">cairo_version, <a class="indexterm" href="cairo-Version-Information.html#cairo-version">cairo_version ()</a>
+</dt>
+<dt id="ientry-idm28298">CAIRO_VERSION, <a class="indexterm" href="cairo-Version-Information.html#CAIRO-VERSION:CAPS">CAIRO_VERSION</a>
+</dt>
+<dt id="ientry-idm28165">CAIRO_VERSION_ENCODE, <a class="indexterm" href="cairo-Version-Information.html#CAIRO-VERSION-ENCODE:CAPS">CAIRO_VERSION_ENCODE()</a>
+</dt>
+<dt id="ientry-idm28308">CAIRO_VERSION_MAJOR, <a class="indexterm" href="cairo-Version-Information.html#CAIRO-VERSION-MAJOR:CAPS">CAIRO_VERSION_MAJOR</a>
+</dt>
+<dt id="ientry-idm28324">CAIRO_VERSION_MICRO, <a class="indexterm" href="cairo-Version-Information.html#CAIRO-VERSION-MICRO:CAPS">CAIRO_VERSION_MICRO</a>
+</dt>
+<dt id="ientry-idm28316">CAIRO_VERSION_MINOR, <a class="indexterm" href="cairo-Version-Information.html#CAIRO-VERSION-MINOR:CAPS">CAIRO_VERSION_MINOR</a>
+</dt>
+<dt id="ientry-idm28274">cairo_version_string, <a class="indexterm" href="cairo-Version-Information.html#cairo-version-string">cairo_version_string ()</a>
+</dt>
+<dt id="ientry-idm28332">CAIRO_VERSION_STRING, <a class="indexterm" href="cairo-Version-Information.html#CAIRO-VERSION-STRING:CAPS">CAIRO_VERSION_STRING</a>
+</dt>
+<dt id="ientry-idm28206">CAIRO_VERSION_STRINGIZE, <a class="indexterm" href="cairo-Version-Information.html#CAIRO-VERSION-STRINGIZE:CAPS">CAIRO_VERSION_STRINGIZE()</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>W</h3>
+<dl>
+<dt id="ientry-idm16416">cairo_win32_font_face_create_for_hfont, <a class="indexterm" href="cairo-Win32-Fonts.html#cairo-win32-font-face-create-for-hfont">cairo_win32_font_face_create_for_hfont ()</a>
+</dt>
+<dt id="ientry-idm16368">cairo_win32_font_face_create_for_logfontw, <a class="indexterm" href="cairo-Win32-Fonts.html#cairo-win32-font-face-create-for-logfontw">cairo_win32_font_face_create_for_logfontw ()</a>
+</dt>
+<dt id="ientry-idm16464">cairo_win32_font_face_create_for_logfontw_hfont, <a class="indexterm" href="cairo-Win32-Fonts.html#cairo-win32-font-face-create-for-logfontw-hfont">cairo_win32_font_face_create_for_logfontw_hfont ()</a>
+</dt>
+<dt id="ientry-idm23829">cairo_win32_printing_surface_create, <a class="indexterm" href="cairo-Win32-Surfaces.html#cairo-win32-printing-surface-create">cairo_win32_printing_surface_create ()</a>
+</dt>
+<dt id="ientry-idm16583">cairo_win32_scaled_font_done_font, <a class="indexterm" href="cairo-Win32-Fonts.html#cairo-win32-scaled-font-done-font">cairo_win32_scaled_font_done_font ()</a>
+</dt>
+<dt id="ientry-idm16681">cairo_win32_scaled_font_get_device_to_logical, <a class="indexterm" href="cairo-Win32-Fonts.html#cairo-win32-scaled-font-get-device-to-logical">cairo_win32_scaled_font_get_device_to_logical ()</a>
+</dt>
+<dt id="ientry-idm16644">cairo_win32_scaled_font_get_logical_to_device, <a class="indexterm" href="cairo-Win32-Fonts.html#cairo-win32-scaled-font-get-logical-to-device">cairo_win32_scaled_font_get_logical_to_device ()</a>
+</dt>
+<dt id="ientry-idm16612">cairo_win32_scaled_font_get_metrics_factor, <a class="indexterm" href="cairo-Win32-Fonts.html#cairo-win32-scaled-font-get-metrics-factor">cairo_win32_scaled_font_get_metrics_factor ()</a>
+</dt>
+<dt id="ientry-idm16526">cairo_win32_scaled_font_select_font, <a class="indexterm" href="cairo-Win32-Fonts.html#cairo-win32-scaled-font-select-font">cairo_win32_scaled_font_select_font ()</a>
+</dt>
+<dt id="ientry-idm23641">cairo_win32_surface_create, <a class="indexterm" href="cairo-Win32-Surfaces.html#cairo-win32-surface-create">cairo_win32_surface_create ()</a>
+</dt>
+<dt id="ientry-idm23725">cairo_win32_surface_create_with_ddb, <a class="indexterm" href="cairo-Win32-Surfaces.html#cairo-win32-surface-create-with-ddb">cairo_win32_surface_create_with_ddb ()</a>
+</dt>
+<dt id="ientry-idm23677">cairo_win32_surface_create_with_dib, <a class="indexterm" href="cairo-Win32-Surfaces.html#cairo-win32-surface-create-with-dib">cairo_win32_surface_create_with_dib ()</a>
+</dt>
+<dt id="ientry-idm23782">cairo_win32_surface_create_with_format, <a class="indexterm" href="cairo-Win32-Surfaces.html#cairo-win32-surface-create-with-format">cairo_win32_surface_create_with_format ()</a>
+</dt>
+<dt id="ientry-idm23862">cairo_win32_surface_get_dc, <a class="indexterm" href="cairo-Win32-Surfaces.html#cairo-win32-surface-get-dc">cairo_win32_surface_get_dc ()</a>
+</dt>
+<dt id="ientry-idm23905">cairo_win32_surface_get_image, <a class="indexterm" href="cairo-Win32-Surfaces.html#cairo-win32-surface-get-image">cairo_win32_surface_get_image ()</a>
+</dt>
+<dt id="ientry-idm22472">cairo_write_func_t, <a class="indexterm" href="cairo-PNG-Support.html#cairo-write-func-t">cairo_write_func_t ()</a>
+</dt>
+</dl>
+</div>
+<div class="indexdiv">
+<h3>X</h3>
+<dl>
+<dt id="ientry-idm25219">cairo_xcb_device_debug_cap_xrender_version, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-device-debug-cap-xrender-version">cairo_xcb_device_debug_cap_xrender_version ()</a>
+</dt>
+<dt id="ientry-idm25267">cairo_xcb_device_debug_cap_xshm_version, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-device-debug-cap-xshm-version">cairo_xcb_device_debug_cap_xshm_version ()</a>
+</dt>
+<dt id="ientry-idm25315">cairo_xcb_device_debug_get_precision, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-device-debug-get-precision">cairo_xcb_device_debug_get_precision ()</a>
+</dt>
+<dt id="ientry-idm25347">cairo_xcb_device_debug_set_precision, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-device-debug-set-precision">cairo_xcb_device_debug_set_precision ()</a>
+</dt>
+<dt id="ientry-idm25185">cairo_xcb_device_get_connection, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-device-get-connection">cairo_xcb_device_get_connection ()</a>
+</dt>
+<dt id="ientry-idm24828">cairo_xcb_surface_create, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-surface-create">cairo_xcb_surface_create ()</a>
+</dt>
+<dt id="ientry-idm24908">cairo_xcb_surface_create_for_bitmap, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-surface-create-for-bitmap">cairo_xcb_surface_create_for_bitmap ()</a>
+</dt>
+<dt id="ientry-idm24984">cairo_xcb_surface_create_with_xrender_format, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-surface-create-with-xrender-format">cairo_xcb_surface_create_with_xrender_format ()</a>
+</dt>
+<dt id="ientry-idm25126">cairo_xcb_surface_set_drawable, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-surface-set-drawable">cairo_xcb_surface_set_drawable ()</a>
+</dt>
+<dt id="ientry-idm25075">cairo_xcb_surface_set_size, <a class="indexterm" href="cairo-XCB-Surfaces.html#cairo-xcb-surface-set-size">cairo_xcb_surface_set_size ()</a>
+</dt>
+<dt id="ientry-idm26016">cairo_xlib_device_debug_cap_xrender_version, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-device-debug-cap-xrender-version">cairo_xlib_device_debug_cap_xrender_version ()</a>
+</dt>
+<dt id="ientry-idm26064">cairo_xlib_device_debug_get_precision, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-device-debug-get-precision">cairo_xlib_device_debug_get_precision ()</a>
+</dt>
+<dt id="ientry-idm26096">cairo_xlib_device_debug_set_precision, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-device-debug-set-precision">cairo_xlib_device_debug_set_precision ()</a>
+</dt>
+<dt id="ientry-idm25535">cairo_xlib_surface_create, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-create">cairo_xlib_surface_create ()</a>
+</dt>
+<dt id="ientry-idm25610">cairo_xlib_surface_create_for_bitmap, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-create-for-bitmap">cairo_xlib_surface_create_for_bitmap ()</a>
+</dt>
+<dt id="ientry-idm26195">cairo_xlib_surface_create_with_xrender_format, <a class="indexterm" href="cairo-XLib-XRender-Backend.html#cairo-xlib-surface-create-with-xrender-format">cairo_xlib_surface_create_with_xrender_format ()</a>
+</dt>
+<dt id="ientry-idm25984">cairo_xlib_surface_get_depth, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-depth">cairo_xlib_surface_get_depth ()</a>
+</dt>
+<dt id="ientry-idm25729">cairo_xlib_surface_get_display, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-display">cairo_xlib_surface_get_display ()</a>
+</dt>
+<dt id="ientry-idm25849">cairo_xlib_surface_get_drawable, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-drawable">cairo_xlib_surface_get_drawable ()</a>
+</dt>
+<dt id="ientry-idm25952">cairo_xlib_surface_get_height, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-height">cairo_xlib_surface_get_height ()</a>
+</dt>
+<dt id="ientry-idm25761">cairo_xlib_surface_get_screen, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-screen">cairo_xlib_surface_get_screen ()</a>
+</dt>
+<dt id="ientry-idm25881">cairo_xlib_surface_get_visual, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-visual">cairo_xlib_surface_get_visual ()</a>
+</dt>
+<dt id="ientry-idm25920">cairo_xlib_surface_get_width, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-get-width">cairo_xlib_surface_get_width ()</a>
+</dt>
+<dt id="ientry-idm26279">cairo_xlib_surface_get_xrender_format, <a class="indexterm" href="cairo-XLib-XRender-Backend.html#cairo-xlib-surface-get-xrender-format">cairo_xlib_surface_get_xrender_format ()</a>
+</dt>
+<dt id="ientry-idm25793">cairo_xlib_surface_set_drawable, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-set-drawable">cairo_xlib_surface_set_drawable ()</a>
+</dt>
+<dt id="ientry-idm25681">cairo_xlib_surface_set_size, <a class="indexterm" href="cairo-XLib-Surfaces.html#cairo-xlib-surface-set-size">cairo_xlib_surface_set_size ()</a>
+</dt>
+</dl>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Cairo: A Vector Graphics Library: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="next" href="cairo-drawing.html" title="Drawing">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div lang="en" class="book">
+<div class="titlepage">
+<div>
+<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">Cairo: A Vector Graphics Library</p></th></tr></table></div>
+<div><p class="releaseinfo">for Cairo 1.16.0
+</p></div>
+</div>
+<hr>
+</div>
+<div class="toc"><dl class="toc">
+<dt><span class="chapter"><a href="cairo-drawing.html">Drawing</a></span></dt>
+<dd><dl>
+<dt>
+<span class="refentrytitle"><a href="cairo-cairo-t.html">cairo_t</a></span><span class="refpurpose"> — The cairo drawing context</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-Paths.html">Paths</a></span><span class="refpurpose"> — Creating paths and manipulating path data</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-cairo-pattern-t.html">cairo_pattern_t</a></span><span class="refpurpose"> — Sources for drawing</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-Regions.html">Regions</a></span><span class="refpurpose"> — Representing a pixel-aligned area</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-Transformations.html">Transformations</a></span><span class="refpurpose"> — Manipulating the current transformation matrix</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-text.html">text</a></span><span class="refpurpose"> — Rendering text and glyphs</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-Raster-Sources.html">Raster Sources</a></span><span class="refpurpose"> — Supplying arbitrary image data</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-Tags-and-Links.html">Tags and Links</a></span><span class="refpurpose"> — Hyperlinks and document structure</span>
+</dt>
+</dl></dd>
+<dt><span class="chapter"><a href="cairo-fonts.html">Fonts</a></span></dt>
+<dd><dl>
+<dt>
+<span class="refentrytitle"><a href="cairo-cairo-font-face-t.html">cairo_font_face_t</a></span><span class="refpurpose"> — Base class for font faces</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-cairo-scaled-font-t.html">cairo_scaled_font_t</a></span><span class="refpurpose"> — Font face at particular size and options</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-cairo-font-options-t.html">cairo_font_options_t</a></span><span class="refpurpose"> — How a font should be rendered</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-FreeType-Fonts.html">FreeType Fonts</a></span><span class="refpurpose"> — Font support for FreeType</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-Win32-Fonts.html">Win32 Fonts</a></span><span class="refpurpose"> — Font support for Microsoft Windows</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-Quartz-(CGFont)-Fonts.html">Quartz (CGFont) Fonts</a></span><span class="refpurpose"> — Font support via CGFont on OS X</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-User-Fonts.html">User Fonts</a></span><span class="refpurpose"> — Font support with font data provided by the user</span>
+</dt>
+</dl></dd>
+<dt><span class="chapter"><a href="cairo-surfaces.html">Surfaces</a></span></dt>
+<dd><dl>
+<dt>
+<span class="refentrytitle"><a href="cairo-cairo-device-t.html">cairo_device_t</a></span><span class="refpurpose"> — interface to underlying rendering system</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-cairo-surface-t.html">cairo_surface_t</a></span><span class="refpurpose"> — Base class for surfaces</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-Image-Surfaces.html">Image Surfaces</a></span><span class="refpurpose"> — Rendering to memory buffers</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-PDF-Surfaces.html">PDF Surfaces</a></span><span class="refpurpose"> — Rendering PDF documents</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-PNG-Support.html">PNG Support</a></span><span class="refpurpose"> — Reading and writing PNG images</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-PostScript-Surfaces.html">PostScript Surfaces</a></span><span class="refpurpose"> — Rendering PostScript documents</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-Recording-Surfaces.html">Recording Surfaces</a></span><span class="refpurpose"> — Records all drawing operations</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-Win32-Surfaces.html">Win32 Surfaces</a></span><span class="refpurpose"> — Microsoft Windows surface support</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-SVG-Surfaces.html">SVG Surfaces</a></span><span class="refpurpose"> — Rendering SVG documents</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-Quartz-Surfaces.html">Quartz Surfaces</a></span><span class="refpurpose"> — Rendering to Quartz surfaces</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-XCB-Surfaces.html">XCB Surfaces</a></span><span class="refpurpose"> — X Window System rendering using the XCB library</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-XLib-Surfaces.html">XLib Surfaces</a></span><span class="refpurpose"> — X Window System rendering using XLib</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-XLib-XRender-Backend.html">XLib-XRender Backend</a></span><span class="refpurpose"> — X Window System rendering using XLib and the X Render extension</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-Script-Surfaces.html">Script Surfaces</a></span><span class="refpurpose"> — Rendering to replayable scripts</span>
+</dt>
+</dl></dd>
+<dt><span class="chapter"><a href="cairo-support.html">Utilities</a></span></dt>
+<dd><dl>
+<dt>
+<span class="refentrytitle"><a href="cairo-cairo-matrix-t.html">cairo_matrix_t</a></span><span class="refpurpose"> — Generic matrix operations</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-Error-handling.html">Error handling</a></span><span class="refpurpose"> — Decoding cairo's status</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-Version-Information.html">Version Information</a></span><span class="refpurpose"> — Compile-time and run-time version checks.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="cairo-Types.html">Types</a></span><span class="refpurpose"> — Generic data types</span>
+</dt>
+</dl></dd>
+<dt><span class="index"><a href="index-all.html">Index</a></span></dt>
+<dt><span class="index"><a href="index-1.2.html">Index of new symbols in 1.2</a></span></dt>
+<dt><span class="index"><a href="index-1.4.html">Index of new symbols in 1.4</a></span></dt>
+<dt><span class="index"><a href="index-1.6.html">Index of new symbols in 1.6</a></span></dt>
+<dt><span class="index"><a href="index-1.8.html">Index of new symbols in 1.8</a></span></dt>
+<dt><span class="index"><a href="index-1.10.html">Index of new symbols in 1.10</a></span></dt>
+<dt><span class="index"><a href="index-1.12.html">Index of new symbols in 1.12</a></span></dt>
+<dt><span class="index"><a href="index-1.14.html">Index of new symbols in 1.14</a></span></dt>
+<dt><span class="index"><a href="index-1.16.html">Index of new symbols in 1.16</a></span></dt>
+<dt><span class="appendix"><a href="language-bindings.html">A. Creating a language binding for cairo</a></span></dt>
+<dd><dl>
+<dt><span class="sect1"><a href="language-bindings.html#bindings-general">General considerations</a></span></dt>
+<dt><span class="sect1"><a href="bindings-memory.html">Memory management</a></span></dt>
+<dt><span class="sect1"><a href="bindings-return-values.html">Multiple return values</a></span></dt>
+<dt><span class="sect1"><a href="bindings-overloading.html">Overloading and optional arguments</a></span></dt>
+<dt><span class="sect1"><a href="bindings-streams.html">Streams and File I/O</a></span></dt>
+<dt><span class="sect1"><a href="bindings-errors.html">Error handling</a></span></dt>
+<dt><span class="sect1"><a href="bindings-patterns.html">Patterns</a></span></dt>
+<dt><span class="sect1"><a href="bindings-surfaces.html">Surfaces</a></span></dt>
+<dt><span class="sect1"><a href="bindings-fonts.html">Fonts</a></span></dt>
+<dt><span class="sect1"><a href="bindings-path.html">cairo_path_t</a></span></dt>
+</dl></dd>
+</dl></div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Appendix A. Creating a language binding for cairo: Cairo: A Vector Graphics Library</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="up" href="index.html" title="Cairo: A Vector Graphics Library">
+<link rel="prev" href="index-1.16.html" title="Index of new symbols in 1.16">
+<link rel="next" href="bindings-memory.html" title="Memory management">
+<meta name="generator" content="GTK-Doc V1.27 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="index-1.16.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="bindings-memory.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="appendix">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="language-bindings"></a>Appendix A. Creating a language binding for cairo</h1></div></div></div>
+<p>
+ 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 <em class="firstterm">language
+ binding</em>. 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.
+ </p>
+<div class="sect1">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bindings-general"></a>General considerations</h2></div></div></div>
+<p>
+ The naming of the central <a class="link" href="cairo-cairo-t.html#cairo-t" title="cairo_t"><span class="type">cairo_t</span></a> type is a
+ special exception. The object is “a cairo context” not “a
+ cairo”, and names such as <span class="type">cairo_t</span> rather than
+ <span class="type">cairo_context_t</span> and
+ <code class="function">cairo_set_source()</code> rather than
+ <code class="function">cairo_context_set_source()</code> 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 <span class="type">cairo_context_t</span>.
+ </p>
+<p>
+ 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
+ <code class="literal">cairo_set_source(cr,source)</code>,
+ <code class="literal">cr.setSource(source)</code>.
+ 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().
+ </p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.27</div>
+</body>
+</html> \ 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
--- /dev/null
+++ b/libs/cairo-1.16.0/doc/public/html/left-insensitive.png
Binary files 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
--- /dev/null
+++ b/libs/cairo-1.16.0/doc/public/html/left.png
Binary files 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
--- /dev/null
+++ b/libs/cairo-1.16.0/doc/public/html/right-insensitive.png
Binary files 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
--- /dev/null
+++ b/libs/cairo-1.16.0/doc/public/html/right.png
Binary files 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 <sup> 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
--- /dev/null
+++ b/libs/cairo-1.16.0/doc/public/html/up-insensitive.png
Binary files 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
--- /dev/null
+++ b/libs/cairo-1.16.0/doc/public/html/up.png
Binary files differ