<?xml version="1.0"?>
<api>
  <!--

        This file was automatically generated.
        Please DO NOT MODIFY THIS FILE, modify .metadata files instead.

-->
  <namespace name="Art" library="art_lgpl">
    <enum name="AlphaType" cname="ArtAlphaType" type="enum">
      <member cname="ART_ALPHA_NONE" name="None" />
      <member cname="ART_ALPHA_SEPARATE" name="Separate" value="1" />
      <member cname="ART_ALPHA_PREMUL" name="Premul" value="2" />
    </enum>
    <enum name="CompositingMode" cname="ArtCompositingMode" type="enum">
      <member cname="ART_COMPOSITE_NORMAL" name="Normal" />
      <member cname="ART_COMPOSITE_MULTIPLY" name="Multiply" />
      <member cname="ART_COMPOSITE_CUSTOM" name="Custom" />
    </enum>
    <enum name="FilterLevel" cname="ArtFilterLevel" type="enum">
      <member cname="ART_FILTER_NEAREST" name="Nearest" />
      <member cname="ART_FILTER_TILES" name="Tiles" />
      <member cname="ART_FILTER_BILINEAR" name="Bilinear" />
      <member cname="ART_FILTER_HYPER" name="Hyper" />
    </enum>
    <enum name="GradientSpread" cname="ArtGradientSpread" type="enum">
      <member cname="ART_GRADIENT_PAD" name="Pad" />
      <member cname="ART_GRADIENT_REFLECT" name="Reflect" />
      <member cname="ART_GRADIENT_REPEAT" name="Repeat" />
    </enum>
    <enum name="ImageSourceFlags" cname="ArtImageSourceFlags" type="enum">
      <member cname="ART_IMAGE_SOURCE_CAN_CLEAR" name="Clear" value="1" />
      <member cname="ART_IMAGE_SOURCE_CAN_COMPOSITE" name="Composite" value="2" />
    </enum>
    <enum name="PathStrokeCapType" cname="ArtPathStrokeCapType" type="enum">
      <member cname="ART_PATH_STROKE_CAP_BUTT" name="Butt" />
      <member cname="ART_PATH_STROKE_CAP_ROUND" name="Round" />
      <member cname="ART_PATH_STROKE_CAP_SQUARE" name="Square" />
    </enum>
    <enum name="PathStrokeJoinType" cname="ArtPathStrokeJoinType" type="enum">
      <member cname="ART_PATH_STROKE_JOIN_MITER" name="Miter" />
      <member cname="ART_PATH_STROKE_JOIN_ROUND" name="Round" />
      <member cname="ART_PATH_STROKE_JOIN_BEVEL" name="Bevel" />
    </enum>
    <enum name="Pathcode" cname="ArtPathcode" type="enum">
      <member cname="ART_MOVETO" name="Moveto" />
      <member cname="ART_MOVETO_OPEN" name="MovetoOpen" />
      <member cname="ART_CURVETO" name="Curveto" />
      <member cname="ART_LINETO" name="Lineto" />
      <member cname="ART_END" name="End" />
    </enum>
    <enum name="PixFormat" cname="ArtPixFormat" type="enum">
      <member cname="ART_PIX_RGB" name="Rgb" />
    </enum>
    <enum name="WindRule" cname="ArtWindRule" type="enum">
      <member cname="ART_WIND_RULE_NONZERO" name="Nonzero" />
      <member cname="ART_WIND_RULE_INTERSECT" name="Intersect" />
      <member cname="ART_WIND_RULE_ODDEVEN" name="Oddeven" />
      <member cname="ART_WIND_RULE_POSITIVE" name="Positive" />
    </enum>
    <callback name="DestroyNotify" cname="ArtDestroyNotify">
      <return-type type="void" />
      <parameters>
        <parameter type="void*" name="func_data" />
        <parameter type="void*" name="data" />
      </parameters>
    </callback>
    <struct name="AlphaGamma" cname="ArtAlphaGamma" opaque="false">
      <field name="Gamma" cname="gamma" type="double" access="private" />
      <field name="InvtableSize" cname="invtable_size" type="int" access="private" />
      <field name="Table" cname="table" array_len="256" type="int" access="private" />
      <field name="Invtable" cname="invtable" array_len="1" type="art_u8" access="private" />
      <method name="Free" cname="art_alphagamma_free">
        <return-type type="void" />
      </method>
      <constructor cname="art_alphagamma_new">
        <parameters>
          <parameter type="double" name="gamma" />
        </parameters>
      </constructor>
    </struct>
    <struct name="Bpath" cname="ArtBpath" opaque="false">
      <field name="Code" cname="code" type="ArtPathcode" />
      <field name="X1" cname="x1" type="double" />
      <field name="Y1" cname="y1" type="double" />
      <field name="X2" cname="x2" type="double" />
      <field name="Y2" cname="y2" type="double" />
      <field name="X3" cname="x3" type="double" />
      <field name="Y3" cname="y3" type="double" />
      <method name="AffineTransform" cname="art_bpath_affine_transform">
        <return-type type="ArtBpath*" />
        <parameters>
          <parameter type="const-double" array="true" name="matrix" />
        </parameters>
      </method>
    </struct>
    <struct name="DRect" cname="ArtDRect" opaque="false">
      <field name="X0" cname="x0" type="double" />
      <field name="Y0" cname="y0" type="double" />
      <field name="X1" cname="x1" type="double" />
      <field name="Y1" cname="y1" type="double" />
      <method name="AffineTransform" cname="art_drect_affine_transform">
        <return-type type="void" />
        <parameters>
          <parameter type="const-ArtDRect*" name="src" />
          <parameter type="const-double" array="true" name="matrix" />
        </parameters>
      </method>
      <method name="Copy" cname="art_drect_copy">
        <return-type type="void" />
        <parameters>
          <parameter type="const-ArtDRect*" name="src" />
        </parameters>
      </method>
      <method name="Empty" cname="art_drect_empty">
        <return-type type="int" />
      </method>
      <method name="Intersect" cname="art_drect_intersect">
        <return-type type="void" />
        <parameters>
          <parameter type="const-ArtDRect*" name="src1" />
          <parameter type="const-ArtDRect*" name="src2" />
        </parameters>
      </method>
      <method name="Svp" cname="art_drect_svp">
        <return-type type="void" />
        <parameters>
          <parameter type="const-ArtSVP*" name="svp" />
        </parameters>
      </method>
      <method name="SvpUnion" cname="art_drect_svp_union">
        <return-type type="void" />
        <parameters>
          <parameter type="const-ArtSVP*" name="svp" />
        </parameters>
      </method>
      <method name="ToIrect" cname="art_drect_to_irect" shared="true">
        <return-type type="void" />
        <parameters>
          <parameter type="ArtIRect*" name="dst" />
          <parameter type="ArtDRect*" name="src" />
        </parameters>
      </method>
      <method name="Union" cname="art_drect_union">
        <return-type type="void" />
        <parameters>
          <parameter type="const-ArtDRect*" name="src1" />
          <parameter type="const-ArtDRect*" name="src2" />
        </parameters>
      </method>
    </struct>
    <struct name="GradientLinear" cname="ArtGradientLinear" opaque="false">
      <field name="A" cname="a" type="double" />
      <field name="B" cname="b" type="double" />
      <field name="C" cname="c" type="double" />
      <field name="Spread" cname="spread" type="ArtGradientSpread" />
      <field name="NStops" cname="n_stops" type="int" />
      <field name="Stops" cname="stops" type="ArtGradientStop*" />
    </struct>
    <struct name="GradientRadial" cname="ArtGradientRadial" opaque="false">
      <field name="Affine" cname="affine" array_len="6" type="double" />
      <field name="Fx" cname="fx" type="double" />
      <field name="Fy" cname="fy" type="double" />
      <field name="NStops" cname="n_stops" type="int" />
      <field name="Stops" cname="stops" type="ArtGradientStop*" />
    </struct>
    <struct name="GradientStop" cname="ArtGradientStop" opaque="false">
      <field name="Offset" cname="offset" type="double" />
      <field name="Color" cname="color" array_len="17" type="ArtPixMaxDepth" />
    </struct>
    <struct name="IRect" cname="ArtIRect" opaque="false">
      <field name="X0" cname="x0" type="int" />
      <field name="Y0" cname="y0" type="int" />
      <field name="X1" cname="x1" type="int" />
      <field name="Y1" cname="y1" type="int" />
      <method name="Copy" cname="art_irect_copy">
        <return-type type="void" />
        <parameters>
          <parameter type="const-ArtIRect*" name="src" />
        </parameters>
      </method>
      <method name="Empty" cname="art_irect_empty">
        <return-type type="int" />
      </method>
      <method name="Intersect" cname="art_irect_intersect">
        <return-type type="void" />
        <parameters>
          <parameter type="const-ArtIRect*" name="src1" />
          <parameter type="const-ArtIRect*" name="src2" />
        </parameters>
      </method>
      <method name="Union" cname="art_irect_union">
        <return-type type="void" />
        <parameters>
          <parameter type="const-ArtIRect*" name="src1" />
          <parameter type="const-ArtIRect*" name="src2" />
        </parameters>
      </method>
    </struct>
    <struct name="ImageSource" cname="ArtImageSource" opaque="false">
      <field name="Super" cname="super" type="ArtRenderCallback" />
      <callback cname="negotiate">
        <return-type type="void" />
        <parameters>
          <parameter type="ArtImageSource*" name="self," />
        </parameters>
      </callback>
    </struct>
    <struct name="MaskSource" cname="ArtMaskSource" opaque="false">
      <field name="Super" cname="super" type="ArtRenderCallback" />
      <callback cname="can_drive">
        <return-type type="int" />
        <parameters>
          <parameter type="ArtMaskSource*" name="self," />
        </parameters>
      </callback>
      <callback cname="invoke_driver">
        <return-type type="void" />
        <parameters>
          <parameter type="ArtMaskSource*" name="self," />
        </parameters>
      </callback>
      <callback cname="prepare">
        <return-type type="void" />
        <parameters>
          <parameter type="ArtMaskSource*" name="self," />
        </parameters>
      </callback>
    </struct>
    <struct name="PixBuf" cname="ArtPixBuf" opaque="false">
      <field name="Format" cname="format" type="ArtPixFormat" access="public" writeable="true" />
      <field name="NChannels" cname="n_channels" type="int" access="public" writeable="true" />
      <field name="HasAlpha" cname="has_alpha" type="int" access="public" writeable="true" />
      <field name="BitsPerSample" cname="bits_per_sample" type="int" access="public" writeable="true" />
      <field name="Pixels" cname="pixels" type="art_u8*" access="public" writeable="true" />
      <field name="Width" cname="width" type="int" access="public" writeable="true" />
      <field name="Height" cname="height" type="int" access="public" writeable="true" />
      <field name="Rowstride" cname="rowstride" type="int" access="public" writeable="true" />
      <field name="DestroyData" cname="destroy_data" type="void*" access="public" writeable="true" />
      <field name="Destroy" cname="destroy" type="ArtDestroyNotify" access="public" writeable="true" />
      <method name="Duplicate" cname="art_pixbuf_duplicate">
        <return-type type="ArtPixBuf*" />
      </method>
      <method name="Free" cname="art_pixbuf_free">
        <return-type type="void" />
      </method>
      <method name="FreeShallow" cname="art_pixbuf_free_shallow">
        <return-type type="void" />
      </method>
      <constructor cname="art_pixbuf_new_const_rgb">
        <parameters>
          <parameter type="const-art_u8*" name="pixels" />
          <parameter type="int" name="width" />
          <parameter type="int" name="height" />
          <parameter type="int" name="rowstride" />
        </parameters>
      </constructor>
      <constructor cname="art_pixbuf_new_const_rgba">
        <parameters>
          <parameter type="const-art_u8*" name="pixels" />
          <parameter type="int" name="width" />
          <parameter type="int" name="height" />
          <parameter type="int" name="rowstride" />
        </parameters>
      </constructor>
      <constructor cname="art_pixbuf_new_rgb">
        <parameters>
          <parameter type="art_u8*" name="pixels" />
          <parameter type="int" name="width" />
          <parameter type="int" name="height" />
          <parameter type="int" name="rowstride" />
        </parameters>
      </constructor>
      <constructor cname="art_pixbuf_new_rgb_dnotify">
        <parameters>
          <parameter type="art_u8*" name="pixels" />
          <parameter type="int" name="width" />
          <parameter type="int" name="height" />
          <parameter type="int" name="rowstride" />
          <parameter type="void*" name="dfunc_data" />
          <parameter type="ArtDestroyNotify" name="dfunc" />
        </parameters>
      </constructor>
      <constructor cname="art_pixbuf_new_rgba">
        <parameters>
          <parameter type="art_u8*" name="pixels" />
          <parameter type="int" name="width" />
          <parameter type="int" name="height" />
          <parameter type="int" name="rowstride" />
        </parameters>
      </constructor>
      <constructor cname="art_pixbuf_new_rgba_dnotify">
        <parameters>
          <parameter type="art_u8*" name="pixels" />
          <parameter type="int" name="width" />
          <parameter type="int" name="height" />
          <parameter type="int" name="rowstride" />
          <parameter type="void*" name="dfunc_data" />
          <parameter type="ArtDestroyNotify" name="dfunc" />
        </parameters>
      </constructor>
    </struct>
    <alias name="PixMaxDepth" cname="ArtPixMaxDepth" type="unsigned char" />
    <struct name="Point" cname="ArtPoint" opaque="false">
      <field name="X" cname="x" type="double" />
      <field name="Y" cname="y" type="double" />
    </struct>
    <struct name="Render" cname="ArtRender" opaque="false">
      <field name="X0" cname="x0" type="int" access="public" writeable="true" />
      <field name="Y0" cname="y0" type="int" access="public" writeable="true" />
      <field name="X1" cname="x1" type="int" access="public" writeable="true" />
      <field name="Y1" cname="y1" type="int" access="public" writeable="true" />
      <field name="Pixels" cname="pixels" type="art_u8*" access="public" writeable="true" />
      <field name="Rowstride" cname="rowstride" type="int" access="public" writeable="true" />
      <field name="NChan" cname="n_chan" type="int" access="public" writeable="true" />
      <field name="Depth" cname="depth" type="int" access="public" writeable="true" />
      <field name="AlphaType" cname="alpha_type" type="ArtAlphaType" access="public" writeable="true" />
      <field name="Clear" cname="clear" type="art_boolean" access="private" writeable="true" />
      <field name="ClearColor" cname="clear_color" array_len="17" type="ArtPixMaxDepth" access="public" writeable="true" />
      <field name="Opacity" cname="opacity" type="art_u32" access="public" writeable="true" />
      <field name="CompositingMode" cname="compositing_mode" type="ArtCompositingMode" access="public" writeable="true" />
      <field name="Alphagamma" cname="alphagamma" type="ArtAlphaGamma*" access="public" writeable="true" />
      <field name="AlphaBuf" cname="alpha_buf" type="art_u8*" access="public" writeable="true" />
      <field name="BufDepth" cname="buf_depth" type="int" access="public" writeable="true" />
      <field name="BufAlpha" cname="buf_alpha" type="ArtAlphaType" access="public" writeable="true" />
      <field name="ImageBuf" cname="image_buf" type="art_u8*" access="public" writeable="true" />
      <field name="NRun" cname="n_run" type="int" access="public" writeable="true" />
      <field name="Run" cname="run" type="ArtRenderMaskRun*" access="public" writeable="true" />
      <field name="NSpan" cname="n_span" type="int" access="public" writeable="true" />
      <field name="SpanX" cname="span_x" type="int*" access="public" writeable="true" />
      <field name="NeedSpan" cname="need_span" type="art_boolean" access="public" writeable="true" />
      <method name="AddImageSource" cname="art_render_add_image_source">
        <return-type type="void" />
        <parameters>
          <parameter type="ArtImageSource*" name="image_source" />
        </parameters>
      </method>
      <method name="AddMaskSource" cname="art_render_add_mask_source">
        <return-type type="void" />
        <parameters>
          <parameter type="ArtMaskSource*" name="mask_source" />
        </parameters>
      </method>
      <method name="Clear" cname="art_render_clear">
        <return-type type="void" />
        <parameters>
          <parameter type="const-ArtPixMaxDepth*" name="clear_color" />
        </parameters>
      </method>
      <method name="ClearRgb" cname="art_render_clear_rgb">
        <return-type type="void" />
        <parameters>
          <parameter type="art_u32" name="clear_rgb" />
        </parameters>
      </method>
      <method name="GradientLinear" cname="art_render_gradient_linear">
        <return-type type="void" />
        <parameters>
          <parameter type="const-ArtGradientLinear*" name="gradient" />
          <parameter type="ArtFilterLevel" name="level" />
        </parameters>
      </method>
      <method name="GradientRadial" cname="art_render_gradient_radial">
        <return-type type="void" />
        <parameters>
          <parameter type="const-ArtGradientRadial*" name="gradient" />
          <parameter type="ArtFilterLevel" name="level" />
        </parameters>
      </method>
      <method name="ImageSolid" cname="art_render_image_solid">
        <return-type type="void" />
        <parameters>
          <parameter type="ArtPixMaxDepth*" name="color" />
        </parameters>
      </method>
      <method name="Invoke" cname="art_render_invoke">
        <return-type type="void" />
      </method>
      <method name="InvokeCallbacks" cname="art_render_invoke_callbacks">
        <return-type type="void" />
        <parameters>
          <parameter type="art_u8*" name="dest" />
          <parameter type="int" name="y" />
        </parameters>
      </method>
      <method name="Mask" cname="art_render_mask">
        <return-type type="void" />
        <parameters>
          <parameter type="int" name="x0" />
          <parameter type="int" name="y0" />
          <parameter type="int" name="x1" />
          <parameter type="int" name="y1" />
          <parameter type="const-art_u8*" name="mask_buf" />
          <parameter type="int" name="rowstride" />
        </parameters>
      </method>
      <method name="MaskSolid" cname="art_render_mask_solid">
        <return-type type="void" />
        <parameters>
          <parameter type="int" name="opacity" />
        </parameters>
      </method>
      <constructor cname="art_render_new">
        <parameters>
          <parameter type="int" name="x0" />
          <parameter type="int" name="y0" />
          <parameter type="int" name="x1" />
          <parameter type="int" name="y1" />
          <parameter type="art_u8*" name="pixels" />
          <parameter type="int" name="rowstride" />
          <parameter type="int" name="n_chan" />
          <parameter type="int" name="depth" />
          <parameter type="ArtAlphaType" name="alpha_type" />
          <parameter type="ArtAlphaGamma*" name="alphagamma" />
        </parameters>
      </constructor>
      <method name="Svp" cname="art_render_svp">
        <return-type type="void" />
        <parameters>
          <parameter type="const-ArtSVP*" name="svp" />
        </parameters>
      </method>
    </struct>
    <struct name="RenderCallback" cname="ArtRenderCallback" opaque="false">
      <callback cname="render">
        <return-type type="void" />
        <parameters>
          <parameter type="ArtRenderCallback*" name="self," />
        </parameters>
      </callback>
      <callback cname="done">
        <return-type type="void" />
        <parameters>
          <parameter type="ArtRenderCallback*" name="self," />
        </parameters>
      </callback>
    </struct>
    <struct name="RenderMaskRun" cname="ArtRenderMaskRun" opaque="false">
      <field name="X" cname="x" type="int" />
      <field name="Alpha" cname="alpha" type="int" />
    </struct>
    <struct name="SVP" cname="ArtSVP" opaque="false">
      <field name="NSegs" cname="n_segs" type="int" />
      <field name="Segs" cname="segs" array_len="1" type="ArtSVPSeg" />
      <method name="AddSegment" cname="art_svp_add_segment">
        <return-type type="int" />
        <parameters>
          <parameter type="int*" name="pn_segs_max" />
          <parameter type="int**" name="pn_points_max" />
          <parameter type="int" name="n_points" />
          <parameter type="int" name="dir" />
          <parameter type="ArtPoint*" name="points" />
          <parameter type="ArtDRect*" name="bbox" />
        </parameters>
      </method>
      <method name="Diff" cname="art_svp_diff">
        <return-type type="ArtSVP*" />
        <parameters>
          <parameter type="const-ArtSVP*" name="svp2" />
        </parameters>
      </method>
      <method name="Free" cname="art_svp_free">
        <return-type type="void" />
      </method>
      <method name="FromVpath" cname="art_svp_from_vpath" shared="true">
        <return-type type="ArtSVP*" />
        <parameters>
          <parameter type="ArtVpath*" name="vpath" />
        </parameters>
      </method>
      <method name="Intersect" cname="art_svp_intersect">
        <return-type type="ArtSVP*" />
        <parameters>
          <parameter type="const-ArtSVP*" name="svp2" />
        </parameters>
      </method>
      <method name="Intersector" cname="art_svp_intersector">
        <return-type type="void" />
        <parameters>
          <parameter type="ArtSvpWriter*" name="out" />
        </parameters>
      </method>
      <method name="Minus" cname="art_svp_minus">
        <return-type type="ArtSVP*" />
        <parameters>
          <parameter type="const-ArtSVP*" name="svp2" />
        </parameters>
      </method>
      <method name="PointDist" cname="art_svp_point_dist">
        <return-type type="double" />
        <parameters>
          <parameter type="double" name="x" />
          <parameter type="double" name="y" />
        </parameters>
      </method>
      <method name="PointWind" cname="art_svp_point_wind">
        <return-type type="int" />
        <parameters>
          <parameter type="double" name="x" />
          <parameter type="double" name="y" />
        </parameters>
      </method>
      <method name="RenderAa" cname="art_svp_render_aa">
        <return-type type="void" />
        <parameters>
          <parameter type="int" name="x0" />
          <parameter type="int" name="y0" />
          <parameter type="int" name="x1" />
          <parameter type="int" name="y1" />
          <parameter type="RenderAaCallback" name="callback" />
          <parameter type="void*" name="callback_data" />
        </parameters>
      </method>
      <method name="RenderAaIter" cname="art_svp_render_aa_iter">
        <return-type type="ArtSVPRenderAAIter*" />
        <parameters>
          <parameter type="int" name="x0" />
          <parameter type="int" name="y0" />
          <parameter type="int" name="x1" />
          <parameter type="int" name="y1" />
        </parameters>
      </method>
      <method name="RewindUncrossed" cname="art_svp_rewind_uncrossed">
        <return-type type="ArtSVP*" />
        <parameters>
          <parameter type="ArtWindRule" name="rule" />
        </parameters>
      </method>
      <method name="Uncross" cname="art_svp_uncross">
        <return-type type="ArtSVP*" />
      </method>
      <method name="Union" cname="art_svp_union">
        <return-type type="ArtSVP*" />
        <parameters>
          <parameter type="const-ArtSVP*" name="svp2" />
        </parameters>
      </method>
      <method name="VpathStroke" cname="art_svp_vpath_stroke" shared="true">
        <return-type type="ArtSVP*" />
        <parameters>
          <parameter type="ArtVpath*" name="vpath" />
          <parameter type="ArtPathStrokeJoinType" name="join" />
          <parameter type="ArtPathStrokeCapType" name="cap" />
          <parameter type="double" name="line_width" />
          <parameter type="double" name="miter_limit" />
          <parameter type="double" name="flatness" />
        </parameters>
      </method>
      <method name="VpathStrokeRaw" cname="art_svp_vpath_stroke_raw" shared="true">
        <return-type type="ArtVpath*" />
        <parameters>
          <parameter type="ArtVpath*" name="vpath" />
          <parameter type="ArtPathStrokeJoinType" name="join" />
          <parameter type="ArtPathStrokeCapType" name="cap" />
          <parameter type="double" name="line_width" />
          <parameter type="double" name="miter_limit" />
          <parameter type="double" name="flatness" />
        </parameters>
      </method>
    </struct>
    <struct name="SVPRenderAAIter" cname="ArtSVPRenderAAIter" opaque="1">
      <method name="Done" cname="art_svp_render_aa_iter_done">
        <return-type type="void" />
      </method>
      <method name="Step" cname="art_svp_render_aa_iter_step">
        <return-type type="void" />
        <parameters>
          <parameter type="int*" name="p_start" />
          <parameter type="ArtSVPRenderAAStep**" name="p_steps" />
          <parameter type="int*" name="p_n_steps" />
        </parameters>
      </method>
    </struct>
    <struct name="SVPRenderAAStep" cname="ArtSVPRenderAAStep" opaque="false">
      <field name="X" cname="x" type="int" />
      <field name="Delta" cname="delta" type="int" />
    </struct>
    <struct name="SVPSeg" cname="ArtSVPSeg" opaque="false">
      <field name="NPoints" cname="n_points" type="int" />
      <field name="Dir" cname="dir" type="int" />
      <field name="Bbox" cname="bbox" type="ArtDRect" />
      <field name="Points" cname="points" type="ArtPoint*" />
      <method name="Compare" cname="art_svp_seg_compare" shared="true">
        <return-type type="int" />
        <parameters>
          <parameter type="const-void*" name="s1" />
          <parameter type="const-void*" name="s2" />
        </parameters>
      </method>
    </struct>
    <struct name="SvpWriter" cname="ArtSvpWriter" opaque="false">
      <callback cname="add_segment">
        <return-type type="int" />
        <parameters>
          <parameter type="ArtSvpWriter*" name="self," />
        </parameters>
      </callback>
      <callback cname="add_point">
        <return-type type="void" />
        <parameters>
          <parameter type="ArtSvpWriter*" name="self," />
        </parameters>
      </callback>
      <callback cname="close_segment">
        <return-type type="void" />
        <parameters>
          <parameter type="ArtSvpWriter*" name="self," />
        </parameters>
      </callback>
      <method name="RewindNew" cname="art_svp_writer_rewind_new" shared="true">
        <return-type type="ArtSvpWriter*" />
        <parameters>
          <parameter type="ArtWindRule" name="rule" />
        </parameters>
      </method>
      <method name="RewindReap" cname="art_svp_writer_rewind_reap">
        <return-type type="ArtSVP*" />
      </method>
    </struct>
    <struct name="Uta" cname="ArtUta" opaque="false">
      <field name="X0" cname="x0" type="int" access="public" writeable="true" />
      <field name="Y0" cname="y0" type="int" access="public" writeable="true" />
      <field name="Width" cname="width" type="int" access="public" writeable="true" />
      <field name="Height" cname="height" type="int" access="public" writeable="true" />
      <field name="Utiles" cname="utiles" type="ArtUtaBbox*" access="public" writeable="true" />
      <method name="AddLine" cname="art_uta_add_line">
        <return-type type="void" />
        <parameters>
          <parameter type="double" name="x0" />
          <parameter type="double" name="y0" />
          <parameter type="double" name="x1" />
          <parameter type="double" name="y1" />
          <parameter type="int*" name="rbuf" />
          <parameter type="int" name="rbuf_rowstride" />
        </parameters>
      </method>
      <method name="Free" cname="art_uta_free">
        <return-type type="void" />
      </method>
      <method name="FromIrect" cname="art_uta_from_irect" shared="true">
        <return-type type="ArtUta*" />
        <parameters>
          <parameter type="ArtIRect*" name="bbox" />
        </parameters>
      </method>
      <method name="FromSvp" cname="art_uta_from_svp" shared="true">
        <return-type type="ArtUta*" />
        <parameters>
          <parameter type="const-ArtSVP*" name="svp" />
        </parameters>
      </method>
      <method name="FromVpath" cname="art_uta_from_vpath" shared="true">
        <return-type type="ArtUta*" />
        <parameters>
          <parameter type="const-ArtVpath*" name="vec" />
        </parameters>
      </method>
      <constructor cname="art_uta_new">
        <parameters>
          <parameter type="int" name="x0" />
          <parameter type="int" name="y0" />
          <parameter type="int" name="x1" />
          <parameter type="int" name="y1" />
        </parameters>
      </constructor>
      <constructor cname="art_uta_new_coords">
        <parameters>
          <parameter type="int" name="x0" />
          <parameter type="int" name="y0" />
          <parameter type="int" name="x1" />
          <parameter type="int" name="y1" />
        </parameters>
      </constructor>
      <method name="Union" cname="art_uta_union">
        <return-type type="ArtUta*" />
        <parameters>
          <parameter type="ArtUta*" name="uta2" />
        </parameters>
      </method>
    </struct>
    <alias name="UtaBbox" cname="ArtUtaBbox" type="unsigned int" />
    <struct name="Vpath" cname="ArtVpath" opaque="false">
      <field name="Code" cname="code" type="ArtPathcode" access="public" writeable="true" />
      <field name="X" cname="x" type="double" access="public" writeable="true" />
      <field name="Y" cname="y" type="double" access="public" writeable="true" />
      <method name="AddPoint" cname="art_vpath_add_point">
        <return-type type="void" />
        <parameters>
          <parameter type="int*" name="pn_points" />
          <parameter type="int*" name="pn_points_max" />
          <parameter type="ArtPathcode" name="code" />
          <parameter type="double" name="x" />
          <parameter type="double" name="y" />
        </parameters>
      </method>
      <method name="AffineTransform" cname="art_vpath_affine_transform">
        <return-type type="ArtVpath*" />
        <parameters>
          <parameter type="const-double" array="true" name="matrix" />
        </parameters>
      </method>
      <method name="BboxDrect" cname="art_vpath_bbox_drect">
        <return-type type="void" />
        <parameters>
          <parameter type="ArtDRect*" name="drect" />
        </parameters>
      </method>
      <method name="BboxIrect" cname="art_vpath_bbox_irect">
        <return-type type="void" />
        <parameters>
          <parameter type="ArtIRect*" name="irect" />
        </parameters>
      </method>
      <method name="Dash" cname="art_vpath_dash">
        <return-type type="ArtVpath*" />
        <parameters>
          <parameter type="const-ArtVpathDash*" name="dash" />
        </parameters>
      </method>
      <method name="FromSvp" cname="art_vpath_from_svp" shared="true">
        <return-type type="ArtVpath*" />
        <parameters>
          <parameter type="const-ArtSVP*" name="svp" />
        </parameters>
      </method>
      <constructor cname="art_vpath_new_circle">
        <parameters>
          <parameter type="double" name="x" />
          <parameter type="double" name="y" />
          <parameter type="double" name="r" />
        </parameters>
      </constructor>
      <method name="Perturb" cname="art_vpath_perturb">
        <return-type type="ArtVpath*" />
      </method>
    </struct>
    <struct name="VpathDash" cname="ArtVpathDash" opaque="1">
      <field name="Offset" cname="offset" type="double" />
      <field name="NDash" cname="n_dash" type="int" />
      <field name="Dash" cname="dash" type="double*" />
    </struct>
    <alias name="ArtBoolean" cname="art_boolean" type="int" />
    <alias name="ArtU16" cname="art_u16" type="unsigned short" />
    <alias name="ArtU32" cname="art_u32" type="unsigned int" />
    <alias name="ArtU8" cname="art_u8" type="unsigned char" />
    <callback name="RenderAaCallback" cname="RenderAaCallback">
      <return-type type="void" />
      <parameters>
        <parameter type="void*" name="callback_data" />
        <parameter type="int" name="y" />
        <parameter type="int" name="start" />
        <parameter type="ArtSVPRenderAAStep*" name="steps" />
        <parameter type="int" name="n_steps" />
      </parameters>
    </callback>
    <class name="Affine" cname="ArtAffine_">
      <method name="Equal" cname="art_affine_equal" shared="true">
        <return-type type="gboolean" />
        <parameters>
          <parameter type="double" array="true" name="matrix1" />
          <parameter type="double" array="true" name="matrix2" />
        </parameters>
      </method>
      <method name="Expansion" cname="art_affine_expansion" shared="true">
        <return-type type="double" />
        <parameters>
          <parameter type="const-double" array="true" name="src" />
        </parameters>
      </method>
      <method name="Flip" cname="art_affine_flip" shared="true">
        <return-type type="void" />
        <parameters>
          <parameter type="double" array="true" name="dst_affine" />
          <parameter type="const-double" array="true" name="src_affine" />
          <parameter type="gboolean" name="horz" />
          <parameter type="gboolean" name="vert" />
        </parameters>
      </method>
      <method name="Identity" cname="art_affine_identity" shared="true">
        <return-type type="void" />
        <parameters>
          <parameter type="double" array="true" name="dst" />
        </parameters>
      </method>
      <method name="Invert" cname="art_affine_invert" shared="true">
        <return-type type="void" />
        <parameters>
          <parameter type="double" array="true" name="dst_affine" />
          <parameter type="const-double" array="true" name="src_affine" />
        </parameters>
      </method>
      <method name="Multiply" cname="art_affine_multiply" shared="true">
        <return-type type="void" />
        <parameters>
          <parameter type="double" array="true" name="dst" />
          <parameter type="const-double" array="true" name="src1" />
          <parameter type="const-double" array="true" name="src2" />
        </parameters>
      </method>
      <method name="Point" cname="art_affine_point" shared="true">
        <return-type type="void" />
        <parameters>
          <parameter type="ArtPoint*" name="dst" pass_as="out" />
          <parameter type="const-ArtPoint*" name="src" />
          <parameter type="const-double" array="true" name="affine" />
        </parameters>
      </method>
      <method name="Rectilinear" cname="art_affine_rectilinear" shared="true">
        <return-type type="gboolean" />
        <parameters>
          <parameter type="const-double" array="true" name="src" />
        </parameters>
      </method>
      <method name="Rotate" cname="art_affine_rotate" shared="true">
        <return-type type="void" />
        <parameters>
          <parameter type="double" array="true" name="dst" />
          <parameter type="double" name="theta" />
        </parameters>
      </method>
      <method name="Scale" cname="art_affine_scale" shared="true">
        <return-type type="void" />
        <parameters>
          <parameter type="double" array="true" name="dst" />
          <parameter type="double" name="sx" />
          <parameter type="double" name="sy" />
        </parameters>
      </method>
      <method name="Shear" cname="art_affine_shear" shared="true">
        <return-type type="void" />
        <parameters>
          <parameter type="double" array="true" name="dst" />
          <parameter type="double" name="theta" />
        </parameters>
      </method>
      <method name="ToStringArray" cname="art_affine_to_string" shared="true">
        <return-type type="void" />
        <parameters>
          <parameter type="char" array="true" name="str" />
          <parameter type="const-double" array="true" name="src" />
        </parameters>
      </method>
      <method name="Translate" cname="art_affine_translate" shared="true">
        <return-type type="void" />
        <parameters>
          <parameter type="double" array="true" name="dst" />
          <parameter type="double" name="tx" />
          <parameter type="double" name="ty" />
        </parameters>
      </method>
    </class>
    <class name="Global" cname="ArtGlobal">
      <method name="BezPathToVec" cname="art_bez_path_to_vec" shared="true">
        <return-type type="ArtVpath*" />
        <parameters>
          <parameter type="const-ArtBpath*" name="bez" />
          <parameter type="double" name="flatness" />
        </parameters>
      </method>
      <method name="BezierToVec" cname="art_bezier_to_vec" shared="true">
        <return-type type="ArtPoint*" />
        <parameters>
          <parameter type="double" name="x0" />
          <parameter type="double" name="y0" />
          <parameter type="double" name="x1" />
          <parameter type="double" name="y1" />
          <parameter type="double" name="x2" />
          <parameter type="double" name="y2" />
          <parameter type="double" name="x3" />
          <parameter type="double" name="y3" />
          <parameter type="ArtPoint*" name="p" />
          <parameter type="int" name="level" />
        </parameters>
      </method>
      <method name="GraySvpAa" cname="art_gray_svp_aa" shared="true">
        <return-type type="void" />
        <parameters>
          <parameter type="const-ArtSVP*" name="svp" />
          <parameter type="int" name="x0" />
          <parameter type="int" name="y0" />
          <parameter type="int" name="x1" />
          <parameter type="int" name="y1" />
          <parameter type="art_u8*" name="buf" />
          <parameter type="int" name="rowstride" />
        </parameters>
      </method>
      <method name="RectListFromUta" cname="art_rect_list_from_uta" shared="true">
        <return-type type="ArtIRect*" />
        <parameters>
          <parameter type="ArtUta*" name="uta" />
          <parameter type="int" name="max_width" />
          <parameter type="int" name="max_height" />
          <parameter type="int*" name="p_nrects" />
        </parameters>
      </method>
    </class>
    <class name="Rgb" cname="ArtRgb_">
      <method name="AAffine" cname="art_rgb_a_affine" shared="true">
        <return-type type="void" />
        <parameters>
          <parameter type="art_u8*" name="dst" />
          <parameter type="int" name="x0" />
          <parameter type="int" name="y0" />
          <parameter type="int" name="x1" />
          <parameter type="int" name="y1" />
          <parameter type="int" name="dst_rowstride" />
          <parameter type="const-art_u8*" name="src" />
          <parameter type="int" name="src_width" />
          <parameter type="int" name="src_height" />
          <parameter type="int" name="src_rowstride" />
          <parameter type="art_u32" name="rgb" />
          <parameter type="const-double" array="true" name="affine" />
          <parameter type="ArtFilterLevel" name="level" />
          <parameter type="ArtAlphaGamma*" name="alphagamma" />
        </parameters>
      </method>
      <method name="Affine" cname="art_rgb_affine" shared="true">
        <return-type type="void" />
        <parameters>
          <parameter type="art_u8*" name="dst" />
          <parameter type="int" name="x0" />
          <parameter type="int" name="y0" />
          <parameter type="int" name="x1" />
          <parameter type="int" name="y1" />
          <parameter type="int" name="dst_rowstride" />
          <parameter type="const-art_u8*" name="src" />
          <parameter type="int" name="src_width" />
          <parameter type="int" name="src_height" />
          <parameter type="int" name="src_rowstride" />
          <parameter type="const-double" array="true" name="affine" />
          <parameter type="ArtFilterLevel" name="level" />
          <parameter type="ArtAlphaGamma*" name="alphagamma" />
        </parameters>
      </method>
      <method name="BitmapAffine" cname="art_rgb_bitmap_affine" shared="true">
        <return-type type="void" />
        <parameters>
          <parameter type="art_u8*" name="dst" />
          <parameter type="int" name="x0" />
          <parameter type="int" name="y0" />
          <parameter type="int" name="x1" />
          <parameter type="int" name="y1" />
          <parameter type="int" name="dst_rowstride" />
          <parameter type="const-art_u8*" name="src" />
          <parameter type="int" name="src_width" />
          <parameter type="int" name="src_height" />
          <parameter type="int" name="src_rowstride" />
          <parameter type="art_u32" name="rgba" />
          <parameter type="const-double" array="true" name="affine" />
          <parameter type="ArtFilterLevel" name="level" />
          <parameter type="ArtAlphaGamma*" name="alphagamma" />
        </parameters>
      </method>
      <method name="FillRun" cname="art_rgb_fill_run" shared="true">
        <return-type type="void" />
        <parameters>
          <parameter type="art_u8*" name="buf" />
          <parameter type="art_u8" name="r" />
          <parameter type="art_u8" name="g" />
          <parameter type="art_u8" name="b" />
          <parameter type="int" name="n" />
        </parameters>
      </method>
      <method name="PixbufAffine" cname="art_rgb_pixbuf_affine" shared="true">
        <return-type type="void" />
        <parameters>
          <parameter type="art_u8*" name="dst" />
          <parameter type="int" name="x0" />
          <parameter type="int" name="y0" />
          <parameter type="int" name="x1" />
          <parameter type="int" name="y1" />
          <parameter type="int" name="dst_rowstride" />
          <parameter type="const-ArtPixBuf*" name="pixbuf" />
          <parameter type="const-double" array="true" name="affine" />
          <parameter type="ArtFilterLevel" name="level" />
          <parameter type="ArtAlphaGamma*" name="alphagamma" />
        </parameters>
      </method>
      <method name="RgbaAffine" cname="art_rgb_rgba_affine" shared="true">
        <return-type type="void" />
        <parameters>
          <parameter type="art_u8*" name="dst" />
          <parameter type="int" name="x0" />
          <parameter type="int" name="y0" />
          <parameter type="int" name="x1" />
          <parameter type="int" name="y1" />
          <parameter type="int" name="dst_rowstride" />
          <parameter type="const-art_u8*" name="src" />
          <parameter type="int" name="src_width" />
          <parameter type="int" name="src_height" />
          <parameter type="int" name="src_rowstride" />
          <parameter type="const-double" array="true" name="affine" />
          <parameter type="ArtFilterLevel" name="level" />
          <parameter type="ArtAlphaGamma*" name="alphagamma" />
        </parameters>
      </method>
      <method name="RunAlpha" cname="art_rgb_run_alpha" shared="true">
        <return-type type="void" />
        <parameters>
          <parameter type="art_u8*" name="buf" />
          <parameter type="art_u8" name="r" />
          <parameter type="art_u8" name="g" />
          <parameter type="art_u8" name="b" />
          <parameter type="int" name="alpha" />
          <parameter type="int" name="n" />
        </parameters>
      </method>
      <method name="SvpAa" cname="art_rgb_svp_aa" shared="true">
        <return-type type="void" />
        <parameters>
          <parameter type="const-ArtSVP*" name="svp" />
          <parameter type="int" name="x0" />
          <parameter type="int" name="y0" />
          <parameter type="int" name="x1" />
          <parameter type="int" name="y1" />
          <parameter type="art_u32" name="fg_color" />
          <parameter type="art_u32" name="bg_color" />
          <parameter type="art_u8*" name="buf" />
          <parameter type="int" name="rowstride" />
          <parameter type="ArtAlphaGamma*" name="alphagamma" />
        </parameters>
      </method>
      <method name="SvpAlpha" cname="art_rgb_svp_alpha" shared="true">
        <return-type type="void" />
        <parameters>
          <parameter type="const-ArtSVP*" name="svp" />
          <parameter type="int" name="x0" />
          <parameter type="int" name="y0" />
          <parameter type="int" name="x1" />
          <parameter type="int" name="y1" />
          <parameter type="art_u32" name="rgba" />
          <parameter type="art_u8*" name="buf" />
          <parameter type="int" name="rowstride" />
          <parameter type="ArtAlphaGamma*" name="alphagamma" />
        </parameters>
      </method>
    </class>
    <class name="Rgba" cname="ArtRgba_">
      <method name="FillRun" cname="art_rgba_fill_run" shared="true">
        <return-type type="void" />
        <parameters>
          <parameter type="art_u8*" name="buf" />
          <parameter type="art_u8" name="r" />
          <parameter type="art_u8" name="g" />
          <parameter type="art_u8" name="b" />
          <parameter type="int" name="n" />
        </parameters>
      </method>
      <method name="RgbaComposite" cname="art_rgba_rgba_composite" shared="true">
        <return-type type="void" />
        <parameters>
          <parameter type="art_u8*" name="dst" />
          <parameter type="const-art_u8*" name="src" />
          <parameter type="int" name="n" />
        </parameters>
      </method>
      <method name="RunAlpha" cname="art_rgba_run_alpha" shared="true">
        <return-type type="void" />
        <parameters>
          <parameter type="art_u8*" name="buf" />
          <parameter type="art_u8" name="r" />
          <parameter type="art_u8" name="g" />
          <parameter type="art_u8" name="b" />
          <parameter type="int" name="alpha" />
          <parameter type="int" name="n" />
        </parameters>
      </method>
    </class>
  </namespace>
  <symbol type="simple" cname="art_u8" name="byte" />
  <symbol type="simple" cname="art_u32" name="uint" />
</api>