<?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:doc="http://www.gtk.org/introspection/doc/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-17"/>
  <c:include name="mtk/mtk.h"/>
  <doc:format name="gi-docgen"/>
  <namespace name="Mtk"
             version="17"
             shared-library="libmutter-mtk-17.so.0"
             c:identifier-prefixes="Mtk"
             c:symbol-prefixes="mtk">
    <record name="AnonymousFile"
            c:type="MtkAnonymousFile"
            disguised="1"
            opaque="1">
      <source-position filename="mtk/mtk/mtk-anonymous-file.h" line="27"/>
      <method name="free"
              c:identifier="mtk_anonymous_file_free"
              introspectable="0">
        <doc xml:space="preserve"
             filename="mtk/mtk/mtk-anonymous-file.c"
             line="230">Free the resources used by an anonymous read-only file.</doc>
        <source-position filename="mtk/mtk/mtk-anonymous-file.h" line="41"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-anonymous-file.c"
                 line="232">the #MetaAnonymousFile</doc>
            <type name="AnonymousFile" c:type="MtkAnonymousFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="open_fd"
              c:identifier="mtk_anonymous_file_open_fd"
              introspectable="0">
        <doc xml:space="preserve"
             filename="mtk/mtk/mtk-anonymous-file.c"
             line="257">Returns a file descriptor for the given file, ready to be sent to a client.
The returned file descriptor must not be shared between multiple clients.
If @mapmode is %MTK_ANONYMOUS_FILE_MAPMODE_PRIVATE the file descriptor is
only guaranteed to be mmapable with MAP_PRIVATE. If @mapmode is
%MTK_ANONYMOUS_FILE_MAPMODE_SHARED the file descriptor can be mmaped with
either MAP_PRIVATE or MAP_SHARED.

In case %MTK_ANONYMOUS_FILE_MAPMODE_PRIVATE is used, it is important to
only read the returned fd using mmap() since using read() will move the
read cursor of the fd and thus may cause read() calls on other returned
fds to fail.

When done using the fd, it is required to call mtk_anonymous_file_close_fd()
instead of close().

If this function fails errno is set.</doc>
        <source-position filename="mtk/mtk/mtk-anonymous-file.h" line="47"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="mtk/mtk/mtk-anonymous-file.c"
               line="280">A file descriptor for the given file that can be sent to a client
  or -1 on failure. Use mtk_anonymous_file_close_fd() to release the fd
  when done.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-anonymous-file.c"
                 line="259">the #MetaAnonymousFile to get a file descriptor for</doc>
            <type name="AnonymousFile" c:type="const MtkAnonymousFile*"/>
          </instance-parameter>
          <parameter name="mapmode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-anonymous-file.c"
                 line="260">describes the ways in which the returned file descriptor can
  be used with mmap</doc>
            <type name="AnonymousFileMapmode"
                  c:type="MtkAnonymousFileMapmode"/>
          </parameter>
        </parameters>
      </method>
      <method name="size"
              c:identifier="mtk_anonymous_file_size"
              introspectable="0">
        <doc xml:space="preserve"
             filename="mtk/mtk/mtk-anonymous-file.c"
             line="243">Get the size of an anonymous read-only file.</doc>
        <source-position filename="mtk/mtk/mtk-anonymous-file.h" line="44"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="mtk/mtk/mtk-anonymous-file.c"
               line="249">The size of the anonymous read-only file.</doc>
          <type name="gsize" c:type="size_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-anonymous-file.c"
                 line="245">the #MetaAnonymousFile</doc>
            <type name="AnonymousFile" c:type="const MtkAnonymousFile*"/>
          </instance-parameter>
        </parameters>
      </method>
      <function name="close_fd"
                c:identifier="mtk_anonymous_file_close_fd"
                introspectable="0">
        <doc xml:space="preserve"
             filename="mtk/mtk/mtk-anonymous-file.c"
             line="336">Release a file descriptor returned by mtk_anonymous_file_open_fd().
This function must be called for every file descriptor created with
mtk_anonymous_file_open_fd() to not leak any resources.

