<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="GObject" version="2.0"/>
  <include name="Graphene" version="1.0"/>
  <package name="mutter-mtk-15"/>
  <c:include name="mtk/mtk.h"/>
  <namespace name="Mtk"
             version="15"
             shared-library="libmutter-mtk-15.so.0"
             c:identifier-prefixes="Mtk"
             c:symbol-prefixes="mtk">
    <constant name="MONITOR_ALL_TRANSFORMS"
              value="0"
              c:type="MTK_MONITOR_ALL_TRANSFORMS">
      <source-position filename="mtk/mtk/mtk-monitor-transform.h" line="44"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MONITOR_N_TRANSFORMS"
              value="8"
              c:type="MTK_MONITOR_N_TRANSFORMS">
      <source-position filename="mtk/mtk/mtk-monitor-transform.h" line="43"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <enumeration name="MonitorTransform" c:type="MtkMonitorTransform">
      <source-position filename="mtk/mtk/mtk-monitor-transform.h" line="41"/>
      <member name="normal"
              value="0"
              c:identifier="MTK_MONITOR_TRANSFORM_NORMAL">
      </member>
      <member name="90" value="1" c:identifier="MTK_MONITOR_TRANSFORM_90">
      </member>
      <member name="180" value="2" c:identifier="MTK_MONITOR_TRANSFORM_180">
      </member>
      <member name="270" value="3" c:identifier="MTK_MONITOR_TRANSFORM_270">
      </member>
      <member name="flipped"
              value="4"
              c:identifier="MTK_MONITOR_TRANSFORM_FLIPPED">
      </member>
      <member name="flipped_90"
              value="5"
              c:identifier="MTK_MONITOR_TRANSFORM_FLIPPED_90">
      </member>
      <member name="flipped_180"
              value="6"
              c:identifier="MTK_MONITOR_TRANSFORM_FLIPPED_180">
      </member>
      <member name="flipped_270"
              value="7"
              c:identifier="MTK_MONITOR_TRANSFORM_FLIPPED_270">
      </member>
    </enumeration>
    <function-macro name="RECTANGLE_CREATE_ARRAY_SCOPED"
                    c:identifier="MTK_RECTANGLE_CREATE_ARRAY_SCOPED"
                    introspectable="0">
      <source-position filename="mtk/mtk/mtk-rectangle.h" line="42"/>
      <parameters>
        <parameter name="n_rects">
        </parameter>
        <parameter name="rects">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RECTANGLE_INIT"
                    c:identifier="MTK_RECTANGLE_INIT"
                    introspectable="0">
      <source-position filename="mtk/mtk/mtk-rectangle.h" line="66"/>
      <parameters>
        <parameter name="_x">
        </parameter>
        <parameter name="_y">
        </parameter>
        <parameter name="_width">
        </parameter>
        <parameter name="_height">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="RECTANGLE_MAX_STACK_RECTS"
              value="256"
              c:type="MTK_RECTANGLE_MAX_STACK_RECTS">
      <source-position filename="mtk/mtk/mtk-rectangle.h" line="40"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="REGION_BUILDER_MAX_LEVELS"
              value="16"
              c:type="MTK_REGION_BUILDER_MAX_LEVELS">
      <source-position filename="mtk/mtk/mtk-region.h" line="182"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <record name="Rectangle"
            c:type="MtkRectangle"
            glib:type-name="MtkRectangle"
            glib:get-type="mtk_rectangle_get_type"
            c:symbol-prefix="rectangle">
      <source-position filename="mtk/mtk/mtk-rectangle.h" line="62"/>
      <field name="x" writable="1">
        <doc xml:space="preserve"
             filename="mtk/mtk/mtk-rectangle.h"
             line="51">X coordinate of the top-left corner</doc>
        <type name="gint" c:type="int"/>
      </field>
      <field name="y" writable="1">
        <doc xml:space="preserve"
             filename="mtk/mtk/mtk-rectangle.h"
             line="52">Y coordinate of the top-left corner</doc>
        <type name="gint" c:type="int"/>
      </field>
      <field name="width" writable="1">
        <doc xml:space="preserve"
             filename="mtk/mtk/mtk-rectangle.h"
             line="53">Width of the rectangle</doc>
        <type name="gint" c:type="int"/>
      </field>
      <field name="height" writable="1">
        <doc xml:space="preserve"
             filename="mtk/mtk/mtk-rectangle.h"
             line="54">Height of the rectangle</doc>
        <type name="gint" c:type="int"/>
      </field>
      <constructor name="new" c:identifier="mtk_rectangle_new">
        <doc xml:space="preserve"
             filename="mtk/mtk/mtk-rectangle.c"
             line="41">Creates a new rectangle</doc>
        <source-position filename="mtk/mtk/mtk-rectangle.h" line="85"/>
        <return-value transfer-ownership="full">
          <type name="Rectangle" c:type="MtkRectangle*"/>
        </return-value>
        <parameters>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-rectangle.c"
                 line="43">X coordinate of the top left corner</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-rectangle.c"
                 line="44">Y coordinate of the top left corner</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-rectangle.c"
                 line="45">Width of the rectangle</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-rectangle.c"
                 line="46">Height of the rectangle</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_empty" c:identifier="mtk_rectangle_new_empty">
        <source-position filename="mtk/mtk/mtk-rectangle.h" line="91"/>
        <return-value transfer-ownership="full">
          <type name="Rectangle" c:type="MtkRectangle*"/>
        </return-value>
      </constructor>
      <method name="area" c:identifier="mtk_rectangle_area">
        <source-position filename="mtk/mtk/mtk-rectangle.h" line="95"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="mtk/mtk/mtk-rectangle.c"
               line="77">The area of the rectangle</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="rect" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-rectangle.c"
                 line="75">A rectangle</doc>
            <type name="Rectangle" c:type="const MtkRectangle*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="contains_point"
              c:identifier="mtk_rectangle_contains_point">
        <source-position filename="mtk/mtk/mtk-rectangle.h" line="132"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="mtk/mtk/mtk-rectangle.c"
               line="293">Whether the rectangle contains the point</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="rect" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-rectangle.c"
                 line="289">A rectangle</doc>
            <type name="Rectangle" c:type="const MtkRectangle*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-rectangle.c"
                 line="290">X coordinate of the point</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-rectangle.c"
                 line="291">Y coordinate of the point</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="contains_pointf"
              c:identifier="mtk_rectangle_contains_pointf">
        <source-position filename="mtk/mtk/mtk-rectangle.h" line="136"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="mtk/mtk/mtk-rectangle.c"
               line="309">Whether the rectangle contains the point</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="rect" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-rectangle.c"
                 line="305">A rectangle</doc>
            <type name="Rectangle" c:type="const MtkRectangle*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-rectangle.c"
                 line="306">X coordinate of the point</doc>
            <type name="gfloat" c:type="float"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-rectangle.c"
                 line="307">Y coordinate of the point</doc>
            <type name="gfloat" c:type="float"/>
          </parameter>
        </parameters>
      </method>
      <method name="contains_rect" c:identifier="mtk_rectangle_contains_rect">
        <source-position filename="mtk/mtk/mtk-rectangle.h" line="129"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="mtk/mtk/mtk-rectangle.c"
               line="274">Whether the outer rectangle contains the inner one</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="outer_rect" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-rectangle.c"
                 line="271">The outer rectangle</doc>
            <type name="Rectangle" c:type="const MtkRectangle*"/>
          </instance-parameter>
          <parameter name="inner_rect" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-rectangle.c"
                 line="272">The inner rectangle</doc>
            <type name="Rectangle" c:type="const MtkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="copy" c:identifier="mtk_rectangle_copy">
        <source-position filename="mtk/mtk/mtk-rectangle.h" line="78"/>
        <return-value transfer-ownership="full">
          <type name="Rectangle" c:type="MtkRectangle*"/>
        </return-value>
        <parameters>
          <instance-parameter name="rect" transfer-ownership="none">
            <type name="Rectangle" c:type="const MtkRectangle*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="could_fit_rect"
              c:identifier="mtk_rectangle_could_fit_rect">
        <source-position filename="mtk/mtk/mtk-rectangle.h" line="125"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="mtk/mtk/mtk-rectangle.c"
               line="259">Whether the inner rectangle could fit inside the outer one</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="outer_rect" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-rectangle.c"
                 line="256">The outer rectangle</doc>
            <type name="Rectangle" c:type="const MtkRectangle*"/>
          </instance-parameter>
          <parameter name="inner_rect" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-rectangle.c"
                 line="257">The inner rectangle</doc>
            <type name="Rectangle" c:type="const MtkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="crop_and_scale"
              c:identifier="mtk_rectangle_crop_and_scale">
        <source-position filename="mtk/mtk/mtk-rectangle.h" line="149"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="rect" transfer-ownership="none">
            <type name="Rectangle" c:type="const MtkRectangle*"/>
          </instance-parameter>
          <parameter name="src_rect" transfer-ownership="none">
            <type name="Graphene.Rect" c:type="const graphene_rect_t*"/>
          </parameter>
          <parameter name="dst_width" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="dst_height" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="dest" transfer-ownership="none">
            <type name="Rectangle" c:type="MtkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="equal" c:identifier="mtk_rectangle_equal">
        <doc xml:space="preserve"
             filename="mtk/mtk/mtk-rectangle.c"
             line="86">Compares the two rectangles</doc>
        <source-position filename="mtk/mtk/mtk-rectangle.h" line="98"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="mtk/mtk/mtk-rectangle.c"
               line="93">Whether the two rectangles are equal</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="src1" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-rectangle.c"
                 line="88">The first rectangle</doc>
            <type name="Rectangle" c:type="const MtkRectangle*"/>
          </instance-parameter>
          <parameter name="src2" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-rectangle.c"
                 line="89">The second rectangle</doc>
            <type name="Rectangle" c:type="const MtkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="mtk_rectangle_free">
        <source-position filename="mtk/mtk/mtk-rectangle.h" line="81"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="rect" transfer-ownership="none">
            <type name="Rectangle" c:type="MtkRectangle*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="horiz_overlap" c:identifier="mtk_rectangle_horiz_overlap">
        <doc xml:space="preserve"
             filename="mtk/mtk/mtk-rectangle.c"
             line="237">Similar to [method@Rectangle.overlap] but ignores the vertical location.</doc>
        <source-position filename="mtk/mtk/mtk-rectangle.h" line="121"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="mtk/mtk/mtk-rectangle.c"
               line="244">Whether the two rectangles overlap horizontally</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="rect1" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-rectangle.c"
                 line="239">The first rectangle</doc>
            <type name="Rectangle" c:type="const MtkRectangle*"/>
          </instance-parameter>
          <parameter name="rect2" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-rectangle.c"
                 line="240">The second rectangle</doc>
            <type name="Rectangle" c:type="const MtkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="intersect" c:identifier="mtk_rectangle_intersect">
        <doc xml:space="preserve"
             filename="mtk/mtk/mtk-rectangle.c"
             line="148">Find the intersection between the two rectangles</doc>
        <source-position filename="mtk/mtk/mtk-rectangle.h" line="108"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="mtk/mtk/mtk-rectangle.c"
               line="157">TRUE is some intersection exists and is not degenerate, FALSE
  otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="src1" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-rectangle.c"
                 line="150">a #MtkRectangle</doc>
            <type name="Rectangle" c:type="const MtkRectangle*"/>
          </instance-parameter>
          <parameter name="src2" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-rectangle.c"
                 line="151">another #MtkRectangle</doc>
            <type name="Rectangle" c:type="const MtkRectangle*"/>
          </parameter>
          <parameter name="dest"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-rectangle.c"
                 line="152">an empty #MtkRectangle, to be filled
  with the coordinates of the intersection.</doc>
            <type name="Rectangle" c:type="MtkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_adjacent_to"
              c:identifier="mtk_rectangle_is_adjacent_to">
        <source-position filename="mtk/mtk/mtk-rectangle.h" line="162"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="rect" transfer-ownership="none">
            <type name="Rectangle" c:type="const MtkRectangle*"/>
          </instance-parameter>
          <parameter name="other" transfer-ownership="none">
            <type name="Rectangle" c:type="const MtkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="overlap" c:identifier="mtk_rectangle_overlap">
        <doc xml:space="preserve"
             filename="mtk/mtk/mtk-rectangle.c"
             line="197">Similar to [method@Rectangle.intersect] but doesn't provide
