<?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="GLib" version="2.0"/>
  <include name="GModule" version="2.0"/>
  <include name="GObject" version="2.0"/>
  <include name="GdkPixbuf" version="2.0"/>
  <include name="Gio" version="2.0"/>
  <include name="cairo" version="1.0"/>
  <package name="librsvg-2.0"/>
  <namespace name="Rsvg"
             version="2.0"
             shared-library="librsvg-2.so.2"
             c:identifier-prefixes="Rsvg"
             c:symbol-prefixes="rsvg">
    <alias name="FilterUnits" c:type="RsvgFilterUnits">
      <type name="CoordUnits" c:type="RsvgCoordUnits"/>
    </alias>
    <alias name="MaskUnits" c:type="RsvgMaskUnits">
      <type name="CoordUnits" c:type="RsvgCoordUnits"/>
    </alias>
    <alias name="PropertyBag" c:type="RsvgPropertyBag">
      <type name="GLib.HashTable" c:type="GHashTable"/>
    </alias>
    <constant name="ASPECT_RATIO_NONE"
              value="0"
              c:type="RSVG_ASPECT_RATIO_NONE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ASPECT_RATIO_SLICE"
              value="2147483648"
              c:type="RSVG_ASPECT_RATIO_SLICE">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ASPECT_RATIO_XMAX_YMAX"
              value="256"
              c:type="RSVG_ASPECT_RATIO_XMAX_YMAX">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ASPECT_RATIO_XMAX_YMID"
              value="32"
              c:type="RSVG_ASPECT_RATIO_XMAX_YMID">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ASPECT_RATIO_XMAX_YMIN"
              value="4"
              c:type="RSVG_ASPECT_RATIO_XMAX_YMIN">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ASPECT_RATIO_XMID_YMAX"
              value="128"
              c:type="RSVG_ASPECT_RATIO_XMID_YMAX">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ASPECT_RATIO_XMID_YMID"
              value="16"
              c:type="RSVG_ASPECT_RATIO_XMID_YMID">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ASPECT_RATIO_XMID_YMIN"
              value="2"
              c:type="RSVG_ASPECT_RATIO_XMID_YMIN">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ASPECT_RATIO_XMIN_YMAX"
              value="64"
              c:type="RSVG_ASPECT_RATIO_XMIN_YMAX">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ASPECT_RATIO_XMIN_YMID"
              value="8"
              c:type="RSVG_ASPECT_RATIO_XMIN_YMID">
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ASPECT_RATIO_XMIN_YMIN"
              value="1"
              c:type="RSVG_ASPECT_RATIO_XMIN_YMIN">
      <type name="gint" c:type="gint"/>
    </constant>
    <record name="Bbox" c:type="RsvgBbox">
      <field name="x" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="y" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="w" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="h" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="virgin" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="affine" writable="1">
        <array zero-terminated="0" c:type="gdouble" fixed-size="6">
          <type name="gdouble" c:type="double"/>
        </array>
      </field>
      <method name="clip" c:identifier="rsvg_bbox_clip">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="src" transfer-ownership="none">
            <type name="Bbox" c:type="RsvgBbox*"/>
          </parameter>
        </parameters>
      </method>
      <method name="init" c:identifier="rsvg_bbox_init">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="affine" transfer-ownership="none">
            <type name="gdouble" c:type="double*"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert" c:identifier="rsvg_bbox_insert">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="src" transfer-ownership="none">
            <type name="Bbox" c:type="RsvgBbox*"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <record name="Bpath" c:type="RsvgBpath">
      <field name="code" writable="1">
        <type name="Pathcode" c:type="RsvgPathcode"/>
      </field>
      <field name="x1" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
      <field name="y1" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
      <field name="x2" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
      <field name="y2" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
      <field name="x3" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
      <field name="y3" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
      <method name="def_new_from"
              c:identifier="rsvg_bpath_def_new_from"
              introspectable="0">
        <return-value>
          <type name="BpathDef" c:type="RsvgBpathDef*"/>
        </return-value>
      </method>
    </record>
    <record name="BpathDef" c:type="RsvgBpathDef">
      <field name="bpath" writable="1">
        <type name="Bpath" c:type="RsvgBpath*"/>
      </field>
      <field name="n_bpath" writable="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="n_bpath_max" writable="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="moveto_idx" writable="1">
        <type name="gint" c:type="int"/>
      </field>
      <method name="art_finish" c:identifier="rsvg_bpath_def_art_finish">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="closepath" c:identifier="rsvg_bpath_def_closepath">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="curveto" c:identifier="rsvg_bpath_def_curveto">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="x1" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="y1" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="x2" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="y2" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="x3" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="y3" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="rsvg_bpath_def_free">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="lineto" c:identifier="rsvg_bpath_def_lineto">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="x" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
        </parameters>
      </method>
      <method name="moveto" c:identifier="rsvg_bpath_def_moveto">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="x" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
        </parameters>
      </method>
      <function name="new"
                c:identifier="rsvg_bpath_def_new"
                introspectable="0">
        <return-value>
          <type name="BpathDef" c:type="RsvgBpathDef*"/>
        </return-value>
      </function>
    </record>
    <record name="CairoRender" c:type="RsvgCairoRender">
      <field name="super" writable="1">
        <type name="Render" c:type="RsvgRender"/>
      </field>
      <field name="cr" writable="1">
        <type name="cairo.Context" c:type="cairo_t*"/>
      </field>
      <field name="width" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
      <field name="height" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
      <field name="initial_cr" writable="1">
        <type name="cairo.Context" c:type="cairo_t*"/>
      </field>
      <field name="offset_x" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
      <field name="offset_y" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
      <field name="cr_stack" writable="1">
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="bbox" writable="1">
        <type name="Bbox" c:type="RsvgBbox"/>
      </field>
      <field name="bb_stack" writable="1">
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="pixbuf_stack" writable="1">
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <function name="image" c:identifier="rsvg_cairo_render_image">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="ctx" transfer-ownership="none">
            <type name="DrawingCtx" c:type="RsvgDrawingCtx*"/>
          </parameter>
          <parameter name="img" transfer-ownership="none">
            <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="w" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="h" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
        </parameters>
      </function>
      <function name="new"
                c:identifier="rsvg_cairo_render_new"
                introspectable="0">
        <return-value>
          <type name="CairoRender" c:type="RsvgCairoRender*"/>
        </return-value>
        <parameters>
          <parameter name="cr" transfer-ownership="none">
            <type name="cairo.Context" c:type="cairo_t*"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
        </parameters>
      </function>
      <function name="pango_layout"
                c:identifier="rsvg_cairo_render_pango_layout"
                introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="ctx" transfer-ownership="none">
            <type name="DrawingCtx" c:type="RsvgDrawingCtx*"/>
          </parameter>
          <parameter name="layout" transfer-ownership="none">
            <type c:type="PangoLayout*"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
        </parameters>
      </function>
      <function name="path" c:identifier="rsvg_cairo_render_path">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="ctx" transfer-ownership="none">
            <type name="DrawingCtx" c:type="RsvgDrawingCtx*"/>
          </parameter>
          <parameter name="path" transfer-ownership="none">
            <type name="BpathDef" c:type="RsvgBpathDef*"/>
          </parameter>
        </parameters>
      </function>
      <function name="rsvg_handle"
                c:identifier="rsvg_cairo_render_rsvg_handle">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="cr" transfer-ownership="none">
            <type name="cairo.Context" c:type="cairo_t*"/>
          </parameter>
          <parameter name="handle" transfer-ownership="none">
            <type name="Handle" c:type="RsvgHandle*"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <record name="ClipPath" c:type="RsvgClipPath">
      <field name="super" writable="1">
        <type name="Node" c:type="RsvgNode"/>
      </field>
      <field name="units" writable="1">
        <type name="CoordUnits" c:type="RsvgCoordUnits"/>
      </field>
      <function name="parse"
                c:identifier="rsvg_clip_path_parse"
                introspectable="0">
        <return-value>
          <type name="Node" c:type="RsvgNode*"/>
        </return-value>
        <parameters>
          <parameter name="defs" transfer-ownership="none">
            <type name="Defs" c:type="RsvgDefs*"/>
          </parameter>
          <parameter name="str" transfer-ownership="none">
            <type name="utf8" c:type="char*"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <enumeration name="CompOpType" c:type="RsvgCompOpType">
      <member name="clear" value="0" c:identifier="RSVG_COMP_OP_CLEAR"/>
      <member name="src" value="1" c:identifier="RSVG_COMP_OP_SRC"/>
      <member name="dst" value="2" c:identifier="RSVG_COMP_OP_DST"/>
      <member name="src_over" value="3" c:identifier="RSVG_COMP_OP_SRC_OVER"/>
      <member name="dst_over" value="4" c:identifier="RSVG_COMP_OP_DST_OVER"/>
      <member name="src_in" value="5" c:identifier="RSVG_COMP_OP_SRC_IN"/>
      <member name="dst_in" value="6" c:identifier="RSVG_COMP_OP_DST_IN"/>
      <member name="src_out" value="7" c:identifier="RSVG_COMP_OP_SRC_OUT"/>
      <member name="dst_out" value="8" c:identifier="RSVG_COMP_OP_DST_OUT"/>
      <member name="src_atop" value="9" c:identifier="RSVG_COMP_OP_SRC_ATOP"/>
      <member name="dst_atop" value="10" c:identifier="RSVG_COMP_OP_DST_ATOP"/>
      <member name="xor" value="11" c:identifier="RSVG_COMP_OP_XOR"/>
      <member name="plus" value="12" c:identifier="RSVG_COMP_OP_PLUS"/>
      <member name="multiply" value="13" c:identifier="RSVG_COMP_OP_MULTIPLY"/>
      <member name="screen" value="14" c:identifier="RSVG_COMP_OP_SCREEN"/>
      <member name="overlay" value="15" c:identifier="RSVG_COMP_OP_OVERLAY"/>
      <member name="darken" value="16" c:identifier="RSVG_COMP_OP_DARKEN"/>
      <member name="lighten" value="17" c:identifier="RSVG_COMP_OP_LIGHTEN"/>
      <member name="color_dodge"
              value="18"
              c:identifier="RSVG_COMP_OP_COLOR_DODGE"/>
      <member name="color_burn"
              value="19"
              c:identifier="RSVG_COMP_OP_COLOR_BURN"/>
      <member name="hard_light"
              value="20"
              c:identifier="RSVG_COMP_OP_HARD_LIGHT"/>
      <member name="soft_light"
              value="21"
              c:identifier="RSVG_COMP_OP_SOFT_LIGHT"/>
      <member name="difference"
              value="22"
              c:identifier="RSVG_COMP_OP_DIFFERENCE"/>
      <member name="exclusion"
              value="23"
              c:identifier="RSVG_COMP_OP_EXCLUSION"/>
    </enumeration>
    <enumeration name="CoordUnits" c:type="RsvgCoordUnits">
      <member name="bjectboundingbox"
              value="0"
              c:identifier="objectBoundingBox"/>
      <member name="serspaceonuse" value="1" c:identifier="userSpaceOnUse"/>
    </enumeration>
    <record name="Defs" c:type="RsvgDefs" disguised="1">
      <method name="add_resolver" c:identifier="rsvg_defs_add_resolver">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="tochange" transfer-ownership="none">
            <type name="Node" c:type="RsvgNode**"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="rsvg_defs_free">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="lookup" c:identifier="rsvg_defs_lookup" introspectable="0">
        <return-value>
          <type name="Node" c:type="RsvgNode*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="register_memory" c:identifier="rsvg_defs_register_memory">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="val" transfer-ownership="none">
            <type name="Node" c:type="RsvgNode*"/>
          </parameter>
        </parameters>
      </method>
      <method name="register_name" c:identifier="rsvg_defs_register_name">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="char*"/>
          </parameter>
          <parameter name="val" transfer-ownership="none">
            <type name="Node" c:type="RsvgNode*"/>
          </parameter>
        </parameters>
      </method>
      <method name="resolve_all" c:identifier="rsvg_defs_resolve_all">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="set" c:identifier="rsvg_defs_set">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="char*"/>
          </parameter>
          <parameter name="val" transfer-ownership="none">
            <type name="Node" c:type="RsvgNode*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_base_uri" c:identifier="rsvg_defs_set_base_uri">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="base_uri" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <function name="new" c:identifier="rsvg_defs_new" introspectable="0">
        <return-value>
          <type name="Defs" c:type="RsvgDefs*"/>
        </return-value>
      </function>
    </record>
    <record name="DimensionData" c:type="RsvgDimensionData">
      <field name="width" writable="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="height" writable="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="em" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="ex" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
    </record>
    <record name="DrawingCtx" c:type="RsvgDrawingCtx">
      <field name="render" writable="1">
        <type name="Render" c:type="RsvgRender*"/>
      </field>
      <field name="state" writable="1">
        <type name="State" c:type="RsvgState*"/>
      </field>
      <field name="error" writable="1">
        <type name="GLib.Error" c:type="GError**"/>
      </field>
      <field name="defs" writable="1">
        <type name="Defs" c:type="RsvgDefs*"/>
      </field>
      <field name="base_uri" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="pango_context" introspectable="0" writable="1">
        <type c:type="PangoContext*"/>
      </field>
      <field name="dpi_x" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
      <field name="dpi_y" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
      <field name="vb" writable="1">
        <type name="ViewBox" c:type="RsvgViewBox"/>
      </field>
      <field name="vb_stack" writable="1">
        <type name="GLib.SList" c:type="GSList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="drawsub_stack" writable="1">
        <type name="GLib.SList" c:type="GSList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="ptrs" writable="1">
        <type name="GLib.SList" c:type="GSList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <method name="free" c:identifier="rsvg_drawing_ctx_free">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
    </record>
    <enumeration name="EnableBackgroundType" c:type="RsvgEnableBackgroundType">
      <member name="accumulate"
              value="0"
              c:identifier="RSVG_ENABLE_BACKGROUND_ACCUMULATE"/>
      <member name="new" value="1" c:identifier="RSVG_ENABLE_BACKGROUND_NEW"/>
    </enumeration>
    <enumeration name="Error"
                 glib:type-name="RsvgError"
                 glib:get-type="rsvg_error_get_type"
                 c:type="RsvgError"
                 glib:error-domain="rsvg-error-quark">
      <member name="failed"
              value="0"
              c:identifier="RSVG_ERROR_FAILED"
              glib:nick="failed"/>
      <function name="quark" c:identifier="rsvg_error_quark">
        <doc xml:whitespace="preserve">The error domain for RSVG</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The error domain</doc>
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <record name="Filter" c:type="RsvgFilter">
      <field name="super" writable="1">
        <type name="Node" c:type="RsvgNode"/>
      </field>
      <field name="refcnt" writable="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="x" writable="1">
        <type name="Length" c:type="RsvgLength"/>
      </field>
      <field name="y" writable="1">
        <type name="Length" c:type="RsvgLength"/>
      </field>
      <field name="width" writable="1">
        <type name="Length" c:type="RsvgLength"/>
      </field>
      <field name="height" writable="1">
        <type name="Length" c:type="RsvgLength"/>
      </field>
      <field name="filterunits" writable="1">
        <type name="FilterUnits" c:type="RsvgFilterUnits"/>
      </field>
      <field name="primitiveunits" writable="1">
        <type name="FilterUnits" c:type="RsvgFilterUnits"/>
      </field>
      <method name="render"
              c:identifier="rsvg_filter_render"
              introspectable="0">
        <doc xml:whitespace="preserve">This function will create a context for itself, set up the coordinate systems
