<?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-Regions"> <refmeta> <refentrytitle role="top_of_page" id="cairo-Regions.top_of_page">Regions</refentrytitle> <manvolnum>3</manvolnum> <refmiscinfo> CAIRO Library </refmiscinfo> </refmeta> <refnamediv> <refname>Regions</refname> <refpurpose>Representing a pixel-aligned area</refpurpose> </refnamediv> <refsynopsisdiv id="cairo-Regions.synopsis" role="synopsis"> <title role="synopsis.title">Synopsis</title> <synopsis>typedef <link linkend="cairo-region-t">cairo_region_t</link>; <link linkend="cairo-region-t"><returnvalue>cairo_region_t</returnvalue></link> * <link linkend="cairo-region-create">cairo_region_create</link> (<parameter><type>void</type></parameter>); <link linkend="cairo-region-t"><returnvalue>cairo_region_t</returnvalue></link> * <link linkend="cairo-region-create-rectangle">cairo_region_create_rectangle</link> (<parameter>const <link linkend="cairo-rectangle-int-t"><type>cairo_rectangle_int_t</type></link> *rectangle</parameter>); <link linkend="cairo-region-t"><returnvalue>cairo_region_t</returnvalue></link> * <link linkend="cairo-region-create-rectangles">cairo_region_create_rectangles</link> (<parameter>const <link linkend="cairo-rectangle-int-t"><type>cairo_rectangle_int_t</type></link> *rects</parameter>, <parameter><link linkend="int"><type>int</type></link> count</parameter>); <link linkend="cairo-region-t"><returnvalue>cairo_region_t</returnvalue></link> * <link linkend="cairo-region-copy">cairo_region_copy</link> (<parameter>const <link linkend="cairo-region-t"><type>cairo_region_t</type></link> *original</parameter>); <link linkend="cairo-region-t"><returnvalue>cairo_region_t</returnvalue></link> * <link linkend="cairo-region-reference">cairo_region_reference</link> (<parameter><link linkend="cairo-region-t"><type>cairo_region_t</type></link> *region</parameter>); <link linkend="void"><returnvalue>void</returnvalue></link> <link linkend="cairo-region-destroy">cairo_region_destroy</link> (<parameter><link linkend="cairo-region-t"><type>cairo_region_t</type></link> *region</parameter>); <link linkend="cairo-status-t"><returnvalue>cairo_status_t</returnvalue></link> <link linkend="cairo-region-status">cairo_region_status</link> (<parameter>const <link linkend="cairo-region-t"><type>cairo_region_t</type></link> *region</parameter>); <link linkend="void"><returnvalue>void</returnvalue></link> <link linkend="cairo-region-get-extents">cairo_region_get_extents</link> (<parameter>const <link linkend="cairo-region-t"><type>cairo_region_t</type></link> *region</parameter>, <parameter><link linkend="cairo-rectangle-int-t"><type>cairo_rectangle_int_t</type></link> *extents</parameter>); <link linkend="int"><returnvalue>int</returnvalue></link> <link linkend="cairo-region-num-rectangles">cairo_region_num_rectangles</link> (<parameter>const <link linkend="cairo-region-t"><type>cairo_region_t</type></link> *region</parameter>); <link linkend="void"><returnvalue>void</returnvalue></link> <link linkend="cairo-region-get-rectangle">cairo_region_get_rectangle</link> (<parameter>const <link linkend="cairo-region-t"><type>cairo_region_t</type></link> *region</parameter>, <parameter><link linkend="int"><type>int</type></link> nth</parameter>, <parameter><link linkend="cairo-rectangle-int-t"><type>cairo_rectangle_int_t</type></link> *rectangle</parameter>); <link linkend="cairo-bool-t"><returnvalue>cairo_bool_t</returnvalue></link> <link linkend="cairo-region-is-empty">cairo_region_is_empty</link> (<parameter>const <link linkend="cairo-region-t"><type>cairo_region_t</type></link> *region</parameter>); <link linkend="cairo-bool-t"><returnvalue>cairo_bool_t</returnvalue></link> <link linkend="cairo-region-contains-point">cairo_region_contains_point</link> (<parameter>const <link linkend="cairo-region-t"><type>cairo_region_t</type></link> *region</parameter>, <parameter><link linkend="int"><type>int</type></link> x</parameter>, <parameter><link linkend="int"><type>int</type></link> y</parameter>); enum <link linkend="cairo-region-overlap-t">cairo_region_overlap_t</link>; <link linkend="cairo-region-overlap-t"><returnvalue>cairo_region_overlap_t</returnvalue></link> <link linkend="cairo-region-contains-rectangle">cairo_region_contains_rectangle</link> (<parameter>const <link linkend="cairo-region-t"><type>cairo_region_t</type></link> *region</parameter>, <parameter>const <link linkend="cairo-rectangle-int-t"><type>cairo_rectangle_int_t</type></link> *rectangle</parameter>); <link linkend="cairo-bool-t"><returnvalue>cairo_bool_t</returnvalue></link> <link linkend="cairo-region-equal">cairo_region_equal</link> (<parameter>const <link linkend="cairo-region-t"><type>cairo_region_t</type></link> *a</parameter>, <parameter>const <link linkend="cairo-region-t"><type>cairo_region_t</type></link> *b</parameter>); <link linkend="void"><returnvalue>void</returnvalue></link> <link linkend="cairo-region-translate">cairo_region_translate</link> (<parameter><link linkend="cairo-region-t"><type>cairo_region_t</type></link> *region</parameter>, <parameter><link linkend="int"><type>int</type></link> dx</parameter>, <parameter><link linkend="int"><type>int</type></link> dy</parameter>); <link linkend="cairo-status-t"><returnvalue>cairo_status_t</returnvalue></link> <link linkend="cairo-region-intersect">cairo_region_intersect</link> (<parameter><link linkend="cairo-region-t"><type>cairo_region_t</type></link> *dst</parameter>, <parameter>const <link linkend="cairo-region-t"><type>cairo_region_t</type></link> *other</parameter>); <link linkend="cairo-status-t"><returnvalue>cairo_status_t</returnvalue></link> <link linkend="cairo-region-intersect-rectangle">cairo_region_intersect_rectangle</link> (<parameter><link linkend="cairo-region-t"><type>cairo_region_t</type></link> *dst</parameter>, <parameter>const <link linkend="cairo-rectangle-int-t"><type>cairo_rectangle_int_t</type></link> *rectangle</parameter>); <link linkend="cairo-status-t"><returnvalue>cairo_status_t</returnvalue></link> <link linkend="cairo-region-subtract">cairo_region_subtract</link> (<parameter><link linkend="cairo-region-t"><type>cairo_region_t</type></link> *dst</parameter>, <parameter>const <link linkend="cairo-region-t"><type>cairo_region_t</type></link> *other</parameter>); <link linkend="cairo-status-t"><returnvalue>cairo_status_t</returnvalue></link> <link linkend="cairo-region-subtract-rectangle">cairo_region_subtract_rectangle</link> (<parameter><link linkend="cairo-region-t"><type>cairo_region_t</type></link> *dst</parameter>, <parameter>const <link linkend="cairo-rectangle-int-t"><type>cairo_rectangle_int_t</type></link> *rectangle</parameter>); <link linkend="cairo-status-t"><returnvalue>cairo_status_t</returnvalue></link> <link linkend="cairo-region-union">cairo_region_union</link> (<parameter><link linkend="cairo-region-t"><type>cairo_region_t</type></link> *dst</parameter>, <parameter>const <link linkend="cairo-region-t"><type>cairo_region_t</type></link> *other</parameter>); <link linkend="cairo-status-t"><returnvalue>cairo_status_t</returnvalue></link> <link linkend="cairo-region-union-rectangle">cairo_region_union_rectangle</link> (<parameter><link linkend="cairo-region-t"><type>cairo_region_t</type></link> *dst</parameter>, <parameter>const <link linkend="cairo-rectangle-int-t"><type>cairo_rectangle_int_t</type></link> *rectangle</parameter>); <link linkend="cairo-status-t"><returnvalue>cairo_status_t</returnvalue></link> <link linkend="cairo-region-xor">cairo_region_xor</link> (<parameter><link linkend="cairo-region-t"><type>cairo_region_t</type></link> *dst</parameter>, <parameter>const <link linkend="cairo-region-t"><type>cairo_region_t</type></link> *other</parameter>); <link linkend="cairo-status-t"><returnvalue>cairo_status_t</returnvalue></link> <link linkend="cairo-region-xor-rectangle">cairo_region_xor_rectangle</link> (<parameter><link linkend="cairo-region-t"><type>cairo_region_t</type></link> *dst</parameter>, <parameter>const <link linkend="cairo-rectangle-int-t"><type>cairo_rectangle_int_t</type></link> *rectangle</parameter>); </synopsis> </refsynopsisdiv> <refsect1 id="cairo-Regions.description" role="desc"> <title role="desc.title">Description</title> <para> Regions are a simple graphical data type representing an area of integer-aligned rectangles. They are often used on raster surfaces to track areas of interest, such as change or clip areas. </para> </refsect1> <refsect1 id="cairo-Regions.details" role="details"> <title role="details.title">Details</title> <refsect2 id="cairo-region-t" role="typedef" condition="since:1.10"> <title>cairo_region_t</title> <indexterm zone="cairo-region-t" role="1.10"><primary sortas="region_t">cairo_region_t</primary></indexterm> <programlisting>typedef struct _cairo_region cairo_region_t; </programlisting> <para> A <link linkend="cairo-region-t"><type>cairo_region_t</type></link> represents a set of integer-aligned rectangles. </para> <para> It allows set-theoretical operations like <link linkend="cairo-region-union"><function>cairo_region_union()</function></link> and <link linkend="cairo-region-intersect"><function>cairo_region_intersect()</function></link> to be performed on them. </para> <para> Memory management of <link linkend="cairo-region-t"><type>cairo_region_t</type></link> is done with <link linkend="cairo-region-reference"><function>cairo_region_reference()</function></link> and <link linkend="cairo-region-destroy"><function>cairo_region_destroy()</function></link>. </para><para role="since">Since 1.10</para></refsect2> <refsect2 id="cairo-region-create" role="function" condition="since:1.10"> <title>cairo_region_create ()</title> <indexterm zone="cairo-region-create" role="1.10"><primary sortas="region_create">cairo_region_create</primary></indexterm> <programlisting><link linkend="cairo-region-t"><returnvalue>cairo_region_t</returnvalue></link> * cairo_region_create (<parameter><type>void</type></parameter>);</programlisting> <para> Allocates a new empty region object. </para><variablelist role="params"> <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> A newly allocated <link linkend="cairo-region-t"><type>cairo_region_t</type></link>. Free with <link linkend="cairo-region-destroy"><function>cairo_region_destroy()</function></link>. This function always returns a valid pointer; if memory cannot be allocated, then a special error object is returned where all operations on the object do nothing. You can check for this with <link linkend="cairo-region-status"><function>cairo_region_status()</function></link>. </simpara></listitem></varlistentry> </variablelist><para role="since">Since 1.10</para></refsect2> <refsect2 id="cairo-region-create-rectangle" role="function" condition="since:1.10"> <title>cairo_region_create_rectangle ()</title> <indexterm zone="cairo-region-create-rectangle" role="1.10"><primary sortas="region_create_rectangle">cairo_region_create_rectangle</primary></indexterm> <programlisting><link linkend="cairo-region-t"><returnvalue>cairo_region_t</returnvalue></link> * cairo_region_create_rectangle (<parameter>const <link linkend="cairo-rectangle-int-t"><type>cairo_rectangle_int_t</type></link> *rectangle</parameter>);</programlisting> <para> Allocates a new region object containing <parameter>rectangle</parameter>. </para><variablelist role="params"> <varlistentry><term><parameter>rectangle</parameter> :</term> <listitem><simpara>a <link linkend="cairo-rectangle-int-t"><type>cairo_rectangle_int_t</type></link> </simpara></listitem></varlistentry> <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> A newly allocated <link linkend="cairo-region-t"><type>cairo_region_t</type></link>. Free with <link linkend="cairo-region-destroy"><function>cairo_region_destroy()</function></link>. This function always returns a valid pointer; if memory cannot be allocated, then a special error object is returned where all operations on the object do nothing. You can check for this with <link linkend="cairo-region-status"><function>cairo_region_status()</function></link>. </simpara></listitem></varlistentry> </variablelist><para role="since">Since 1.10</para></refsect2> <refsect2 id="cairo-region-create-rectangles" role="function" condition="since:1.10"> <title>cairo_region_create_rectangles ()</title> <indexterm zone="cairo-region-create-rectangles" role="1.10"><primary sortas="region_create_rectangles">cairo_region_create_rectangles</primary></indexterm> <programlisting><link linkend="cairo-region-t"><returnvalue>cairo_region_t</returnvalue></link> * cairo_region_create_rectangles (<parameter>const <link linkend="cairo-rectangle-int-t"><type>cairo_rectangle_int_t</type></link> *rects</parameter>, <parameter><link linkend="int"><type>int</type></link> count</parameter>);</programlisting> <para> Allocates a new region object containing the union of all given <parameter>rects</parameter>. </para><variablelist role="params"> <varlistentry><term><parameter>rects</parameter> :</term> <listitem><simpara>an array of <parameter>count</parameter> rectangles </simpara></listitem></varlistentry> <varlistentry><term><parameter>count</parameter> :</term> <listitem><simpara>number of rectangles </simpara></listitem></varlistentry> <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> A newly allocated <link linkend="cairo-region-t"><type>cairo_region_t</type></link>. Free with <link linkend="cairo-region-destroy"><function>cairo_region_destroy()</function></link>. This function always returns a valid pointer; if memory cannot be allocated, then a special error object is returned where all operations on the object do nothing. You can check for this with <link linkend="cairo-region-status"><function>cairo_region_status()</function></link>. </simpara></listitem></varlistentry> </variablelist><para role="since">Since 1.10</para></refsect2> <refsect2 id="cairo-region-copy" role="function" condition="since:1.10"> <title>cairo_region_copy ()</title> <indexterm zone="cairo-region-copy" role="1.10"><primary sortas="region_copy">cairo_region_copy</primary></indexterm> <programlisting><link linkend="cairo-region-t"><returnvalue>cairo_region_t</returnvalue></link> * cairo_region_copy (<parameter>const <link linkend="cairo-region-t"><type>cairo_region_t</type></link> *original</parameter>);</programlisting> <para> Allocates a new region object copying the area from <parameter>original</parameter>. </para><variablelist role="params"> <varlistentry><term><parameter>original</parameter> :</term> <listitem><simpara>a <link linkend="cairo-region-t"><type>cairo_region_t</type></link> </simpara></listitem></varlistentry> <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> A newly allocated <link linkend="cairo-region-t"><type>cairo_region_t</type></link>. Free with <link linkend="cairo-region-destroy"><function>cairo_region_destroy()</function></link>. This function always returns a valid pointer; if memory cannot be allocated, then a special error object is returned where all operations on the object do nothing. You can check for this with <link linkend="cairo-region-status"><function>cairo_region_status()</function></link>. </simpara></listitem></varlistentry> </variablelist><para role="since">Since 1.10</para></refsect2> <refsect2 id="cairo-region-reference" role="function" condition="since:1.10"> <title>cairo_region_reference ()</title> <indexterm zone="cairo-region-reference" role="1.10"><primary sortas="region_reference">cairo_region_reference</primary></indexterm> <programlisting><link linkend="cairo-region-t"><returnvalue>cairo_region_t</returnvalue></link> * cairo_region_reference (<parameter><link linkend="cairo-region-t"><type>cairo_region_t</type></link> *region</parameter>);</programlisting> <para> Increases the reference count on <parameter>region</parameter> by one. This prevents <parameter>region</parameter> from being destroyed until a matching call to <link linkend="cairo-region-destroy"><function>cairo_region_destroy()</function></link> is made. </para><variablelist role="params"> <varlistentry><term><parameter>region</parameter> :</term> <listitem><simpara>a <link linkend="cairo-region-t"><type>cairo_region_t</type></link> </simpara></listitem></varlistentry> <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the referenced <link linkend="cairo-region-t"><type>cairo_region_t</type></link>. </simpara></listitem></varlistentry> </variablelist><para role="since">Since 1.10</para></refsect2> <refsect2 id="cairo-region-destroy" role="function" condition="since:1.10"> <title>cairo_region_destroy ()</title> <indexterm zone="cairo-region-destroy" role="1.10"><primary sortas="region_destroy">cairo_region_destroy</primary></indexterm> <programlisting><link linkend="void"><returnvalue>void</returnvalue></link> cairo_region_destroy (<parameter><link linkend="cairo-region-t"><type>cairo_region_t</type></link> *region</parameter>);</programlisting> <para> Destroys a <link linkend="cairo-region-t"><type>cairo_region_t</type></link> object created with <link linkend="cairo-region-create"><function>cairo_region_create()</function></link>, <link linkend="cairo-region-copy"><function>cairo_region_copy()</function></link>, or or <link linkend="cairo-region-create-rectangle"><function>cairo_region_create_rectangle()</function></link>. </para><variablelist role="params"> <varlistentry><term><parameter>region</parameter> :</term> <listitem><simpara>a <link linkend="cairo-region-t"><type>cairo_region_t</type></link> </simpara></listitem></varlistentry> </variablelist><para role="since">Since 1.10</para></refsect2> <refsect2 id="cairo-region-status" role="function" condition="since:1.10"> <title>cairo_region_status ()</title> <indexterm zone="cairo-region-status" role="1.10"><primary sortas="region_status">cairo_region_status</primary></indexterm> <programlisting><link linkend="cairo-status-t"><returnvalue>cairo_status_t</returnvalue></link> cairo_region_status (<parameter>const <link linkend="cairo-region-t"><type>cairo_region_t</type></link> *region</parameter>);</programlisting> <para> Checks whether an error has previous occured for this region object. </para><variablelist role="params"> <varlistentry><term><parameter>region</parameter> :</term> <listitem><simpara>a <link linkend="cairo-region-t"><type>cairo_region_t</type></link> </simpara></listitem></varlistentry> <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <link linkend="CAIRO-STATUS-SUCCESS:CAPS"><literal>CAIRO_STATUS_SUCCESS</literal></link> or <link linkend="CAIRO-STATUS-NO-MEMORY:CAPS"><literal>CAIRO_STATUS_NO_MEMORY</literal></link> </simpara></listitem></varlistentry> </variablelist><para role="since">Since 1.10</para></refsect2> <refsect2 id="cairo-region-get-extents" role="function" condition="since:1.10"> <title>cairo_region_get_extents ()</title> <indexterm zone="cairo-region-get-extents" role="1.10"><primary sortas="region_get_extents">cairo_region_get_extents</primary></indexterm> <programlisting><link linkend="void"><returnvalue>void</returnvalue></link> cairo_region_get_extents (<parameter>const <link linkend="cairo-region-t"><type>cairo_region_t</type></link> *region</parameter>, <parameter><link linkend="cairo-rectangle-int-t"><type>cairo_rectangle_int_t</type></link> *extents</parameter>);</programlisting> <para> Gets the bounding rectangle of <parameter>region</parameter> as a <link linkend="cairo-rectangle-int-t"><type>cairo_rectangle_int_t</type></link> </para><variablelist role="params"> <varlistentry><term><parameter>region</parameter> :</term> <listitem><simpara>a <link linkend="cairo-region-t"><type>cairo_region_t</type></link> </simpara></listitem></varlistentry> <varlistentry><term><parameter>extents</parameter> :</term> <listitem><simpara>rectangle into which to store the extents </simpara></listitem></varlistentry> </variablelist><para role="since">Since 1.10</para></refsect2> <refsect2 id="cairo-region-num-rectangles" role="function" condition="since:1.10"> <title>cairo_region_num_rectangles ()</title> <indexterm zone="cairo-region-num-rectangles" role="1.10"><primary sortas="region_num_rectangles">cairo_region_num_rectangles</primary></indexterm> <programlisting><link linkend="int"><returnvalue>int</returnvalue></link> cairo_region_num_rectangles (<parameter>const <link linkend="cairo-region-t"><type>cairo_region_t</type></link> *region</parameter>);</programlisting> <para> Returns the number of rectangles contained in <parameter>region</parameter>. </para><variablelist role="params"> <varlistentry><term><parameter>region</parameter> :</term> <listitem><simpara>a <link linkend="cairo-region-t"><type>cairo_region_t</type></link> </simpara></listitem></varlistentry> <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> The number of rectangles contained in <parameter>region</parameter>. </simpara></listitem></varlistentry> </variablelist><para role="since">Since 1.10</para></refsect2> <refsect2 id="cairo-region-get-rectangle" role="function" condition="since:1.10"> <title>cairo_region_get_rectangle ()</title> <indexterm zone="cairo-region-get-rectangle" role="1.10"><primary sortas="region_get_rectangle">cairo_region_get_rectangle</primary></indexterm> <programlisting><link linkend="void"><returnvalue>void</returnvalue></link> cairo_region_get_rectangle (<parameter>const <link linkend="cairo-region-t"><type>cairo_region_t</type></link> *region</parameter>, <parameter><link linkend="int"><type>int</type></link> nth</parameter>, <parameter><link linkend="cairo-rectangle-int-t"><type>cairo_rectangle_int_t</type></link> *rectangle</parameter>);</programlisting> <para> Stores the <parameter>nth</parameter> rectangle from the region in <parameter>rectangle</parameter>. </para><variablelist role="params"> <varlistentry><term><parameter>region</parameter> :</term> <listitem><simpara>a <link linkend="cairo-region-t"><type>cairo_region_t</type></link> </simpara></listitem></varlistentry> <varlistentry><term><parameter>nth</parameter> :</term> <listitem><simpara>a number indicating which rectangle should be returned </simpara></listitem></varlistentry> <varlistentry><term><parameter>rectangle</parameter> :</term> <listitem><simpara>return location for a <link linkend="cairo-rectangle-int-t"><type>cairo_rectangle_int_t</type></link> </simpara></listitem></varlistentry> </variablelist><para role="since">Since 1.10</para></refsect2> <refsect2 id="cairo-region-is-empty" role="function" condition="since:1.10"> <title>cairo_region_is_empty ()</title> <indexterm zone="cairo-region-is-empty" role="1.10"><primary sortas="region_is_empty">cairo_region_is_empty</primary></indexterm> <programlisting><link linkend="cairo-bool-t"><returnvalue>cairo_bool_t</returnvalue></link> cairo_region_is_empty (<parameter>const <link linkend="cairo-region-t"><type>cairo_region_t</type></link> *region</parameter>);</programlisting> <para> Checks whether <parameter>region</parameter> is empty. </para><variablelist role="params"> <varlistentry><term><parameter>region</parameter> :</term> <listitem><simpara>a <link linkend="cairo-region-t"><type>cairo_region_t</type></link> </simpara></listitem></varlistentry> <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if <parameter>region</parameter> is empty, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> if it isn't. </simpara></listitem></varlistentry> </variablelist><para role="since">Since 1.10</para></refsect2> <refsect2 id="cairo-region-contains-point" role="function" condition="since:1.10"> <title>cairo_region_contains_point ()</title> <indexterm zone="cairo-region-contains-point" role="1.10"><primary sortas="region_contains_point">cairo_region_contains_point</primary></indexterm> <programlisting><link linkend="cairo-bool-t"><returnvalue>cairo_bool_t</returnvalue></link> cairo_region_contains_point (<parameter>const <link linkend="cairo-region-t"><type>cairo_region_t</type></link> *region</parameter>, <parameter><link linkend="int"><type>int</type></link> x</parameter>, <parameter><link linkend="int"><type>int</type></link> y</parameter>);</programlisting> <para> Checks whether (<parameter>x</parameter>, <parameter>y</parameter>) is contained in <parameter>region</parameter>. </para><variablelist role="params"> <varlistentry><term><parameter>region</parameter> :</term> <listitem><simpara>a <link linkend="cairo-region-t"><type>cairo_region_t</type></link> </simpara></listitem></varlistentry> <varlistentry><term><parameter>x</parameter> :</term> <listitem><simpara>the x coordinate of a point </simpara></listitem></varlistentry> <varlistentry><term><parameter>y</parameter> :</term> <listitem><simpara>the y coordinate of a point </simpara></listitem></varlistentry> <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if (<parameter>x</parameter>, <parameter>y</parameter>) is contained in <parameter>region</parameter>, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> if it is not. </simpara></listitem></varlistentry> </variablelist><para role="since">Since 1.10</para></refsect2> <refsect2 id="cairo-region-overlap-t" role="enum"> <title>enum cairo_region_overlap_t</title> <indexterm zone="cairo-region-overlap-t"><primary sortas="region_overlap_t">cairo_region_overlap_t</primary></indexterm> <programlisting>typedef enum _cairo_region_overlap { CAIRO_REGION_OVERLAP_IN, /* completely inside region */ CAIRO_REGION_OVERLAP_OUT, /* completely outside region */ CAIRO_REGION_OVERLAP_PART /* partly inside region */ } cairo_region_overlap_t; </programlisting> <para> Used as the return value for <link linkend="cairo-region-contains-rectangle"><function>cairo_region_contains_rectangle()</function></link>. </para><variablelist role="enum"> <varlistentry id="CAIRO-REGION-OVERLAP-IN:CAPS" role="constant"> <term><literal>CAIRO_REGION_OVERLAP_IN</literal></term> <listitem><simpara>The contents are entirely inside the region </simpara></listitem> </varlistentry> <varlistentry id="CAIRO-REGION-OVERLAP-OUT:CAPS" role="constant"> <term><literal>CAIRO_REGION_OVERLAP_OUT</literal></term> <listitem><simpara>The contents are entirely outside the region </simpara></listitem> </varlistentry> <varlistentry id="CAIRO-REGION-OVERLAP-PART:CAPS" role="constant"> <term><literal>CAIRO_REGION_OVERLAP_PART</literal></term> <listitem><simpara>The contents are partially inside and partially outside the region. </simpara></listitem> </varlistentry> </variablelist></refsect2> <refsect2 id="cairo-region-contains-rectangle" role="function" condition="since:1.10"> <title>cairo_region_contains_rectangle ()</title> <indexterm zone="cairo-region-contains-rectangle" role="1.10"><primary sortas="region_contains_rectangle">cairo_region_contains_rectangle</primary></indexterm> <programlisting><link linkend="cairo-region-overlap-t"><returnvalue>cairo_region_overlap_t</returnvalue></link> cairo_region_contains_rectangle (<parameter>const <link linkend="cairo-region-t"><type>cairo_region_t</type></link> *region</parameter>, <parameter>const <link linkend="cairo-rectangle-int-t"><type>cairo_rectangle_int_t</type></link> *rectangle</parameter>);</programlisting> <para> Checks whether <parameter>rectangle</parameter> is inside, outside or partially contained in <parameter>region</parameter> </para><variablelist role="params"> <varlistentry><term><parameter>region</parameter> :</term> <listitem><simpara>a <link linkend="cairo-region-t"><type>cairo_region_t</type></link> </simpara></listitem></varlistentry> <varlistentry><term><parameter>rectangle</parameter> :</term> <listitem><simpara>a <link linkend="cairo-rectangle-int-t"><type>cairo_rectangle_int_t</type></link> </simpara></listitem></varlistentry> <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <link linkend="CAIRO-REGION-OVERLAP-IN:CAPS"><literal>CAIRO_REGION_OVERLAP_IN</literal></link> if <parameter>rectangle</parameter> is entirely inside <parameter>region</parameter>, <link linkend="CAIRO-REGION-OVERLAP-OUT:CAPS"><literal>CAIRO_REGION_OVERLAP_OUT</literal></link> if <parameter>rectangle</parameter> is entirely outside <parameter>region</parameter>, or <link linkend="CAIRO-REGION-OVERLAP-PART:CAPS"><literal>CAIRO_REGION_OVERLAP_PART</literal></link> if <parameter>rectangle</parameter> is partially inside and partially outside <parameter>region</parameter>. </simpara></listitem></varlistentry> </variablelist><para role="since">Since 1.10</para></refsect2> <refsect2 id="cairo-region-equal" role="function" condition="since:1.10"> <title>cairo_region_equal ()</title> <indexterm zone="cairo-region-equal" role="1.10"><primary sortas="region_equal">cairo_region_equal</primary></indexterm> <programlisting><link linkend="cairo-bool-t"><returnvalue>cairo_bool_t</returnvalue></link> cairo_region_equal (<parameter>const <link linkend="cairo-region-t"><type>cairo_region_t</type></link> *a</parameter>, <parameter>const <link linkend="cairo-region-t"><type>cairo_region_t</type></link> *b</parameter>);</programlisting> <para> Compares whether region_a is equivalent to region_b. <link linkend="NULL:CAPS"><literal>NULL</literal></link> as an argument is equal to itself, but not to any non-<link linkend="NULL:CAPS"><literal>NULL</literal></link> region. </para><variablelist role="params"> <varlistentry><term><parameter>a</parameter> :</term> <listitem><simpara>a <link linkend="cairo-region-t"><type>cairo_region_t</type></link> or <link linkend="NULL:CAPS"><literal>NULL</literal></link> </simpara></listitem></varlistentry> <varlistentry><term><parameter>b</parameter> :</term> <listitem><simpara>a <link linkend="cairo-region-t"><type>cairo_region_t</type></link> or <link linkend="NULL:CAPS"><literal>NULL</literal></link> </simpara></listitem></varlistentry> <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if both regions contained the same coverage, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> if it is not or any region is in an error status. </simpara></listitem></varlistentry> </variablelist><para role="since">Since 1.10</para></refsect2> <refsect2 id="cairo-region-translate" role="function" condition="since:1.10"> <title>cairo_region_translate ()</title> <indexterm zone="cairo-region-translate" role="1.10"><primary sortas="region_translate">cairo_region_translate</primary></indexterm> <programlisting><link linkend="void"><returnvalue>void</returnvalue></link> cairo_region_translate (<parameter><link linkend="cairo-region-t"><type>cairo_region_t</type></link> *region</parameter>, <parameter><link linkend="int"><type>int</type></link> dx</parameter>, <parameter><link linkend="int"><type>int</type></link> dy</parameter>);</programlisting> <para> Translates <parameter>region</parameter> by (<parameter>dx</parameter>, <parameter>dy</parameter>). </para><variablelist role="params"> <varlistentry><term><parameter>region</parameter> :</term> <listitem><simpara>a <link linkend="cairo-region-t"><type>cairo_region_t</type></link> </simpara></listitem></varlistentry> <varlistentry><term><parameter>dx</parameter> :</term> <listitem><simpara>Amount to translate in the x direction </simpara></listitem></varlistentry> <varlistentry><term><parameter>dy</parameter> :</term> <listitem><simpara>Amount to translate in the y direction </simpara></listitem></varlistentry> </variablelist><para role="since">Since 1.10</para></refsect2> <refsect2 id="cairo-region-intersect" role="function" condition="since:1.10"> <title>cairo_region_intersect ()</title> <indexterm zone="cairo-region-intersect" role="1.10"><primary sortas="region_intersect">cairo_region_intersect</primary></indexterm> <programlisting><link linkend="cairo-status-t"><returnvalue>cairo_status_t</returnvalue></link> cairo_region_intersect (<parameter><link linkend="cairo-region-t"><type>cairo_region_t</type></link> *dst</parameter>, <parameter>const <link linkend="cairo-region-t"><type>cairo_region_t</type></link> *other</parameter>);</programlisting> <para> Computes the intersection of <parameter>dst</parameter> with <parameter>other</parameter> and places the result in <parameter>dst</parameter> </para><variablelist role="params"> <varlistentry><term><parameter>dst</parameter> :</term> <listitem><simpara>a <link linkend="cairo-region-t"><type>cairo_region_t</type></link> </simpara></listitem></varlistentry> <varlistentry><term><parameter>other</parameter> :</term> <listitem><simpara>another <link linkend="cairo-region-t"><type>cairo_region_t</type></link> </simpara></listitem></varlistentry> <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <link linkend="CAIRO-STATUS-SUCCESS:CAPS"><literal>CAIRO_STATUS_SUCCESS</literal></link> or <link linkend="CAIRO-STATUS-NO-MEMORY:CAPS"><literal>CAIRO_STATUS_NO_MEMORY</literal></link> </simpara></listitem></varlistentry> </variablelist><para role="since">Since 1.10</para></refsect2> <refsect2 id="cairo-region-intersect-rectangle" role="function" condition="since:1.10"> <title>cairo_region_intersect_rectangle ()</title> <indexterm zone="cairo-region-intersect-rectangle" role="1.10"><primary sortas="region_intersect_rectangle">cairo_region_intersect_rectangle</primary></indexterm> <programlisting><link linkend="cairo-status-t"><returnvalue>cairo_status_t</returnvalue></link> cairo_region_intersect_rectangle (<parameter><link linkend="cairo-region-t"><type>cairo_region_t</type></link> *dst</parameter>, <parameter>const <link linkend="cairo-rectangle-int-t"><type>cairo_rectangle_int_t</type></link> *rectangle</parameter>);</programlisting> <para> Computes the intersection of <parameter>dst</parameter> with <parameter>rectangle</parameter> and places the result in <parameter>dst</parameter> </para><variablelist role="params"> <varlistentry><term><parameter>dst</parameter> :</term> <listitem><simpara>a <link linkend="cairo-region-t"><type>cairo_region_t</type></link> </simpara></listitem></varlistentry> <varlistentry><term><parameter>rectangle</parameter> :</term> <listitem><simpara>a <link linkend="cairo-rectangle-int-t"><type>cairo_rectangle_int_t</type></link> </simpara></listitem></varlistentry> <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <link linkend="CAIRO-STATUS-SUCCESS:CAPS"><literal>CAIRO_STATUS_SUCCESS</literal></link> or <link linkend="CAIRO-STATUS-NO-MEMORY:CAPS"><literal>CAIRO_STATUS_NO_MEMORY</literal></link> </simpara></listitem></varlistentry> </variablelist><para role="since">Since 1.10</para></refsect2> <refsect2 id="cairo-region-subtract" role="function" condition="since:1.10"> <title>cairo_region_subtract ()</title> <indexterm zone="cairo-region-subtract" role="1.10"><primary sortas="region_subtract">cairo_region_subtract</primary></indexterm> <programlisting><link linkend="cairo-status-t"><returnvalue>cairo_status_t</returnvalue></link> cairo_region_subtract (<parameter><link linkend="cairo-region-t"><type>cairo_region_t</type></link> *dst</parameter>, <parameter>const <link linkend="cairo-region-t"><type>cairo_region_t</type></link> *other</parameter>);</programlisting> <para> Subtracts <parameter>other</parameter> from <parameter>dst</parameter> and places the result in <parameter>dst</parameter> </para><variablelist role="params"> <varlistentry><term><parameter>dst</parameter> :</term> <listitem><simpara>a <link linkend="cairo-region-t"><type>cairo_region_t</type></link> </simpara></listitem></varlistentry> <varlistentry><term><parameter>other</parameter> :</term> <listitem><simpara>another <link linkend="cairo-region-t"><type>cairo_region_t</type></link> </simpara></listitem></varlistentry> <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <link linkend="CAIRO-STATUS-SUCCESS:CAPS"><literal>CAIRO_STATUS_SUCCESS</literal></link> or <link linkend="CAIRO-STATUS-NO-MEMORY:CAPS"><literal>CAIRO_STATUS_NO_MEMORY</literal></link> </simpara></listitem></varlistentry> </variablelist><para role="since">Since 1.10</para></refsect2> <refsect2 id="cairo-region-subtract-rectangle" role="function" condition="since:1.10"> <title>cairo_region_subtract_rectangle ()</title> <indexterm zone="cairo-region-subtract-rectangle" role="1.10"><primary sortas="region_subtract_rectangle">cairo_region_subtract_rectangle</primary></indexterm> <programlisting><link linkend="cairo-status-t"><returnvalue>cairo_status_t</returnvalue></link> cairo_region_subtract_rectangle (<parameter><link linkend="cairo-region-t"><type>cairo_region_t</type></link> *dst</parameter>, <parameter>const <link linkend="cairo-rectangle-int-t"><type>cairo_rectangle_int_t</type></link> *rectangle</parameter>);</programlisting> <para> Subtracts <parameter>rectangle</parameter> from <parameter>dst</parameter> and places the result in <parameter>dst</parameter> </para><variablelist role="params"> <varlistentry><term><parameter>dst</parameter> :</term> <listitem><simpara>a <link linkend="cairo-region-t"><type>cairo_region_t</type></link> </simpara></listitem></varlistentry> <varlistentry><term><parameter>rectangle</parameter> :</term> <listitem><simpara>a <link linkend="cairo-rectangle-int-t"><type>cairo_rectangle_int_t</type></link> </simpara></listitem></varlistentry> <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <link linkend="CAIRO-STATUS-SUCCESS:CAPS"><literal>CAIRO_STATUS_SUCCESS</literal></link> or <link linkend="CAIRO-STATUS-NO-MEMORY:CAPS"><literal>CAIRO_STATUS_NO_MEMORY</literal></link> </simpara></listitem></varlistentry> </variablelist><para role="since">Since 1.10</para></refsect2> <refsect2 id="cairo-region-union" role="function" condition="since:1.10"> <title>cairo_region_union ()</title> <indexterm zone="cairo-region-union" role="1.10"><primary sortas="region_union">cairo_region_union</primary></indexterm> <programlisting><link linkend="cairo-status-t"><returnvalue>cairo_status_t</returnvalue></link> cairo_region_union (<parameter><link linkend="cairo-region-t"><type>cairo_region_t</type></link> *dst</parameter>, <parameter>const <link linkend="cairo-region-t"><type>cairo_region_t</type></link> *other</parameter>);</programlisting> <para> Computes the union of <parameter>dst</parameter> with <parameter>other</parameter> and places the result in <parameter>dst</parameter> </para><variablelist role="params"> <varlistentry><term><parameter>dst</parameter> :</term> <listitem><simpara>a <link linkend="cairo-region-t"><type>cairo_region_t</type></link> </simpara></listitem></varlistentry> <varlistentry><term><parameter>other</parameter> :</term> <listitem><simpara>another <link linkend="cairo-region-t"><type>cairo_region_t</type></link> </simpara></listitem></varlistentry> <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <link linkend="CAIRO-STATUS-SUCCESS:CAPS"><literal>CAIRO_STATUS_SUCCESS</literal></link> or <link linkend="CAIRO-STATUS-NO-MEMORY:CAPS"><literal>CAIRO_STATUS_NO_MEMORY</literal></link> </simpara></listitem></varlistentry> </variablelist><para role="since">Since 1.10</para></refsect2> <refsect2 id="cairo-region-union-rectangle" role="function" condition="since:1.10"> <title>cairo_region_union_rectangle ()</title> <indexterm zone="cairo-region-union-rectangle" role="1.10"><primary sortas="region_union_rectangle">cairo_region_union_rectangle</primary></indexterm> <programlisting><link linkend="cairo-status-t"><returnvalue>cairo_status_t</returnvalue></link> cairo_region_union_rectangle (<parameter><link linkend="cairo-region-t"><type>cairo_region_t</type></link> *dst</parameter>, <parameter>const <link linkend="cairo-rectangle-int-t"><type>cairo_rectangle_int_t</type></link> *rectangle</parameter>);</programlisting> <para> Computes the union of <parameter>dst</parameter> with <parameter>rectangle</parameter> and places the result in <parameter>dst</parameter>. </para><variablelist role="params"> <varlistentry><term><parameter>dst</parameter> :</term> <listitem><simpara>a <link linkend="cairo-region-t"><type>cairo_region_t</type></link> </simpara></listitem></varlistentry> <varlistentry><term><parameter>rectangle</parameter> :</term> <listitem><simpara>a <link linkend="cairo-rectangle-int-t"><type>cairo_rectangle_int_t</type></link> </simpara></listitem></varlistentry> <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <link linkend="CAIRO-STATUS-SUCCESS:CAPS"><literal>CAIRO_STATUS_SUCCESS</literal></link> or <link linkend="CAIRO-STATUS-NO-MEMORY:CAPS"><literal>CAIRO_STATUS_NO_MEMORY</literal></link> </simpara></listitem></varlistentry> </variablelist><para role="since">Since 1.10</para></refsect2> <refsect2 id="cairo-region-xor" role="function" condition="since:1.10"> <title>cairo_region_xor ()</title> <indexterm zone="cairo-region-xor" role="1.10"><primary sortas="region_xor">cairo_region_xor</primary></indexterm> <programlisting><link linkend="cairo-status-t"><returnvalue>cairo_status_t</returnvalue></link> cairo_region_xor (<parameter><link linkend="cairo-region-t"><type>cairo_region_t</type></link> *dst</parameter>, <parameter>const <link linkend="cairo-region-t"><type>cairo_region_t</type></link> *other</parameter>);</programlisting> <para> Computes the exclusive difference of <parameter>dst</parameter> with <parameter>other</parameter> and places the result in <parameter>dst</parameter>. That is, <parameter>dst</parameter> will be set to contain all areas that are either in <parameter>dst</parameter> or in <parameter>other</parameter>, but not in both. </para><variablelist role="params"> <varlistentry><term><parameter>dst</parameter> :</term> <listitem><simpara>a <link linkend="cairo-region-t"><type>cairo_region_t</type></link> </simpara></listitem></varlistentry> <varlistentry><term><parameter>other</parameter> :</term> <listitem><simpara>another <link linkend="cairo-region-t"><type>cairo_region_t</type></link> </simpara></listitem></varlistentry> <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <link linkend="CAIRO-STATUS-SUCCESS:CAPS"><literal>CAIRO_STATUS_SUCCESS</literal></link> or <link linkend="CAIRO-STATUS-NO-MEMORY:CAPS"><literal>CAIRO_STATUS_NO_MEMORY</literal></link> </simpara></listitem></varlistentry> </variablelist><para role="since">Since 1.10</para></refsect2> <refsect2 id="cairo-region-xor-rectangle" role="function" condition="since:1.10"> <title>cairo_region_xor_rectangle ()</title> <indexterm zone="cairo-region-xor-rectangle" role="1.10"><primary sortas="region_xor_rectangle">cairo_region_xor_rectangle</primary></indexterm> <programlisting><link linkend="cairo-status-t"><returnvalue>cairo_status_t</returnvalue></link> cairo_region_xor_rectangle (<parameter><link linkend="cairo-region-t"><type>cairo_region_t</type></link> *dst</parameter>, <parameter>const <link linkend="cairo-rectangle-int-t"><type>cairo_rectangle_int_t</type></link> *rectangle</parameter>);</programlisting> <para> Computes the exclusive difference of <parameter>dst</parameter> with <parameter>rectangle</parameter> and places the result in <parameter>dst</parameter>. That is, <parameter>dst</parameter> will be set to contain all areas that are either in <parameter>dst</parameter> or in <parameter>rectangle</parameter>, but not in both. </para><variablelist role="params"> <varlistentry><term><parameter>dst</parameter> :</term> <listitem><simpara>a <link linkend="cairo-region-t"><type>cairo_region_t</type></link> </simpara></listitem></varlistentry> <varlistentry><term><parameter>rectangle</parameter> :</term> <listitem><simpara>a <link linkend="cairo-rectangle-int-t"><type>cairo_rectangle_int_t</type></link> </simpara></listitem></varlistentry> <varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <link linkend="CAIRO-STATUS-SUCCESS:CAPS"><literal>CAIRO_STATUS_SUCCESS</literal></link> or <link linkend="CAIRO-STATUS-NO-MEMORY:CAPS"><literal>CAIRO_STATUS_NO_MEMORY</literal></link> </simpara></listitem></varlistentry> </variablelist><para role="since">Since 1.10</para></refsect2> </refsect1> </refentry>