the location of the intersection.</doc>
        <source-position filename="mtk/mtk/mtk-rectangle.h" line="113"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="mtk/mtk/mtk-rectangle.c"
               line="205">Whether the two rectangles overlap</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="rect1" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-rectangle.c"
                 line="199">The first rectangle</doc>
            <type name="Rectangle" c:type="const MtkRectangle*"/>
          </instance-parameter>
          <parameter name="rect2" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-rectangle.c"
                 line="200">The second rectangle</doc>
            <type name="Rectangle" c:type="const MtkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="scale_double" c:identifier="mtk_rectangle_scale_double">
        <source-position filename="mtk/mtk/mtk-rectangle.h" line="156"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="rect" transfer-ownership="none">
            <type name="Rectangle" c:type="const MtkRectangle*"/>
          </instance-parameter>
          <parameter name="scale" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="rounding_strategy" transfer-ownership="none">
            <type name="RoundingStrategy" c:type="MtkRoundingStrategy"/>
          </parameter>
          <parameter name="dest" transfer-ownership="none">
            <type name="Rectangle" c:type="MtkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_graphene_rect"
              c:identifier="mtk_rectangle_to_graphene_rect">
        <source-position filename="mtk/mtk/mtk-rectangle.h" line="141"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="mtk/mtk/mtk-rectangle.c"
               line="326">Return a graphene_rect_t created from `rect`</doc>
          <type name="Graphene.Rect" c:type="graphene_rect_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="rect" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-rectangle.c"
                 line="324">A rectangle</doc>
            <type name="Rectangle" c:type="const MtkRectangle*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="transform" c:identifier="mtk_rectangle_transform">
        <doc xml:space="preserve"
             filename="mtk/mtk/mtk-rectangle.c"
             line="448">This function transforms the values in @rect in order to compensate for