execute all its little primatives and then clean up its own mess</doc>
        <return-value>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <parameter name="source" transfer-ownership="none">
            <doc xml:whitespace="preserve">a pointer to the source pixbuf</doc>
            <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
          </parameter>
          <parameter name="context" transfer-ownership="none">
            <doc xml:whitespace="preserve">the context</doc>
            <type name="DrawingCtx" c:type="RsvgDrawingCtx*"/>
          </parameter>
          <parameter name="dimentions" transfer-ownership="none">
            <type name="Bbox" c:type="RsvgBbox*"/>
          </parameter>
          <parameter name="channelmap" transfer-ownership="none">
            <type name="utf8" c:type="char*"/>
          </parameter>
        </parameters>
      </method>
      <function name="parse"
                c:identifier="rsvg_filter_parse"
                introspectable="0">
        <doc xml:whitespace="preserve">if none was found</doc>
        <return-value>
          <doc xml:whitespace="preserve">a pointer to the filter that the name refers to, or NULL</doc>
          <type name="Filter" c:type="RsvgFilter*"/>
        </return-value>
        <parameters>
          <parameter name="defs" transfer-ownership="none">
            <doc xml:whitespace="preserve">a pointer to the hash of definitions</doc>
            <type name="Defs" c:type="RsvgDefs*"/>
          </parameter>
          <parameter name="str" transfer-ownership="none">
            <doc xml:whitespace="preserve">a string with the name of the filter to be looked up</doc>
            <type name="utf8" c:type="char*"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <enumeration name="GradientSpread" c:type="RsvgGradientSpread">
      <member name="pad" value="0" c:identifier="RSVG_GRADIENT_PAD"/>
      <member name="reflect" value="1" c:identifier="RSVG_GRADIENT_REFLECT"/>
      <member name="repeat" value="2" c:identifier="RSVG_GRADIENT_REPEAT"/>
    </enumeration>
    <record name="GradientStop" c:type="RsvgGradientStop">
      <field name="super" writable="1">
        <type name="Node" c:type="RsvgNode"/>
      </field>
      <field name="offset" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
      <field name="rgba" writable="1">
        <type name="guint32" c:type="guint32"/>
      </field>
    </record>
    <record name="GradientStops" c:type="RsvgGradientStops" disguised="1">
    </record>
    <class name="Handle"
           c:symbol-prefix="handle"
           c:type="RsvgHandle"
           parent="GObject.Object"
           glib:type-name="RsvgHandle"
           glib:get-type="rsvg_handle_get_type"
           glib:type-struct="HandleClass">
      <constructor name="new" c:identifier="rsvg_handle_new">
        <doc xml:whitespace="preserve">Returns a new rsvg handle.  Must be freed with @g_object_unref.  This
handle can be used for dynamically loading an image.  You need to feed it
data using @rsvg_handle_write, then call @rsvg_handle_close when done.
Afterwords, you can render it using Cairo or get a GdkPixbuf from it. When
finished, free with g_object_unref(). No more than one image can be loaded 
with one handle.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A new #RsvgHandle</doc>
          <type name="Handle" c:type="RsvgHandle*"/>
        </return-value>
      </constructor>
      <constructor name="new_from_data"
                   c:identifier="rsvg_handle_new_from_data"
                   version="2.14"
                   throws="1">
        <doc xml:whitespace="preserve">Loads the SVG specified by #data.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A RsvgHandle or %NULL if an error occurs.</doc>
          <type name="Handle" c:type="RsvgHandle*"/>
        </return-value>
        <parameters>
          <parameter name="data" transfer-ownership="none">
            <doc xml:whitespace="preserve">The SVG data</doc>
            <array length="1" zero-terminated="0" c:type="guint8*">
              <type name="guint8" c:type="guint8"/>
            </array>
          </parameter>
          <parameter name="data_len" transfer-ownership="none">
            <doc xml:whitespace="preserve">The length of #data, in bytes</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_file"
                   c:identifier="rsvg_handle_new_from_file"
                   version="2.14"
                   throws="1">
        <doc xml:whitespace="preserve">Loads the SVG specified by #file_name.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A RsvgHandle or %NULL if an error occurs.</doc>
          <type name="Handle" c:type="RsvgHandle*"/>
        </return-value>
        <parameters>
          <parameter name="file_name" transfer-ownership="none">
            <doc xml:whitespace="preserve">The file name to load. If built with gnome-vfs, can be a URI.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_gfile_sync"
                   c:identifier="rsvg_handle_new_from_gfile_sync"
                   version="2.32"
                   throws="1">
        <doc xml:whitespace="preserve">Creates a new #RsvgHandle for @file.

If @cancellable is not %NULL, then the operation can be cancelled by
triggering the cancellable object from another thread. If the
operation was cancelled, the error G_IO_ERROR_CANCELLED will be
returned.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new #RsvgHandle on success, or %NULL with @error filled in</doc>
          <type name="Handle" c:type="RsvgHandle*"/>
        </return-value>
        <parameters>
          <parameter name="file" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GFile</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:whitespace="preserve">flags from #RsvgHandleFlags</doc>
            <type name="HandleFlags" c:type="RsvgHandleFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_stream_sync"
                   c:identifier="rsvg_handle_new_from_stream_sync"
                   version="2.32"
                   throws="1">
        <doc xml:whitespace="preserve">Creates a new #RsvgHandle for @stream.

If @cancellable is not %NULL, then the operation can be cancelled by
triggering the cancellable object from another thread. If the
operation was cancelled, the error G_IO_ERROR_CANCELLED will be
returned.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new #RsvgHandle on success, or %NULL with @error filled in</doc>
          <type name="Handle" c:type="RsvgHandle*"/>
        </return-value>
        <parameters>
          <parameter name="input_stream" transfer-ownership="none">
            <type name="Gio.InputStream" c:type="GInputStream*"/>
          </parameter>
          <parameter name="base_file" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">a #GFile, or %NULL</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:whitespace="preserve">flags from #RsvgHandleFlags</doc>
            <type name="HandleFlags" c:type="RsvgHandleFlags"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="close" c:identifier="rsvg_handle_close" throws="1">
        <doc xml:whitespace="preserve">Closes @handle, to indicate that loading the image is complete.  This will
return %TRUE if the loader closed successfully.  Note that @handle isn't
freed until @g_object_unref is called.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE on success, or %FALSE on error</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="free"
              c:identifier="rsvg_handle_free"
              deprecated="Use g_object_unref() instead.">
        <doc xml:whitespace="preserve">Frees #handle.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="get_base_uri"
              c:identifier="rsvg_handle_get_base_uri"
              version="2.8">
        <doc xml:whitespace="preserve">Gets the base uri for this #RsvgHandle.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the base uri, possibly null</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
      </method>
      <method name="get_desc"
              c:identifier="rsvg_handle_get_desc"
              version="2.4">
        <doc xml:whitespace="preserve">Returns the SVG's description in UTF-8 or %NULL. You must make a copy
of this description if you wish to use it after #handle has been freed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The SVG's description</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
      </method>
      <method name="get_dimensions"
              c:identifier="rsvg_handle_get_dimensions"
              version="2.14">
        <doc xml:whitespace="preserve">Get the SVG's size. Do not call from within the size_func callback, because an infinite loop will occur.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="dimension_data"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:whitespace="preserve">A place to store the SVG's size</doc>
            <type name="DimensionData" c:type="RsvgDimensionData*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_dimensions_sub"
              c:identifier="rsvg_handle_get_dimensions_sub"
              version="2.22">
        <doc xml:whitespace="preserve">Get the size of a subelement of the SVG file. Do not call from within the size_func callback, because an infinite loop will occur.</doc>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="dimension_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">A place to store the SVG's size</doc>
            <type name="DimensionData" c:type="RsvgDimensionData*"/>
          </parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">An element's id within the SVG, or NULL to get the dimension of the whole SVG. For example, if you have a layer called "layer1" for that you want to get the dimension, pass "#layer1" as the id.</doc>
            <type name="utf8" c:type="char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_metadata"
              c:identifier="rsvg_handle_get_metadata"
              version="2.9">
        <doc xml:whitespace="preserve">Returns the SVG's metadata in UTF-8 or %NULL. You must make a copy
of this metadata if you wish to use it after #handle has been freed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The SVG's title</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
      </method>
      <method name="get_pixbuf" c:identifier="rsvg_handle_get_pixbuf">
        <doc xml:whitespace="preserve">Returns the pixbuf loaded by #handle.  The pixbuf returned will be reffed, so
the caller of this function must assume that ref.  If insufficient data has
been read to create the pixbuf, or an error occurred in loading, then %NULL
will be returned.  Note that the pixbuf may not be complete until
@rsvg_handle_close has been called.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">the pixbuf loaded by #handle, or %NULL.</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
      </method>
      <method name="get_pixbuf_sub"
              c:identifier="rsvg_handle_get_pixbuf_sub"
              version="2.14"
              introspectable="0">
        <doc xml:whitespace="preserve">Returns the pixbuf loaded by #handle.  The pixbuf returned will be reffed, so
the caller of this function must assume that ref.  If insufficient data has
been read to create the pixbuf, or an error occurred in loading, then %NULL
will be returned.  Note that the pixbuf may not be complete until
@rsvg_handle_close has been called.</doc>
        <return-value>
          <doc xml:whitespace="preserve">the pixbuf loaded by #handle, or %NULL.</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">The id of an element inside the SVG, or %NULL to render the whole SVG. For example, if you have a layer called "layer1" that you wish to render, pass "##layer1" as the id.</doc>
            <type name="utf8" c:type="char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_position_sub"
              c:identifier="rsvg_handle_get_position_sub"
              version="2.22">
        <doc xml:whitespace="preserve">Get the position of a subelement of the SVG file. Do not call from within
the size_func callback, because an infinite loop will occur.</doc>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="position_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">A place to store the SVG fragment's position.</doc>
            <type name="PositionData" c:type="RsvgPositionData*"/>
          </parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">An element's id within the SVG. For example, if you have a layer called "layer1" for that you want to get the position, pass "#layer1" as the id.</doc>
            <type name="utf8" c:type="char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_title"
              c:identifier="rsvg_handle_get_title"
              version="2.4">
        <doc xml:whitespace="preserve">Returns the SVG's title in UTF-8 or %NULL. You must make a copy
of this title if you wish to use it after #handle has been freed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The SVG's title</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
      </method>
      <method name="has_sub" c:identifier="rsvg_handle_has_sub" version="2.22">
        <doc xml:whitespace="preserve">Checks whether the element @id exists in the SVG document.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if @id exists in the SVG document</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">an element's id within the SVG</doc>
            <type name="utf8" c:type="char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="read_stream_sync"
              c:identifier="rsvg_handle_read_stream_sync"
              version="2.32"
              throws="1">
        <doc xml:whitespace="preserve">Reads @stream and writes the data from it to @handle.

If @cancellable is not %NULL, then the operation can be cancelled by
triggering the cancellable object from another thread. If the
operation was cancelled, the error G_IO_ERROR_CANCELLED will be
returned.

with @error filled in</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if reading @stream succeeded, or %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="stream" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GInputStream</doc>
            <type name="Gio.InputStream" c:type="GInputStream*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:whitespace="preserve">a #GCancellable, or %NULL</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="render_cairo"
              c:identifier="rsvg_handle_render_cairo"
              version="2.14">
        <doc xml:whitespace="preserve">Draws a SVG to a Cairo surface</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if drawing succeeded.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="cr" transfer-ownership="none">
            <doc xml:whitespace="preserve">A Cairo renderer</doc>
            <type name="cairo.Context" c:type="cairo_t*"/>
          </parameter>
        </parameters>
      </method>
      <method name="render_cairo_sub"
              c:identifier="rsvg_handle_render_cairo_sub"
              version="2.14">
        <doc xml:whitespace="preserve">Draws a subset of a SVG to a Cairo surface</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if drawing succeeded.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="cr" transfer-ownership="none">
            <doc xml:whitespace="preserve">A Cairo renderer</doc>
            <type name="cairo.Context" c:type="cairo_t*"/>
          </parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:whitespace="preserve">An element's id within the SVG, or %NULL to render the whole SVG. For example, if you have a layer called "layer1" that you wish to render, pass "##layer1" as the id.</doc>
            <type name="utf8" c:type="char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_base_gfile"
              c:identifier="rsvg_handle_set_base_gfile"
              version="2.32">
        <doc xml:whitespace="preserve">Set the base URI for @handle from @file.
Note: This function may only be called before rsvg_handle_write()
or rsvg_handle_read_stream_sync() has been called.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="base_file" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_base_uri"
              c:identifier="rsvg_handle_set_base_uri"
              version="2.9">
        <doc xml:whitespace="preserve">Set the base URI for this SVG. This can only be called before rsvg_handle_write()