If this function fails errno is set.</doc>
        <source-position filename="mtk/mtk/mtk-anonymous-file.h" line="51"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="fd" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-anonymous-file.c"
                 line="338">A file descriptor obtained using mtk_anonymous_file_open_fd()</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </function>
      <function name="new"
                c:identifier="mtk_anonymous_file_new"
                introspectable="0">
        <doc xml:space="preserve"
             filename="mtk/mtk/mtk-anonymous-file.c"
             line="171">Create a new anonymous read-only file of the given size and the given data
The intended use-case is for sending mid-sized data from the compositor
to clients.

When done, free the data using mtk_anonymous_file_free().

If this function fails errno is set.

The name is used to as part of the file name.</doc>
        <source-position filename="mtk/mtk/mtk-anonymous-file.h" line="36"/>
        <return-value>
          <doc xml:space="preserve"
               filename="mtk/mtk/mtk-anonymous-file.c"
               line="187">The newly created #MetaAnonymousFile, or NULL on failure. Use
  mtk_anonymous_file_free() to free the resources when done.</doc>
          <type name="AnonymousFile" c:type="MtkAnonymousFile*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-anonymous-file.c"
                 line="173">Name of the file</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-anonymous-file.c"
                 line="174">The size of @data</doc>
            <type name="gsize" c:type="size_t"/>
          </parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="mtk/mtk/mtk-anonymous-file.c"
                 line="175">The data of the file with the size @size</doc>
            <type name="guint8" c:type="const uint8_t*"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <enumeration name="AnonymousFileMapmode" c:type="MtkAnonymousFileMapmode">
      <source-position filename="mtk/mtk/mtk-anonymous-file.h" line="33"/>
      <member name="private"
              value="0"
              c:identifier="MTK_ANONYMOUS_FILE_MAPMODE_PRIVATE">
      </member>
      <member name="shared"
              value="1"
              c:identifier="MTK_ANONYMOUS_FILE_MAPMODE_SHARED">
      </member>
    </enumeration>
    <record name="DbusPidfd" c:type="MtkDbusPidfd" disguised="1" opaque="1">
      <source-position filename="mtk/mtk/mtk-dbus.h" line="29"/>
      <method name="free" c:identifier="mtk_dbus_pidfd_free">
        <source-position filename="mtk/mtk/mtk-dbus.h" line="32"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pfd" transfer-ownership="none">
            <type name="DbusPidfd" c:type="MtkDbusPidfd*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pid" c:identifier="mtk_dbus_pidfd_get_pid">
        <source-position filename="mtk/mtk/mtk-dbus.h" line="35"/>
        <return-value transfer-ownership="none">
          <type name="pid_t" c:type="pid_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="dbus_pidfd" transfer-ownership="none">
            <type name="DbusPidfd" c:type="MtkDbusPidfd*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pidfd" c:identifier="mtk_dbus_pidfd_get_pidfd">
        <source-position filename="mtk/mtk/mtk-dbus.h" line="38"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="dbus_pidfd" transfer-ownership="none">
            <type name="DbusPidfd" c:type="MtkDbusPidfd*"/>
          </instance-parameter>
        </parameters>
      </method>
      <function name="new_for_connection_async"
                c:identifier="mtk_dbus_pidfd_new_for_connection_async"
                introspectable="0">
        <source-position filename="mtk/mtk/mtk-dbus.h" line="48"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="connection" transfer-ownership="none">
            <type c:type="GDBusConnection*"/>
          </parameter>
          <parameter name="sender" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="cancellable" transfer-ownership="none">
            <type c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none">
            <type c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <function name="new_for_connection_finish"
                c:identifier="mtk_dbus_pidfd_new_for_connection_finish"
                introspectable="0"
                throws="1">
        <source-position filename="mtk/mtk/mtk-dbus.h" line="43"/>
        <return-value>
          <type name="DbusPidfd" c:type="MtkDbusPidfd*"/>
        </return-value>
        <parameters>
          <parameter name="connection" transfer-ownership="none">
            <type c:type="GDBusConnection*"/>
          </parameter>
          <parameter name="result" transfer-ownership="none">
            <type c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <record name="DisposeBin"
            c:type="MtkDisposeBin"
            disguised="1"
            opaque="1"
            introspectable="0">
      <source-position filename="mtk/mtk/mtk-dispose-bin.h" line="31"/>
      <method name="add" c:identifier="mtk_dispose_bin_add">
        <source-position filename="mtk/mtk/mtk-dispose-bin.h" line="34"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="bin" transfer-ownership="none">
            <type name="DisposeBin" c:type="MtkDisposeBin*"/>
          </instance-parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="notify" transfer-ownership="none" scope="async">
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="dispose" c:identifier="mtk_dispose_bin_dispose">
        <source-position filename="mtk/mtk/mtk-dispose-bin.h" line="42"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="bin" transfer-ownership="none">
            <type name="DisposeBin" c:type="MtkDisposeBin*"/>
          </instance-parameter>
        </parameters>
      </method>
      <function name="new"
                c:identifier="mtk_dispose_bin_new"
                introspectable="0">
        <source-position filename="mtk/mtk/mtk-dispose-bin.h" line="39"/>
        <return-value>
          <type name="DisposeBin" c:type="MtkDisposeBin*"/>
        </return-value>
      </function>
    </record>
    <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="194"/>
      <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="is_empty" c:identifier="mtk_rectangle_is_empty">
        <source-position filename="mtk/mtk/mtk-rectangle.h" line="166"/>
        <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>
        </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="454">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="169"/>
        <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="456">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="457">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="458">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="459">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="460">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="140"/>
        <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="122"/>
        <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="134"/>
        <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="downscale" c:identifier="mtk_region_downscale">
        <source-position filename="mtk/mtk/mtk-region.h" line="126"/>
        <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="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_box" c:identifier="mtk_region_get_box">
        <source-position filename="mtk/mtk/mtk-region.h" line="107"/>
        <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="const MtkRegion*"/>
          </instance-parameter>
          <parameter name="nth" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="x1" transfer-ownership="none">
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="y1" transfer-ownership="none">
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="x2" transfer-ownership="none">
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="y2" transfer-ownership="none">
            <type name="gint" c:type="int*"/>
          </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="130"/>
        <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="115"/>
        <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="118"/>
        <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="209"/>
      <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="215"/>
        <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="222"/>
        <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="212"/>
        <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="145">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="180"/>
      <field name="region" writable="1">
        <doc xml:space="preserve"
             filename="mtk/mtk/mtk-region.h"
             line="147">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="148">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="149">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="150">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="187"/>
        <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="183"/>
        <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="190"/>
        <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="anonymous_file_close_fd"
              c:identifier="mtk_anonymous_file_close_fd"
              moved-to="AnonymousFile.close_fd"
              introspectable="0">
      <doc xml:space="preserve"
           filename="mtk/mtk/mtk-anonymous-file.c"
           line="336">Release a file descriptor returned by mtk_anonymous_file_open_fd().
