diff options
Diffstat (limited to 'libs/cairo-1.16.0/doc/public/xml/cairo.xml')
-rw-r--r-- | libs/cairo-1.16.0/doc/public/xml/cairo.xml | 2538 |
1 files changed, 2538 insertions, 0 deletions
diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo.xml b/libs/cairo-1.16.0/doc/public/xml/cairo.xml new file mode 100644 index 0000000..c4b546f --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo.xml @@ -0,0 +1,2538 @@ +<?xml version='1.0' encoding='UTF-8'?> +<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" + "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [ +<!ENTITY version SYSTEM "version.xml"> +]> +<refentry id="cairo-cairo-t"> +<refmeta> +<refentrytitle role="top_of_page" id="cairo-cairo-t.top_of_page">cairo_t</refentrytitle> +<manvolnum>3</manvolnum> +<refmiscinfo>CAIRO Library</refmiscinfo> +</refmeta> +<refnamediv> +<refname>cairo_t</refname> +<refpurpose>The cairo drawing context</refpurpose> +</refnamediv> + +<refsect1 id="cairo-cairo-t.functions" role="functions_proto"> +<title role="functions_proto.title">Functions</title> +<informaltable pgwide="1" frame="none"> +<tgroup cols="2"> +<colspec colname="functions_return" colwidth="150px"/> +<colspec colname="functions_name"/> +<tbody> +<row><entry role="function_type"><link linkend="cairo-t"><returnvalue>cairo_t</returnvalue></link> * +</entry><entry role="function_name"><link linkend="cairo-create">cairo_create</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="cairo-t"><returnvalue>cairo_t</returnvalue></link> * +</entry><entry role="function_name"><link linkend="cairo-reference">cairo_reference</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-destroy">cairo_destroy</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="cairo-status-t"><returnvalue>cairo_status_t</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-status">cairo_status</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-save">cairo_save</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-restore">cairo_restore</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="cairo-surface-t"><returnvalue>cairo_surface_t</returnvalue></link> * +</entry><entry role="function_name"><link linkend="cairo-get-target">cairo_get_target</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-push-group">cairo_push_group</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-push-group-with-content">cairo_push_group_with_content</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="cairo-pattern-t"><returnvalue>cairo_pattern_t</returnvalue></link> * +</entry><entry role="function_name"><link linkend="cairo-pop-group">cairo_pop_group</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-pop-group-to-source">cairo_pop_group_to_source</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="cairo-surface-t"><returnvalue>cairo_surface_t</returnvalue></link> * +</entry><entry role="function_name"><link linkend="cairo-get-group-target">cairo_get_group_target</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-set-source-rgb">cairo_set_source_rgb</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-set-source-rgba">cairo_set_source_rgba</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-set-source">cairo_set_source</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-set-source-surface">cairo_set_source_surface</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="cairo-pattern-t"><returnvalue>cairo_pattern_t</returnvalue></link> * +</entry><entry role="function_name"><link linkend="cairo-get-source">cairo_get_source</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-set-antialias">cairo_set_antialias</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="cairo-antialias-t"><returnvalue>cairo_antialias_t</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-get-antialias">cairo_get_antialias</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-set-dash">cairo_set_dash</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="int"><returnvalue>int</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-get-dash-count">cairo_get_dash_count</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-get-dash">cairo_get_dash</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-set-fill-rule">cairo_set_fill_rule</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="cairo-fill-rule-t"><returnvalue>cairo_fill_rule_t</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-get-fill-rule">cairo_get_fill_rule</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-set-line-cap">cairo_set_line_cap</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="cairo-line-cap-t"><returnvalue>cairo_line_cap_t</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-get-line-cap">cairo_get_line_cap</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-set-line-join">cairo_set_line_join</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="cairo-line-join-t"><returnvalue>cairo_line_join_t</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-get-line-join">cairo_get_line_join</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-set-line-width">cairo_set_line_width</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="double"><returnvalue>double</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-get-line-width">cairo_get_line_width</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-set-miter-limit">cairo_set_miter_limit</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="double"><returnvalue>double</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-get-miter-limit">cairo_get_miter_limit</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-set-operator">cairo_set_operator</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="cairo-operator-t"><returnvalue>cairo_operator_t</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-get-operator">cairo_get_operator</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-set-tolerance">cairo_set_tolerance</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="double"><returnvalue>double</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-get-tolerance">cairo_get_tolerance</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-clip">cairo_clip</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-clip-preserve">cairo_clip_preserve</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-clip-extents">cairo_clip_extents</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="cairo-bool-t"><returnvalue>cairo_bool_t</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-in-clip">cairo_in_clip</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-reset-clip">cairo_reset_clip</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-rectangle-list-destroy">cairo_rectangle_list_destroy</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="cairo-rectangle-list-t"><returnvalue>cairo_rectangle_list_t</returnvalue></link> * +</entry><entry role="function_name"><link linkend="cairo-copy-clip-rectangle-list">cairo_copy_clip_rectangle_list</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-fill">cairo_fill</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-fill-preserve">cairo_fill_preserve</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-fill-extents">cairo_fill_extents</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="cairo-bool-t"><returnvalue>cairo_bool_t</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-in-fill">cairo_in_fill</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-mask">cairo_mask</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-mask-surface">cairo_mask_surface</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-paint">cairo_paint</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-paint-with-alpha">cairo_paint_with_alpha</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-stroke">cairo_stroke</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-stroke-preserve">cairo_stroke_preserve</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-stroke-extents">cairo_stroke_extents</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="cairo-bool-t"><returnvalue>cairo_bool_t</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-in-stroke">cairo_in_stroke</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-copy-page">cairo_copy_page</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-show-page">cairo_show_page</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type">unsigned <link linkend="int"><returnvalue>int</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-get-reference-count">cairo_get_reference_count</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="cairo-status-t"><returnvalue>cairo_status_t</returnvalue></link> +</entry><entry role="function_name"><link linkend="cairo-set-user-data">cairo_set_user_data</link> <phrase role="c_punctuation">()</phrase></entry></row> +<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link> * +</entry><entry role="function_name"><link linkend="cairo-get-user-data">cairo_get_user_data</link> <phrase role="c_punctuation">()</phrase></entry></row> + +</tbody> +</tgroup> +</informaltable> +</refsect1> +<refsect1 id="cairo-cairo-t.other" role="other_proto"> +<title role="other_proto.title">Types and Values</title> +<informaltable role="enum_members_table" pgwide="1" frame="none"> +<tgroup cols="2"> +<colspec colname="name" colwidth="150px"/> +<colspec colname="description"/> +<tbody> +<row><entry role="typedef_keyword">typedef</entry><entry role="function_name"><link linkend="cairo-t">cairo_t</link></entry></row> +<row><entry role="datatype_keyword">enum</entry><entry role="function_name"><link linkend="cairo-antialias-t">cairo_antialias_t</link></entry></row> +<row><entry role="datatype_keyword">enum</entry><entry role="function_name"><link linkend="cairo-fill-rule-t">cairo_fill_rule_t</link></entry></row> +<row><entry role="datatype_keyword">enum</entry><entry role="function_name"><link linkend="cairo-line-cap-t">cairo_line_cap_t</link></entry></row> +<row><entry role="datatype_keyword">enum</entry><entry role="function_name"><link linkend="cairo-line-join-t">cairo_line_join_t</link></entry></row> +<row><entry role="datatype_keyword">enum</entry><entry role="function_name"><link linkend="cairo-operator-t">cairo_operator_t</link></entry></row> +<row><entry role="datatype_keyword"></entry><entry role="function_name"><link linkend="cairo-rectangle-t">cairo_rectangle_t</link></entry></row> +<row><entry role="datatype_keyword"></entry><entry role="function_name"><link linkend="cairo-rectangle-list-t">cairo_rectangle_list_t</link></entry></row> + +</tbody> +</tgroup> +</informaltable> +</refsect1> + + +<refsect1 id="cairo-cairo-t.description" role="desc"> +<title role="desc.title">Description</title> +<para><link linkend="cairo-t"><type>cairo_t</type></link> is the main object used when drawing with cairo. To +draw with cairo, you create a <link linkend="cairo-t"><type>cairo_t</type></link>, set the target surface, +and drawing options for the <link linkend="cairo-t"><type>cairo_t</type></link>, create shapes with +functions like <link linkend="cairo-move-to"><function>cairo_move_to()</function></link> and <link linkend="cairo-line-to"><function>cairo_line_to()</function></link>, and then +draw shapes with <link linkend="cairo-stroke"><function>cairo_stroke()</function></link> or <link linkend="cairo-fill"><function>cairo_fill()</function></link>.</para> +<para><link linkend="cairo-t"><type>cairo_t</type></link><!-- -->'s can be pushed to a stack via <link linkend="cairo-save"><function>cairo_save()</function></link>. +They may then safely be changed, without losing the current state. +Use <link linkend="cairo-restore"><function>cairo_restore()</function></link> to restore to the saved state.</para> + +</refsect1> +<refsect1 id="cairo-cairo-t.functions_details" role="details"> +<title role="details.title">Functions</title> +<refsect2 id="cairo-create" role="function" condition="since:1.0"> +<title>cairo_create ()</title> +<indexterm zone="cairo-create" role="1.0"><primary sortas="create">cairo_create</primary></indexterm> +<programlisting language="C"><link linkend="cairo-t"><returnvalue>cairo_t</returnvalue></link> * +cairo_create (<parameter><link linkend="cairo-surface-t"><type>cairo_surface_t</type></link> *target</parameter>);</programlisting> +<para>Creates a new <link linkend="cairo-t"><type>cairo_t</type></link> with all graphics state parameters set to +default values and with <parameter>target</parameter> + as a target surface. The target +surface should be constructed with a backend-specific function such +as <link linkend="cairo-image-surface-create"><function>cairo_image_surface_create()</function></link> (or any other +<function>cairo_<emphasis>backend</emphasis>_surface_create(<!-- -->)</function> +variant).</para> +<para>This function references <parameter>target</parameter> +, so you can immediately +call <link linkend="cairo-surface-destroy"><function>cairo_surface_destroy()</function></link> on it if you don't need to +maintain a separate reference to it.</para> +<refsect3 id="cairo-create.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>target</para></entry> +<entry role="parameter_description"><para>target surface for the context</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><refsect3 id="cairo-create.returns" role="returns"> +<title>Returns</title> +<para> a newly allocated <link linkend="cairo-t"><type>cairo_t</type></link> with a reference +count of 1. The initial reference count should be released +with <link linkend="cairo-destroy"><function>cairo_destroy()</function></link> when you are done using the <link linkend="cairo-t"><type>cairo_t</type></link>. +This function never returns <link linkend="NULL:CAPS"><literal>NULL</literal></link>. If memory cannot be +allocated, a special <link linkend="cairo-t"><type>cairo_t</type></link> object will be returned on +which <link linkend="cairo-status"><function>cairo_status()</function></link> returns <link linkend="CAIRO-STATUS-NO-MEMORY:CAPS"><literal>CAIRO_STATUS_NO_MEMORY</literal></link>. If +you attempt to target a surface which does not support +writing (such as <link linkend="cairo-mime-surface-t"><type>cairo_mime_surface_t</type></link>) then a +<link linkend="CAIRO-STATUS-WRITE-ERROR:CAPS"><literal>CAIRO_STATUS_WRITE_ERROR</literal></link> will be raised. You can use this +object normally, but no drawing will be done.</para> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-reference" role="function" condition="since:1.0"> +<title>cairo_reference ()</title> +<indexterm zone="cairo-reference" role="1.0"><primary sortas="reference">cairo_reference</primary></indexterm> +<programlisting language="C"><link linkend="cairo-t"><returnvalue>cairo_t</returnvalue></link> * +cairo_reference (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>);</programlisting> +<para>Increases the reference count on <parameter>cr</parameter> + by one. This prevents +<parameter>cr</parameter> + from being destroyed until a matching call to <link linkend="cairo-destroy"><function>cairo_destroy()</function></link> +is made.</para> +<para>Use <link linkend="cairo-get-reference-count"><function>cairo_get_reference_count()</function></link> to get the number of references to +a <link linkend="cairo-t"><type>cairo_t</type></link>.</para> +<refsect3 id="cairo-reference.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a <link linkend="cairo-t"><type>cairo_t</type></link></para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><refsect3 id="cairo-reference.returns" role="returns"> +<title>Returns</title> +<para> the referenced <link linkend="cairo-t"><type>cairo_t</type></link>.</para> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-destroy" role="function" condition="since:1.0"> +<title>cairo_destroy ()</title> +<indexterm zone="cairo-destroy" role="1.0"><primary sortas="destroy">cairo_destroy</primary></indexterm> +<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link> +cairo_destroy (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>);</programlisting> +<para>Decreases the reference count on <parameter>cr</parameter> + by one. If the result +is zero, then <parameter>cr</parameter> + and all associated resources are freed. +See <link linkend="cairo-reference"><function>cairo_reference()</function></link>.</para> +<refsect3 id="cairo-destroy.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a <link linkend="cairo-t"><type>cairo_t</type></link></para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-status" role="function" condition="since:1.0"> +<title>cairo_status ()</title> +<indexterm zone="cairo-status" role="1.0"><primary sortas="status">cairo_status</primary></indexterm> +<programlisting language="C"><link linkend="cairo-status-t"><returnvalue>cairo_status_t</returnvalue></link> +cairo_status (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>);</programlisting> +<para>Checks whether an error has previously occurred for this context.</para> +<refsect3 id="cairo-status.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><refsect3 id="cairo-status.returns" role="returns"> +<title>Returns</title> +<para> the current status of this context, see <link linkend="cairo-status-t"><type>cairo_status_t</type></link></para> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-save" role="function" condition="since:1.0"> +<title>cairo_save ()</title> +<indexterm zone="cairo-save" role="1.0"><primary sortas="save">cairo_save</primary></indexterm> +<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link> +cairo_save (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>);</programlisting> +<para>Makes a copy of the current state of <parameter>cr</parameter> + and saves it +on an internal stack of saved states for <parameter>cr</parameter> +. When +<link linkend="cairo-restore"><function>cairo_restore()</function></link> is called, <parameter>cr</parameter> + will be restored to +the saved state. Multiple calls to <link linkend="cairo-save"><function>cairo_save()</function></link> and +<link linkend="cairo-restore"><function>cairo_restore()</function></link> can be nested; each call to <link linkend="cairo-restore"><function>cairo_restore()</function></link> +restores the state from the matching paired <link linkend="cairo-save"><function>cairo_save()</function></link>.</para> +<para>It isn't necessary to clear all saved states before +a <link linkend="cairo-t"><type>cairo_t</type></link> is freed. If the reference count of a <link linkend="cairo-t"><type>cairo_t</type></link> +drops to zero in response to a call to <link linkend="cairo-destroy"><function>cairo_destroy()</function></link>, +any saved states will be freed along with the <link linkend="cairo-t"><type>cairo_t</type></link>.</para> +<refsect3 id="cairo-save.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a <link linkend="cairo-t"><type>cairo_t</type></link></para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-restore" role="function" condition="since:1.0"> +<title>cairo_restore ()</title> +<indexterm zone="cairo-restore" role="1.0"><primary sortas="restore">cairo_restore</primary></indexterm> +<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link> +cairo_restore (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>);</programlisting> +<para>Restores <parameter>cr</parameter> + to the state saved by a preceding call to +<link linkend="cairo-save"><function>cairo_save()</function></link> and removes that state from the stack of +saved states.</para> +<refsect3 id="cairo-restore.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a <link linkend="cairo-t"><type>cairo_t</type></link></para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-get-target" role="function" condition="since:1.0"> +<title>cairo_get_target ()</title> +<indexterm zone="cairo-get-target" role="1.0"><primary sortas="get_target">cairo_get_target</primary></indexterm> +<programlisting language="C"><link linkend="cairo-surface-t"><returnvalue>cairo_surface_t</returnvalue></link> * +cairo_get_target (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>);</programlisting> +<para>Gets the target surface for the cairo context as passed to +<link linkend="cairo-create"><function>cairo_create()</function></link>.</para> +<para>This function will always return a valid pointer, but the result +can be a "nil" surface if <parameter>cr</parameter> + is already in an error state, +(ie. <link linkend="cairo-status"><function>cairo_status()</function></link> <literal>!=</literal> <link linkend="CAIRO-STATUS-SUCCESS:CAPS"><literal>CAIRO_STATUS_SUCCESS</literal></link>). +A nil surface is indicated by <link linkend="cairo-surface-status"><function>cairo_surface_status()</function></link> +<literal>!=</literal> <link linkend="CAIRO-STATUS-SUCCESS:CAPS"><literal>CAIRO_STATUS_SUCCESS</literal></link>.</para> +<refsect3 id="cairo-get-target.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><refsect3 id="cairo-get-target.returns" role="returns"> +<title>Returns</title> +<para> the target surface. This object is owned by cairo. To +keep a reference to it, you must call <link linkend="cairo-surface-reference"><function>cairo_surface_reference()</function></link>.</para> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-push-group" role="function" condition="since:1.2"> +<title>cairo_push_group ()</title> +<indexterm zone="cairo-push-group" role="1.2"><primary sortas="push_group">cairo_push_group</primary></indexterm> +<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link> +cairo_push_group (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>);</programlisting> +<para>Temporarily redirects drawing to an intermediate surface known as a +group. The redirection lasts until the group is completed by a call +to <link linkend="cairo-pop-group"><function>cairo_pop_group()</function></link> or <link linkend="cairo-pop-group-to-source"><function>cairo_pop_group_to_source()</function></link>. 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).</para> +<para>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.</para> +<para>Groups can be nested arbitrarily deep by making balanced calls to +<link linkend="cairo-push-group"><function>cairo_push_group()</function></link>/<link linkend="cairo-pop-group"><function>cairo_pop_group()</function></link>. Each call pushes/pops the new +target group onto/from a stack.</para> +<para>The <link linkend="cairo-push-group"><function>cairo_push_group()</function></link> function calls <link linkend="cairo-save"><function>cairo_save()</function></link> so that any +changes to the graphics state will not be visible outside the +group, (the pop_group functions call <link linkend="cairo-restore"><function>cairo_restore()</function></link>).</para> +<para>By default the intermediate group will have a content type of +<link linkend="CAIRO-CONTENT-COLOR-ALPHA:CAPS"><literal>CAIRO_CONTENT_COLOR_ALPHA</literal></link>. Other content types can be chosen for +the group by using <link linkend="cairo-push-group-with-content"><function>cairo_push_group_with_content()</function></link> instead.</para> +<para>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:</para> +<informalexample><programlisting> +cairo_push_group (cr); +cairo_set_source (cr, fill_pattern); +cairo_fill_preserve (cr); +cairo_set_source (cr, stroke_pattern); +cairo_stroke (cr); +cairo_pop_group_to_source (cr); +cairo_paint_with_alpha (cr, alpha); +</programlisting></informalexample> +<refsect3 id="cairo-push-group.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><para role="since">Since: <link linkend="api-index-1.2">1.2</link></para></refsect2> +<refsect2 id="cairo-push-group-with-content" role="function" condition="since:1.2"> +<title>cairo_push_group_with_content ()</title> +<indexterm zone="cairo-push-group-with-content" role="1.2"><primary sortas="push_group_with_content">cairo_push_group_with_content</primary></indexterm> +<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link> +cairo_push_group_with_content (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>, + <parameter><link linkend="cairo-content-t"><type>cairo_content_t</type></link> content</parameter>);</programlisting> +<para>Temporarily redirects drawing to an intermediate surface known as a +group. The redirection lasts until the group is completed by a call +to <link linkend="cairo-pop-group"><function>cairo_pop_group()</function></link> or <link linkend="cairo-pop-group-to-source"><function>cairo_pop_group_to_source()</function></link>. 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).</para> +<para>The group will have a content type of <parameter>content</parameter> +. The ability to +control this content type is the only distinction between this +function and <link linkend="cairo-push-group"><function>cairo_push_group()</function></link> which you should see for a more +detailed description of group rendering.</para> +<refsect3 id="cairo-push-group-with-content.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>content</para></entry> +<entry role="parameter_description"><para>a <link linkend="cairo-content-t"><type>cairo_content_t</type></link> indicating the type of group that +will be created</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><para role="since">Since: <link linkend="api-index-1.2">1.2</link></para></refsect2> +<refsect2 id="cairo-pop-group" role="function" condition="since:1.2"> +<title>cairo_pop_group ()</title> +<indexterm zone="cairo-pop-group" role="1.2"><primary sortas="pop_group">cairo_pop_group</primary></indexterm> +<programlisting language="C"><link linkend="cairo-pattern-t"><returnvalue>cairo_pattern_t</returnvalue></link> * +cairo_pop_group (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>);</programlisting> +<para>Terminates the redirection begun by a call to <link linkend="cairo-push-group"><function>cairo_push_group()</function></link> or +<link linkend="cairo-push-group-with-content"><function>cairo_push_group_with_content()</function></link> and returns a new pattern +containing the results of all drawing operations performed to the +group.</para> +<para>The <link linkend="cairo-pop-group"><function>cairo_pop_group()</function></link> function calls <link linkend="cairo-restore"><function>cairo_restore()</function></link>, (balancing a +call to <link linkend="cairo-save"><function>cairo_save()</function></link> by the push_group function), so that any +changes to the graphics state will not be visible outside the +group.</para> +<refsect3 id="cairo-pop-group.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><refsect3 id="cairo-pop-group.returns" role="returns"> +<title>Returns</title> +<para> 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 +<link linkend="cairo-pattern-destroy"><function>cairo_pattern_destroy()</function></link> when finished with it.</para> +</refsect3><para role="since">Since: <link linkend="api-index-1.2">1.2</link></para></refsect2> +<refsect2 id="cairo-pop-group-to-source" role="function" condition="since:1.2"> +<title>cairo_pop_group_to_source ()</title> +<indexterm zone="cairo-pop-group-to-source" role="1.2"><primary sortas="pop_group_to_source">cairo_pop_group_to_source</primary></indexterm> +<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link> +cairo_pop_group_to_source (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>);</programlisting> +<para>Terminates the redirection begun by a call to <link linkend="cairo-push-group"><function>cairo_push_group()</function></link> or +<link linkend="cairo-push-group-with-content"><function>cairo_push_group_with_content()</function></link> and installs the resulting pattern +as the source pattern in the given cairo context.</para> +<para>The behavior of this function is equivalent to the sequence of +operations:</para> +<informalexample><programlisting> +cairo_pattern_t *group = cairo_pop_group (cr); +cairo_set_source (cr, group); +cairo_pattern_destroy (group); +</programlisting></informalexample> +<para>but is more convenient as their is no need for a variable to store +the short-lived pointer to the pattern.</para> +<para>The <link linkend="cairo-pop-group"><function>cairo_pop_group()</function></link> function calls <link linkend="cairo-restore"><function>cairo_restore()</function></link>, (balancing a +call to <link linkend="cairo-save"><function>cairo_save()</function></link> by the push_group function), so that any +changes to the graphics state will not be visible outside the +group.</para> +<refsect3 id="cairo-pop-group-to-source.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><para role="since">Since: <link linkend="api-index-1.2">1.2</link></para></refsect2> +<refsect2 id="cairo-get-group-target" role="function" condition="since:1.2"> +<title>cairo_get_group_target ()</title> +<indexterm zone="cairo-get-group-target" role="1.2"><primary sortas="get_group_target">cairo_get_group_target</primary></indexterm> +<programlisting language="C"><link linkend="cairo-surface-t"><returnvalue>cairo_surface_t</returnvalue></link> * +cairo_get_group_target (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>);</programlisting> +<para>Gets the current destination surface for the context. This is either +the original target surface as passed to <link linkend="cairo-create"><function>cairo_create()</function></link> or the target +surface for the current group as started by the most recent call to +<link linkend="cairo-push-group"><function>cairo_push_group()</function></link> or <link linkend="cairo-push-group-with-content"><function>cairo_push_group_with_content()</function></link>.</para> +<para>This function will always return a valid pointer, but the result +can be a "nil" surface if <parameter>cr</parameter> + is already in an error state, +(ie. <link linkend="cairo-status"><function>cairo_status()</function></link> <literal>!=</literal> <link linkend="CAIRO-STATUS-SUCCESS:CAPS"><literal>CAIRO_STATUS_SUCCESS</literal></link>). +A nil surface is indicated by <link linkend="cairo-surface-status"><function>cairo_surface_status()</function></link> +<literal>!=</literal> <link linkend="CAIRO-STATUS-SUCCESS:CAPS"><literal>CAIRO_STATUS_SUCCESS</literal></link>.</para> +<refsect3 id="cairo-get-group-target.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><refsect3 id="cairo-get-group-target.returns" role="returns"> +<title>Returns</title> +<para> the target surface. This object is owned by cairo. To +keep a reference to it, you must call <link linkend="cairo-surface-reference"><function>cairo_surface_reference()</function></link>.</para> +</refsect3><para role="since">Since: <link linkend="api-index-1.2">1.2</link></para></refsect2> +<refsect2 id="cairo-set-source-rgb" role="function" condition="since:1.0"> +<title>cairo_set_source_rgb ()</title> +<indexterm zone="cairo-set-source-rgb" role="1.0"><primary sortas="set_source_rgb">cairo_set_source_rgb</primary></indexterm> +<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link> +cairo_set_source_rgb (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>, + <parameter><link linkend="double"><type>double</type></link> red</parameter>, + <parameter><link linkend="double"><type>double</type></link> green</parameter>, + <parameter><link linkend="double"><type>double</type></link> blue</parameter>);</programlisting> +<para>Sets the source pattern within <parameter>cr</parameter> + to an opaque color. This opaque +color will then be used for any subsequent drawing operation until +a new source pattern is set.</para> +<para>The color components are floating point numbers in the range 0 to</para> +<orderedlist> +<listitem> +<para>If the values passed in are outside that range, they will be +clamped.</para> +</listitem> +</orderedlist> +<para>The default source pattern is opaque black, (that is, it is +equivalent to cairo_set_source_rgb(cr, 0.0, 0.0, 0.0)).</para> +<refsect3 id="cairo-set-source-rgb.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>red</para></entry> +<entry role="parameter_description"><para>red component of color</para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>green</para></entry> +<entry role="parameter_description"><para>green component of color</para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>blue</para></entry> +<entry role="parameter_description"><para>blue component of color</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-set-source-rgba" role="function" condition="since:1.0"> +<title>cairo_set_source_rgba ()</title> +<indexterm zone="cairo-set-source-rgba" role="1.0"><primary sortas="set_source_rgba">cairo_set_source_rgba</primary></indexterm> +<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link> +cairo_set_source_rgba (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>, + <parameter><link linkend="double"><type>double</type></link> red</parameter>, + <parameter><link linkend="double"><type>double</type></link> green</parameter>, + <parameter><link linkend="double"><type>double</type></link> blue</parameter>, + <parameter><link linkend="double"><type>double</type></link> alpha</parameter>);</programlisting> +<para>Sets the source pattern within <parameter>cr</parameter> + to a translucent color. This +color will then be used for any subsequent drawing operation until +a new source pattern is set.</para> +<para>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.</para> +<para>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)).</para> +<refsect3 id="cairo-set-source-rgba.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>red</para></entry> +<entry role="parameter_description"><para>red component of color</para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>green</para></entry> +<entry role="parameter_description"><para>green component of color</para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>blue</para></entry> +<entry role="parameter_description"><para>blue component of color</para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>alpha</para></entry> +<entry role="parameter_description"><para>alpha component of color</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-set-source" role="function" condition="since:1.0"> +<title>cairo_set_source ()</title> +<indexterm zone="cairo-set-source" role="1.0"><primary sortas="set_source">cairo_set_source</primary></indexterm> +<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link> +cairo_set_source (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>, + <parameter><link linkend="cairo-pattern-t"><type>cairo_pattern_t</type></link> *source</parameter>);</programlisting> +<para>Sets the source pattern within <parameter>cr</parameter> + to <parameter>source</parameter> +. This pattern +will then be used for any subsequent drawing operation until a new +source pattern is set.</para> +<para>Note: The pattern's transformation matrix will be locked to the +user space in effect at the time of <link linkend="cairo-set-source"><function>cairo_set_source()</function></link>. This means +that further modifications of the current transformation matrix +will not affect the source pattern. See <link linkend="cairo-pattern-set-matrix"><function>cairo_pattern_set_matrix()</function></link>.</para> +<para>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)).</para> +<refsect3 id="cairo-set-source.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>source</para></entry> +<entry role="parameter_description"><para>a <link linkend="cairo-pattern-t"><type>cairo_pattern_t</type></link> to be used as the source for +subsequent drawing operations.</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-set-source-surface" role="function" condition="since:1.0"> +<title>cairo_set_source_surface ()</title> +<indexterm zone="cairo-set-source-surface" role="1.0"><primary sortas="set_source_surface">cairo_set_source_surface</primary></indexterm> +<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link> +cairo_set_source_surface (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>, + <parameter><link linkend="cairo-surface-t"><type>cairo_surface_t</type></link> *surface</parameter>, + <parameter><link linkend="double"><type>double</type></link> x</parameter>, + <parameter><link linkend="double"><type>double</type></link> y</parameter>);</programlisting> +<para>This is a convenience function for creating a pattern from <parameter>surface</parameter> + +and setting it as the source in <parameter>cr</parameter> + with <link linkend="cairo-set-source"><function>cairo_set_source()</function></link>.</para> +<para>The <parameter>x</parameter> + and <parameter>y</parameter> + 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 +<parameter>x</parameter> + and <parameter>y</parameter> + parameters are negated and then set as translation values +in the pattern matrix.</para> +<para>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 <link linkend="cairo-pattern-create-for-surface"><function>cairo_pattern_create_for_surface()</function></link>. +The resulting pattern can be queried with <link linkend="cairo-get-source"><function>cairo_get_source()</function></link> so +that these attributes can be modified if desired, (eg. to create a +repeating pattern with <link linkend="cairo-pattern-set-extend"><function>cairo_pattern_set_extend()</function></link>).</para> +<refsect3 id="cairo-set-source-surface.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>surface</para></entry> +<entry role="parameter_description"><para>a surface to be used to set the source pattern</para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>x</para></entry> +<entry role="parameter_description"><para>User-space X coordinate for surface origin</para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>y</para></entry> +<entry role="parameter_description"><para>User-space Y coordinate for surface origin</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-get-source" role="function" condition="since:1.0"> +<title>cairo_get_source ()</title> +<indexterm zone="cairo-get-source" role="1.0"><primary sortas="get_source">cairo_get_source</primary></indexterm> +<programlisting language="C"><link linkend="cairo-pattern-t"><returnvalue>cairo_pattern_t</returnvalue></link> * +cairo_get_source (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>);</programlisting> +<para>Gets the current source pattern for <parameter>cr</parameter> +.</para> +<refsect3 id="cairo-get-source.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><refsect3 id="cairo-get-source.returns" role="returns"> +<title>Returns</title> +<para> the current source pattern. This object is owned by +cairo. To keep a reference to it, you must call +<link linkend="cairo-pattern-reference"><function>cairo_pattern_reference()</function></link>.</para> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-set-antialias" role="function" condition="since:1.0"> +<title>cairo_set_antialias ()</title> +<indexterm zone="cairo-set-antialias" role="1.0"><primary sortas="set_antialias">cairo_set_antialias</primary></indexterm> +<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link> +cairo_set_antialias (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>, + <parameter><link linkend="cairo-antialias-t"><type>cairo_antialias_t</type></link> antialias</parameter>);</programlisting> +<para>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 +<link linkend="CAIRO-ANTIALIAS-SUBPIXEL:CAPS"><literal>CAIRO_ANTIALIAS_SUBPIXEL</literal></link> when drawing shapes.</para> +<para>Note that this option does not affect text rendering, instead see +<link linkend="cairo-font-options-set-antialias"><function>cairo_font_options_set_antialias()</function></link>.</para> +<refsect3 id="cairo-set-antialias.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a <link linkend="cairo-t"><type>cairo_t</type></link></para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>antialias</para></entry> +<entry role="parameter_description"><para>the new antialiasing mode</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-get-antialias" role="function" condition="since:1.0"> +<title>cairo_get_antialias ()</title> +<indexterm zone="cairo-get-antialias" role="1.0"><primary sortas="get_antialias">cairo_get_antialias</primary></indexterm> +<programlisting language="C"><link linkend="cairo-antialias-t"><returnvalue>cairo_antialias_t</returnvalue></link> +cairo_get_antialias (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>);</programlisting> +<para>Gets the current shape antialiasing mode, as set by +<link linkend="cairo-set-antialias"><function>cairo_set_antialias()</function></link>.</para> +<refsect3 id="cairo-get-antialias.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><refsect3 id="cairo-get-antialias.returns" role="returns"> +<title>Returns</title> +<para> the current shape antialiasing mode.</para> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-set-dash" role="function" condition="since:1.0"> +<title>cairo_set_dash ()</title> +<indexterm zone="cairo-set-dash" role="1.0"><primary sortas="set_dash">cairo_set_dash</primary></indexterm> +<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link> +cairo_set_dash (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>, + <parameter>const <link linkend="double"><type>double</type></link> *dashes</parameter>, + <parameter><link linkend="int"><type>int</type></link> num_dashes</parameter>, + <parameter><link linkend="double"><type>double</type></link> offset</parameter>);</programlisting> +<para>Sets the dash pattern to be used by <link linkend="cairo-stroke"><function>cairo_stroke()</function></link>. A dash pattern +is specified by <parameter>dashes</parameter> +, an array of positive values. Each value +provides the length of alternate "on" and "off" portions of the +stroke. The <parameter>offset</parameter> + specifies an offset into the pattern at which +the stroke begins.</para> +<para>Each "on" segment will have caps applied as if the segment were a +separate sub-path. In particular, it is valid to use an "on" length +of 0.0 with <link linkend="CAIRO-LINE-CAP-ROUND:CAPS"><literal>CAIRO_LINE_CAP_ROUND</literal></link> or <link linkend="CAIRO-LINE-CAP-SQUARE:CAPS"><literal>CAIRO_LINE_CAP_SQUARE</literal></link> in order +to distributed dots or squares along a path.</para> +<para>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 <link linkend="cairo-set-dash"><function>cairo_set_dash()</function></link>.</para> +<para>If <parameter>num_dashes</parameter> + is 0 dashing is disabled.</para> +<para>If <parameter>num_dashes</parameter> + is 1 a symmetric pattern is assumed with alternating +on and off portions of the size specified by the single value in +<parameter>dashes</parameter> +.</para> +<para>If any value in <parameter>dashes</parameter> + is negative, or if all values are 0, then +<parameter>cr</parameter> + will be put into an error state with a status of +<link linkend="CAIRO-STATUS-INVALID-DASH:CAPS"><literal>CAIRO_STATUS_INVALID_DASH</literal></link>.</para> +<refsect3 id="cairo-set-dash.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>dashes</para></entry> +<entry role="parameter_description"><para>an array specifying alternate lengths of on and off stroke portions</para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>num_dashes</para></entry> +<entry role="parameter_description"><para>the length of the dashes array</para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>offset</para></entry> +<entry role="parameter_description"><para>an offset into the dash pattern at which the stroke should start</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-get-dash-count" role="function" condition="since:1.4"> +<title>cairo_get_dash_count ()</title> +<indexterm zone="cairo-get-dash-count" role="1.4"><primary sortas="get_dash_count">cairo_get_dash_count</primary></indexterm> +<programlisting language="C"><link linkend="int"><returnvalue>int</returnvalue></link> +cairo_get_dash_count (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>);</programlisting> +<para>This function returns the length of the dash array in <parameter>cr</parameter> + (0 if dashing +is not currently in effect).</para> +<para>See also <link linkend="cairo-set-dash"><function>cairo_set_dash()</function></link> and <link linkend="cairo-get-dash"><function>cairo_get_dash()</function></link>.</para> +<refsect3 id="cairo-get-dash-count.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a <link linkend="cairo-t"><type>cairo_t</type></link></para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><refsect3 id="cairo-get-dash-count.returns" role="returns"> +<title>Returns</title> +<para> the length of the dash array, or 0 if no dash array set.</para> +</refsect3><para role="since">Since: <link linkend="api-index-1.4">1.4</link></para></refsect2> +<refsect2 id="cairo-get-dash" role="function" condition="since:1.4"> +<title>cairo_get_dash ()</title> +<indexterm zone="cairo-get-dash" role="1.4"><primary sortas="get_dash">cairo_get_dash</primary></indexterm> +<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link> +cairo_get_dash (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>, + <parameter><link linkend="double"><type>double</type></link> *dashes</parameter>, + <parameter><link linkend="double"><type>double</type></link> *offset</parameter>);</programlisting> +<para>Gets the current dash array. If not <link linkend="NULL:CAPS"><literal>NULL</literal></link>, <parameter>dashes</parameter> + should be big +enough to hold at least the number of values returned by +<link linkend="cairo-get-dash-count"><function>cairo_get_dash_count()</function></link>.</para> +<refsect3 id="cairo-get-dash.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a <link linkend="cairo-t"><type>cairo_t</type></link></para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>dashes</para></entry> +<entry role="parameter_description"><para>return value for the dash array, or <link linkend="NULL:CAPS"><literal>NULL</literal></link></para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>offset</para></entry> +<entry role="parameter_description"><para>return value for the current dash offset, or <link linkend="NULL:CAPS"><literal>NULL</literal></link></para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><para role="since">Since: <link linkend="api-index-1.4">1.4</link></para></refsect2> +<refsect2 id="cairo-set-fill-rule" role="function" condition="since:1.0"> +<title>cairo_set_fill_rule ()</title> +<indexterm zone="cairo-set-fill-rule" role="1.0"><primary sortas="set_fill_rule">cairo_set_fill_rule</primary></indexterm> +<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link> +cairo_set_fill_rule (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>, + <parameter><link linkend="cairo-fill-rule-t"><type>cairo_fill_rule_t</type></link> fill_rule</parameter>);</programlisting> +<para>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 <link linkend="cairo-fill"><function>cairo_fill()</function></link> and <link linkend="cairo-clip"><function>cairo_clip()</function></link>. See <link linkend="cairo-fill-rule-t"><type>cairo_fill_rule_t</type></link> for details +on the semantics of each available fill rule.</para> +<para>The default fill rule is <link linkend="CAIRO-FILL-RULE-WINDING:CAPS"><literal>CAIRO_FILL_RULE_WINDING</literal></link>.</para> +<refsect3 id="cairo-set-fill-rule.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a <link linkend="cairo-t"><type>cairo_t</type></link></para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>fill_rule</para></entry> +<entry role="parameter_description"><para>a fill rule, specified as a <link linkend="cairo-fill-rule-t"><type>cairo_fill_rule_t</type></link></para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-get-fill-rule" role="function" condition="since:1.0"> +<title>cairo_get_fill_rule ()</title> +<indexterm zone="cairo-get-fill-rule" role="1.0"><primary sortas="get_fill_rule">cairo_get_fill_rule</primary></indexterm> +<programlisting language="C"><link linkend="cairo-fill-rule-t"><returnvalue>cairo_fill_rule_t</returnvalue></link> +cairo_get_fill_rule (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>);</programlisting> +<para>Gets the current fill rule, as set by <link linkend="cairo-set-fill-rule"><function>cairo_set_fill_rule()</function></link>.</para> +<refsect3 id="cairo-get-fill-rule.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><refsect3 id="cairo-get-fill-rule.returns" role="returns"> +<title>Returns</title> +<para> the current fill rule.</para> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-set-line-cap" role="function" condition="since:1.0"> +<title>cairo_set_line_cap ()</title> +<indexterm zone="cairo-set-line-cap" role="1.0"><primary sortas="set_line_cap">cairo_set_line_cap</primary></indexterm> +<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link> +cairo_set_line_cap (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>, + <parameter><link linkend="cairo-line-cap-t"><type>cairo_line_cap_t</type></link> line_cap</parameter>);</programlisting> +<para>Sets the current line cap style within the cairo context. See +<link linkend="cairo-line-cap-t"><type>cairo_line_cap_t</type></link> for details about how the available line cap +styles are drawn.</para> +<para>As with the other stroke parameters, the current line cap style is +examined by <link linkend="cairo-stroke"><function>cairo_stroke()</function></link>, <link linkend="cairo-stroke-extents"><function>cairo_stroke_extents()</function></link>, and +<link linkend="cairo-stroke-to-path"><function>cairo_stroke_to_path()</function></link>, but does not have any effect during path +construction.</para> +<para>The default line cap style is <link linkend="CAIRO-LINE-CAP-BUTT:CAPS"><literal>CAIRO_LINE_CAP_BUTT</literal></link>.</para> +<refsect3 id="cairo-set-line-cap.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>line_cap</para></entry> +<entry role="parameter_description"><para>a line cap style</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-get-line-cap" role="function" condition="since:1.0"> +<title>cairo_get_line_cap ()</title> +<indexterm zone="cairo-get-line-cap" role="1.0"><primary sortas="get_line_cap">cairo_get_line_cap</primary></indexterm> +<programlisting language="C"><link linkend="cairo-line-cap-t"><returnvalue>cairo_line_cap_t</returnvalue></link> +cairo_get_line_cap (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>);</programlisting> +<para>Gets the current line cap style, as set by <link linkend="cairo-set-line-cap"><function>cairo_set_line_cap()</function></link>.</para> +<refsect3 id="cairo-get-line-cap.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><refsect3 id="cairo-get-line-cap.returns" role="returns"> +<title>Returns</title> +<para> the current line cap style.</para> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-set-line-join" role="function" condition="since:1.0"> +<title>cairo_set_line_join ()</title> +<indexterm zone="cairo-set-line-join" role="1.0"><primary sortas="set_line_join">cairo_set_line_join</primary></indexterm> +<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link> +cairo_set_line_join (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>, + <parameter><link linkend="cairo-line-join-t"><type>cairo_line_join_t</type></link> line_join</parameter>);</programlisting> +<para>Sets the current line join style within the cairo context. See +<link linkend="cairo-line-join-t"><type>cairo_line_join_t</type></link> for details about how the available line join +styles are drawn.</para> +<para>As with the other stroke parameters, the current line join style is +examined by <link linkend="cairo-stroke"><function>cairo_stroke()</function></link>, <link linkend="cairo-stroke-extents"><function>cairo_stroke_extents()</function></link>, and +<link linkend="cairo-stroke-to-path"><function>cairo_stroke_to_path()</function></link>, but does not have any effect during path +construction.</para> +<para>The default line join style is <link linkend="CAIRO-LINE-JOIN-MITER:CAPS"><literal>CAIRO_LINE_JOIN_MITER</literal></link>.</para> +<refsect3 id="cairo-set-line-join.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>line_join</para></entry> +<entry role="parameter_description"><para>a line join style</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-get-line-join" role="function" condition="since:1.0"> +<title>cairo_get_line_join ()</title> +<indexterm zone="cairo-get-line-join" role="1.0"><primary sortas="get_line_join">cairo_get_line_join</primary></indexterm> +<programlisting language="C"><link linkend="cairo-line-join-t"><returnvalue>cairo_line_join_t</returnvalue></link> +cairo_get_line_join (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>);</programlisting> +<para>Gets the current line join style, as set by <link linkend="cairo-set-line-join"><function>cairo_set_line_join()</function></link>.</para> +<refsect3 id="cairo-get-line-join.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><refsect3 id="cairo-get-line-join.returns" role="returns"> +<title>Returns</title> +<para> the current line join style.</para> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-set-line-width" role="function" condition="since:1.0"> +<title>cairo_set_line_width ()</title> +<indexterm zone="cairo-set-line-width" role="1.0"><primary sortas="set_line_width">cairo_set_line_width</primary></indexterm> +<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link> +cairo_set_line_width (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>, + <parameter><link linkend="double"><type>double</type></link> width</parameter>);</programlisting> +<para>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).</para> +<para>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 <link linkend="cairo-set-line-width"><function>cairo_set_line_width()</function></link>. The simplest usage +makes both of these spaces identical. That is, if there is no +change to the CTM between a call to <link linkend="cairo-set-line-width"><function>cairo_set_line_width()</function></link> and the +stroking operation, then one can just pass user-space values to +<link linkend="cairo-set-line-width"><function>cairo_set_line_width()</function></link> and ignore this note.</para> +<para>As with the other stroke parameters, the current line width is +examined by <link linkend="cairo-stroke"><function>cairo_stroke()</function></link>, <link linkend="cairo-stroke-extents"><function>cairo_stroke_extents()</function></link>, and +<link linkend="cairo-stroke-to-path"><function>cairo_stroke_to_path()</function></link>, but does not have any effect during path +construction.</para> +<para>The default line width value is 2.0.</para> +<refsect3 id="cairo-set-line-width.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a <link linkend="cairo-t"><type>cairo_t</type></link></para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>width</para></entry> +<entry role="parameter_description"><para>a line width</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-get-line-width" role="function" condition="since:1.0"> +<title>cairo_get_line_width ()</title> +<indexterm zone="cairo-get-line-width" role="1.0"><primary sortas="get_line_width">cairo_get_line_width</primary></indexterm> +<programlisting language="C"><link linkend="double"><returnvalue>double</returnvalue></link> +cairo_get_line_width (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>);</programlisting> +<para>This function returns the current line width value exactly as set by +<link linkend="cairo-set-line-width"><function>cairo_set_line_width()</function></link>. Note that the value is unchanged even if +the CTM has changed between the calls to <link linkend="cairo-set-line-width"><function>cairo_set_line_width()</function></link> and +<link linkend="cairo-get-line-width"><function>cairo_get_line_width()</function></link>.</para> +<refsect3 id="cairo-get-line-width.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><refsect3 id="cairo-get-line-width.returns" role="returns"> +<title>Returns</title> +<para> the current line width.</para> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-set-miter-limit" role="function" condition="since:1.0"> +<title>cairo_set_miter_limit ()</title> +<indexterm zone="cairo-set-miter-limit" role="1.0"><primary sortas="set_miter_limit">cairo_set_miter_limit</primary></indexterm> +<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link> +cairo_set_miter_limit (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>, + <parameter><link linkend="double"><type>double</type></link> limit</parameter>);</programlisting> +<para>Sets the current miter limit within the cairo context.</para> +<para>If the current line join style is set to <link linkend="CAIRO-LINE-JOIN-MITER:CAPS"><literal>CAIRO_LINE_JOIN_MITER</literal></link> +(see <link linkend="cairo-set-line-join"><function>cairo_set_line_join()</function></link>), 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.</para> +<para>As with the other stroke parameters, the current line miter limit is +examined by <link linkend="cairo-stroke"><function>cairo_stroke()</function></link>, <link linkend="cairo-stroke-extents"><function>cairo_stroke_extents()</function></link>, and +<link linkend="cairo-stroke-to-path"><function>cairo_stroke_to_path()</function></link>, but does not have any effect during path +construction.</para> +<para>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.</para> +<para>A miter limit for a desired angle can be computed as: miter limit = +1/sin(angle/2)</para> +<refsect3 id="cairo-set-miter-limit.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>limit</para></entry> +<entry role="parameter_description"><para>miter limit to set</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-get-miter-limit" role="function" condition="since:1.0"> +<title>cairo_get_miter_limit ()</title> +<indexterm zone="cairo-get-miter-limit" role="1.0"><primary sortas="get_miter_limit">cairo_get_miter_limit</primary></indexterm> +<programlisting language="C"><link linkend="double"><returnvalue>double</returnvalue></link> +cairo_get_miter_limit (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>);</programlisting> +<para>Gets the current miter limit, as set by <link linkend="cairo-set-miter-limit"><function>cairo_set_miter_limit()</function></link>.</para> +<refsect3 id="cairo-get-miter-limit.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><refsect3 id="cairo-get-miter-limit.returns" role="returns"> +<title>Returns</title> +<para> the current miter limit.</para> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-set-operator" role="function" condition="since:1.0"> +<title>cairo_set_operator ()</title> +<indexterm zone="cairo-set-operator" role="1.0"><primary sortas="set_operator">cairo_set_operator</primary></indexterm> +<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link> +cairo_set_operator (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>, + <parameter><link linkend="cairo-operator-t"><type>cairo_operator_t</type></link> op</parameter>);</programlisting> +<para>Sets the compositing operator to be used for all drawing +operations. See <link linkend="cairo-operator-t"><type>cairo_operator_t</type></link> for details on the semantics of +each available compositing operator.</para> +<para>The default operator is <link linkend="CAIRO-OPERATOR-OVER:CAPS"><literal>CAIRO_OPERATOR_OVER</literal></link>.</para> +<refsect3 id="cairo-set-operator.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a <link linkend="cairo-t"><type>cairo_t</type></link></para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>op</para></entry> +<entry role="parameter_description"><para>a compositing operator, specified as a <link linkend="cairo-operator-t"><type>cairo_operator_t</type></link></para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-get-operator" role="function" condition="since:1.0"> +<title>cairo_get_operator ()</title> +<indexterm zone="cairo-get-operator" role="1.0"><primary sortas="get_operator">cairo_get_operator</primary></indexterm> +<programlisting language="C"><link linkend="cairo-operator-t"><returnvalue>cairo_operator_t</returnvalue></link> +cairo_get_operator (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>);</programlisting> +<para>Gets the current compositing operator for a cairo context.</para> +<refsect3 id="cairo-get-operator.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><refsect3 id="cairo-get-operator.returns" role="returns"> +<title>Returns</title> +<para> the current compositing operator.</para> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-set-tolerance" role="function" condition="since:1.0"> +<title>cairo_set_tolerance ()</title> +<indexterm zone="cairo-set-tolerance" role="1.0"><primary sortas="set_tolerance">cairo_set_tolerance</primary></indexterm> +<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link> +cairo_set_tolerance (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>, + <parameter><link linkend="double"><type>double</type></link> tolerance</parameter>);</programlisting> +<para>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 <parameter>tolerance</parameter> +. 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 <parameter>tolerance</parameter> + is restricted to the smallest +representable internal value.</para> +<refsect3 id="cairo-set-tolerance.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a <link linkend="cairo-t"><type>cairo_t</type></link></para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>tolerance</para></entry> +<entry role="parameter_description"><para>the tolerance, in device units (typically pixels)</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-get-tolerance" role="function" condition="since:1.0"> +<title>cairo_get_tolerance ()</title> +<indexterm zone="cairo-get-tolerance" role="1.0"><primary sortas="get_tolerance">cairo_get_tolerance</primary></indexterm> +<programlisting language="C"><link linkend="double"><returnvalue>double</returnvalue></link> +cairo_get_tolerance (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>);</programlisting> +<para>Gets the current tolerance value, as set by <link linkend="cairo-set-tolerance"><function>cairo_set_tolerance()</function></link>.</para> +<refsect3 id="cairo-get-tolerance.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><refsect3 id="cairo-get-tolerance.returns" role="returns"> +<title>Returns</title> +<para> the current tolerance value.</para> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-clip" role="function" condition="since:1.0"> +<title>cairo_clip ()</title> +<indexterm zone="cairo-clip" role="1.0"><primary sortas="clip">cairo_clip</primary></indexterm> +<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link> +cairo_clip (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>);</programlisting> +<para>Establishes a new clip region by intersecting the current clip +region with the current path as it would be filled by <link linkend="cairo-fill"><function>cairo_fill()</function></link> +and according to the current fill rule (see <link linkend="cairo-set-fill-rule"><function>cairo_set_fill_rule()</function></link>).</para> +<para>After <link linkend="cairo-clip"><function>cairo_clip()</function></link>, the current path will be cleared from the cairo +context.</para> +<para>The current clip region affects all drawing operations by +effectively masking out any changes to the surface that are outside +the current clip region.</para> +<para>Calling <link linkend="cairo-clip"><function>cairo_clip()</function></link> 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 <link linkend="cairo-clip"><function>cairo_clip()</function></link> within a <link linkend="cairo-save"><function>cairo_save()</function></link>/<link linkend="cairo-restore"><function>cairo_restore()</function></link> +pair. The only other means of increasing the size of the clip +region is <link linkend="cairo-reset-clip"><function>cairo_reset_clip()</function></link>.</para> +<refsect3 id="cairo-clip.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-clip-preserve" role="function" condition="since:1.0"> +<title>cairo_clip_preserve ()</title> +<indexterm zone="cairo-clip-preserve" role="1.0"><primary sortas="clip_preserve">cairo_clip_preserve</primary></indexterm> +<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link> +cairo_clip_preserve (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>);</programlisting> +<para>Establishes a new clip region by intersecting the current clip +region with the current path as it would be filled by <link linkend="cairo-fill"><function>cairo_fill()</function></link> +and according to the current fill rule (see <link linkend="cairo-set-fill-rule"><function>cairo_set_fill_rule()</function></link>).</para> +<para>Unlike <link linkend="cairo-clip"><function>cairo_clip()</function></link>, <link linkend="cairo-clip-preserve"><function>cairo_clip_preserve()</function></link> preserves the path within +the cairo context.</para> +<para>The current clip region affects all drawing operations by +effectively masking out any changes to the surface that are outside +the current clip region.</para> +<para>Calling <link linkend="cairo-clip-preserve"><function>cairo_clip_preserve()</function></link> 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 <link linkend="cairo-clip-preserve"><function>cairo_clip_preserve()</function></link> within a <link linkend="cairo-save"><function>cairo_save()</function></link>/<link linkend="cairo-restore"><function>cairo_restore()</function></link> +pair. The only other means of increasing the size of the clip +region is <link linkend="cairo-reset-clip"><function>cairo_reset_clip()</function></link>.</para> +<refsect3 id="cairo-clip-preserve.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-clip-extents" role="function" condition="since:1.4"> +<title>cairo_clip_extents ()</title> +<indexterm zone="cairo-clip-extents" role="1.4"><primary sortas="clip_extents">cairo_clip_extents</primary></indexterm> +<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link> +cairo_clip_extents (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>, + <parameter><link linkend="double"><type>double</type></link> *x1</parameter>, + <parameter><link linkend="double"><type>double</type></link> *y1</parameter>, + <parameter><link linkend="double"><type>double</type></link> *x2</parameter>, + <parameter><link linkend="double"><type>double</type></link> *y2</parameter>);</programlisting> +<para>Computes a bounding box in user coordinates covering the area inside the +current clip.</para> +<refsect3 id="cairo-clip-extents.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>x1</para></entry> +<entry role="parameter_description"><para>left of the resulting extents</para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>y1</para></entry> +<entry role="parameter_description"><para>top of the resulting extents</para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>x2</para></entry> +<entry role="parameter_description"><para>right of the resulting extents</para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>y2</para></entry> +<entry role="parameter_description"><para>bottom of the resulting extents</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><para role="since">Since: <link linkend="api-index-1.4">1.4</link></para></refsect2> +<refsect2 id="cairo-in-clip" role="function" condition="since:1.10"> +<title>cairo_in_clip ()</title> +<indexterm zone="cairo-in-clip" role="1.10"><primary sortas="in_clip">cairo_in_clip</primary></indexterm> +<programlisting language="C"><link linkend="cairo-bool-t"><returnvalue>cairo_bool_t</returnvalue></link> +cairo_in_clip (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>, + <parameter><link linkend="double"><type>double</type></link> x</parameter>, + <parameter><link linkend="double"><type>double</type></link> y</parameter>);</programlisting> +<para>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 <link linkend="cairo-paint"><function>cairo_paint()</function></link> operation.</para> +<para>See <link linkend="cairo-clip"><function>cairo_clip()</function></link>, and <link linkend="cairo-clip-preserve"><function>cairo_clip_preserve()</function></link>.</para> +<refsect3 id="cairo-in-clip.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>x</para></entry> +<entry role="parameter_description"><para>X coordinate of the point to test</para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>y</para></entry> +<entry role="parameter_description"><para>Y coordinate of the point to test</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><refsect3 id="cairo-in-clip.returns" role="returns"> +<title>Returns</title> +<para> A non-zero value if the point is inside, or zero if +outside.</para> +</refsect3><para role="since">Since: <link linkend="api-index-1.10">1.10</link></para></refsect2> +<refsect2 id="cairo-reset-clip" role="function" condition="since:1.0"> +<title>cairo_reset_clip ()</title> +<indexterm zone="cairo-reset-clip" role="1.0"><primary sortas="reset_clip">cairo_reset_clip</primary></indexterm> +<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link> +cairo_reset_clip (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>);</programlisting> +<para>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.</para> +<para>Note that code meant to be reusable should not call +<link linkend="cairo-reset-clip"><function>cairo_reset_clip()</function></link> as it will cause results unexpected by +higher-level code which calls <link linkend="cairo-clip"><function>cairo_clip()</function></link>. Consider using +<link linkend="cairo-save"><function>cairo_save()</function></link> and <link linkend="cairo-restore"><function>cairo_restore()</function></link> around <link linkend="cairo-clip"><function>cairo_clip()</function></link> as a more +robust means of temporarily restricting the clip region.</para> +<refsect3 id="cairo-reset-clip.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-rectangle-list-destroy" role="function" condition="since:1.4"> +<title>cairo_rectangle_list_destroy ()</title> +<indexterm zone="cairo-rectangle-list-destroy" role="1.4"><primary sortas="rectangle_list_destroy">cairo_rectangle_list_destroy</primary></indexterm> +<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link> +cairo_rectangle_list_destroy (<parameter><link linkend="cairo-rectangle-list-t"><type>cairo_rectangle_list_t</type></link> *rectangle_list</parameter>);</programlisting> +<para>Unconditionally frees <parameter>rectangle_list</parameter> + and all associated +references. After this call, the <parameter>rectangle_list</parameter> + pointer must not +be dereferenced.</para> +<refsect3 id="cairo-rectangle-list-destroy.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>rectangle_list</para></entry> +<entry role="parameter_description"><para>a rectangle list, as obtained from <link linkend="cairo-copy-clip-rectangle-list"><function>cairo_copy_clip_rectangle_list()</function></link></para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><para role="since">Since: <link linkend="api-index-1.4">1.4</link></para></refsect2> +<refsect2 id="cairo-copy-clip-rectangle-list" role="function" condition="since:1.4"> +<title>cairo_copy_clip_rectangle_list ()</title> +<indexterm zone="cairo-copy-clip-rectangle-list" role="1.4"><primary sortas="copy_clip_rectangle_list">cairo_copy_clip_rectangle_list</primary></indexterm> +<programlisting language="C"><link linkend="cairo-rectangle-list-t"><returnvalue>cairo_rectangle_list_t</returnvalue></link> * +cairo_copy_clip_rectangle_list (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>);</programlisting> +<para>Gets the current clip region as a list of rectangles in user coordinates. +Never returns <link linkend="NULL:CAPS"><literal>NULL</literal></link>.</para> +<para>The status in the list may be <link linkend="CAIRO-STATUS-CLIP-NOT-REPRESENTABLE:CAPS"><literal>CAIRO_STATUS_CLIP_NOT_REPRESENTABLE</literal></link> to +indicate that the clip region cannot be represented as a list of +user-space rectangles. The status may have other values to indicate +other errors.</para> +<refsect3 id="cairo-copy-clip-rectangle-list.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><refsect3 id="cairo-copy-clip-rectangle-list.returns" role="returns"> +<title>Returns</title> +<para> the current clip region as a list of rectangles in user coordinates, +which should be destroyed using <link linkend="cairo-rectangle-list-destroy"><function>cairo_rectangle_list_destroy()</function></link>.</para> +</refsect3><para role="since">Since: <link linkend="api-index-1.4">1.4</link></para></refsect2> +<refsect2 id="cairo-fill" role="function" condition="since:1.0"> +<title>cairo_fill ()</title> +<indexterm zone="cairo-fill" role="1.0"><primary sortas="fill">cairo_fill</primary></indexterm> +<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link> +cairo_fill (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>);</programlisting> +<para>A drawing operator that fills the current path according to the +current fill rule, (each sub-path is implicitly closed before being +filled). After <link linkend="cairo-fill"><function>cairo_fill()</function></link>, the current path will be cleared from +the cairo context. See <link linkend="cairo-set-fill-rule"><function>cairo_set_fill_rule()</function></link> and +<link linkend="cairo-fill-preserve"><function>cairo_fill_preserve()</function></link>.</para> +<refsect3 id="cairo-fill.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-fill-preserve" role="function" condition="since:1.0"> +<title>cairo_fill_preserve ()</title> +<indexterm zone="cairo-fill-preserve" role="1.0"><primary sortas="fill_preserve">cairo_fill_preserve</primary></indexterm> +<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link> +cairo_fill_preserve (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>);</programlisting> +<para>A drawing operator that fills the current path according to the +current fill rule, (each sub-path is implicitly closed before being +filled). Unlike <link linkend="cairo-fill"><function>cairo_fill()</function></link>, <link linkend="cairo-fill-preserve"><function>cairo_fill_preserve()</function></link> preserves the +path within the cairo context.</para> +<para>See <link linkend="cairo-set-fill-rule"><function>cairo_set_fill_rule()</function></link> and <link linkend="cairo-fill"><function>cairo_fill()</function></link>.</para> +<refsect3 id="cairo-fill-preserve.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-fill-extents" role="function" condition="since:1.0"> +<title>cairo_fill_extents ()</title> +<indexterm zone="cairo-fill-extents" role="1.0"><primary sortas="fill_extents">cairo_fill_extents</primary></indexterm> +<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link> +cairo_fill_extents (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>, + <parameter><link linkend="double"><type>double</type></link> *x1</parameter>, + <parameter><link linkend="double"><type>double</type></link> *y1</parameter>, + <parameter><link linkend="double"><type>double</type></link> *x2</parameter>, + <parameter><link linkend="double"><type>double</type></link> *y2</parameter>);</programlisting> +<para>Computes a bounding box in user coordinates covering the area that +would be affected, (the "inked" area), by a <link linkend="cairo-fill"><function>cairo_fill()</function></link> operation +given the current path and fill parameters. If the current path is +empty, returns an empty rectangle ((0,0), (0,0)). Surface +dimensions and clipping are not taken into account.</para> +<para>Contrast with <link linkend="cairo-path-extents"><function>cairo_path_extents()</function></link>, which is similar, but returns +non-zero extents for some paths with no inked area, (such as a +simple line segment).</para> +<para>Note that <link linkend="cairo-fill-extents"><function>cairo_fill_extents()</function></link> must necessarily do more work to +compute the precise inked areas in light of the fill rule, so +<link linkend="cairo-path-extents"><function>cairo_path_extents()</function></link> may be more desirable for sake of performance +if the non-inked path extents are desired.</para> +<para>See <link linkend="cairo-fill"><function>cairo_fill()</function></link>, <link linkend="cairo-set-fill-rule"><function>cairo_set_fill_rule()</function></link> and <link linkend="cairo-fill-preserve"><function>cairo_fill_preserve()</function></link>.</para> +<refsect3 id="cairo-fill-extents.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>x1</para></entry> +<entry role="parameter_description"><para>left of the resulting extents</para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>y1</para></entry> +<entry role="parameter_description"><para>top of the resulting extents</para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>x2</para></entry> +<entry role="parameter_description"><para>right of the resulting extents</para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>y2</para></entry> +<entry role="parameter_description"><para>bottom of the resulting extents</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-in-fill" role="function" condition="since:1.0"> +<title>cairo_in_fill ()</title> +<indexterm zone="cairo-in-fill" role="1.0"><primary sortas="in_fill">cairo_in_fill</primary></indexterm> +<programlisting language="C"><link linkend="cairo-bool-t"><returnvalue>cairo_bool_t</returnvalue></link> +cairo_in_fill (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>, + <parameter><link linkend="double"><type>double</type></link> x</parameter>, + <parameter><link linkend="double"><type>double</type></link> y</parameter>);</programlisting> +<para>Tests whether the given point is inside the area that would be +affected by a <link linkend="cairo-fill"><function>cairo_fill()</function></link> operation given the current path and +filling parameters. Surface dimensions and clipping are not taken +into account.</para> +<para>See <link linkend="cairo-fill"><function>cairo_fill()</function></link>, <link linkend="cairo-set-fill-rule"><function>cairo_set_fill_rule()</function></link> and <link linkend="cairo-fill-preserve"><function>cairo_fill_preserve()</function></link>.</para> +<refsect3 id="cairo-in-fill.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>x</para></entry> +<entry role="parameter_description"><para>X coordinate of the point to test</para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>y</para></entry> +<entry role="parameter_description"><para>Y coordinate of the point to test</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><refsect3 id="cairo-in-fill.returns" role="returns"> +<title>Returns</title> +<para> A non-zero value if the point is inside, or zero if +outside.</para> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-mask" role="function" condition="since:1.0"> +<title>cairo_mask ()</title> +<indexterm zone="cairo-mask" role="1.0"><primary sortas="mask">cairo_mask</primary></indexterm> +<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link> +cairo_mask (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>, + <parameter><link linkend="cairo-pattern-t"><type>cairo_pattern_t</type></link> *pattern</parameter>);</programlisting> +<para>A drawing operator that paints the current source +using the alpha channel of <parameter>pattern</parameter> + as a mask. (Opaque +areas of <parameter>pattern</parameter> + are painted with the source, transparent +areas are not painted.)</para> +<refsect3 id="cairo-mask.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>pattern</para></entry> +<entry role="parameter_description"><para>a <link linkend="cairo-pattern-t"><type>cairo_pattern_t</type></link></para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-mask-surface" role="function" condition="since:1.0"> +<title>cairo_mask_surface ()</title> +<indexterm zone="cairo-mask-surface" role="1.0"><primary sortas="mask_surface">cairo_mask_surface</primary></indexterm> +<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link> +cairo_mask_surface (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>, + <parameter><link linkend="cairo-surface-t"><type>cairo_surface_t</type></link> *surface</parameter>, + <parameter><link linkend="double"><type>double</type></link> surface_x</parameter>, + <parameter><link linkend="double"><type>double</type></link> surface_y</parameter>);</programlisting> +<para>A drawing operator that paints the current source +using the alpha channel of <parameter>surface</parameter> + as a mask. (Opaque +areas of <parameter>surface</parameter> + are painted with the source, transparent +areas are not painted.)</para> +<refsect3 id="cairo-mask-surface.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>surface</para></entry> +<entry role="parameter_description"><para>a <link linkend="cairo-surface-t"><type>cairo_surface_t</type></link></para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>surface_x</para></entry> +<entry role="parameter_description"><para>X coordinate at which to place the origin of <parameter>surface</parameter> +</para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>surface_y</para></entry> +<entry role="parameter_description"><para>Y coordinate at which to place the origin of <parameter>surface</parameter> +</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-paint" role="function" condition="since:1.0"> +<title>cairo_paint ()</title> +<indexterm zone="cairo-paint" role="1.0"><primary sortas="paint">cairo_paint</primary></indexterm> +<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link> +cairo_paint (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>);</programlisting> +<para>A drawing operator that paints the current source everywhere within +the current clip region.</para> +<refsect3 id="cairo-paint.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-paint-with-alpha" role="function" condition="since:1.0"> +<title>cairo_paint_with_alpha ()</title> +<indexterm zone="cairo-paint-with-alpha" role="1.0"><primary sortas="paint_with_alpha">cairo_paint_with_alpha</primary></indexterm> +<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link> +cairo_paint_with_alpha (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>, + <parameter><link linkend="double"><type>double</type></link> alpha</parameter>);</programlisting> +<para>A drawing operator that paints the current source everywhere within +the current clip region using a mask of constant alpha value +<parameter>alpha</parameter> +. The effect is similar to <link linkend="cairo-paint"><function>cairo_paint()</function></link>, but the drawing +is faded out using the alpha value.</para> +<refsect3 id="cairo-paint-with-alpha.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>alpha</para></entry> +<entry role="parameter_description"><para>alpha value, between 0 (transparent) and 1 (opaque)</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-stroke" role="function" condition="since:1.0"> +<title>cairo_stroke ()</title> +<indexterm zone="cairo-stroke" role="1.0"><primary sortas="stroke">cairo_stroke</primary></indexterm> +<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link> +cairo_stroke (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>);</programlisting> +<para>A drawing operator that strokes the current path according to the +current line width, line join, line cap, and dash settings. After +<link linkend="cairo-stroke"><function>cairo_stroke()</function></link>, the current path will be cleared from the cairo +context. See <link linkend="cairo-set-line-width"><function>cairo_set_line_width()</function></link>, <link linkend="cairo-set-line-join"><function>cairo_set_line_join()</function></link>, +<link linkend="cairo-set-line-cap"><function>cairo_set_line_cap()</function></link>, <link linkend="cairo-set-dash"><function>cairo_set_dash()</function></link>, and +<link linkend="cairo-stroke-preserve"><function>cairo_stroke_preserve()</function></link>.</para> +<para>Note: Degenerate segments and sub-paths are treated specially and +provide a useful result. These can result in two different +situations:</para> +<orderedlist> +<listitem> +<para>Zero-length "on" segments set in <link linkend="cairo-set-dash"><function>cairo_set_dash()</function></link>. If the cap +style is <link linkend="CAIRO-LINE-CAP-ROUND:CAPS"><literal>CAIRO_LINE_CAP_ROUND</literal></link> or <link linkend="CAIRO-LINE-CAP-SQUARE:CAPS"><literal>CAIRO_LINE_CAP_SQUARE</literal></link> then these +segments will be drawn as circular dots or squares respectively. In +the case of <link linkend="CAIRO-LINE-CAP-SQUARE:CAPS"><literal>CAIRO_LINE_CAP_SQUARE</literal></link>, the orientation of the squares +is determined by the direction of the underlying path.</para> +</listitem> +<listitem> +<para>A sub-path created by <link linkend="cairo-move-to"><function>cairo_move_to()</function></link> followed by either a +<link linkend="cairo-close-path"><function>cairo_close_path()</function></link> or one or more calls to <link linkend="cairo-line-to"><function>cairo_line_to()</function></link> to the +same coordinate as the <link linkend="cairo-move-to"><function>cairo_move_to()</function></link>. If the cap style is +<link linkend="CAIRO-LINE-CAP-ROUND:CAPS"><literal>CAIRO_LINE_CAP_ROUND</literal></link> then these sub-paths will be drawn as circular +dots. Note that in the case of <link linkend="CAIRO-LINE-CAP-SQUARE:CAPS"><literal>CAIRO_LINE_CAP_SQUARE</literal></link> a degenerate +sub-path will not be drawn at all, (since the correct orientation +is indeterminate).</para> +</listitem> +</orderedlist> +<para>In no case will a cap style of <link linkend="CAIRO-LINE-CAP-BUTT:CAPS"><literal>CAIRO_LINE_CAP_BUTT</literal></link> cause anything +to be drawn in the case of either degenerate segments or sub-paths.</para> +<refsect3 id="cairo-stroke.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-stroke-preserve" role="function" condition="since:1.0"> +<title>cairo_stroke_preserve ()</title> +<indexterm zone="cairo-stroke-preserve" role="1.0"><primary sortas="stroke_preserve">cairo_stroke_preserve</primary></indexterm> +<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link> +cairo_stroke_preserve (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>);</programlisting> +<para>A drawing operator that strokes the current path according to the +current line width, line join, line cap, and dash settings. Unlike +<link linkend="cairo-stroke"><function>cairo_stroke()</function></link>, <link linkend="cairo-stroke-preserve"><function>cairo_stroke_preserve()</function></link> preserves the path within the +cairo context.</para> +<para>See <link linkend="cairo-set-line-width"><function>cairo_set_line_width()</function></link>, <link linkend="cairo-set-line-join"><function>cairo_set_line_join()</function></link>, +<link linkend="cairo-set-line-cap"><function>cairo_set_line_cap()</function></link>, <link linkend="cairo-set-dash"><function>cairo_set_dash()</function></link>, and +<link linkend="cairo-stroke-preserve"><function>cairo_stroke_preserve()</function></link>.</para> +<refsect3 id="cairo-stroke-preserve.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-stroke-extents" role="function" condition="since:1.0"> +<title>cairo_stroke_extents ()</title> +<indexterm zone="cairo-stroke-extents" role="1.0"><primary sortas="stroke_extents">cairo_stroke_extents</primary></indexterm> +<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link> +cairo_stroke_extents (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>, + <parameter><link linkend="double"><type>double</type></link> *x1</parameter>, + <parameter><link linkend="double"><type>double</type></link> *y1</parameter>, + <parameter><link linkend="double"><type>double</type></link> *x2</parameter>, + <parameter><link linkend="double"><type>double</type></link> *y2</parameter>);</programlisting> +<para>Computes a bounding box in user coordinates covering the area that +would be affected, (the "inked" area), by a <link linkend="cairo-stroke"><function>cairo_stroke()</function></link> +operation given the current path and stroke parameters. +If the current path is empty, returns an empty rectangle ((0,0), (0,0)). +Surface dimensions and clipping are not taken into account.</para> +<para>Note that if the line width is set to exactly zero, then +<link linkend="cairo-stroke-extents"><function>cairo_stroke_extents()</function></link> will return an empty rectangle. Contrast with +<link linkend="cairo-path-extents"><function>cairo_path_extents()</function></link> which can be used to compute the non-empty +bounds as the line width approaches zero.</para> +<para>Note that <link linkend="cairo-stroke-extents"><function>cairo_stroke_extents()</function></link> must necessarily do more work to +compute the precise inked areas in light of the stroke parameters, +so <link linkend="cairo-path-extents"><function>cairo_path_extents()</function></link> may be more desirable for sake of +performance if non-inked path extents are desired.</para> +<para>See <link linkend="cairo-stroke"><function>cairo_stroke()</function></link>, <link linkend="cairo-set-line-width"><function>cairo_set_line_width()</function></link>, <link linkend="cairo-set-line-join"><function>cairo_set_line_join()</function></link>, +<link linkend="cairo-set-line-cap"><function>cairo_set_line_cap()</function></link>, <link linkend="cairo-set-dash"><function>cairo_set_dash()</function></link>, and +<link linkend="cairo-stroke-preserve"><function>cairo_stroke_preserve()</function></link>.</para> +<refsect3 id="cairo-stroke-extents.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>x1</para></entry> +<entry role="parameter_description"><para>left of the resulting extents</para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>y1</para></entry> +<entry role="parameter_description"><para>top of the resulting extents</para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>x2</para></entry> +<entry role="parameter_description"><para>right of the resulting extents</para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>y2</para></entry> +<entry role="parameter_description"><para>bottom of the resulting extents</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-in-stroke" role="function" condition="since:1.0"> +<title>cairo_in_stroke ()</title> +<indexterm zone="cairo-in-stroke" role="1.0"><primary sortas="in_stroke">cairo_in_stroke</primary></indexterm> +<programlisting language="C"><link linkend="cairo-bool-t"><returnvalue>cairo_bool_t</returnvalue></link> +cairo_in_stroke (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>, + <parameter><link linkend="double"><type>double</type></link> x</parameter>, + <parameter><link linkend="double"><type>double</type></link> y</parameter>);</programlisting> +<para>Tests whether the given point is inside the area that would be +affected by a <link linkend="cairo-stroke"><function>cairo_stroke()</function></link> operation given the current path and +stroking parameters. Surface dimensions and clipping are not taken +into account.</para> +<para>See <link linkend="cairo-stroke"><function>cairo_stroke()</function></link>, <link linkend="cairo-set-line-width"><function>cairo_set_line_width()</function></link>, <link linkend="cairo-set-line-join"><function>cairo_set_line_join()</function></link>, +<link linkend="cairo-set-line-cap"><function>cairo_set_line_cap()</function></link>, <link linkend="cairo-set-dash"><function>cairo_set_dash()</function></link>, and +<link linkend="cairo-stroke-preserve"><function>cairo_stroke_preserve()</function></link>.</para> +<refsect3 id="cairo-in-stroke.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>x</para></entry> +<entry role="parameter_description"><para>X coordinate of the point to test</para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>y</para></entry> +<entry role="parameter_description"><para>Y coordinate of the point to test</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><refsect3 id="cairo-in-stroke.returns" role="returns"> +<title>Returns</title> +<para> A non-zero value if the point is inside, or zero if +outside.</para> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-copy-page" role="function" condition="since:1.0"> +<title>cairo_copy_page ()</title> +<indexterm zone="cairo-copy-page" role="1.0"><primary sortas="copy_page">cairo_copy_page</primary></indexterm> +<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link> +cairo_copy_page (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>);</programlisting> +<para>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 <link linkend="cairo-show-page"><function>cairo_show_page()</function></link> if you want to get an +empty page after the emission.</para> +<para>This is a convenience function that simply calls +<link linkend="cairo-surface-copy-page"><function>cairo_surface_copy_page()</function></link> on <parameter>cr</parameter> +'s target.</para> +<refsect3 id="cairo-copy-page.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-show-page" role="function" condition="since:1.0"> +<title>cairo_show_page ()</title> +<indexterm zone="cairo-show-page" role="1.0"><primary sortas="show_page">cairo_show_page</primary></indexterm> +<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link> +cairo_show_page (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>);</programlisting> +<para>Emits and clears the current page for backends that support multiple +pages. Use <link linkend="cairo-copy-page"><function>cairo_copy_page()</function></link> if you don't want to clear the page.</para> +<para>This is a convenience function that simply calls +<link linkend="cairo-surface-show-page"><function>cairo_surface_show_page()</function></link> on <parameter>cr</parameter> +'s target.</para> +<refsect3 id="cairo-show-page.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a cairo context</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-get-reference-count" role="function" condition="since:1.4"> +<title>cairo_get_reference_count ()</title> +<indexterm zone="cairo-get-reference-count" role="1.4"><primary sortas="get_reference_count">cairo_get_reference_count</primary></indexterm> +<programlisting language="C">unsigned <link linkend="int"><returnvalue>int</returnvalue></link> +cairo_get_reference_count (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>);</programlisting> +<para>Returns the current reference count of <parameter>cr</parameter> +.</para> +<refsect3 id="cairo-get-reference-count.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a <link linkend="cairo-t"><type>cairo_t</type></link></para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><refsect3 id="cairo-get-reference-count.returns" role="returns"> +<title>Returns</title> +<para> the current reference count of <parameter>cr</parameter> +. If the +object is a nil object, 0 will be returned.</para> +</refsect3><para role="since">Since: <link linkend="api-index-1.4">1.4</link></para></refsect2> +<refsect2 id="cairo-set-user-data" role="function" condition="since:1.4"> +<title>cairo_set_user_data ()</title> +<indexterm zone="cairo-set-user-data" role="1.4"><primary sortas="set_user_data">cairo_set_user_data</primary></indexterm> +<programlisting language="C"><link linkend="cairo-status-t"><returnvalue>cairo_status_t</returnvalue></link> +cairo_set_user_data (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>, + <parameter>const <link linkend="cairo-user-data-key-t"><type>cairo_user_data_key_t</type></link> *key</parameter>, + <parameter><link linkend="void"><type>void</type></link> *user_data</parameter>, + <parameter><link linkend="cairo-destroy-func-t"><type>cairo_destroy_func_t</type></link> destroy</parameter>);</programlisting> +<para>Attach user data to <parameter>cr</parameter> +. To remove user data from a surface, +call this function with the key that was used to set it and <link linkend="NULL:CAPS"><literal>NULL</literal></link> +for <parameter>data</parameter> +.</para> +<refsect3 id="cairo-set-user-data.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a <link linkend="cairo-t"><type>cairo_t</type></link></para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>key</para></entry> +<entry role="parameter_description"><para>the address of a <link linkend="cairo-user-data-key-t"><type>cairo_user_data_key_t</type></link> to attach the user data to</para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>user_data</para></entry> +<entry role="parameter_description"><para>the user data to attach to the <link linkend="cairo-t"><type>cairo_t</type></link></para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>destroy</para></entry> +<entry role="parameter_description"><para>a <link linkend="cairo-destroy-func-t"><type>cairo_destroy_func_t</type></link> which will be called when the +<link linkend="cairo-t"><type>cairo_t</type></link> is destroyed or when new user data is attached using the +same key.</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><refsect3 id="cairo-set-user-data.returns" role="returns"> +<title>Returns</title> +<para> <link linkend="CAIRO-STATUS-SUCCESS:CAPS"><literal>CAIRO_STATUS_SUCCESS</literal></link> or <link linkend="CAIRO-STATUS-NO-MEMORY:CAPS"><literal>CAIRO_STATUS_NO_MEMORY</literal></link> if a +slot could not be allocated for the user data.</para> +</refsect3><para role="since">Since: <link linkend="api-index-1.4">1.4</link></para></refsect2> +<refsect2 id="cairo-get-user-data" role="function" condition="since:1.4"> +<title>cairo_get_user_data ()</title> +<indexterm zone="cairo-get-user-data" role="1.4"><primary sortas="get_user_data">cairo_get_user_data</primary></indexterm> +<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link> * +cairo_get_user_data (<parameter><link linkend="cairo-t"><type>cairo_t</type></link> *cr</parameter>, + <parameter>const <link linkend="cairo-user-data-key-t"><type>cairo_user_data_key_t</type></link> *key</parameter>);</programlisting> +<para>Return user data previously attached to <parameter>cr</parameter> + using the specified +key. If no user data has been attached with the given key this +function returns <link linkend="NULL:CAPS"><literal>NULL</literal></link>.</para> +<refsect3 id="cairo-get-user-data.parameters" role="parameters"> +<title>Parameters</title> +<informaltable role="parameters_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="parameters_name" colwidth="150px"/> +<colspec colname="parameters_description"/> +<colspec colname="parameters_annotations" colwidth="200px"/> +<tbody> +<row><entry role="parameter_name"><para>cr</para></entry> +<entry role="parameter_description"><para>a <link linkend="cairo-t"><type>cairo_t</type></link></para></entry> +<entry role="parameter_annotations"></entry></row> +<row><entry role="parameter_name"><para>key</para></entry> +<entry role="parameter_description"><para>the address of the <link linkend="cairo-user-data-key-t"><type>cairo_user_data_key_t</type></link> the user data was +attached to</para></entry> +<entry role="parameter_annotations"></entry></row> +</tbody></tgroup></informaltable> +</refsect3><refsect3 id="cairo-get-user-data.returns" role="returns"> +<title>Returns</title> +<para> the user data previously attached or <link linkend="NULL:CAPS"><literal>NULL</literal></link>.</para> +</refsect3><para role="since">Since: <link linkend="api-index-1.4">1.4</link></para></refsect2> + +</refsect1> +<refsect1 id="cairo-cairo-t.other_details" role="details"> +<title role="details.title">Types and Values</title> +<refsect2 id="cairo-t" role="typedef" condition="since:1.0"> +<title>cairo_t</title> +<indexterm zone="cairo-t" role="1.0"><primary sortas="t">cairo_t</primary></indexterm> +<programlisting language="C">typedef struct _cairo cairo_t; +</programlisting> +<para>A <link linkend="cairo-t"><type>cairo_t</type></link> contains the current state of the rendering device, +including coordinates of yet to be drawn shapes.</para> +<para>Cairo contexts, as <link linkend="cairo-t"><type>cairo_t</type></link> objects are named, are central to +cairo and all drawing with cairo is always done to a <link linkend="cairo-t"><type>cairo_t</type></link> +object.</para> +<para>Memory management of <link linkend="cairo-t"><type>cairo_t</type></link> is done with +<link linkend="cairo-reference"><function>cairo_reference()</function></link> and <link linkend="cairo-destroy"><function>cairo_destroy()</function></link>.</para> +<para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-antialias-t" role="enum" condition="since:1.0"> +<title>enum cairo_antialias_t</title> +<indexterm zone="cairo-antialias-t" role="1.0"><primary sortas="antialias_t">cairo_antialias_t</primary></indexterm> +<para>Specifies the type of antialiasing to do when rendering text or shapes.</para> +<para>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: +<parameter>CAIRO_ANTIALIAS_FAST</parameter> +: Allow the backend to degrade raster quality for speed +<parameter>CAIRO_ANTIALIAS_GOOD</parameter> +: A balance between speed and quality +<parameter>CAIRO_ANTIALIAS_BEST</parameter> +: A high-fidelity, but potentially slow, raster mode</para> +<para>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, +<parameter>CAIRO_ANTIALIAS_FAST</parameter> + and <parameter>CAIRO_ANTIALIAS_GOOD</parameter> + will be mapped to +<parameter>CAIRO_ANTIALIAS_GRAY</parameter> +, with <parameter>CAIRO_ANTALIAS_BEST</parameter> + being equivalent to +<parameter>CAIRO_ANTIALIAS_SUBPIXEL</parameter> +.</para> +<para>The interpretation of <parameter>CAIRO_ANTIALIAS_DEFAULT</parameter> + is left entirely up to +the backend, typically this will be similar to <parameter>CAIRO_ANTIALIAS_GOOD</parameter> +.</para> +<refsect3 id="cairo-antialias-t.members" role="enum_members"> +<title>Members</title> +<informaltable role="enum_members_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="enum_members_name" colwidth="300px"/> +<colspec colname="enum_members_description"/> +<colspec colname="enum_members_annotations" colwidth="200px"/> +<tbody> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-ANTIALIAS-DEFAULT:CAPS">CAIRO_ANTIALIAS_DEFAULT</para></entry> +<entry role="enum_member_description"><para>Use the default antialiasing for + the subsystem and target device, since 1.0</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-ANTIALIAS-NONE:CAPS">CAIRO_ANTIALIAS_NONE</para></entry> +<entry role="enum_member_description"><para>Use a bilevel alpha mask, since 1.0</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-ANTIALIAS-GRAY:CAPS">CAIRO_ANTIALIAS_GRAY</para></entry> +<entry role="enum_member_description"><para>Perform single-color antialiasing (using + shades of gray for black text on a white background, for example), since 1.0</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-ANTIALIAS-SUBPIXEL:CAPS">CAIRO_ANTIALIAS_SUBPIXEL</para></entry> +<entry role="enum_member_description"><para>Perform antialiasing by taking + advantage of the order of subpixel elements on devices + such as LCD panels, since 1.0</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-ANTIALIAS-FAST:CAPS">CAIRO_ANTIALIAS_FAST</para></entry> +<entry role="enum_member_description"><para>Hint that the backend should perform some +antialiasing but prefer speed over quality, since 1.12</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-ANTIALIAS-GOOD:CAPS">CAIRO_ANTIALIAS_GOOD</para></entry> +<entry role="enum_member_description"><para>The backend should balance quality against +performance, since 1.12</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-ANTIALIAS-BEST:CAPS">CAIRO_ANTIALIAS_BEST</para></entry> +<entry role="enum_member_description"><para>Hint that the backend should render at the highest +quality, sacrificing speed if necessary, since 1.12</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +</tbody></tgroup></informaltable> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-fill-rule-t" role="enum" condition="since:1.0"> +<title>enum cairo_fill_rule_t</title> +<indexterm zone="cairo-fill-rule-t" role="1.0"><primary sortas="fill_rule_t">cairo_fill_rule_t</primary></indexterm> +<para><link linkend="cairo-fill-rule-t"><type>cairo_fill_rule_t</type></link> 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.)</para> +<para>The default fill rule is <link linkend="CAIRO-FILL-RULE-WINDING:CAPS"><literal>CAIRO_FILL_RULE_WINDING</literal></link>.</para> +<para>New entries may be added in future versions.</para> +<refsect3 id="cairo-fill-rule-t.members" role="enum_members"> +<title>Members</title> +<informaltable role="enum_members_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="enum_members_name" colwidth="300px"/> +<colspec colname="enum_members_description"/> +<colspec colname="enum_members_annotations" colwidth="200px"/> +<tbody> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-FILL-RULE-WINDING:CAPS">CAIRO_FILL_RULE_WINDING</para></entry> +<entry role="enum_member_description"><para>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)</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-FILL-RULE-EVEN-ODD:CAPS">CAIRO_FILL_RULE_EVEN_ODD</para></entry> +<entry role="enum_member_description"><para>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)</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +</tbody></tgroup></informaltable> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-line-cap-t" role="enum" condition="since:1.0"> +<title>enum cairo_line_cap_t</title> +<indexterm zone="cairo-line-cap-t" role="1.0"><primary sortas="line_cap_t">cairo_line_cap_t</primary></indexterm> +<para>Specifies how to render the endpoints of the path when stroking.</para> +<para>The default line cap style is <link linkend="CAIRO-LINE-CAP-BUTT:CAPS"><literal>CAIRO_LINE_CAP_BUTT</literal></link>.</para> +<refsect3 id="cairo-line-cap-t.members" role="enum_members"> +<title>Members</title> +<informaltable role="enum_members_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="enum_members_name" colwidth="300px"/> +<colspec colname="enum_members_description"/> +<colspec colname="enum_members_annotations" colwidth="200px"/> +<tbody> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-LINE-CAP-BUTT:CAPS">CAIRO_LINE_CAP_BUTT</para></entry> +<entry role="enum_member_description"><para>start(stop) the line exactly at the start(end) point (Since 1.0)</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-LINE-CAP-ROUND:CAPS">CAIRO_LINE_CAP_ROUND</para></entry> +<entry role="enum_member_description"><para>use a round ending, the center of the circle is the end point (Since 1.0)</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-LINE-CAP-SQUARE:CAPS">CAIRO_LINE_CAP_SQUARE</para></entry> +<entry role="enum_member_description"><para>use squared ending, the center of the square is the end point (Since 1.0)</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +</tbody></tgroup></informaltable> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-line-join-t" role="enum" condition="since:1.0"> +<title>enum cairo_line_join_t</title> +<indexterm zone="cairo-line-join-t" role="1.0"><primary sortas="line_join_t">cairo_line_join_t</primary></indexterm> +<para>Specifies how to render the junction of two lines when stroking.</para> +<para>The default line join style is <link linkend="CAIRO-LINE-JOIN-MITER:CAPS"><literal>CAIRO_LINE_JOIN_MITER</literal></link>.</para> +<refsect3 id="cairo-line-join-t.members" role="enum_members"> +<title>Members</title> +<informaltable role="enum_members_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="enum_members_name" colwidth="300px"/> +<colspec colname="enum_members_description"/> +<colspec colname="enum_members_annotations" colwidth="200px"/> +<tbody> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-LINE-JOIN-MITER:CAPS">CAIRO_LINE_JOIN_MITER</para></entry> +<entry role="enum_member_description"><para>use a sharp (angled) corner, see +<link linkend="cairo-set-miter-limit"><function>cairo_set_miter_limit()</function></link> (Since 1.0)</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-LINE-JOIN-ROUND:CAPS">CAIRO_LINE_JOIN_ROUND</para></entry> +<entry role="enum_member_description"><para>use a rounded join, the center of the circle is the +joint point (Since 1.0)</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-LINE-JOIN-BEVEL:CAPS">CAIRO_LINE_JOIN_BEVEL</para></entry> +<entry role="enum_member_description"><para>use a cut-off join, the join is cut off at half +the line width from the joint point (Since 1.0)</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +</tbody></tgroup></informaltable> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-operator-t" role="enum" condition="since:1.0"> +<title>enum cairo_operator_t</title> +<indexterm zone="cairo-operator-t" role="1.0"><primary sortas="operator_t">cairo_operator_t</primary></indexterm> +<para><link linkend="cairo-operator-t"><type>cairo_operator_t</type></link> is used to set the compositing operator for all cairo +drawing operations.</para> +<para>The default operator is <link linkend="CAIRO-OPERATOR-OVER:CAPS"><literal>CAIRO_OPERATOR_OVER</literal></link>.</para> +<para>The operators marked as <firstterm>unbounded</firstterm> modify their +destination even outside of the mask layer (that is, their effect is not +bound by the mask layer). However, their effect can still be limited by +way of clipping.</para> +<para>To keep things simple, the operator descriptions here +document the behavior for when both source and destination are either fully +transparent or fully opaque. The actual implementation works for +translucent layers too. +For a more detailed explanation of the effects of each operator, including +the mathematical definitions, see</para> +<ulink url="https://cairographics.org/operators/">https://cairographics.org/operators/</ulink>. +<refsect3 id="cairo-operator-t.members" role="enum_members"> +<title>Members</title> +<informaltable role="enum_members_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="enum_members_name" colwidth="300px"/> +<colspec colname="enum_members_description"/> +<colspec colname="enum_members_annotations" colwidth="200px"/> +<tbody> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-OPERATOR-CLEAR:CAPS">CAIRO_OPERATOR_CLEAR</para></entry> +<entry role="enum_member_description"><para>clear destination layer (bounded) (Since 1.0)</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-OPERATOR-SOURCE:CAPS">CAIRO_OPERATOR_SOURCE</para></entry> +<entry role="enum_member_description"><para>replace destination layer (bounded) (Since 1.0)</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-OPERATOR-OVER:CAPS">CAIRO_OPERATOR_OVER</para></entry> +<entry role="enum_member_description"><para>draw source layer on top of destination layer +(bounded) (Since 1.0)</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-OPERATOR-IN:CAPS">CAIRO_OPERATOR_IN</para></entry> +<entry role="enum_member_description"><para>draw source where there was destination content +(unbounded) (Since 1.0)</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-OPERATOR-OUT:CAPS">CAIRO_OPERATOR_OUT</para></entry> +<entry role="enum_member_description"><para>draw source where there was no destination +content (unbounded) (Since 1.0)</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-OPERATOR-ATOP:CAPS">CAIRO_OPERATOR_ATOP</para></entry> +<entry role="enum_member_description"><para>draw source on top of destination content and +only there (Since 1.0)</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-OPERATOR-DEST:CAPS">CAIRO_OPERATOR_DEST</para></entry> +<entry role="enum_member_description"><para>ignore the source (Since 1.0)</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-OPERATOR-DEST-OVER:CAPS">CAIRO_OPERATOR_DEST_OVER</para></entry> +<entry role="enum_member_description"><para>draw destination on top of source (Since 1.0)</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-OPERATOR-DEST-IN:CAPS">CAIRO_OPERATOR_DEST_IN</para></entry> +<entry role="enum_member_description"><para>leave destination only where there was +source content (unbounded) (Since 1.0)</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-OPERATOR-DEST-OUT:CAPS">CAIRO_OPERATOR_DEST_OUT</para></entry> +<entry role="enum_member_description"><para>leave destination only where there was no +source content (Since 1.0)</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-OPERATOR-DEST-ATOP:CAPS">CAIRO_OPERATOR_DEST_ATOP</para></entry> +<entry role="enum_member_description"><para>leave destination on top of source content +and only there (unbounded) (Since 1.0)</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-OPERATOR-XOR:CAPS">CAIRO_OPERATOR_XOR</para></entry> +<entry role="enum_member_description"><para>source and destination are shown where there is only +one of them (Since 1.0)</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-OPERATOR-ADD:CAPS">CAIRO_OPERATOR_ADD</para></entry> +<entry role="enum_member_description"><para>source and destination layers are accumulated (Since 1.0)</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-OPERATOR-SATURATE:CAPS">CAIRO_OPERATOR_SATURATE</para></entry> +<entry role="enum_member_description"><para>like over, but assuming source and dest are +disjoint geometries (Since 1.0)</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-OPERATOR-MULTIPLY:CAPS">CAIRO_OPERATOR_MULTIPLY</para></entry> +<entry role="enum_member_description"><para>source and destination layers are multiplied. +This causes the result to be at least as dark as the darker inputs. (Since 1.10)</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-OPERATOR-SCREEN:CAPS">CAIRO_OPERATOR_SCREEN</para></entry> +<entry role="enum_member_description"><para>source and destination are complemented and +multiplied. This causes the result to be at least as light as the lighter +inputs. (Since 1.10)</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-OPERATOR-OVERLAY:CAPS">CAIRO_OPERATOR_OVERLAY</para></entry> +<entry role="enum_member_description"><para>multiplies or screens, depending on the +lightness of the destination color. (Since 1.10)</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-OPERATOR-DARKEN:CAPS">CAIRO_OPERATOR_DARKEN</para></entry> +<entry role="enum_member_description"><para>replaces the destination with the source if it +is darker, otherwise keeps the source. (Since 1.10)</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-OPERATOR-LIGHTEN:CAPS">CAIRO_OPERATOR_LIGHTEN</para></entry> +<entry role="enum_member_description"><para>replaces the destination with the source if it +is lighter, otherwise keeps the source. (Since 1.10)</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-OPERATOR-COLOR-DODGE:CAPS">CAIRO_OPERATOR_COLOR_DODGE</para></entry> +<entry role="enum_member_description"><para>brightens the destination color to reflect +the source color. (Since 1.10)</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-OPERATOR-COLOR-BURN:CAPS">CAIRO_OPERATOR_COLOR_BURN</para></entry> +<entry role="enum_member_description"><para>darkens the destination color to reflect +the source color. (Since 1.10)</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-OPERATOR-HARD-LIGHT:CAPS">CAIRO_OPERATOR_HARD_LIGHT</para></entry> +<entry role="enum_member_description"><para>Multiplies or screens, dependent on source +color. (Since 1.10)</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-OPERATOR-SOFT-LIGHT:CAPS">CAIRO_OPERATOR_SOFT_LIGHT</para></entry> +<entry role="enum_member_description"><para>Darkens or lightens, dependent on source +color. (Since 1.10)</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-OPERATOR-DIFFERENCE:CAPS">CAIRO_OPERATOR_DIFFERENCE</para></entry> +<entry role="enum_member_description"><para>Takes the difference of the source and +destination color. (Since 1.10)</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-OPERATOR-EXCLUSION:CAPS">CAIRO_OPERATOR_EXCLUSION</para></entry> +<entry role="enum_member_description"><para>Produces an effect similar to difference, but +with lower contrast. (Since 1.10)</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-OPERATOR-HSL-HUE:CAPS">CAIRO_OPERATOR_HSL_HUE</para></entry> +<entry role="enum_member_description"><para>Creates a color with the hue of the source +and the saturation and luminosity of the target. (Since 1.10)</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-OPERATOR-HSL-SATURATION:CAPS">CAIRO_OPERATOR_HSL_SATURATION</para></entry> +<entry role="enum_member_description"><para>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)</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-OPERATOR-HSL-COLOR:CAPS">CAIRO_OPERATOR_HSL_COLOR</para></entry> +<entry role="enum_member_description"><para>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)</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +<row role="constant"><entry role="enum_member_name"><para id="CAIRO-OPERATOR-HSL-LUMINOSITY:CAPS">CAIRO_OPERATOR_HSL_LUMINOSITY</para></entry> +<entry role="enum_member_description"><para>Creates a color with the luminosity of +the source and the hue and saturation of the target. This produces an +inverse effect to <parameter>CAIRO_OPERATOR_HSL_COLOR</parameter> +. (Since 1.10)</para> +</entry> +<entry role="enum_member_annotations"></entry> +</row> +</tbody></tgroup></informaltable> +</refsect3><para role="since">Since: <link linkend="api-index-1.0">1.0</link></para></refsect2> +<refsect2 id="cairo-rectangle-t" role="struct" condition="since:1.4"> +<title>cairo_rectangle_t</title> +<indexterm zone="cairo-rectangle-t" role="1.4"><primary sortas="rectangle_t">cairo_rectangle_t</primary></indexterm> +<programlisting language="C">typedef struct { + double x, y, width, height; +} cairo_rectangle_t; +</programlisting> +<para>A data structure for holding a rectangle.</para> +<refsect3 id="cairo-rectangle-t.members" role="struct_members"> +<title>Members</title> +<informaltable role="struct_members_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="struct_members_name" colwidth="300px"/> +<colspec colname="struct_members_description"/> +<colspec colname="struct_members_annotations" colwidth="200px"/> +<tbody> +<row role="member"><entry role="struct_member_name"><para><link linkend="double"><type>double</type></link> <structfield id="cairo-rectangle-t.x">x</structfield>;</para></entry> +<entry role="struct_member_description"><para>X coordinate of the left side of the rectangle</para></entry> +<entry role="struct_member_annotations"></entry> +</row> +<row role="member"><entry role="struct_member_name"><para><link linkend="double"><type>double</type></link> <structfield id="cairo-rectangle-t.y">y</structfield>;</para></entry> +<entry role="struct_member_description"><para>Y coordinate of the the top side of the rectangle</para></entry> +<entry role="struct_member_annotations"></entry> +</row> +<row role="member"><entry role="struct_member_name"><para><link linkend="double"><type>double</type></link> <structfield id="cairo-rectangle-t.width">width</structfield>;</para></entry> +<entry role="struct_member_description"><para>width of the rectangle</para></entry> +<entry role="struct_member_annotations"></entry> +</row> +<row role="member"><entry role="struct_member_name"><para><link linkend="double"><type>double</type></link> <structfield id="cairo-rectangle-t.height">height</structfield>;</para></entry> +<entry role="struct_member_description"><para>height of the rectangle</para></entry> +<entry role="struct_member_annotations"></entry> +</row> +</tbody></tgroup></informaltable> +</refsect3> +<para role="since">Since: <link linkend="api-index-1.4">1.4</link></para></refsect2> +<refsect2 id="cairo-rectangle-list-t" role="struct" condition="since:1.4"> +<title>cairo_rectangle_list_t</title> +<indexterm zone="cairo-rectangle-list-t" role="1.4"><primary sortas="rectangle_list_t">cairo_rectangle_list_t</primary></indexterm> +<programlisting language="C">typedef struct { + cairo_status_t status; + cairo_rectangle_t *rectangles; + int num_rectangles; +} cairo_rectangle_list_t; +</programlisting> +<para>A data structure for holding a dynamically allocated +array of rectangles.</para> +<refsect3 id="cairo-rectangle-list-t.members" role="struct_members"> +<title>Members</title> +<informaltable role="struct_members_table" pgwide="1" frame="none"> +<tgroup cols="3"> +<colspec colname="struct_members_name" colwidth="300px"/> +<colspec colname="struct_members_description"/> +<colspec colname="struct_members_annotations" colwidth="200px"/> +<tbody> +<row role="member"><entry role="struct_member_name"><para><link linkend="cairo-status-t"><type>cairo_status_t</type></link> <structfield id="cairo-rectangle-list-t.status">status</structfield>;</para></entry> +<entry role="struct_member_description"><para>Error status of the rectangle list</para></entry> +<entry role="struct_member_annotations"></entry> +</row> +<row role="member"><entry role="struct_member_name"><para><link linkend="cairo-rectangle-t"><type>cairo_rectangle_t</type></link> *<structfield id="cairo-rectangle-list-t.rectangles">rectangles</structfield>;</para></entry> +<entry role="struct_member_description"><para>Array containing the rectangles</para></entry> +<entry role="struct_member_annotations"></entry> +</row> +<row role="member"><entry role="struct_member_name"><para><link linkend="int"><type>int</type></link> <structfield id="cairo-rectangle-list-t.num-rectangles">num_rectangles</structfield>;</para></entry> +<entry role="struct_member_description"><para>Number of rectangles in this list</para></entry> +<entry role="struct_member_annotations"></entry> +</row> +</tbody></tgroup></informaltable> +</refsect3> +<para role="since">Since: <link linkend="api-index-1.4">1.4</link></para></refsect2> + +</refsect1> +<refsect1 id="cairo-cairo-t.see-also"> +<title>See Also</title> +<para><link linkend="cairo-surface-t"><type>cairo_surface_t</type></link></para> + +</refsect1> + +</refentry> |