has been called.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="base_uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">The base uri</doc>
            <type name="utf8" c:type="char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_dpi" c:identifier="rsvg_handle_set_dpi" version="2.8">
        <doc xml:whitespace="preserve">Sets the DPI for the outgoing pixbuf. Common values are
75, 90, and 300 DPI. Passing a number &lt;= 0 to #dpi will 
reset the DPI to whatever the default value happens to be.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="dpi" transfer-ownership="none">
            <doc xml:whitespace="preserve">Dots Per Inch (aka Pixels Per Inch)</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_dpi_x_y"
              c:identifier="rsvg_handle_set_dpi_x_y"
              version="2.8">
        <doc xml:whitespace="preserve">Sets the DPI for the outgoing pixbuf. Common values are
75, 90, and 300 DPI. Passing a number &lt;= 0 to #dpi_x or #dpi_y will 
reset the DPI to whatever the default value happens to be.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="dpi_x" transfer-ownership="none">
            <doc xml:whitespace="preserve">Dots Per Inch (aka Pixels Per Inch)</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="dpi_y" transfer-ownership="none">
            <doc xml:whitespace="preserve">Dots Per Inch (aka Pixels Per Inch)</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_size_callback"
              c:identifier="rsvg_handle_set_size_callback"
              deprecated="Set up a cairo matrix and use rsvg_handle_render_cairo() instead.">
        <doc xml:whitespace="preserve">Sets the sizing function for the @handle.  This function is called right
after the size of the image has been loaded.  The size of the image is passed
in to the function, which may then modify these values to set the real size
of the generated pixbuf.  If the image has no associated size, then the size
arguments are set to -1.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="size_func"
                     transfer-ownership="none"
                     scope="notified"
                     closure="1"
                     destroy="2">
            <doc xml:whitespace="preserve">A sizing function, or %NULL</doc>
            <type name="SizeFunc" c:type="RsvgSizeFunc"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:whitespace="preserve">User data to pass to @size_func, or %NULL</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="user_data_destroy"
                     transfer-ownership="none"
                     scope="async">
            <doc xml:whitespace="preserve">Destroy function for @user_data, or %NULL</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="write"
              c:identifier="rsvg_handle_write"
              introspectable="0"
              throws="1">
        <doc xml:whitespace="preserve">Loads the next @count bytes of the image.  This will return #TRUE if the data
was loaded successful, and #FALSE if an error occurred.  In the latter case,
the loader will be closed, and will not accept further writes. If FALSE is
returned, @error will be set to an error from the #RsvgError domain. Errors
from #GIOErrorEnum are also possible.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE on success, or %FALSE on error</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="buf" transfer-ownership="none">
            <doc xml:whitespace="preserve">pointer to svg data</doc>
            <array length="1" zero-terminated="0" c:type="guchar*">
              <type c:type="uint8"/>
            </array>
          </parameter>
          <parameter name="count" transfer-ownership="none">
            <doc xml:whitespace="preserve">length of the @buf buffer in bytes</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </method>
      <property name="base-uri"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="utf8"/>
      </property>
      <property name="desc" transfer-ownership="none">
        <type name="utf8"/>
      </property>
      <property name="dpi-x"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="gdouble"/>
      </property>
      <property name="dpi-y"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="gdouble"/>
      </property>
      <property name="em" transfer-ownership="none">
        <type name="gdouble"/>
      </property>
      <property name="ex" transfer-ownership="none">
        <type name="gdouble"/>
      </property>
      <property name="height" transfer-ownership="none">
        <type name="gint"/>
      </property>
      <property name="metadata" transfer-ownership="none">
        <type name="utf8"/>
      </property>
      <property name="title" transfer-ownership="none">
        <type name="utf8"/>
      </property>
      <property name="width" transfer-ownership="none">
        <type name="gint"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="HandlePrivate" c:type="RsvgHandlePrivate*"/>
      </field>
      <field name="_abi_padding">
        <array zero-terminated="0" c:type="gpointer" fixed-size="15">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </class>
    <record name="HandleClass"
            c:type="RsvgHandleClass"
            glib:is-gtype-struct-for="Handle">
      <field name="parent">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_abi_padding">
        <array zero-terminated="0" c:type="gpointer" fixed-size="15">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <enumeration name="HandleFlags"
                 glib:type-name="RsvgHandleFlags"
                 glib:get-type="rsvg_handle_flags_get_type"
                 c:type="RsvgHandleFlags">
      <member name="none"
              value="0"
              c:identifier="RSVG_HANDLE_FLAGS_NONE"
              glib:nick="none"/>
    </enumeration>
    <record name="HandlePrivate" c:type="RsvgHandlePrivate">
      <field name="is_disposed" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="is_closed" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="size_func" writable="1">
        <type name="SizeFunc" c:type="RsvgSizeFunc"/>
      </field>
      <field name="user_data" writable="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="user_data_destroy" writable="1">
        <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
      </field>
      <field name="defs" writable="1">
        <type name="Defs" c:type="RsvgDefs*"/>
      </field>
      <field name="nest_level" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="currentnode" writable="1">
        <type name="Node" c:type="RsvgNode*"/>
      </field>
      <field name="treebase" writable="1">
        <type name="Node" c:type="RsvgNode*"/>
      </field>
      <field name="css_props" writable="1">
        <type name="GLib.HashTable" c:type="GHashTable*">
          <type name="gpointer" c:type="gpointer"/>
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="handler" writable="1">
        <type name="SaxHandler" c:type="RsvgSaxHandler*"/>
      </field>
      <field name="handler_nest" writable="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="entities" writable="1">
        <type name="GLib.HashTable" c:type="GHashTable*">
          <type name="gpointer" c:type="gpointer"/>
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="ctxt" introspectable="0" writable="1">
        <type c:type="xmlParserCtxtPtr"/>
      </field>
      <field name="error" writable="1">
        <type name="GLib.Error" c:type="GError**"/>
      </field>
      <field name="dpi_x" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
      <field name="dpi_y" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
      <field name="title" writable="1">
        <type name="GLib.String" c:type="GString*"/>
      </field>
      <field name="desc" writable="1">
        <type name="GLib.String" c:type="GString*"/>
      </field>
      <field name="metadata" writable="1">
        <type name="GLib.String" c:type="GString*"/>
      </field>
      <field name="base_uri" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="base_gfile" writable="1">
        <type name="Gio.File" c:type="GFile*"/>
      </field>
      <field name="finished" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="in_loop" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="first_write" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="data_input_stream" writable="1">
        <type name="Gio.InputStream" c:type="GInputStream*"/>
      </field>
    </record>
    <record name="IRect" c:type="RsvgIRect">
      <field name="x0" writable="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="y0" writable="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="x1" writable="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="y1" writable="1">
        <type name="gint" c:type="int"/>
      </field>
    </record>
    <record name="Length" c:type="RsvgLength">
      <field name="length" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
      <field name="factor" writable="1">
        <type name="gchar" c:type="char"/>
      </field>
    </record>
    <record name="LinearGradient" c:type="RsvgLinearGradient">
      <field name="super" writable="1">
        <type name="Node" c:type="RsvgNode"/>
      </field>
      <field name="obj_bbox" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="affine" writable="1">
        <array zero-terminated="0" c:type="gdouble" fixed-size="6">
          <type name="gdouble" c:type="double"/>
        </array>
      </field>
      <field name="spread" writable="1">
        <type name="GradientSpread" c:type="RsvgGradientSpread"/>
      </field>
      <field name="x1" writable="1">
        <type name="Length" c:type="RsvgLength"/>
      </field>
      <field name="y1" writable="1">
        <type name="Length" c:type="RsvgLength"/>
      </field>
      <field name="x2" writable="1">
        <type name="Length" c:type="RsvgLength"/>
      </field>
      <field name="y2" writable="1">
        <type name="Length" c:type="RsvgLength"/>
      </field>
      <field name="current_color" writable="1">
        <type name="guint32" c:type="guint32"/>
      </field>
      <field name="has_current_color" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="hasx1" writable="1" bits="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="hasy1" writable="1" bits="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="hasx2" writable="1" bits="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="hasy2" writable="1" bits="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="hasbbox" writable="1" bits="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="hasspread" writable="1" bits="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="hastransform" writable="1" bits="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="fallback" writable="1">
        <type name="Node" c:type="RsvgNode*"/>
      </field>
      <method name="fix_fallback"
              c:identifier="rsvg_linear_gradient_fix_fallback">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
    </record>
    <record name="Marker" c:type="RsvgMarker">
      <field name="super" writable="1">
        <type name="Node" c:type="RsvgNode"/>
      </field>
      <field name="bbox" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="refX" writable="1">
        <type name="Length" c:type="RsvgLength"/>
      </field>
      <field name="refY" writable="1">
        <type name="Length" c:type="RsvgLength"/>
      </field>
      <field name="width" writable="1">
        <type name="Length" c:type="RsvgLength"/>
      </field>
      <field name="height" writable="1">
        <type name="Length" c:type="RsvgLength"/>
      </field>
      <field name="orient" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
      <field name="preserve_aspect_ratio" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="orientAuto" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="vbox" writable="1">
        <type name="ViewBox" c:type="RsvgViewBox"/>
      </field>
      <method name="render" c:identifier="rsvg_marker_render">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="x" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="orient" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="linewidth" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="ctx" transfer-ownership="none">
            <type name="DrawingCtx" c:type="RsvgDrawingCtx*"/>
          </parameter>
        </parameters>
      </method>
      <function name="parse"
                c:identifier="rsvg_marker_parse"
                introspectable="0">
        <return-value>
          <type name="Node" c:type="RsvgNode*"/>
        </return-value>
        <parameters>
          <parameter name="defs" transfer-ownership="none">
            <type name="Defs" c:type="RsvgDefs*"/>
          </parameter>
          <parameter name="str" transfer-ownership="none">
            <type name="utf8" c:type="char*"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <record name="Mask" c:type="RsvgMask">
      <field name="super" writable="1">
        <type name="Node" c:type="RsvgNode"/>
      </field>
      <field name="x" writable="1">
        <type name="Length" c:type="RsvgLength"/>
      </field>
      <field name="y" writable="1">
        <type name="Length" c:type="RsvgLength"/>
      </field>
      <field name="width" writable="1">
        <type name="Length" c:type="RsvgLength"/>
      </field>
      <field name="height" writable="1">
        <type name="Length" c:type="RsvgLength"/>
      </field>
      <field name="maskunits" writable="1">
        <type name="MaskUnits" c:type="RsvgMaskUnits"/>
      </field>
      <field name="contentunits" writable="1">
        <type name="MaskUnits" c:type="RsvgMaskUnits"/>
      </field>
      <function name="parse" c:identifier="rsvg_mask_parse" introspectable="0">
        <return-value>
          <type name="Node" c:type="RsvgNode*"/>
        </return-value>
        <parameters>
          <parameter name="defs" transfer-ownership="none">
            <type name="Defs" c:type="RsvgDefs*"/>
          </parameter>
          <parameter name="str" transfer-ownership="none">
            <type name="utf8" c:type="char*"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <record name="Node" c:type="RsvgNode">
      <field name="state" writable="1">
        <type name="State" c:type="RsvgState*"/>
      </field>
      <field name="parent" writable="1">
        <type name="Node" c:type="RsvgNode*"/>
      </field>
      <field name="children" writable="1">
        <array name="GLib.PtrArray" c:type="GPtrArray*">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <field name="type" writable="1">
        <type name="NodeType" c:type="RsvgNodeType"/>
      </field>
      <field name="name" writable="1">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="free">
        <callback name="free">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Node" c:type="RsvgNode*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="draw">
        <callback name="draw">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Node" c:type="RsvgNode*"/>
            </parameter>
            <parameter name="ctx" transfer-ownership="none">
              <type name="DrawingCtx" c:type="RsvgDrawingCtx*"/>
            </parameter>
            <parameter name="dominate" transfer-ownership="none">
              <type name="gint" c:type="int"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_atts">
        <callback name="set_atts">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Node" c:type="RsvgNode*"/>
            </parameter>
            <parameter name="ctx" transfer-ownership="none">
              <type name="Handle" c:type="RsvgHandle*"/>
            </parameter>
            <parameter transfer-ownership="none">
              <type name="PropertyBag" c:type="RsvgPropertyBag*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <method name="draw" c:identifier="rsvg_node_draw">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="ctx" transfer-ownership="none">
            <type name="DrawingCtx" c:type="RsvgDrawingCtx*"/>
          </parameter>
          <parameter name="dominate" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="group_pack" c:identifier="rsvg_node_group_pack">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="child" transfer-ownership="none">
            <type name="Node" c:type="RsvgNode*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_atts" c:identifier="rsvg_node_set_atts">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="ctx" transfer-ownership="none">
            <type name="Handle" c:type="RsvgHandle*"/>
          </parameter>
          <parameter name="atts" transfer-ownership="none">
            <type name="PropertyBag" c:type="RsvgPropertyBag*"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <record name="NodeChars" c:type="RsvgNodeChars">
      <field name="super" writable="1">
        <type name="Node" c:type="RsvgNode"/>
      </field>
      <field name="contents" writable="1">
        <type name="GLib.String" c:type="GString*"/>
      </field>
    </record>
    <record name="NodeGroup" c:type="RsvgNodeGroup">
      <field name="super" writable="1">
        <type name="Node" c:type="RsvgNode"/>
      </field>
      <field name="name" writable="1">
        <type name="utf8" c:type="char*"/>
      </field>
    </record>
    <record name="NodeImage" c:type="RsvgNodeImage">
      <field name="super" writable="1">
        <type name="Node" c:type="RsvgNode"/>
      </field>
      <field name="preserve_aspect_ratio" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="x" writable="1">
        <type name="Length" c:type="RsvgLength"/>
      </field>
      <field name="y" writable="1">
        <type name="Length" c:type="RsvgLength"/>
      </field>
      <field name="w" writable="1">
        <type name="Length" c:type="RsvgLength"/>
      </field>
      <field name="h" writable="1">
        <type name="Length" c:type="RsvgLength"/>
      </field>
      <field name="img" writable="1">
        <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
      </field>
    </record>
    <record name="NodePath" c:type="RsvgNodePath">
      <field name="super" writable="1">
        <type name="Node" c:type="RsvgNode"/>
      </field>
      <field name="d" writable="1">
        <type name="utf8" c:type="char*"/>
      </field>
    </record>
    <record name="NodeSvg" c:type="RsvgNodeSvg">
      <field name="super" writable="1">
        <type name="Node" c:type="RsvgNode"/>
      </field>
      <field name="preserve_aspect_ratio" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="x" writable="1">
        <type name="Length" c:type="RsvgLength"/>
      </field>
      <field name="y" writable="1">
        <type name="Length" c:type="RsvgLength"/>
      </field>
      <field name="w" writable="1">
        <type name="Length" c:type="RsvgLength"/>
      </field>
      <field name="h" writable="1">
        <type name="Length" c:type="RsvgLength"/>
      </field>
      <field name="vbox" writable="1">
        <type name="ViewBox" c:type="RsvgViewBox"/>
      </field>
      <field name="atts" writable="1">
        <type name="PropertyBag" c:type="RsvgPropertyBag*"/>
      </field>
      <field name="img" writable="1">
        <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
      </field>
    </record>
    <record name="NodeSymbol" c:type="RsvgNodeSymbol">
      <field name="super" writable="1">
        <type name="Node" c:type="RsvgNode"/>
      </field>
      <field name="preserve_aspect_ratio" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="vbox" writable="1">
        <type name="ViewBox" c:type="RsvgViewBox"/>
      </field>
    </record>
    <enumeration name="NodeType" c:type="RsvgNodeType">
      <member name="invalid" value="0" c:identifier="RSVG_NODE_TYPE_INVALID"/>
      <member name="chars" value="1" c:identifier="RSVG_NODE_TYPE_CHARS"/>
      <member name="circle" value="2" c:identifier="RSVG_NODE_TYPE_CIRCLE"/>
      <member name="clip_path"
              value="3"
              c:identifier="RSVG_NODE_TYPE_CLIP_PATH"/>
      <member name="component_tranfer_function"
              value="4"
              c:identifier="RSVG_NODE_TYPE_COMPONENT_TRANFER_FUNCTION"/>
      <member name="defs" value="5" c:identifier="RSVG_NODE_TYPE_DEFS"/>
      <member name="ellipse" value="6" c:identifier="RSVG_NODE_TYPE_ELLIPSE"/>
      <member name="filter" value="7" c:identifier="RSVG_NODE_TYPE_FILTER"/>
      <member name="group" value="8" c:identifier="RSVG_NODE_TYPE_GROUP"/>
      <member name="image" value="9" c:identifier="RSVG_NODE_TYPE_IMAGE"/>
      <member name="light_source"
              value="10"
              c:identifier="RSVG_NODE_TYPE_LIGHT_SOURCE"/>
      <member name="line" value="11" c:identifier="RSVG_NODE_TYPE_LINE"/>
      <member name="linear_gradient"
              value="12"
              c:identifier="RSVG_NODE_TYPE_LINEAR_GRADIENT"/>
      <member name="marker" value="13" c:identifier="RSVG_NODE_TYPE_MARKER"/>
      <member name="mask" value="14" c:identifier="RSVG_NODE_TYPE_MASK"/>
      <member name="path" value="15" c:identifier="RSVG_NODE_TYPE_PATH"/>
      <member name="pattern" value="16" c:identifier="RSVG_NODE_TYPE_PATTERN"/>
      <member name="polygon" value="17" c:identifier="RSVG_NODE_TYPE_POLYGON"/>
      <member name="polyline"
              value="18"
              c:identifier="RSVG_NODE_TYPE_POLYLINE"/>
      <member name="radial_gradient"
              value="19"
              c:identifier="RSVG_NODE_TYPE_RADIAL_GRADIENT"/>
      <member name="rect" value="20" c:identifier="RSVG_NODE_TYPE_RECT"/>
      <member name="stop" value="21" c:identifier="RSVG_NODE_TYPE_STOP"/>
      <member name="svg" value="22" c:identifier="RSVG_NODE_TYPE_SVG"/>
      <member name="switch" value="23" c:identifier="RSVG_NODE_TYPE_SWITCH"/>
      <member name="symbol" value="24" c:identifier="RSVG_NODE_TYPE_SYMBOL"/>
      <member name="text" value="25" c:identifier="RSVG_NODE_TYPE_TEXT"/>
      <member name="tref" value="26" c:identifier="RSVG_NODE_TYPE_TREF"/>
      <member name="tspan" value="27" c:identifier="RSVG_NODE_TYPE_TSPAN"/>
      <member name="use" value="28" c:identifier="RSVG_NODE_TYPE_USE"/>
      <member name="filter_primitive"
              value="64"
              c:identifier="RSVG_NODE_TYPE_FILTER_PRIMITIVE"/>
      <member name="filter_primitive_blend"
              value="65"
              c:identifier="RSVG_NODE_TYPE_FILTER_PRIMITIVE_BLEND"/>
      <member name="filter_primitive_colour_matrix"
              value="66"
              c:identifier="RSVG_NODE_TYPE_FILTER_PRIMITIVE_COLOUR_MATRIX"/>
      <member name="filter_primitive_component_transfer"
              value="67"
              c:identifier="RSVG_NODE_TYPE_FILTER_PRIMITIVE_COMPONENT_TRANSFER"/>
      <member name="filter_primitive_composite"
              value="68"
              c:identifier="RSVG_NODE_TYPE_FILTER_PRIMITIVE_COMPOSITE"/>
      <member name="filter_primitive_convolve_matrix"
              value="69"
              c:identifier="RSVG_NODE_TYPE_FILTER_PRIMITIVE_CONVOLVE_MATRIX"/>
      <member name="filter_primitive_diffuse_lighting"
              value="70"
              c:identifier="RSVG_NODE_TYPE_FILTER_PRIMITIVE_DIFFUSE_LIGHTING"/>
      <member name="filter_primitive_displacement_map"
              value="71"
              c:identifier="RSVG_NODE_TYPE_FILTER_PRIMITIVE_DISPLACEMENT_MAP"/>
      <member name="filter_primitive_erode"
              value="72"
              c:identifier="RSVG_NODE_TYPE_FILTER_PRIMITIVE_ERODE"/>
      <member name="filter_primitive_flood"
              value="73"
              c:identifier="RSVG_NODE_TYPE_FILTER_PRIMITIVE_FLOOD"/>
      <member name="filter_primitive_gaussian_blur"
              value="74"
              c:identifier="RSVG_NODE_TYPE_FILTER_PRIMITIVE_GAUSSIAN_BLUR"/>
      <member name="filter_primitive_image"
              value="75"
              c:identifier="RSVG_NODE_TYPE_FILTER_PRIMITIVE_IMAGE"/>
      <member name="filter_primitive_merge"
              value="76"
              c:identifier="RSVG_NODE_TYPE_FILTER_PRIMITIVE_MERGE"/>
      <member name="filter_primitive_merge_node"
              value="77"
              c:identifier="RSVG_NODE_TYPE_FILTER_PRIMITIVE_MERGE_NODE"/>
      <member name="filter_primitive_offset"
              value="78"
              c:identifier="RSVG_NODE_TYPE_FILTER_PRIMITIVE_OFFSET"/>
      <member name="filter_primitive_specular_lighting"
              value="79"
              c:identifier="RSVG_NODE_TYPE_FILTER_PRIMITIVE_SPECULAR_LIGHTING"/>
      <member name="filter_primitive_tile"
              value="80"
              c:identifier="RSVG_NODE_TYPE_FILTER_PRIMITIVE_TILE"/>
      <member name="filter_primitive_turbulence"
              value="81"
              c:identifier="RSVG_NODE_TYPE_FILTER_PRIMITIVE_TURBULENCE"/>
    </enumeration>
    <record name="NodeUse" c:type="RsvgNodeUse">
      <field name="super" writable="1">
        <type name="Node" c:type="RsvgNode"/>
      </field>
      <field name="link" writable="1">
        <type name="Node" c:type="RsvgNode*"/>
      </field>
      <field name="x" writable="1">
        <type name="Length" c:type="RsvgLength"/>
      </field>
      <field name="y" writable="1">
        <type name="Length" c:type="RsvgLength"/>
      </field>
      <field name="w" writable="1">
        <type name="Length" c:type="RsvgLength"/>
      </field>
      <field name="h" writable="1">
        <type name="Length" c:type="RsvgLength"/>
      </field>
    </record>
    <constant name="ONE_MINUS_EPSILON"
              value="0"
              c:type="RSVG_ONE_MINUS_EPSILON">
      <type name="gint" c:type="gint"/>
    </constant>
    <record name="PSCtx" c:type="RsvgPSCtx" disguised="1">
    </record>
    <record name="PaintServer" c:type="RsvgPaintServer">
      <field name="refcnt" writable="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="type" writable="1">
        <type name="PaintServerType" c:type="RsvgPaintServerType"/>
      </field>
      <field name="core" writable="1">
        <type name="PaintServerCore" c:type="RsvgPaintServerCore"/>
      </field>
      <method name="ref" c:identifier="rsvg_paint_server_ref">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="unref" c:identifier="rsvg_paint_server_unref">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <function name="parse"
                c:identifier="rsvg_paint_server_parse"
                introspectable="0">
        <doc xml:whitespace="preserve">Parses the paint specification @str, creating a new paint server