@transform applied to a #MetaMonitor, making them match the viewport. Note
that compensating implies that for a clockwise rotation of the #MetaMonitor
an anti-clockwise rotation has to be applied to @rect.</doc>
        <source-position filename="mtk/mtk/mtk-rectangle.h" line="168"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="rect" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-rectangle.c"
                 line="450">the #MtkRectangle to be transformed</doc>
            <type name="Rectangle" c:type="const MtkRectangle*"/>
          </instance-parameter>
          <parameter name="transform" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-rectangle.c"
                 line="451">the #MtkMonitorTransform</doc>
            <type name="MonitorTransform" c:type="MtkMonitorTransform"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-rectangle.c"
                 line="452">the width of the target space</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-rectangle.c"
                 line="453">the height of the target space</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="dest" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-rectangle.c"
                 line="454">the transformed #MtkRectangle</doc>
            <type name="Rectangle" c:type="MtkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="union" c:identifier="mtk_rectangle_union">
        <doc xml:space="preserve"
             filename="mtk/mtk/mtk-rectangle.c"
             line="105">Computes the union of the two rectangles</doc>
        <source-position filename="mtk/mtk/mtk-rectangle.h" line="103"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="rect1" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-rectangle.c"
                 line="107">a #MtkRectangle</doc>
            <type name="Rectangle" c:type="const MtkRectangle*"/>
          </instance-parameter>
          <parameter name="rect2" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-rectangle.c"
                 line="108">another #MtkRectangle</doc>
            <type name="Rectangle" c:type="const MtkRectangle*"/>
          </parameter>
          <parameter name="dest"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-rectangle.c"
                 line="109">an empty #MtkRectangle, to be filled
  with the coordinates of the bounding box.</doc>
            <type name="Rectangle" c:type="MtkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="vert_overlap" c:identifier="mtk_rectangle_vert_overlap">
        <doc xml:space="preserve"
             filename="mtk/mtk/mtk-rectangle.c"
             line="220">Similar to [method@Rectangle.overlap] but ignores the horizontal location.</doc>
        <source-position filename="mtk/mtk/mtk-rectangle.h" line="117"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="mtk/mtk/mtk-rectangle.c"
               line="227">Whether the two rectangles overlap vertically</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="rect1" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-rectangle.c"
                 line="222">The first rectangle</doc>
            <type name="Rectangle" c:type="const MtkRectangle*"/>
          </instance-parameter>
          <parameter name="rect2" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-rectangle.c"
                 line="223">The second rectangle</doc>
            <type name="Rectangle" c:type="const MtkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <function name="from_graphene_rect"
                c:identifier="mtk_rectangle_from_graphene_rect">
        <source-position filename="mtk/mtk/mtk-rectangle.h" line="144"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="rect" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-rectangle.c"
                 line="345">A rectangle</doc>
            <type name="Graphene.Rect" c:type="const graphene_rect_t*"/>
          </parameter>
          <parameter name="rounding_strategy" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-rectangle.c"
                 line="346">The rounding strategy</doc>
            <type name="RoundingStrategy" c:type="MtkRoundingStrategy"/>
          </parameter>
          <parameter name="dest"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-rectangle.c"
                 line="347">an empty #MtkRectangle, to be filled
  with the coordinates of `rect`.</doc>
            <type name="Rectangle" c:type="MtkRectangle*"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <record name="Region"
            c:type="MtkRegion"
            opaque="1"
            glib:type-name="MtkRegion"
            glib:get-type="mtk_region_get_type"
            c:symbol-prefix="region">
      <source-position filename="mtk/mtk/mtk-region.h" line="38"/>
      <method name="apply_matrix_transform_expand"
              c:identifier="mtk_region_apply_matrix_transform_expand">
        <source-position filename="mtk/mtk/mtk-region.h" line="128"/>
        <return-value transfer-ownership="full">
          <type name="Region" c:type="MtkRegion*"/>
        </return-value>
        <parameters>
          <instance-parameter name="region" transfer-ownership="none">
            <type name="Region" c:type="const MtkRegion*"/>
          </instance-parameter>
          <parameter name="transform" transfer-ownership="none">
            <type name="Graphene.Matrix" c:type="graphene_matrix_t*"/>
          </parameter>
        </parameters>
      </method>
      <method name="contains_point" c:identifier="mtk_region_contains_point">
        <source-position filename="mtk/mtk/mtk-region.h" line="74"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="region" transfer-ownership="none">
            <type name="Region" c:type="MtkRegion*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="contains_rectangle"
              c:identifier="mtk_region_contains_rectangle">
        <source-position filename="mtk/mtk/mtk-region.h" line="114"/>
        <return-value transfer-ownership="none">
          <type name="RegionOverlap" c:type="MtkRegionOverlap"/>
        </return-value>
        <parameters>
          <instance-parameter name="region" transfer-ownership="none">
            <type name="Region" c:type="const MtkRegion*"/>
          </instance-parameter>
          <parameter name="rect" transfer-ownership="none">
            <type name="Rectangle" c:type="const MtkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="copy" c:identifier="mtk_region_copy">
        <source-position filename="mtk/mtk/mtk-region.h" line="44"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="mtk/mtk/mtk-region.c"
               line="87">A copy of the passed region</doc>
          <type name="Region" c:type="MtkRegion*"/>
        </return-value>
        <parameters>
          <instance-parameter name="region" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-region.c"
                 line="85">The region to copy</doc>
            <type name="Region" c:type="const MtkRegion*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="crop_and_scale" c:identifier="mtk_region_crop_and_scale">
        <source-position filename="mtk/mtk/mtk-region.h" line="122"/>
        <return-value transfer-ownership="full">
          <type name="Region" c:type="MtkRegion*"/>
        </return-value>
        <parameters>
          <instance-parameter name="region" transfer-ownership="none">
            <type name="Region" c:type="MtkRegion*"/>
          </instance-parameter>
          <parameter name="src_rect" transfer-ownership="none">
            <type name="Graphene.Rect" c:type="graphene_rect_t*"/>
          </parameter>
          <parameter name="dst_width" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="dst_height" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="equal" c:identifier="mtk_region_equal">
        <source-position filename="mtk/mtk/mtk-region.h" line="56"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="region" transfer-ownership="none">
            <type name="Region" c:type="const MtkRegion*"/>
          </instance-parameter>
          <parameter name="other" transfer-ownership="none">
            <type name="Region" c:type="const MtkRegion*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_extents" c:identifier="mtk_region_get_extents">
        <source-position filename="mtk/mtk/mtk-region.h" line="63"/>
        <return-value transfer-ownership="full">
          <type name="Rectangle" c:type="MtkRectangle"/>
        </return-value>
        <parameters>
          <instance-parameter name="region" transfer-ownership="none">
            <type name="Region" c:type="const MtkRegion*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_rectangle" c:identifier="mtk_region_get_rectangle">
        <source-position filename="mtk/mtk/mtk-region.h" line="103"/>
        <return-value transfer-ownership="full">
          <type name="Rectangle" c:type="MtkRectangle"/>
        </return-value>
        <parameters>
          <instance-parameter name="region" transfer-ownership="none">
            <type name="Region" c:type="const MtkRegion*"/>
          </instance-parameter>
          <parameter name="nth" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="intersect" c:identifier="mtk_region_intersect">
        <source-position filename="mtk/mtk/mtk-region.h" line="95"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="region" transfer-ownership="none">
            <type name="Region" c:type="MtkRegion*"/>
          </instance-parameter>
          <parameter name="other" transfer-ownership="none">
            <type name="Region" c:type="const MtkRegion*"/>
          </parameter>
        </parameters>
      </method>
      <method name="intersect_rectangle"
              c:identifier="mtk_region_intersect_rectangle">
        <source-position filename="mtk/mtk/mtk-region.h" line="99"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="region" transfer-ownership="none">
            <type name="Region" c:type="MtkRegion*"/>
          </instance-parameter>
          <parameter name="rect" transfer-ownership="none">
            <type name="Rectangle" c:type="const MtkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_empty" c:identifier="mtk_region_is_empty">
        <source-position filename="mtk/mtk/mtk-region.h" line="60"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="region" transfer-ownership="none">
            <type name="Region" c:type="const MtkRegion*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="num_rectangles" c:identifier="mtk_region_num_rectangles">
        <source-position filename="mtk/mtk/mtk-region.h" line="66"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="region" transfer-ownership="none">
            <type name="Region" c:type="const MtkRegion*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="mtk_region_ref">
        <doc xml:space="preserve"
             filename="mtk/mtk/mtk-region.c"
             line="35">Increases the reference count</doc>
        <source-position filename="mtk/mtk/mtk-region.h" line="47"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="mtk/mtk/mtk-region.c"
               line="41">The region</doc>
          <type name="Region" c:type="MtkRegion*"/>
        </return-value>
        <parameters>
          <instance-parameter name="region" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-region.c"
                 line="37">A region</doc>
            <type name="Region" c:type="MtkRegion*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="scale" c:identifier="mtk_region_scale">
        <source-position filename="mtk/mtk/mtk-region.h" line="118"/>
        <return-value transfer-ownership="full">
          <type name="Region" c:type="MtkRegion*"/>
        </return-value>
        <parameters>
          <instance-parameter name="region" transfer-ownership="none">
            <type name="Region" c:type="MtkRegion*"/>
          </instance-parameter>
          <parameter name="scale" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="subtract" c:identifier="mtk_region_subtract">
        <source-position filename="mtk/mtk/mtk-region.h" line="91"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="region" transfer-ownership="none">
            <type name="Region" c:type="MtkRegion*"/>
          </instance-parameter>
          <parameter name="other" transfer-ownership="none">
            <type name="Region" c:type="const MtkRegion*"/>
          </parameter>
        </parameters>
      </method>
      <method name="subtract_rectangle"
              c:identifier="mtk_region_subtract_rectangle">
        <source-position filename="mtk/mtk/mtk-region.h" line="87"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="region" transfer-ownership="none">
            <type name="Region" c:type="MtkRegion*"/>
          </instance-parameter>
          <parameter name="rect" transfer-ownership="none">
            <type name="Rectangle" c:type="const MtkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="translate" c:identifier="mtk_region_translate">
        <source-position filename="mtk/mtk/mtk-region.h" line="69"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="region" transfer-ownership="none">
            <type name="Region" c:type="MtkRegion*"/>
          </instance-parameter>
          <parameter name="dx" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="dy" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="union" c:identifier="mtk_region_union">
        <source-position filename="mtk/mtk/mtk-region.h" line="79"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="region" transfer-ownership="none">
            <type name="Region" c:type="MtkRegion*"/>
          </instance-parameter>
          <parameter name="other" transfer-ownership="none">
            <type name="Region" c:type="const MtkRegion*"/>
          </parameter>
        </parameters>
      </method>
      <method name="union_rectangle" c:identifier="mtk_region_union_rectangle">
        <source-position filename="mtk/mtk/mtk-region.h" line="83"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="region" transfer-ownership="none">
            <type name="Region" c:type="MtkRegion*"/>
          </instance-parameter>
          <parameter name="rect" transfer-ownership="none">
            <type name="Rectangle" c:type="const MtkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="mtk_region_unref">
        <source-position filename="mtk/mtk/mtk-region.h" line="50"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="region" transfer-ownership="none">
            <type name="Region" c:type="MtkRegion*"/>
          </instance-parameter>
        </parameters>
      </method>
      <function name="create" c:identifier="mtk_region_create">
        <source-position filename="mtk/mtk/mtk-region.h" line="53"/>
        <return-value transfer-ownership="full">
          <type name="Region" c:type="MtkRegion*"/>
        </return-value>
      </function>
      <function name="create_rectangle"
                c:identifier="mtk_region_create_rectangle">
        <source-position filename="mtk/mtk/mtk-region.h" line="107"/>
        <return-value transfer-ownership="full">
          <type name="Region" c:type="MtkRegion*"/>
        </return-value>
        <parameters>
          <parameter name="rect" transfer-ownership="none">
            <type name="Rectangle" c:type="const MtkRectangle*"/>
          </parameter>
        </parameters>
      </function>
      <function name="create_rectangles"
                c:identifier="mtk_region_create_rectangles">
        <source-position filename="mtk/mtk/mtk-region.h" line="110"/>
        <return-value transfer-ownership="full">
          <type name="Region" c:type="MtkRegion*"/>
        </return-value>
        <parameters>
          <parameter name="rects" transfer-ownership="none">
            <type name="Rectangle" c:type="const MtkRectangle*"/>
          </parameter>
          <parameter name="n_rects" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <record name="RegionBuilder" c:type="MtkRegionBuilder">
      <source-position filename="mtk/mtk/mtk-region.h" line="197"/>
      <field name="levels" writable="1">
        <array zero-terminated="0" fixed-size="16">
          <type name="Region" c:type="MtkRegion*"/>
        </array>
      </field>
      <field name="n_levels" writable="1">
        <type name="gint" c:type="int"/>
      </field>
      <method name="add_rectangle"
              c:identifier="mtk_region_builder_add_rectangle">
        <source-position filename="mtk/mtk/mtk-region.h" line="203"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="builder" transfer-ownership="none">
            <type name="RegionBuilder" c:type="MtkRegionBuilder*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="finish" c:identifier="mtk_region_builder_finish">
        <source-position filename="mtk/mtk/mtk-region.h" line="210"/>
        <return-value transfer-ownership="full">
          <type name="Region" c:type="MtkRegion*"/>
        </return-value>
        <parameters>
          <instance-parameter name="builder" transfer-ownership="none">
            <type name="RegionBuilder" c:type="MtkRegionBuilder*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="init" c:identifier="mtk_region_builder_init">
        <source-position filename="mtk/mtk/mtk-region.h" line="200"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="builder" transfer-ownership="none">
            <type name="RegionBuilder" c:type="MtkRegionBuilder*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <record name="RegionIterator" c:type="MtkRegionIterator">
      <doc xml:space="preserve"
           filename="mtk/mtk/mtk-region.h"
           line="133">MtkRegion is a yx banded region; sometimes its useful to iterate through