This function must be called for every file descriptor created with
mtk_anonymous_file_open_fd() to not leak any resources.

If this function fails errno is set.</doc>
      <source-position filename="mtk/mtk/mtk-anonymous-file.h" line="51"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="fd" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="mtk/mtk/mtk-anonymous-file.c"
               line="338">A file descriptor obtained using mtk_anonymous_file_open_fd()</doc>
          <type name="gint" c:type="int"/>
        </parameter>
      </parameters>
    </function>
    <function name="anonymous_file_new"
              c:identifier="mtk_anonymous_file_new"
              moved-to="AnonymousFile.new"
              introspectable="0">
      <doc xml:space="preserve"
           filename="mtk/mtk/mtk-anonymous-file.c"
           line="171">Create a new anonymous read-only file of the given size and the given data
The intended use-case is for sending mid-sized data from the compositor
to clients.

When done, free the data using mtk_anonymous_file_free().

If this function fails errno is set.

The name is used to as part of the file name.</doc>
      <source-position filename="mtk/mtk/mtk-anonymous-file.h" line="36"/>
      <return-value>
        <doc xml:space="preserve"
             filename="mtk/mtk/mtk-anonymous-file.c"
             line="187">The newly created #MetaAnonymousFile, or NULL on failure. Use
  mtk_anonymous_file_free() to free the resources when done.</doc>
        <type name="AnonymousFile" c:type="MtkAnonymousFile*"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="mtk/mtk/mtk-anonymous-file.c"
               line="173">Name of the file</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="mtk/mtk/mtk-anonymous-file.c"
               line="174">The size of @data</doc>
          <type name="gsize" c:type="size_t"/>
        </parameter>
        <parameter name="data" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="mtk/mtk/mtk-anonymous-file.c"
               line="175">The data of the file with the size @size</doc>
          <type name="guint8" c:type="const uint8_t*"/>
        </parameter>
      </parameters>
    </function>
    <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="dbus_pidfd_new_for_connection_async"
              c:identifier="mtk_dbus_pidfd_new_for_connection_async"
              moved-to="DbusPidfd.new_for_connection_async"
              introspectable="0">
      <source-position filename="mtk/mtk/mtk-dbus.h" line="48"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="connection" transfer-ownership="none">
          <type c:type="GDBusConnection*"/>
        </parameter>
        <parameter name="sender" transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="cancellable" transfer-ownership="none">
          <type c:type="GCancellable*"/>
        </parameter>
        <parameter name="callback" transfer-ownership="none">
          <type c:type="GAsyncReadyCallback"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="dbus_pidfd_new_for_connection_finish"
              c:identifier="mtk_dbus_pidfd_new_for_connection_finish"
              moved-to="DbusPidfd.new_for_connection_finish"
              introspectable="0"
              throws="1">
      <source-position filename="mtk/mtk/mtk-dbus.h" line="43"/>
      <return-value>
        <type name="DbusPidfd" c:type="MtkDbusPidfd*"/>
      </return-value>
      <parameters>
        <parameter name="connection" transfer-ownership="none">
          <type c:type="GDBusConnection*"/>
        </parameter>
        <parameter name="result" transfer-ownership="none">
          <type c:type="GAsyncResult*"/>
        </parameter>
      </parameters>
    </function>
    <function name="dispose_bin_new"
              c:identifier="mtk_dispose_bin_new"
              moved-to="DisposeBin.new"
              introspectable="0">
      <source-position filename="mtk/mtk/mtk-dispose-bin.h" line="39"/>
      <return-value>
        <type name="DisposeBin" c:type="MtkDisposeBin*"/>
      </return-value>
    </function>
    <function name="extrapolate_next_interval_boundary"
              c:identifier="mtk_extrapolate_next_interval_boundary">
      <source-position filename="mtk/mtk/mtk-time-utils.h" line="31"/>
      <return-value transfer-ownership="none">
        <type name="gint64" c:type="int64_t"/>
      </return-value>
      <parameters>
        <parameter name="base_us" transfer-ownership="none">
          <type name="gint64" c:type="int64_t"/>
        </parameter>
        <parameter name="interval_us" transfer-ownership="none">
          <type name="gint64" c:type="int64_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="115"/>
      <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="118"/>
      <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>
    <function name="x11_error_trap_pop"
              c:identifier="mtk_x11_error_trap_pop"
              introspectable="0">
      <source-position filename="mtk/mtk/mtk-x11-errors.h" line="38"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="xdisplay" transfer-ownership="none">
          <type c:type="Display*"/>
        </parameter>
      </parameters>
    </function>
    <function name="x11_error_trap_pop_with_return"
              c:identifier="mtk_x11_error_trap_pop_with_return"
              introspectable="0">
      <source-position filename="mtk/mtk/mtk-x11-errors.h" line="41"/>
      <return-value transfer-ownership="none">
        <type name="gint" c:type="int"/>
      </return-value>
      <parameters>
        <parameter name="xdisplay" transfer-ownership="none">
          <type c:type="Display*"/>
        </parameter>
      </parameters>
    </function>
    <function name="x11_error_trap_push"
              c:identifier="mtk_x11_error_trap_push"
              introspectable="0">
      <source-position filename="mtk/mtk/mtk-x11-errors.h" line="35"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="xdisplay" transfer-ownership="none">
          <type c:type="Display*"/>
        </parameter>
      </parameters>
    </function>
    <function name="x11_errors_deinit" c:identifier="mtk_x11_errors_deinit">
      <source-position filename="mtk/mtk/mtk-x11-errors.h" line="32"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="x11_errors_init"
              c:identifier="mtk_x11_errors_init"
              introspectable="0">
      <source-position filename="mtk/mtk/mtk-x11-errors.h" line="29"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
  </namespace>
</repository>