object.</doc>
        <return-value>
          <doc xml:whitespace="preserve">The newly created paint server, or NULL on error.</doc>
          <type name="PaintServer" c:type="RsvgPaintServer*"/>
        </return-value>
        <parameters>
          <parameter name="inherit" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean*"/>
          </parameter>
          <parameter name="defs" transfer-ownership="none">
            <doc xml:whitespace="preserve">Defs for looking up gradients.</doc>
            <type name="Defs" c:type="RsvgDefs*"/>
          </parameter>
          <parameter name="str" transfer-ownership="none">
            <doc xml:whitespace="preserve">The SVG paint specification string to parse.</doc>
            <type name="utf8" c:type="char*"/>
          </parameter>
          <parameter name="current_color" transfer-ownership="none">
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <record name="PaintServerColour"
            c:type="RsvgPaintServerColour"
            disguised="1">
    </record>
    <union name="PaintServerCore" c:type="RsvgPaintServerCore">
      <field name="lingrad" writable="1">
        <type name="LinearGradient" c:type="RsvgLinearGradient*"/>
      </field>
      <field name="radgrad" writable="1">
        <type name="RadialGradient" c:type="RsvgRadialGradient*"/>
      </field>
      <field name="colour" writable="1">
        <type name="SolidColour" c:type="RsvgSolidColour*"/>
      </field>
      <field name="pattern" writable="1">
        <type name="Pattern" c:type="RsvgPattern*"/>
      </field>
    </union>
    <enumeration name="PaintServerType" c:type="RsvgPaintServerType">
    </enumeration>
    <enumeration name="PathStrokeCapType" c:type="RsvgPathStrokeCapType">
      <member name="butt" value="0" c:identifier="RSVG_PATH_STROKE_CAP_BUTT"/>
      <member name="round"
              value="1"
              c:identifier="RSVG_PATH_STROKE_CAP_ROUND"/>
      <member name="square"
              value="2"
              c:identifier="RSVG_PATH_STROKE_CAP_SQUARE"/>
    </enumeration>
    <enumeration name="PathStrokeJoinType" c:type="RsvgPathStrokeJoinType">
      <member name="miter"
              value="0"
              c:identifier="RSVG_PATH_STROKE_JOIN_MITER"/>
      <member name="round"
              value="1"
              c:identifier="RSVG_PATH_STROKE_JOIN_ROUND"/>
      <member name="bevel"
              value="2"
              c:identifier="RSVG_PATH_STROKE_JOIN_BEVEL"/>
    </enumeration>
    <enumeration name="Pathcode" c:type="RsvgPathcode">
      <member name="moveto" value="0" c:identifier="RSVG_MOVETO"/>
      <member name="moveto_open" value="1" c:identifier="RSVG_MOVETO_OPEN"/>
      <member name="curveto" value="2" c:identifier="RSVG_CURVETO"/>
      <member name="lineto" value="3" c:identifier="RSVG_LINETO"/>
      <member name="end" value="4" c:identifier="RSVG_END"/>
    </enumeration>
    <record name="Pattern" c:type="RsvgPattern">
      <field name="super" writable="1">
        <type name="Node" c:type="RsvgNode"/>
      </field>
      <field name="obj_cbbox" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="obj_bbox" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="affine" writable="1">
        <array zero-terminated="0" c:type="gdouble" fixed-size="6">
          <type name="gdouble" c:type="double"/>
        </array>
      </field>
      <field name="x" writable="1">
        <type name="Length" c:type="RsvgLength"/>
      </field>
      <field name="y" writable="1">
        <type name="Length" c:type="RsvgLength"/>
      </field>
      <field name="width" writable="1">
        <type name="Length" c:type="RsvgLength"/>
      </field>
      <field name="height" writable="1">
        <type name="Length" c:type="RsvgLength"/>
      </field>
      <field name="vbox" writable="1">
        <type name="ViewBox" c:type="RsvgViewBox"/>
      </field>
      <field name="preserve_aspect_ratio" writable="1">
        <type name="guint" c:type="unsigned"/>
      </field>
      <field name="hasx" writable="1" bits="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="hasy" writable="1" bits="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="hasvbox" writable="1" bits="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="haswidth" writable="1" bits="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="hasheight" writable="1" bits="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="hasaspect" writable="1" bits="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="hascbox" writable="1" bits="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="hasbbox" writable="1" bits="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="hastransform" writable="1" bits="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="fallback" writable="1">
        <type name="Pattern" c:type="RsvgPattern*"/>
      </field>
      <method name="fix_fallback" c:identifier="rsvg_pattern_fix_fallback">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
    </record>
    <record name="PositionData" c:type="RsvgPositionData">
      <field name="x" writable="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="y" writable="1">
        <type name="gint" c:type="int"/>
      </field>
    </record>
    <callback name="PropertyBagEnumFunc" c:type="RsvgPropertyBagEnumFunc">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="key" transfer-ownership="none">
          <type name="utf8" c:type="char*"/>
        </parameter>
        <parameter name="value" transfer-ownership="none">
          <type name="utf8" c:type="char*"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" closure="2">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <record name="RadialGradient" c:type="RsvgRadialGradient">
      <field name="super" writable="1">
        <type name="Node" c:type="RsvgNode"/>
      </field>
      <field name="obj_bbox" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="affine" writable="1">
        <array zero-terminated="0" c:type="gdouble" fixed-size="6">
          <type name="gdouble" c:type="double"/>
        </array>
      </field>
      <field name="spread" writable="1">
        <type name="GradientSpread" c:type="RsvgGradientSpread"/>
      </field>
      <field name="cx" writable="1">
        <type name="Length" c:type="RsvgLength"/>
      </field>
      <field name="cy" writable="1">
        <type name="Length" c:type="RsvgLength"/>
      </field>
      <field name="r" writable="1">
        <type name="Length" c:type="RsvgLength"/>
      </field>
      <field name="fx" writable="1">
        <type name="Length" c:type="RsvgLength"/>
      </field>
      <field name="fy" writable="1">
        <type name="Length" c:type="RsvgLength"/>
      </field>
      <field name="current_color" writable="1">
        <type name="guint32" c:type="guint32"/>
      </field>
      <field name="has_current_color" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="hascx" writable="1" bits="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="hascy" writable="1" bits="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="hasfx" writable="1" bits="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="hasfy" writable="1" bits="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="hasr" writable="1" bits="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="hasspread" writable="1" bits="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="hasbbox" writable="1" bits="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="hastransform" writable="1" bits="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="fallback" writable="1">
        <type name="Node" c:type="RsvgNode*"/>
      </field>
      <method name="fix_fallback"
              c:identifier="rsvg_radial_gradient_fix_fallback">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
    </record>
    <record name="Render" c:type="RsvgRender">
      <field name="free">
        <callback name="free">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Render" c:type="RsvgRender*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="create_pango_context" introspectable="0">
        <callback name="create_pango_context" introspectable="0">
          <return-value>
            <type c:type="PangoContext*"/>
          </return-value>
          <parameters>
            <parameter name="ctx" transfer-ownership="none">
              <type name="DrawingCtx" c:type="RsvgDrawingCtx*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="render_pango_layout" introspectable="0">
        <callback name="render_pango_layout" introspectable="0">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="ctx" transfer-ownership="none">
              <type name="DrawingCtx" c:type="RsvgDrawingCtx*"/>
            </parameter>
            <parameter name="layout" transfer-ownership="none">
              <type c:type="PangoLayout*"/>
            </parameter>
            <parameter name="x" transfer-ownership="none">
              <type name="gdouble" c:type="double"/>
            </parameter>
            <parameter name="y" transfer-ownership="none">
              <type name="gdouble" c:type="double"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="render_path">
        <callback name="render_path">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="ctx" transfer-ownership="none">
              <type name="DrawingCtx" c:type="RsvgDrawingCtx*"/>
            </parameter>
            <parameter name="path" transfer-ownership="none">
              <type name="BpathDef" c:type="RsvgBpathDef*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="render_image">
        <callback name="render_image">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="ctx" transfer-ownership="none">
              <type name="DrawingCtx" c:type="RsvgDrawingCtx*"/>
            </parameter>
            <parameter name="pixbuf" transfer-ownership="none">
              <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
            </parameter>
            <parameter name="x" transfer-ownership="none">
              <type name="gdouble" c:type="double"/>
            </parameter>
            <parameter name="y" transfer-ownership="none">
              <type name="gdouble" c:type="double"/>
            </parameter>
            <parameter name="w" transfer-ownership="none">
              <type name="gdouble" c:type="double"/>
            </parameter>
            <parameter name="h" transfer-ownership="none">
              <type name="gdouble" c:type="double"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="pop_discrete_layer">
        <callback name="pop_discrete_layer">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="ctx" transfer-ownership="none">
              <type name="DrawingCtx" c:type="RsvgDrawingCtx*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="push_discrete_layer">
        <callback name="push_discrete_layer">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="ctx" transfer-ownership="none">
              <type name="DrawingCtx" c:type="RsvgDrawingCtx*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="add_clipping_rect">
        <callback name="add_clipping_rect">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="ctx" transfer-ownership="none">
              <type name="DrawingCtx" c:type="RsvgDrawingCtx*"/>
            </parameter>
            <parameter name="x" transfer-ownership="none">
              <type name="gdouble" c:type="double"/>
            </parameter>
            <parameter name="y" transfer-ownership="none">
              <type name="gdouble" c:type="double"/>
            </parameter>
            <parameter name="w" transfer-ownership="none">
              <type name="gdouble" c:type="double"/>
            </parameter>
            <parameter name="h" transfer-ownership="none">
              <type name="gdouble" c:type="double"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_image_of_node" introspectable="0">
        <callback name="get_image_of_node" introspectable="0">
          <return-value>
            <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
          </return-value>
          <parameters>
            <parameter name="ctx" transfer-ownership="none">
              <type name="DrawingCtx" c:type="RsvgDrawingCtx*"/>
            </parameter>
            <parameter name="drawable" transfer-ownership="none">
              <type name="Node" c:type="RsvgNode*"/>
            </parameter>
            <parameter name="w" transfer-ownership="none">
              <type name="gdouble" c:type="double"/>
            </parameter>
            <parameter name="h" transfer-ownership="none">
              <type name="gdouble" c:type="double"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <method name="free" c:identifier="rsvg_render_free">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <function name="image" c:identifier="rsvg_render_image">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="ctx" transfer-ownership="none">
            <type name="DrawingCtx" c:type="RsvgDrawingCtx*"/>
          </parameter>
          <parameter name="pb" transfer-ownership="none">
            <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="w" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="h" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
        </parameters>
      </function>
      <function name="markers" c:identifier="rsvg_render_markers">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="bpath_def" transfer-ownership="none">
            <type name="BpathDef" c:type="RsvgBpathDef*"/>
          </parameter>
          <parameter name="ctx" transfer-ownership="none">
            <type name="DrawingCtx" c:type="RsvgDrawingCtx*"/>
          </parameter>
        </parameters>
      </function>
      <function name="path" c:identifier="rsvg_render_path">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="ctx" transfer-ownership="none">
            <type name="DrawingCtx" c:type="RsvgDrawingCtx*"/>
          </parameter>
          <parameter name="d" transfer-ownership="none">
            <type name="utf8" c:type="char*"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <function name="SAX_handler_struct_init"
              c:identifier="rsvg_SAX_handler_struct_init">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <record name="SaxHandler" c:type="RsvgSaxHandler">
      <field name="free">
        <callback name="free">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SaxHandler" c:type="RsvgSaxHandler*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="start_element">
        <callback name="start_element">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SaxHandler" c:type="RsvgSaxHandler*"/>
            </parameter>
            <parameter name="name" transfer-ownership="none">
              <type name="utf8" c:type="char*"/>
            </parameter>
            <parameter name="atts" transfer-ownership="none">
              <type name="PropertyBag" c:type="RsvgPropertyBag*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="end_element">
        <callback name="end_element">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SaxHandler" c:type="RsvgSaxHandler*"/>
            </parameter>
            <parameter name="name" transfer-ownership="none">
              <type name="utf8" c:type="char*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="characters">
        <callback name="characters">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="SaxHandler" c:type="RsvgSaxHandler*"/>
            </parameter>
            <parameter name="ch" transfer-ownership="none">
              <type name="utf8" c:type="char*"/>
            </parameter>
            <parameter name="len" transfer-ownership="none">
              <type name="gint" c:type="int"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="SizeCallbackData" c:type="RsvgSizeCallbackData">
      <field name="type" writable="1">
        <type name="SizeType" c:type="RsvgSizeType"/>
      </field>
      <field name="x_zoom" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
      <field name="y_zoom" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
      <field name="width" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="height" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="keep_aspect_ratio" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
    </record>
    <callback name="SizeFunc" c:type="RsvgSizeFunc">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="width" transfer-ownership="none">
          <type name="gint" c:type="gint*"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <type name="gint" c:type="gint*"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" closure="2">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <enumeration name="SizeType" c:type="RsvgSizeType">
      <member name="zoom" value="0" c:identifier="RSVG_SIZE_ZOOM"/>
      <member name="wh" value="1" c:identifier="RSVG_SIZE_WH"/>
      <member name="wh_max" value="2" c:identifier="RSVG_SIZE_WH_MAX"/>
      <member name="zoom_max" value="3" c:identifier="RSVG_SIZE_ZOOM_MAX"/>
    </enumeration>
    <record name="SolidColour" c:type="RsvgSolidColour">
      <field name="currentcolour" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="rgb" writable="1">
        <type name="guint32" c:type="guint32"/>
      </field>
    </record>
    <record name="State" c:type="RsvgState">
      <field name="parent" writable="1">
        <type name="State" c:type="RsvgState*"/>
      </field>
      <field name="affine" writable="1">
        <array zero-terminated="0" c:type="gdouble" fixed-size="6">
          <type name="gdouble" c:type="double"/>
        </array>
      </field>
      <field name="personal_affine" writable="1">
        <array zero-terminated="0" c:type="gdouble" fixed-size="6">
          <type name="gdouble" c:type="double"/>
        </array>
      </field>
      <field name="filter" writable="1">
        <type name="Filter" c:type="RsvgFilter*"/>
      </field>
      <field name="mask" writable="1">
        <type name="gpointer" c:type="void*"/>
      </field>
      <field name="clip_path_ref" writable="1">
        <type name="gpointer" c:type="void*"/>
      </field>
      <field name="adobe_blend" writable="1">
        <type name="guint8" c:type="guint8"/>
      </field>
      <field name="opacity" writable="1">
        <type name="guint8" c:type="guint8"/>
      </field>
      <field name="fill" writable="1">
        <type name="PaintServer" c:type="RsvgPaintServer*"/>
      </field>
      <field name="has_fill_server" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="fill_opacity" writable="1">
        <type name="guint8" c:type="guint8"/>
      </field>
      <field name="has_fill_opacity" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="fill_rule" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="has_fill_rule" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="clip_rule" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="has_clip_rule" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="overflow" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="has_overflow" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="stroke" writable="1">
        <type name="PaintServer" c:type="RsvgPaintServer*"/>
      </field>
      <field name="has_stroke_server" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="stroke_opacity" writable="1">
        <type name="guint8" c:type="guint8"/>
      </field>
      <field name="has_stroke_opacity" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="stroke_width" writable="1">
        <type name="Length" c:type="RsvgLength"/>
      </field>
      <field name="has_stroke_width" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="miter_limit" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
      <field name="has_miter_limit" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="cap" writable="1">
        <type name="PathStrokeCapType" c:type="RsvgPathStrokeCapType"/>
      </field>
      <field name="has_cap" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="join" writable="1">
        <type name="PathStrokeJoinType" c:type="RsvgPathStrokeJoinType"/>
      </field>
      <field name="has_join" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="font_size" writable="1">
        <type name="Length" c:type="RsvgLength"/>
      </field>
      <field name="has_font_size" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="font_family" writable="1">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="has_font_family" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="lang" writable="1">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="has_lang" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="font_style" introspectable="0" writable="1">
        <type c:type="PangoStyle"/>
      </field>
      <field name="has_font_style" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="font_variant" introspectable="0" writable="1">
        <type c:type="PangoVariant"/>
      </field>
      <field name="has_font_variant" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="font_weight" introspectable="0" writable="1">
        <type c:type="PangoWeight"/>
      </field>
      <field name="has_font_weight" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="font_stretch" introspectable="0" writable="1">
        <type c:type="PangoStretch"/>
      </field>
      <field name="has_font_stretch" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="font_decor" introspectable="0" writable="1">
        <type c:type="TextDecoration"/>
      </field>
      <field name="has_font_decor" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="text_dir" introspectable="0" writable="1">
        <type c:type="PangoDirection"/>
      </field>
      <field name="has_text_dir" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="unicode_bidi" introspectable="0" writable="1">
        <type c:type="UnicodeBidi"/>
      </field>
      <field name="has_unicode_bidi" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="text_anchor" introspectable="0" writable="1">
        <type c:type="TextAnchor"/>
      </field>
      <field name="has_text_anchor" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="letter_spacing" writable="1">
        <type name="Length" c:type="RsvgLength"/>
      </field>
      <field name="has_letter_spacing" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="text_offset" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="stop_color" writable="1">
        <type name="guint32" c:type="guint32"/>
      </field>
      <field name="has_stop_color" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="stop_opacity" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="has_stop_opacity" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="visible" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="has_visible" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="space_preserve" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="has_space_preserve" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="has_cond" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="cond_true" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="dash" writable="1">
        <type name="VpathDash" c:type="RsvgVpathDash"/>
      </field>
      <field name="has_dash" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="has_dashoffset" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="current_color" writable="1">
        <type name="guint32" c:type="guint32"/>
      </field>
      <field name="has_current_color" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="flood_color" writable="1">
        <type name="guint32" c:type="guint32"/>
      </field>
      <field name="has_flood_color" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="flood_opacity" writable="1">
        <type name="guint8" c:type="guchar"/>
      </field>
      <field name="has_flood_opacity" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="startMarker" writable="1">
        <type name="Node" c:type="RsvgNode*"/>
      </field>
      <field name="middleMarker" writable="1">
        <type name="Node" c:type="RsvgNode*"/>
      </field>
      <field name="endMarker" writable="1">
        <type name="Node" c:type="RsvgNode*"/>
      </field>
      <field name="has_startMarker" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="has_middleMarker" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="has_endMarker" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="comp_op" writable="1">
        <type name="CompOpType" c:type="RsvgCompOpType"/>
      </field>
      <field name="enable_background" writable="1">
        <type name="EnableBackgroundType" c:type="RsvgEnableBackgroundType"/>
      </field>
      <field name="shape_rendering_type" introspectable="0" writable="1">
        <type c:type="ShapeRenderingProperty"/>
      </field>
      <field name="has_shape_rendering_type" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="text_rendering_type" introspectable="0" writable="1">
        <type c:type="TextRenderingProperty"/>
      </field>
      <field name="has_text_rendering_type" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="styles" writable="1">
        <type name="GLib.HashTable" c:type="GHashTable*">
          <type name="gpointer" c:type="gpointer"/>
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <method name="clone" c:identifier="rsvg_state_clone">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="src" transfer-ownership="none">
            <type name="State" c:type="RsvgState*"/>
          </parameter>
        </parameters>
      </method>
      <method name="dominate" c:identifier="rsvg_state_dominate">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="src" transfer-ownership="none">
            <type name="State" c:type="RsvgState*"/>
          </parameter>
        </parameters>
      </method>
      <method name="finalize" c:identifier="rsvg_state_finalize">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="free_all" c:identifier="rsvg_state_free_all">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="inherit" c:identifier="rsvg_state_inherit">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="src" transfer-ownership="none">
            <type name="State" c:type="RsvgState*"/>
          </parameter>
        </parameters>
      </method>
      <method name="init" c:identifier="rsvg_state_init">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="override" c:identifier="rsvg_state_override">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="src" transfer-ownership="none">
            <type name="State" c:type="RsvgState*"/>
          </parameter>
        </parameters>
      </method>
      <method name="parent"
              c:identifier="rsvg_state_parent"
              introspectable="0">
        <return-value>
          <type name="State" c:type="RsvgState*"/>
        </return-value>
      </method>
      <method name="reconstruct" c:identifier="rsvg_state_reconstruct">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="current" transfer-ownership="none">
            <type name="Node" c:type="RsvgNode*"/>
          </parameter>
        </parameters>
      </method>
      <method name="reinherit" c:identifier="rsvg_state_reinherit">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="src" transfer-ownership="none">
            <type name="State" c:type="RsvgState*"/>
          </parameter>
        </parameters>
      </method>
      <method name="reinit" c:identifier="rsvg_state_reinit">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <function name="new" c:identifier="rsvg_state_new" introspectable="0">
        <return-value>
          <type name="State" c:type="RsvgState*"/>
        </return-value>
      </function>
      <function name="pop" c:identifier="rsvg_state_pop">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="ctx" transfer-ownership="none">
            <type name="DrawingCtx" c:type="RsvgDrawingCtx*"/>
          </parameter>
        </parameters>
      </function>
      <function name="push" c:identifier="rsvg_state_push">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="ctx" transfer-ownership="none">
            <type name="DrawingCtx" c:type="RsvgDrawingCtx*"/>
          </parameter>
        </parameters>
      </function>
      <function name="reinherit_top" c:identifier="rsvg_state_reinherit_top">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="ctx" transfer-ownership="none">
            <type name="DrawingCtx" c:type="RsvgDrawingCtx*"/>
          </parameter>
          <parameter name="state" transfer-ownership="none">
            <type name="State" c:type="RsvgState*"/>
          </parameter>
          <parameter name="dominate" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <record name="ViewBox" c:type="RsvgViewBox">
      <field name="active" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="x" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
      <field name="y" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
      <field name="w" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
      <field name="h" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
    </record>
    <record name="VpathDash" c:type="RsvgVpathDash">
      <field name="offset" writable="1">
        <type name="Length" c:type="RsvgLength"/>
      </field>
      <field name="n_dash" writable="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="dash" writable="1">
        <type name="gdouble" c:type="double*"/>
      </field>
    </record>
    <function name="add_clipping_rect" c:identifier="rsvg_add_clipping_rect">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="ctx" transfer-ownership="none">
          <type name="DrawingCtx" c:type="RsvgDrawingCtx*"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <type name="gdouble" c:type="double"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <type name="gdouble" c:type="double"/>
        </parameter>
        <parameter name="w" transfer-ownership="none">
          <type name="gdouble" c:type="double"/>
        </parameter>
        <parameter name="h" transfer-ownership="none">
          <type name="gdouble" c:type="double"/>
        </parameter>
      </parameters>
    </function>
    <function name="alpha_blt" c:identifier="rsvg_alpha_blt">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="src" transfer-ownership="none">
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </parameter>
        <parameter name="srcx" transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="srcy" transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="srcwidth" transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="srcheight" transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="dst" transfer-ownership="none">
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </parameter>
        <parameter name="dstx" transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="dsty" transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="art_affine_image" c:identifier="rsvg_art_affine_image">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="img" transfer-ownership="none">
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </parameter>
        <parameter name="intermediate" transfer-ownership="none">
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </parameter>
        <parameter name="affine" transfer-ownership="none">
          <type name="gdouble" c:type="double*"/>
        </parameter>
        <parameter name="w" transfer-ownership="none">
          <type name="gdouble" c:type="double"/>
        </parameter>
        <parameter name="h" transfer-ownership="none">
          <type name="gdouble" c:type="double"/>
        </parameter>
      </parameters>
    </function>
    <function name="cairo_add_clipping_rect"
              c:identifier="rsvg_cairo_add_clipping_rect">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="ctx" transfer-ownership="none">
          <type name="DrawingCtx" c:type="RsvgDrawingCtx*"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <type name="gdouble" c:type="double"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <type name="gdouble" c:type="double"/>
        </parameter>
        <parameter name="width" transfer-ownership="none">
          <type name="gdouble" c:type="double"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <type name="gdouble" c:type="double"/>
        </parameter>
      </parameters>
    </function>
    <function name="cairo_clip" c:identifier="rsvg_cairo_clip">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="ctx" transfer-ownership="none">
          <type name="DrawingCtx" c:type="RsvgDrawingCtx*"/>
        </parameter>
        <parameter name="clip" transfer-ownership="none">
          <type name="ClipPath" c:type="RsvgClipPath*"/>
        </parameter>
        <parameter name="bbox" transfer-ownership="none">
          <type name="Bbox" c:type="RsvgBbox*"/>
        </parameter>
      </parameters>
    </function>
    <function name="cairo_create_pango_context"
              c:identifier="rsvg_cairo_create_pango_context"
              introspectable="0">
      <return-value>
        <type c:type="PangoContext*"/>
      </return-value>
      <parameters>
        <parameter name="ctx" transfer-ownership="none">
          <type name="DrawingCtx" c:type="RsvgDrawingCtx*"/>
        </parameter>
      </parameters>
    </function>
    <function name="cairo_get_image_of_node"
              c:identifier="rsvg_cairo_get_image_of_node"
              introspectable="0">
      <return-value>
        <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
      </return-value>
      <parameters>
        <parameter name="ctx" transfer-ownership="none">
          <type name="DrawingCtx" c:type="RsvgDrawingCtx*"/>
        </parameter>
        <parameter name="drawable" transfer-ownership="none">
          <type name="Node" c:type="RsvgNode*"/>
        </parameter>
        <parameter name="width" transfer-ownership="none">
          <type name="gdouble" c:type="double"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <type name="gdouble" c:type="double"/>
        </parameter>
      </parameters>
    </function>
    <function name="cairo_new_drawing_ctx"
              c:identifier="rsvg_cairo_new_drawing_ctx"
              introspectable="0">
      <return-value>
        <type name="DrawingCtx" c:type="RsvgDrawingCtx*"/>
      </return-value>
      <parameters>
        <parameter name="cr" transfer-ownership="none">
          <type name="cairo.Context" c:type="cairo_t*"/>
        </parameter>
        <parameter name="handle" transfer-ownership="none">
          <type name="Handle" c:type="RsvgHandle*"/>
        </parameter>
      </parameters>
    </function>
    <function name="cairo_pop_discrete_layer"
              c:identifier="rsvg_cairo_pop_discrete_layer">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="ctx" transfer-ownership="none">
          <type name="DrawingCtx" c:type="RsvgDrawingCtx*"/>
        </parameter>
      </parameters>
    </function>
    <function name="cairo_push_discrete_layer"
              c:identifier="rsvg_cairo_push_discrete_layer">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="ctx" transfer-ownership="none">
          <type name="DrawingCtx" c:type="RsvgDrawingCtx*"/>
        </parameter>
      </parameters>
    </function>
    <function name="cairo_render_image"
              c:identifier="rsvg_cairo_render_image"
              moved-to="CairoRender.image">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="ctx" transfer-ownership="none">
          <type name="DrawingCtx" c:type="RsvgDrawingCtx*"/>
        </parameter>
        <parameter name="img" transfer-ownership="none">
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <type name="gdouble" c:type="double"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <type name="gdouble" c:type="double"/>
        </parameter>
        <parameter name="w" transfer-ownership="none">
          <type name="gdouble" c:type="double"/>
        </parameter>
        <parameter name="h" transfer-ownership="none">
          <type name="gdouble" c:type="double"/>
        </parameter>
      </parameters>
    </function>
    <function name="cairo_render_path"
              c:identifier="rsvg_cairo_render_path"
              moved-to="CairoRender.path">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="ctx" transfer-ownership="none">
          <type name="DrawingCtx" c:type="RsvgDrawingCtx*"/>
        </parameter>
        <parameter name="path" transfer-ownership="none">
          <type name="BpathDef" c:type="RsvgBpathDef*"/>
        </parameter>
      </parameters>
    </function>
    <function name="cairo_render_rsvg_handle"
              c:identifier="rsvg_cairo_render_rsvg_handle"
              moved-to="CairoRender.rsvg_handle">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="cr" transfer-ownership="none">
          <type name="cairo.Context" c:type="cairo_t*"/>
        </parameter>
        <parameter name="handle" transfer-ownership="none">
          <type name="Handle" c:type="RsvgHandle*"/>
        </parameter>
      </parameters>
    </function>
    <function name="cairo_to_pixbuf" c:identifier="rsvg_cairo_to_pixbuf">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="pixels" transfer-ownership="none">
          <type name="guint8" c:type="guint8*"/>
        </parameter>
        <parameter name="rowstride" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
      </parameters>
    </function>
    <function name="clone_linear_gradient"
              c:identifier="rsvg_clone_linear_gradient"
              introspectable="0">
      <return-value>
        <type name="LinearGradient" c:type="RsvgLinearGradient*"/>
      </return-value>
      <parameters>
        <parameter name="grad" transfer-ownership="none">
          <type name="LinearGradient" c:type="RsvgLinearGradient*"/>
        </parameter>
        <parameter name="shallow_cloned" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean*"/>
        </parameter>
      </parameters>
    </function>
    <function name="clone_radial_gradient"
              c:identifier="rsvg_clone_radial_gradient"
              introspectable="0">
      <return-value>
        <type name="RadialGradient" c:type="RsvgRadialGradient*"/>
      </return-value>
      <parameters>
        <parameter name="grad" transfer-ownership="none">
          <type name="RadialGradient" c:type="RsvgRadialGradient*"/>
        </parameter>
        <parameter name="shallow_cloned" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean*"/>
        </parameter>
      </parameters>
    </function>
    <function name="css_parse_angle" c:identifier="rsvg_css_parse_angle">
      <return-value transfer-ownership="none">
        <type name="gdouble" c:type="double"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <type name="utf8" c:type="char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="css_parse_aspect_ratio"
              c:identifier="rsvg_css_parse_aspect_ratio">
      <return-value transfer-ownership="none">
        <type name="gint" c:type="int"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <type name="utf8" c:type="char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="css_parse_color" c:identifier="rsvg_css_parse_color">
      <return-value transfer-ownership="none">
        <type name="guint32" c:type="guint32"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <type name="utf8" c:type="char*"/>
        </parameter>
        <parameter name="inherit" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean*"/>
        </parameter>
      </parameters>
    </function>
    <function name="css_parse_font_family"
              c:identifier="rsvg_css_parse_font_family">
      <return-value transfer-ownership="none">
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <type name="utf8" c:type="char*"/>
        </parameter>
        <parameter name="inherit" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean*"/>
        </parameter>
      </parameters>
    </function>
    <function name="css_parse_font_stretch"
              c:identifier="rsvg_css_parse_font_stretch"
              introspectable="0">
      <return-value>
        <type c:type="PangoStretch"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <type name="utf8" c:type="char*"/>
        </parameter>
        <parameter name="inherit" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean*"/>
        </parameter>
      </parameters>
    </function>
    <function name="css_parse_font_style"
              c:identifier="rsvg_css_parse_font_style"
              introspectable="0">
      <return-value>
        <type c:type="PangoStyle"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <type name="utf8" c:type="char*"/>
        </parameter>
        <parameter name="inherit" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean*"/>
        </parameter>
      </parameters>
    </function>
    <function name="css_parse_font_variant"
              c:identifier="rsvg_css_parse_font_variant"
              introspectable="0">
      <return-value>
        <type c:type="PangoVariant"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <type name="utf8" c:type="char*"/>
        </parameter>
        <parameter name="inherit" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean*"/>
        </parameter>
      </parameters>
    </function>
    <function name="css_parse_font_weight"
              c:identifier="rsvg_css_parse_font_weight"
              introspectable="0">
      <return-value>
        <type c:type="PangoWeight"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <type name="utf8" c:type="char*"/>
        </parameter>
        <parameter name="inherit" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean*"/>
        </parameter>
      </parameters>
    </function>
    <function name="css_parse_frequency"
              c:identifier="rsvg_css_parse_frequency">
      <return-value transfer-ownership="none">
        <type name="gdouble" c:type="double"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <type name="utf8" c:type="char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="css_parse_list"
              c:identifier="rsvg_css_parse_list"
              introspectable="0">
      <return-value>
        <array c:type="gchar**">
          <type name="utf8"/>
        </array>
      </return-value>
      <parameters>
        <parameter name="in_str" transfer-ownership="none">
          <type name="utf8" c:type="char*"/>
        </parameter>
        <parameter name="out_list_len" transfer-ownership="none">
          <type name="guint" c:type="guint*"/>
        </parameter>
      </parameters>
    </function>
    <function name="css_parse_number_list"
              c:identifier="rsvg_css_parse_number_list">
      <return-value transfer-ownership="none">
        <type name="gdouble" c:type="gdouble*"/>
      </return-value>
      <parameters>
        <parameter name="in_str" transfer-ownership="none">
          <type name="utf8" c:type="char*"/>
        </parameter>
        <parameter name="out_list_len" transfer-ownership="none">
          <type name="guint" c:type="guint*"/>
        </parameter>
      </parameters>
    </function>
    <function name="css_parse_number_optional_number"
              c:identifier="rsvg_css_parse_number_optional_number">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <type name="utf8" c:type="char*"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <type name="gdouble" c:type="double*"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <type name="gdouble" c:type="double*"/>
        </parameter>
      </parameters>
    </function>
    <function name="css_parse_opacity" c:identifier="rsvg_css_parse_opacity">
      <return-value transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <type name="utf8" c:type="char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="css_parse_overflow" c:identifier="rsvg_css_parse_overflow">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <type name="utf8" c:type="char*"/>
        </parameter>
        <parameter name="inherit" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean*"/>
        </parameter>
      </parameters>
    </function>
    <function name="css_parse_time" c:identifier="rsvg_css_parse_time">
      <return-value transfer-ownership="none">
        <type name="gdouble" c:type="double"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <type name="utf8" c:type="char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="css_parse_vbox"
              c:identifier="rsvg_css_parse_vbox"
              introspectable="0">
      <doc xml:whitespace="preserve">Returns:</doc>
      <return-value>
        <type name="ViewBox" c:type="RsvgViewBox"/>
      </return-value>
      <parameters>
        <parameter name="vbox" transfer-ownership="none">
          <doc xml:whitespace="preserve">The CSS viewBox</doc>
          <type name="utf8" c:type="char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="css_parse_xml_attribute_string"
              c:identifier="rsvg_css_parse_xml_attribute_string"
              introspectable="0">
      <return-value>
        <array c:type="char**">
          <type name="utf8"/>
        </array>
      </return-value>
      <parameters>
        <parameter name="attribute_string" transfer-ownership="none">
          <type name="utf8" c:type="char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="current_state"
              c:identifier="rsvg_current_state"
              introspectable="0">
      <return-value>
        <type name="State" c:type="RsvgState*"/>
      </return-value>
      <parameters>
        <parameter name="ctx" transfer-ownership="none">
          <type name="DrawingCtx" c:type="RsvgDrawingCtx*"/>
        </parameter>
      </parameters>
    </function>
    <function name="dpi_percentage" c:identifier="rsvg_dpi_percentage">
      <return-value transfer-ownership="none">
        <type name="gdouble" c:type="gdouble"/>
      </return-value>
      <parameters>
        <parameter name="ctx" transfer-ownership="none">
          <type name="Handle" c:type="RsvgHandle*"/>
        </parameter>
      </parameters>
    </function>
    <function name="error_quark"
              c:identifier="rsvg_error_quark"
              moved-to="Error.quark">
      <doc xml:whitespace="preserve">The error domain for RSVG</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">The error domain</doc>
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="eval_switch_attributes"
              c:identifier="rsvg_eval_switch_attributes">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="atts" transfer-ownership="none">
          <type name="PropertyBag" c:type="RsvgPropertyBag*"/>
        </parameter>
        <parameter name="p_has_cond" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean*"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_base_uri_from_filename"
              c:identifier="rsvg_get_base_uri_from_filename">
      <return-value transfer-ownership="full">
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="file_name" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_file_path" c:identifier="rsvg_get_file_path">
      <return-value transfer-ownership="full">
        <type name="utf8" c:type="gchar*"/>
      </return-value>
      <parameters>
        <parameter name="filename" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="basedir" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_image_of_node"
              c:identifier="rsvg_get_image_of_node"
              introspectable="0">
      <return-value>
        <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
      </return-value>
      <parameters>
        <parameter name="ctx" transfer-ownership="none">
          <type name="DrawingCtx" c:type="RsvgDrawingCtx*"/>
        </parameter>
        <parameter name="drawable" transfer-ownership="none">
          <type name="Node" c:type="RsvgNode*"/>
        </parameter>
        <parameter name="w" transfer-ownership="none">
          <type name="gdouble" c:type="double"/>
        </parameter>
        <parameter name="h" transfer-ownership="none">
          <type name="gdouble" c:type="double"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_url_string" c:identifier="rsvg_get_url_string">
      <return-value transfer-ownership="full">
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <type name="utf8" c:type="char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="init" c:identifier="rsvg_init" version="2.9">
      <doc xml:whitespace="preserve">Initializes librsvg</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="make_valid_utf8" c:identifier="rsvg_make_valid_utf8">
      <return-value transfer-ownership="full">
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="str" transfer-ownership="none">
          <type name="utf8" c:type="char*"/>
        </parameter>
        <parameter name="len" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
      </parameters>
    </function>
    <function name="new_circle"
              c:identifier="rsvg_new_circle"
              introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
    </function>
    <function name="new_clip_path"
              c:identifier="rsvg_new_clip_path"
              introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
    </function>
    <function name="new_defs" c:identifier="rsvg_new_defs" introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
    </function>
    <function name="new_ellipse"
              c:identifier="rsvg_new_ellipse"
              introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
    </function>
    <function name="new_filter"
              c:identifier="rsvg_new_filter"
              introspectable="0">
      <doc xml:whitespace="preserve">Creates a blank filter and assigns default values to everything</doc>
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
    </function>
    <function name="new_filter_primitive_blend"
              c:identifier="rsvg_new_filter_primitive_blend"
              introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
    </function>
    <function name="new_filter_primitive_colour_matrix"
              c:identifier="rsvg_new_filter_primitive_colour_matrix"
              introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
    </function>
    <function name="new_filter_primitive_component_transfer"
              c:identifier="rsvg_new_filter_primitive_component_transfer"
              introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
    </function>
    <function name="new_filter_primitive_composite"
              c:identifier="rsvg_new_filter_primitive_composite"
              introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
    </function>
    <function name="new_filter_primitive_convolve_matrix"
              c:identifier="rsvg_new_filter_primitive_convolve_matrix"
              introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
    </function>
    <function name="new_filter_primitive_diffuse_lighting"
              c:identifier="rsvg_new_filter_primitive_diffuse_lighting"
              introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
    </function>
    <function name="new_filter_primitive_displacement_map"
              c:identifier="rsvg_new_filter_primitive_displacement_map"
              introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
    </function>
    <function name="new_filter_primitive_erode"
              c:identifier="rsvg_new_filter_primitive_erode"
              introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
    </function>
    <function name="new_filter_primitive_flood"
              c:identifier="rsvg_new_filter_primitive_flood"
              introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
    </function>
    <function name="new_filter_primitive_gaussian_blur"
              c:identifier="rsvg_new_filter_primitive_gaussian_blur"
              introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
    </function>
    <function name="new_filter_primitive_image"
              c:identifier="rsvg_new_filter_primitive_image"
              introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
    </function>
    <function name="new_filter_primitive_merge"
              c:identifier="rsvg_new_filter_primitive_merge"
              introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
    </function>
    <function name="new_filter_primitive_merge_node"
              c:identifier="rsvg_new_filter_primitive_merge_node"
              introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
    </function>
    <function name="new_filter_primitive_offset"
              c:identifier="rsvg_new_filter_primitive_offset"
              introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
    </function>
    <function name="new_filter_primitive_specular_lighting"
              c:identifier="rsvg_new_filter_primitive_specular_lighting"
              introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
    </function>
    <function name="new_filter_primitive_tile"
              c:identifier="rsvg_new_filter_primitive_tile"
              introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
    </function>
    <function name="new_filter_primitive_turbulence"
              c:identifier="rsvg_new_filter_primitive_turbulence"
              introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
    </function>
    <function name="new_group"
              c:identifier="rsvg_new_group"
              introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
    </function>
    <function name="new_image"
              c:identifier="rsvg_new_image"
              introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
    </function>
    <function name="new_line" c:identifier="rsvg_new_line" introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
    </function>
    <function name="new_linear_gradient"
              c:identifier="rsvg_new_linear_gradient"
              introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
    </function>
    <function name="new_marker"
              c:identifier="rsvg_new_marker"
              introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
    </function>
    <function name="new_mask" c:identifier="rsvg_new_mask" introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
    </function>
    <function name="new_node_component_transfer_function"
              c:identifier="rsvg_new_node_component_transfer_function"
              introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
      <parameters>
        <parameter name="channel" transfer-ownership="none">
          <type name="gchar" c:type="char"/>
        </parameter>
      </parameters>
    </function>
    <function name="new_node_light_source"
              c:identifier="rsvg_new_node_light_source"
              introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
      <parameters>
        <parameter name="type" transfer-ownership="none">
          <type name="gchar" c:type="char"/>
        </parameter>
      </parameters>
    </function>
    <function name="new_path" c:identifier="rsvg_new_path" introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
    </function>
    <function name="new_pattern"
              c:identifier="rsvg_new_pattern"
              introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
    </function>
    <function name="new_polygon"
              c:identifier="rsvg_new_polygon"
              introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
    </function>
    <function name="new_polyline"
              c:identifier="rsvg_new_polyline"
              introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
    </function>
    <function name="new_radial_gradient"
              c:identifier="rsvg_new_radial_gradient"
              introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
    </function>
    <function name="new_rect" c:identifier="rsvg_new_rect" introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
    </function>
    <function name="new_stop" c:identifier="rsvg_new_stop" introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
    </function>
    <function name="new_svg" c:identifier="rsvg_new_svg" introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
    </function>
    <function name="new_switch"
              c:identifier="rsvg_new_switch"
              introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
    </function>
    <function name="new_symbol"
              c:identifier="rsvg_new_symbol"
              introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
    </function>
    <function name="new_text" c:identifier="rsvg_new_text" introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
    </function>
    <function name="new_tref" c:identifier="rsvg_new_tref" introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
    </function>
    <function name="new_tspan"
              c:identifier="rsvg_new_tspan"
              introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
    </function>
    <function name="new_use" c:identifier="rsvg_new_use" introspectable="0">
      <return-value>
        <type name="Node" c:type="RsvgNode*"/>
      </return-value>
    </function>
    <function name="parse_cssbuffer" c:identifier="rsvg_parse_cssbuffer">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="ctx" transfer-ownership="none">
          <type name="Handle" c:type="RsvgHandle*"/>
        </parameter>
        <parameter name="buff" transfer-ownership="none">
          <type name="utf8" c:type="char*"/>
        </parameter>
        <parameter name="buflen" transfer-ownership="none">
          <type name="gulong" c:type="size_t"/>
        </parameter>
      </parameters>
    </function>
    <function name="parse_path"
              c:identifier="rsvg_parse_path"
              introspectable="0">
      <return-value>
        <type name="BpathDef" c:type="RsvgBpathDef*"/>
      </return-value>
      <parameters>
        <parameter name="path_str" transfer-ownership="none">
          <type name="utf8" c:type="char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="parse_style" c:identifier="rsvg_parse_style">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="ctx" transfer-ownership="none">
          <type name="Handle" c:type="RsvgHandle*"/>
        </parameter>
        <parameter name="state" transfer-ownership="none">
          <type name="State" c:type="RsvgState*"/>
        </parameter>
        <parameter name="str" transfer-ownership="none">
          <type name="utf8" c:type="char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="parse_style_attrs" c:identifier="rsvg_parse_style_attrs">
      <doc xml:whitespace="preserve">Parses style and transform attributes and modifies state at top of