such a region treating the start and end of each horizontal band in a distinct
fashion.

Usage:

```c
 MtkRegionIterator iter;
 for (mtk_region_iterator_init (&amp;iter, region);
      !mtk_region_iterator_at_end (&amp;iter);
      mtk_region_iterator_next (&amp;iter))
 {
   [ Use iter.rectangle, iter.line_start, iter.line_end ]
 }
```</doc>
      <source-position filename="mtk/mtk/mtk-region.h" line="168"/>
      <field name="region" writable="1">
        <doc xml:space="preserve"
             filename="mtk/mtk/mtk-region.h"
             line="135">region being iterated</doc>
        <type name="Region" c:type="MtkRegion*"/>
      </field>
      <field name="rectangle" writable="1">
        <doc xml:space="preserve"
             filename="mtk/mtk/mtk-region.h"
             line="136">current rectangle</doc>
        <type name="Rectangle" c:type="MtkRectangle"/>
      </field>
      <field name="line_start" writable="1">
        <doc xml:space="preserve"
             filename="mtk/mtk/mtk-region.h"
             line="137">whether the current rectangle starts a horizontal band</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="line_end" writable="1">
        <doc xml:space="preserve"
             filename="mtk/mtk/mtk-region.h"
             line="138">whether the current rectangle ends a horizontal band</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="i" writable="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="n_rectangles" readable="0" private="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="next_rectangle" readable="0" private="1">
        <type name="Rectangle" c:type="MtkRectangle"/>
      </field>
      <method name="at_end" c:identifier="mtk_region_iterator_at_end">
        <source-position filename="mtk/mtk/mtk-region.h" line="175"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <type name="RegionIterator" c:type="MtkRegionIterator*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="init" c:identifier="mtk_region_iterator_init">
        <source-position filename="mtk/mtk/mtk-region.h" line="171"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <type name="RegionIterator" c:type="MtkRegionIterator*"/>
          </instance-parameter>
          <parameter name="region" transfer-ownership="none">
            <type name="Region" c:type="MtkRegion*"/>
          </parameter>
        </parameters>
      </method>
      <method name="next" c:identifier="mtk_region_iterator_next">
        <source-position filename="mtk/mtk/mtk-region.h" line="178"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="iter" transfer-ownership="none">
            <type name="RegionIterator" c:type="MtkRegionIterator*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <enumeration name="RegionOverlap" c:type="MtkRegionOverlap">
      <source-position filename="mtk/mtk/mtk-region.h" line="36"/>
      <member name="out" value="0" c:identifier="MTK_REGION_OVERLAP_OUT">
      </member>
      <member name="in" value="1" c:identifier="MTK_REGION_OVERLAP_IN">
      </member>
      <member name="part" value="2" c:identifier="MTK_REGION_OVERLAP_PART">
      </member>
    </enumeration>
    <enumeration name="RoundingStrategy" c:type="MtkRoundingStrategy">
      <source-position filename="mtk/mtk/mtk-rectangle.h" line="37"/>
      <member name="shrink"
              value="0"
              c:identifier="MTK_ROUNDING_STRATEGY_SHRINK">
      </member>
      <member name="grow" value="1" c:identifier="MTK_ROUNDING_STRATEGY_GROW">
      </member>
      <member name="round"
              value="2"
              c:identifier="MTK_ROUNDING_STRATEGY_ROUND">
      </member>
    </enumeration>
    <function name="compute_viewport_matrix"
              c:identifier="mtk_compute_viewport_matrix">
      <source-position filename="mtk/mtk/mtk-utils.h" line="26"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="matrix" transfer-ownership="none">
          <type name="Graphene.Matrix" c:type="graphene_matrix_t*"/>
        </parameter>
        <parameter name="width" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="scale" transfer-ownership="none">
          <type name="gfloat" c:type="float"/>
        </parameter>
        <parameter name="transform" transfer-ownership="none">
          <type name="MonitorTransform" c:type="MtkMonitorTransform"/>
        </parameter>
        <parameter name="src_rect" transfer-ownership="none">
          <type name="Graphene.Rect" c:type="const graphene_rect_t*"/>
        </parameter>
      </parameters>
    </function>
    <function name="monitor_transform_from_string"
              c:identifier="mtk_monitor_transform_from_string">
      <source-position filename="mtk/mtk/mtk-monitor-transform.h" line="83"/>
      <return-value transfer-ownership="none">
        <type name="MonitorTransform" c:type="MtkMonitorTransform"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="monitor_transform_invert"
              c:identifier="mtk_monitor_transform_invert">
      <source-position filename="mtk/mtk/mtk-monitor-transform.h" line="62"/>
      <return-value transfer-ownership="none">
        <type name="MonitorTransform" c:type="MtkMonitorTransform"/>
      </return-value>
      <parameters>
        <parameter name="transform" transfer-ownership="none">
          <type name="MonitorTransform" c:type="MtkMonitorTransform"/>
        </parameter>
      </parameters>
    </function>
    <function name="monitor_transform_to_string"
              c:identifier="mtk_monitor_transform_to_string">
      <source-position filename="mtk/mtk/mtk-monitor-transform.h" line="80"/>
      <return-value transfer-ownership="none">
        <type name="utf8" c:type="const char*"/>
      </return-value>
      <parameters>
        <parameter name="transform" transfer-ownership="none">
          <type name="MonitorTransform" c:type="MtkMonitorTransform"/>
        </parameter>
      </parameters>
    </function>
    <function name="monitor_transform_transform"
              c:identifier="mtk_monitor_transform_transform">
      <source-position filename="mtk/mtk/mtk-monitor-transform.h" line="65"/>
      <return-value transfer-ownership="none">
        <type name="MonitorTransform" c:type="MtkMonitorTransform"/>
      </return-value>
      <parameters>
        <parameter name="transform" transfer-ownership="none">
          <type name="MonitorTransform" c:type="MtkMonitorTransform"/>
        </parameter>
        <parameter name="other" transfer-ownership="none">
          <type name="MonitorTransform" c:type="MtkMonitorTransform"/>
        </parameter>
      </parameters>
    </function>
    <function name="monitor_transform_transform_matrix"
              c:identifier="mtk_monitor_transform_transform_matrix">
      <source-position filename="mtk/mtk/mtk-monitor-transform.h" line="76"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="transform" transfer-ownership="none">
          <type name="MonitorTransform" c:type="MtkMonitorTransform"/>
        </parameter>
        <parameter name="matrix" transfer-ownership="none">
          <type name="Graphene.Matrix" c:type="graphene_matrix_t*"/>
        </parameter>
      </parameters>
    </function>
    <function name="monitor_transform_transform_point"
              c:identifier="mtk_monitor_transform_transform_point">
      <source-position filename="mtk/mtk/mtk-monitor-transform.h" line="69"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="transform" transfer-ownership="none">
          <type name="MonitorTransform" c:type="MtkMonitorTransform"/>
        </parameter>
        <parameter name="area_width" transfer-ownership="none">
          <type name="gint" c:type="int*"/>
        </parameter>
        <parameter name="area_height" transfer-ownership="none">
          <type name="gint" c:type="int*"/>
        </parameter>
        <parameter name="point_x" transfer-ownership="none">
          <type name="gint" c:type="int*"/>
        </parameter>
        <parameter name="point_y" transfer-ownership="none">
          <type name="gint" c:type="int*"/>
        </parameter>
      </parameters>
    </function>
    <function name="rectangle_from_graphene_rect"
              c:identifier="mtk_rectangle_from_graphene_rect"
              moved-to="Rectangle.from_graphene_rect">
      <source-position filename="mtk/mtk/mtk-rectangle.h" line="144"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="rect" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="mtk/mtk/mtk-rectangle.c"
               line="345">A rectangle</doc>
          <type name="Graphene.Rect" c:type="const graphene_rect_t*"/>
        </parameter>
        <parameter name="rounding_strategy" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="mtk/mtk/mtk-rectangle.c"
               line="346">The rounding strategy</doc>
          <type name="RoundingStrategy" c:type="MtkRoundingStrategy"/>
        </parameter>
        <parameter name="dest"
                   direction="out"
                   caller-allocates="1"
                   transfer-ownership="none">
          <doc xml:space="preserve"
               filename="mtk/mtk/mtk-rectangle.c"
               line="347">an empty #MtkRectangle, to be filled
  with the coordinates of `rect`.</doc>
          <type name="Rectangle" c:type="MtkRectangle*"/>
        </parameter>
      </parameters>
    </function>
    <function name="region_create"
              c:identifier="mtk_region_create"
              moved-to="Region.create">
      <source-position filename="mtk/mtk/mtk-region.h" line="53"/>
      <return-value transfer-ownership="full">
        <type name="Region" c:type="MtkRegion*"/>
      </return-value>
    </function>
    <function name="region_create_rectangle"
              c:identifier="mtk_region_create_rectangle"
              moved-to="Region.create_rectangle">
      <source-position filename="mtk/mtk/mtk-region.h" line="107"/>
      <return-value transfer-ownership="full">
        <type name="Region" c:type="MtkRegion*"/>
      </return-value>
      <parameters>
        <parameter name="rect" transfer-ownership="none">
          <type name="Rectangle" c:type="const MtkRectangle*"/>
        </parameter>
      </parameters>
    </function>
    <function name="region_create_rectangles"
              c:identifier="mtk_region_create_rectangles"
              moved-to="Region.create_rectangles">
      <source-position filename="mtk/mtk/mtk-region.h" line="110"/>
      <return-value transfer-ownership="full">
        <type name="Region" c:type="MtkRegion*"/>
      </return-value>
      <parameters>
        <parameter name="rects" transfer-ownership="none">
          <type name="Rectangle" c:type="const MtkRectangle*"/>
        </parameter>
        <parameter name="n_rects" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