stack.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="ctx" transfer-ownership="none">
          <doc xml:whitespace="preserve">Rsvg context.</doc>
          <type name="Handle" c:type="RsvgHandle*"/>
        </parameter>
        <parameter name="state" transfer-ownership="none">
          <doc xml:whitespace="preserve">Rsvg state</doc>
          <type name="State" c:type="RsvgState*"/>
        </parameter>
        <parameter name="tag" transfer-ownership="none">
          <doc xml:whitespace="preserve">The SVG tag we're processing (eg: circle, ellipse), optionally %NULL</doc>
          <type name="utf8" c:type="char*"/>
        </parameter>
        <parameter name="klazz" transfer-ownership="none">
          <doc xml:whitespace="preserve">The space delimited class list, optionally %NULL</doc>
          <type name="utf8" c:type="char*"/>
        </parameter>
        <parameter name="id" transfer-ownership="none">
          <type name="utf8" c:type="char*"/>
        </parameter>
        <parameter name="atts" transfer-ownership="none">
          <doc xml:whitespace="preserve">Attributes in SAX style.</doc>
          <type name="PropertyBag" c:type="RsvgPropertyBag*"/>
        </parameter>
      </parameters>
    </function>
    <function name="parse_style_pairs" c:identifier="rsvg_parse_style_pairs">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="ctx" transfer-ownership="none">
          <type name="Handle" c:type="RsvgHandle*"/>
        </parameter>
        <parameter name="state" transfer-ownership="none">
          <type name="State" c:type="RsvgState*"/>
        </parameter>
        <parameter name="atts" transfer-ownership="none">
          <type name="PropertyBag" c:type="RsvgPropertyBag*"/>
        </parameter>
      </parameters>
    </function>
    <function name="parse_transform" c:identifier="rsvg_parse_transform">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="dst" transfer-ownership="none">
          <type name="gdouble" c:type="double"/>
        </parameter>
        <parameter name="src" transfer-ownership="none">
          <type name="utf8" c:type="char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="pixbuf_from_data_with_size_data"
              c:identifier="rsvg_pixbuf_from_data_with_size_data"
              introspectable="0"
              throws="1">
      <return-value>
        <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
      </return-value>
      <parameters>
        <parameter name="buff" transfer-ownership="none">
          <type name="guint8" c:type="guchar*"/>
        </parameter>
        <parameter name="len" transfer-ownership="none">
          <type name="gulong" c:type="size_t"/>
        </parameter>
        <parameter name="data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer*"/>
        </parameter>
        <parameter name="base_uri" transfer-ownership="none">
          <type name="utf8" c:type="char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="pixbuf_from_file"
              c:identifier="rsvg_pixbuf_from_file"
              introspectable="0"
              deprecated="Set up a cairo matrix and use rsvg_handle_new_from_file() + rsvg_handle_render_cairo() instead."
              throws="1">
      <doc xml:whitespace="preserve">Loads a new #GdkPixbuf from @file_name and returns it.  The caller must
assume the reference to the reurned pixbuf. If an error occurred, @error is
set and %NULL is returned.</doc>
      <return-value>
        <doc xml:whitespace="preserve">A newly allocated #GdkPixbuf, or %NULL</doc>
        <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
      </return-value>
      <parameters>
        <parameter name="file_name" transfer-ownership="none">
          <doc xml:whitespace="preserve">A file name</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="pixbuf_from_file_at_max_size"
              c:identifier="rsvg_pixbuf_from_file_at_max_size"
              introspectable="0"
              deprecated="Set up a cairo matrix and use rsvg_handle_new_from_file() + rsvg_handle_render_cairo() instead."
              throws="1">
      <doc xml:whitespace="preserve">Loads a new #GdkPixbuf from @file_name and returns it.  This pixbuf is uniformly
scaled so that the it fits into a rectangle of size max_width * max_height. The
caller must assume the reference to the returned pixbuf. If an error occurred,
@error is set and %NULL is returned.</doc>
      <return-value>
        <doc xml:whitespace="preserve">A newly allocated #GdkPixbuf, or %NULL</doc>
        <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
      </return-value>
      <parameters>
        <parameter name="file_name" transfer-ownership="none">
          <doc xml:whitespace="preserve">A file name</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="max_width" transfer-ownership="none">
          <doc xml:whitespace="preserve">The requested max width</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="max_height" transfer-ownership="none">
          <doc xml:whitespace="preserve">The requested max heigh</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="pixbuf_from_file_at_size"
              c:identifier="rsvg_pixbuf_from_file_at_size"
              introspectable="0"
              deprecated="Set up a cairo matrix and use rsvg_handle_new_from_file() + rsvg_handle_render_cairo() instead."
              throws="1">
      <doc xml:whitespace="preserve">Loads a new #GdkPixbuf from @file_name and returns it.  This pixbuf is scaled
from the size indicated to the new size indicated by @width and @height.  If
either of these are -1, then the default size of the image being loaded is
used.  The caller must assume the reference to the returned pixbuf. If an
error occurred, @error is set and %NULL is returned.</doc>
      <return-value>
        <doc xml:whitespace="preserve">A newly allocated #GdkPixbuf, or %NULL</doc>
        <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
      </return-value>
      <parameters>
        <parameter name="file_name" transfer-ownership="none">
          <doc xml:whitespace="preserve">A file name</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="width" transfer-ownership="none">
          <doc xml:whitespace="preserve">The new width, or -1</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <doc xml:whitespace="preserve">The new height, or -1</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="pixbuf_from_file_at_zoom"
              c:identifier="rsvg_pixbuf_from_file_at_zoom"
              introspectable="0"
              deprecated="Set up a cairo matrix and use rsvg_handle_new_from_file() + rsvg_handle_render_cairo() instead."
              throws="1">
      <doc xml:whitespace="preserve">Loads a new #GdkPixbuf from @file_name and returns it.  This pixbuf is scaled
from the size indicated by the file by a factor of @x_zoom and @y_zoom.  The
caller must assume the reference to the returned pixbuf. If an error
occurred, @error is set and %NULL is returned.</doc>
      <return-value>
        <doc xml:whitespace="preserve">A newly allocated #GdkPixbuf, or %NULL</doc>
        <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
      </return-value>
      <parameters>
        <parameter name="file_name" transfer-ownership="none">
          <doc xml:whitespace="preserve">A file name</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="x_zoom" transfer-ownership="none">
          <doc xml:whitespace="preserve">The horizontal zoom factor</doc>
          <type name="gdouble" c:type="double"/>
        </parameter>
        <parameter name="y_zoom" transfer-ownership="none">
          <doc xml:whitespace="preserve">The vertical zoom factor</doc>
          <type name="gdouble" c:type="double"/>
        </parameter>
      </parameters>
    </function>
    <function name="pixbuf_from_file_at_zoom_with_max"
              c:identifier="rsvg_pixbuf_from_file_at_zoom_with_max"
              introspectable="0"
              deprecated="Set up a cairo matrix and use rsvg_handle_new_from_file() + rsvg_handle_render_cairo() instead."
              throws="1">
      <doc xml:whitespace="preserve">Loads a new #GdkPixbuf from @file_name and returns it.  This pixbuf is scaled
from the size indicated by the file by a factor of @x_zoom and @y_zoom. If the
resulting pixbuf would be larger than max_width/max_heigh it is uniformly scaled
down to fit in that rectangle. The caller must assume the reference to the
returned pixbuf. If an error occurred, @error is set and %NULL is returned.</doc>
      <return-value>
        <doc xml:whitespace="preserve">A newly allocated #GdkPixbuf, or %NULL</doc>
        <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
      </return-value>
      <parameters>
        <parameter name="file_name" transfer-ownership="none">
          <doc xml:whitespace="preserve">A file name</doc>
          <type name="utf8" c:type="gchar*"/>
        </parameter>
        <parameter name="x_zoom" transfer-ownership="none">
          <doc xml:whitespace="preserve">The horizontal zoom factor</doc>
          <type name="gdouble" c:type="double"/>
        </parameter>
        <parameter name="y_zoom" transfer-ownership="none">
          <doc xml:whitespace="preserve">The vertical zoom factor</doc>
          <type name="gdouble" c:type="double"/>
        </parameter>
        <parameter name="max_width" transfer-ownership="none">
          <doc xml:whitespace="preserve">The requested max width</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="max_height" transfer-ownership="none">
          <doc xml:whitespace="preserve">The requested max heigh</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="pixbuf_new_from_href"
              c:identifier="rsvg_pixbuf_new_from_href"
              introspectable="0"
              throws="1">
      <return-value>
        <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
      </return-value>
      <parameters>
        <parameter name="href" transfer-ownership="none">
          <type name="utf8" c:type="char*"/>
        </parameter>
        <parameter name="base_uri" transfer-ownership="none">
          <type name="utf8" c:type="char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="pixbuf_to_cairo" c:identifier="rsvg_pixbuf_to_cairo">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="pixels" transfer-ownership="none">
          <type name="guint8" c:type="guint8*"/>
        </parameter>
        <parameter name="rowstride" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
      </parameters>
    </function>
    <function name="pop_def_group" c:identifier="rsvg_pop_def_group">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="ctx" transfer-ownership="none">
          <type name="Handle" c:type="RsvgHandle*"/>
        </parameter>
      </parameters>
    </function>
    <function name="pop_discrete_layer" c:identifier="rsvg_pop_discrete_layer">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="ctx" transfer-ownership="none">
          <type name="DrawingCtx" c:type="RsvgDrawingCtx*"/>
        </parameter>
      </parameters>
    </function>
    <function name="preserve_aspect_ratio"
              c:identifier="rsvg_preserve_aspect_ratio">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="aspect_ratio" transfer-ownership="none">
          <type name="guint" c:type="unsigned int"/>
        </parameter>
        <parameter name="width" transfer-ownership="none">
          <type name="gdouble" c:type="double"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <type name="gdouble" c:type="double"/>
        </parameter>
        <parameter name="w" transfer-ownership="none">
          <type name="gdouble" c:type="double*"/>
        </parameter>
        <parameter name="h" transfer-ownership="none">
          <type name="gdouble" c:type="double*"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <type name="gdouble" c:type="double*"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <type name="gdouble" c:type="double*"/>
        </parameter>
      </parameters>
    </function>
    <function name="property_bag_enumerate"
              c:identifier="rsvg_property_bag_enumerate"
              introspectable="0">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="bag" transfer-ownership="none">
          <type name="PropertyBag" c:type="RsvgPropertyBag*"/>
        </parameter>
        <parameter name="func" transfer-ownership="none" closure="2">
          <type name="PropertyBagEnumFunc" c:type="RsvgPropertyBagEnumFunc"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="property_bag_free" c:identifier="rsvg_property_bag_free">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="bag" transfer-ownership="none">
          <type name="PropertyBag" c:type="RsvgPropertyBag*"/>
        </parameter>
      </parameters>
    </function>
    <function name="property_bag_lookup"
              c:identifier="rsvg_property_bag_lookup">
      <return-value transfer-ownership="none">
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="bag" transfer-ownership="none">
          <type name="PropertyBag" c:type="RsvgPropertyBag*"/>
        </parameter>
        <parameter name="key" transfer-ownership="none">
          <type name="utf8" c:type="char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="property_bag_new"
              c:identifier="rsvg_property_bag_new"
              introspectable="0">
      <return-value>
        <type name="PropertyBag" c:type="RsvgPropertyBag*"/>
      </return-value>
      <parameters>
        <parameter name="atts" transfer-ownership="none">
          <type name="utf8" c:type="char**"/>
        </parameter>
      </parameters>
    </function>
    <function name="property_bag_ref"
              c:identifier="rsvg_property_bag_ref"
              introspectable="0">
      <return-value>
        <type name="PropertyBag" c:type="RsvgPropertyBag*"/>
      </return-value>
      <parameters>
        <parameter name="bag" transfer-ownership="none">
          <type name="PropertyBag" c:type="RsvgPropertyBag*"/>
        </parameter>
      </parameters>
    </function>
    <function name="property_bag_size" c:identifier="rsvg_property_bag_size">
      <return-value transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </return-value>
      <parameters>
        <parameter name="bag" transfer-ownership="none">
          <type name="PropertyBag" c:type="RsvgPropertyBag*"/>
        </parameter>
      </parameters>
    </function>
    <function name="push_discrete_layer"
              c:identifier="rsvg_push_discrete_layer">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="ctx" transfer-ownership="none">
          <type name="DrawingCtx" c:type="RsvgDrawingCtx*"/>
        </parameter>
      </parameters>
    </function>
    <function name="render_image"
              c:identifier="rsvg_render_image"
              moved-to="Render.image">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="ctx" transfer-ownership="none">
          <type name="DrawingCtx" c:type="RsvgDrawingCtx*"/>
        </parameter>
        <parameter name="pb" transfer-ownership="none">
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </parameter>
        <parameter name="x" transfer-ownership="none">
          <type name="gdouble" c:type="double"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <type name="gdouble" c:type="double"/>
        </parameter>
        <parameter name="w" transfer-ownership="none">
          <type name="gdouble" c:type="double"/>
        </parameter>
        <parameter name="h" transfer-ownership="none">
          <type name="gdouble" c:type="double"/>
        </parameter>
      </parameters>
    </function>
    <function name="render_markers"
              c:identifier="rsvg_render_markers"
              moved-to="Render.markers">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="bpath_def" transfer-ownership="none">
          <type name="BpathDef" c:type="RsvgBpathDef*"/>
        </parameter>
        <parameter name="ctx" transfer-ownership="none">
          <type name="DrawingCtx" c:type="RsvgDrawingCtx*"/>
        </parameter>
      </parameters>
    </function>
    <function name="render_path"
              c:identifier="rsvg_render_path"
              moved-to="Render.path">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="ctx" transfer-ownership="none">
          <type name="DrawingCtx" c:type="RsvgDrawingCtx*"/>
        </parameter>
        <parameter name="d" transfer-ownership="none">
          <type name="utf8" c:type="char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="return_if_fail_warning"
              c:identifier="rsvg_return_if_fail_warning"
              throws="1">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="pretty_function" transfer-ownership="none">
          <type name="utf8" c:type="char*"/>
        </parameter>
        <parameter name="expression" transfer-ownership="none">
          <type name="utf8" c:type="char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="set_default_dpi"
              c:identifier="rsvg_set_default_dpi"
              version="2.8">
      <doc xml:whitespace="preserve">Sets the DPI for the all future outgoing pixbufs. Common values are
75, 90, and 300 DPI. Passing a number &lt;= 0 to #dpi will 
reset the DPI to whatever the default value happens to be.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="dpi" transfer-ownership="none">
          <doc xml:whitespace="preserve">Dots Per Inch (aka Pixels Per Inch)</doc>
          <type name="gdouble" c:type="double"/>
        </parameter>
      </parameters>
    </function>
    <function name="set_default_dpi_x_y"
              c:identifier="rsvg_set_default_dpi_x_y"
              version="2.8">
      <doc xml:whitespace="preserve">Sets the DPI for the all future outgoing pixbufs. Common values are
75, 90, and 300 DPI. Passing a number &lt;= 0 to #dpi will 
reset the DPI to whatever the default value happens to be.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="dpi_x" transfer-ownership="none">
          <doc xml:whitespace="preserve">Dots Per Inch (aka Pixels Per Inch)</doc>
          <type name="gdouble" c:type="double"/>
        </parameter>
        <parameter name="dpi_y" transfer-ownership="none">
          <doc xml:whitespace="preserve">Dots Per Inch (aka Pixels Per Inch)</doc>
          <type name="gdouble" c:type="double"/>
        </parameter>
      </parameters>
    </function>
    <function name="state_pop"
              c:identifier="rsvg_state_pop"
              moved-to="State.pop">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="ctx" transfer-ownership="none">
          <type name="DrawingCtx" c:type="RsvgDrawingCtx*"/>
        </parameter>
      </parameters>
    </function>
    <function name="state_push"
              c:identifier="rsvg_state_push"
              moved-to="State.push">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="ctx" transfer-ownership="none">
          <type name="DrawingCtx" c:type="RsvgDrawingCtx*"/>
        </parameter>
      </parameters>
    </function>
    <function name="state_reinherit_top"
              c:identifier="rsvg_state_reinherit_top"
              moved-to="State.reinherit_top">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="ctx" transfer-ownership="none">
          <type name="DrawingCtx" c:type="RsvgDrawingCtx*"/>
        </parameter>
        <parameter name="state" transfer-ownership="none">
          <type name="State" c:type="RsvgState*"/>
        </parameter>
        <parameter name="dominate" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
      </parameters>
    </function>
    <function name="term" c:identifier="rsvg_term" version="2.9">
      <doc xml:whitespace="preserve">De-initializes librsvg</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="viewport_percentage"
              c:identifier="rsvg_viewport_percentage">
      <return-value transfer-ownership="none">
        <type name="gdouble" c:type="gdouble"/>
      </return-value>
      <parameters>
        <parameter name="width" transfer-ownership="none">
          <type name="gdouble" c:type="gdouble"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <type name="gdouble" c:type="gdouble"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
