Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 373d4b60c0ac577bb4893121a2d6b9bb > files > 55

ocaml-cairo-devel-1.2.0.cvs20080301-4mdv2010.0.i586.rpm

<html><head>
<link rel="stylesheet" href="style.css" type="text/css">
<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">
<link rel="Start" href="index.html">
<link title="Index of types" rel=Appendix href="index_types.html">
<link title="Index of exceptions" rel=Appendix href="index_exceptions.html">
<link title="Index of values" rel=Appendix href="index_values.html">
<link title="Index of modules" rel=Appendix href="index_modules.html">
<link title="Cairo" rel="Chapter" href="Cairo.html">
<link title="Cairo_bigarray" rel="Chapter" href="Cairo_bigarray.html">
<link title="Cairo_png" rel="Chapter" href="Cairo_png.html">
<link title="Cairo_pdf" rel="Chapter" href="Cairo_pdf.html">
<link title="Cairo_ps" rel="Chapter" href="Cairo_ps.html">
<link title="Cairo_ft" rel="Chapter" href="Cairo_ft.html">
<link title="Cairo_lablgtk" rel="Chapter" href="Cairo_lablgtk.html"><title>Cairo-ocaml : Cairo</title>
</head>
<body>
<code class="code"><span class="keyword">sig</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;status&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">SUCCESS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">NO_MEMORY</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">INVALID_RESTORE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">INVALID_POP_GROUP</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">NO_CURRENT_POINT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">INVALID_MATRIX</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">INVALID_STATUS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">NULL_POINTER</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">INVALID_STRING</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">INVALID_PATH_DATA</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">READ_ERROR</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">WRITE_ERROR</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">SURFACE_FINISHED</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">SURFACE_TYPE_MISMATCH</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">PATTERN_TYPE_MISMATCH</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">INVALID_CONTENT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">INVALID_FORMAT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">INVALID_VISUAL</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">FILE_NOT_FOUND</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">INVALID_DASH</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">INVALID_DSC_COMMENT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">INVALID_INDEX</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">CLIP_NOT_REPRESENTABLE</span><br>
&nbsp;&nbsp;<span class="keyword">exception</span>&nbsp;<span class="constructor">Error</span>&nbsp;<span class="keyword">of</span>&nbsp;<span class="constructor">Cairo</span>.status<br>
&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;init&nbsp;:&nbsp;unit<br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;version_encode&nbsp;:&nbsp;int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;int<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_CAIRO_VERSION_ENCODE"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;run_time_version&nbsp;:&nbsp;unit&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;int&nbsp;=&nbsp;<span class="string">"ml_cairo_version"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;run_time_version_string&nbsp;:&nbsp;unit&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;string<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_version_string"</span><br>
&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;compile_time_version&nbsp;:&nbsp;int<br>
&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;compile_time_version_string&nbsp;:&nbsp;string<br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;t<br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;-<span class="keywordsign">'</span>a&nbsp;surface<br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;-<span class="keywordsign">'</span>a&nbsp;pattern<br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;-<span class="keywordsign">'</span>a&nbsp;font_face<br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;surface_type&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;<span class="keywordsign">`</span><span class="constructor">BeOS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">DirectFB</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">Glitz</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">Image</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">PDF</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">PS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">Quartz</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">SVG</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">Win32</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">XCB</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">Xlib</span>&nbsp;]<br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;pattern_type&nbsp;=&nbsp;[&nbsp;<span class="keywordsign">`</span><span class="constructor">Linear</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">Radial</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">Solid</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">Surface</span>&nbsp;]<br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;font_type&nbsp;=&nbsp;[&nbsp;<span class="keywordsign">`</span><span class="constructor">ATSUI</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">FT</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">TOY</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">Win32</span>&nbsp;]<br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;content&nbsp;=&nbsp;<span class="constructor">CONTENT_COLOR</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">CONTENT_ALPHA</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">CONTENT_COLOR_ALPHA</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;point&nbsp;=&nbsp;{&nbsp;x&nbsp;:&nbsp;float;&nbsp;y&nbsp;:&nbsp;float;&nbsp;}<br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;matrix&nbsp;=&nbsp;{<br>
&nbsp;&nbsp;&nbsp;&nbsp;xx&nbsp;:&nbsp;float;<br>
&nbsp;&nbsp;&nbsp;&nbsp;yx&nbsp;:&nbsp;float;<br>
&nbsp;&nbsp;&nbsp;&nbsp;xy&nbsp;:&nbsp;float;<br>
&nbsp;&nbsp;&nbsp;&nbsp;yy&nbsp;:&nbsp;float;<br>
&nbsp;&nbsp;&nbsp;&nbsp;x0&nbsp;:&nbsp;float;<br>
&nbsp;&nbsp;&nbsp;&nbsp;y0&nbsp;:&nbsp;float;<br>
&nbsp;&nbsp;}<br>
&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;create&nbsp;:&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.surface&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.t<br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;save&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_cairo_save"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;restore&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_cairo_restore"</span><br>
&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;push_group&nbsp;:&nbsp;?content:<span class="constructor">Cairo</span>.content&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;pop_group&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;[&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.pattern<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_pop_group"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;pop_group_to_source&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_pop_group_to_source"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;status&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.status&nbsp;=&nbsp;<span class="string">"ml_cairo_status"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;surface_status&nbsp;:&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.surface&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.status<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_surface_status"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;pattern_status&nbsp;:&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.pattern&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.status<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_pattern_status"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;font_face_status&nbsp;:&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.font_face&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.status<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_font_face_status"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;string_of_status&nbsp;:&nbsp;<span class="constructor">Cairo</span>.status&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;string<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_status_to_string"</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;operator&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">OPERATOR_CLEAR</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">OPERATOR_SOURCE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">OPERATOR_OVER</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">OPERATOR_IN</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">OPERATOR_OUT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">OPERATOR_ATOP</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">OPERATOR_DEST</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">OPERATOR_DEST_OVER</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">OPERATOR_DEST_IN</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">OPERATOR_DEST_OUT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">OPERATOR_DEST_ATOP</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">OPERATOR_XOR</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">OPERATOR_ADD</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">OPERATOR_SATURATE</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;set_operator&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.operator&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_set_operator"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;set_source&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.pattern&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_set_source"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;set_source_rgb&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;red:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;green:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;blue:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_set_source_rgb"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;set_source_rgba&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;red:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;green:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;blue:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;alpha:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_set_source_rgba"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;set_source_surface&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.surface&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_set_source_surface"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;set_tolerance&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_set_tolerance"</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;antialias&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">ANTIALIAS_DEFAULT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">ANTIALIAS_NONE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">ANTIALIAS_GRAY</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">ANTIALIAS_SUBPIXEL</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;set_antialias&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.antialias&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_set_antialias"</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;fill_rule&nbsp;=&nbsp;<span class="constructor">FILL_RULE_WINDING</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">FILL_RULE_EVEN_ODD</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;set_fill_rule&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.fill_rule&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_set_fill_rule"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;set_line_width&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_set_line_width"</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;line_cap&nbsp;=&nbsp;<span class="constructor">LINE_CAP_BUTT</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">LINE_CAP_ROUND</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">LINE_CAP_SQUARE</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;set_line_cap&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.line_cap&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_set_line_cap"</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;line_join&nbsp;=&nbsp;<span class="constructor">LINE_JOIN_MITER</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">LINE_JOIN_ROUND</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">LINE_JOIN_BEVEL</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;set_line_join&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.line_join&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_set_line_join"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;set_dash&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;float&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_set_dash"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;set_miter_limit&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_set_miter_limit"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;translate&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;tx:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;ty:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_translate"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;scale&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;sx:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;sy:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_cairo_scale"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;rotate&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;angle:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_cairo_rotate"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;transform&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.matrix&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_cairo_transform"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;set_matrix&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.matrix&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_set_matrix"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;identity_matrix&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_cairo_identity_matrix"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;user_to_device&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.point&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.point<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_user_to_device"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;user_to_device_distance&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.point&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.point<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_user_to_device_distance"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;device_to_user&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.point&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.point<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_device_to_user"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;device_to_user_distance&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.point&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.point<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_device_to_user_distance"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;new_path&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_cairo_new_path"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;move_to&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;x:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;y:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_move_to"</span><br>
&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;move_to_point&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.point&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;new_sub_path&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_cairo_new_sub_path"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;line_to&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;x:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;y:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_line_to"</span><br>
&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;line_to_point&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.point&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;curve_to&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;x1:float&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;y1:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;x2:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;y2:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;x3:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;y3:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_curve_to_bc"</span>&nbsp;<span class="string">"ml_cairo_curve_to"</span><br>
&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;curve_to_point&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.point&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.point&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.point&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;arc&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;xc:float&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;yc:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;radius:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;angle1:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;angle2:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_arc_bc"</span>&nbsp;<span class="string">"ml_cairo_arc"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;arc_negative&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;xc:float&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;yc:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;radius:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;angle1:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;angle2:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_arc_negative_bc"</span>&nbsp;<span class="string">"ml_cairo_arc_negative"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;rel_move_to&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;dx:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;dy:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_rel_move_to"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;rel_line_to&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;dx:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;dy:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_rel_line_to"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;rel_curve_to&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;dx1:float&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;dy1:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;dx2:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;dy2:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;dx3:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;dy3:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_rel_curve_to_bc"</span>&nbsp;<span class="string">"ml_cairo_rel_curve_to"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;rectangle&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;x:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;y:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;width:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;height:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_rectangle"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;close_path&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_cairo_close_path"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;paint&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_cairo_paint"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;paint_with_alpha&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_paint_with_alpha"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;mask&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.pattern&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_mask"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;mask_surface&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.surface&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;surface_x:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;surface_y:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_mask_surface"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;stroke&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_cairo_stroke"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;stroke_preserve&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_cairo_stroke_preserve"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;fill&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_cairo_fill"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;fill_preserve&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_cairo_fill_preserve"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;copy_page&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_cairo_copy_page"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;show_page&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_cairo_show_page"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;in_stroke&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.point&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;bool&nbsp;=&nbsp;<span class="string">"ml_cairo_in_stroke"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;in_fill&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.point&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;bool&nbsp;=&nbsp;<span class="string">"ml_cairo_in_fill"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;stroke_extents&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;float&nbsp;*&nbsp;float&nbsp;*&nbsp;float&nbsp;*&nbsp;float<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_stroke_extents"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;fill_extents&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;float&nbsp;*&nbsp;float&nbsp;*&nbsp;float&nbsp;*&nbsp;float<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_fill_extents"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;reset_clip&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_cairo_reset_clip"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;clip&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_cairo_clip"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;clip_preserve&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_cairo_clip_preserve"</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;glyph&nbsp;=&nbsp;{&nbsp;index&nbsp;:&nbsp;int;&nbsp;glyph_x&nbsp;:&nbsp;float;&nbsp;glyph_y&nbsp;:&nbsp;float;&nbsp;}<br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;text_extents&nbsp;=&nbsp;{<br>
&nbsp;&nbsp;&nbsp;&nbsp;x_bearing&nbsp;:&nbsp;float;<br>
&nbsp;&nbsp;&nbsp;&nbsp;y_bearing&nbsp;:&nbsp;float;<br>
&nbsp;&nbsp;&nbsp;&nbsp;text_width&nbsp;:&nbsp;float;<br>
&nbsp;&nbsp;&nbsp;&nbsp;text_height&nbsp;:&nbsp;float;<br>
&nbsp;&nbsp;&nbsp;&nbsp;x_advance&nbsp;:&nbsp;float;<br>
&nbsp;&nbsp;&nbsp;&nbsp;y_advance&nbsp;:&nbsp;float;<br>
&nbsp;&nbsp;}<br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;font_extents&nbsp;=&nbsp;{<br>
&nbsp;&nbsp;&nbsp;&nbsp;ascent&nbsp;:&nbsp;float;<br>
&nbsp;&nbsp;&nbsp;&nbsp;descent&nbsp;:&nbsp;float;<br>
&nbsp;&nbsp;&nbsp;&nbsp;font_height&nbsp;:&nbsp;float;<br>
&nbsp;&nbsp;&nbsp;&nbsp;max_x_advance&nbsp;:&nbsp;float;<br>
&nbsp;&nbsp;&nbsp;&nbsp;max_y_advance&nbsp;:&nbsp;float;<br>
&nbsp;&nbsp;}<br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;font_slant&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">FONT_SLANT_NORMAL</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">FONT_SLANT_ITALIC</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">FONT_SLANT_OBLIQUE</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;font_weight&nbsp;=&nbsp;<span class="constructor">FONT_WEIGHT_NORMAL</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">FONT_WEIGHT_BOLD</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;subpixel_order&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">SUBPIXEL_ORDER_DEFAULT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">SUBPIXEL_ORDER_RGB</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">SUBPIXEL_ORDER_BGR</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">SUBPIXEL_ORDER_VRGB</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">SUBPIXEL_ORDER_VBGR</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;hint_style&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">HINT_STYLE_DEFAULT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">HINT_STYLE_NONE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">HINT_STYLE_SLIGHT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">HINT_STYLE_MEDIUM</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">HINT_STYLE_FULL</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;hint_metrics&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">HINT_METRICS_DEFAULT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">HINT_METRICS_OFF</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">HINT_METRICS_ON</span><br>
&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;font_face_get_type&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.font_face&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;[&nbsp;<span class="keywordsign">`</span><span class="constructor">ATSUI</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">FT</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">TOY</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">Win32</span>&nbsp;]<br>
&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;font_face_downcast_to_toy&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.font_face&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;[&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">TOY</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.font_face<br>
&nbsp;&nbsp;<span class="keyword">module</span>&nbsp;<span class="constructor">Font_Options</span>&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">sig</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;t<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;create&nbsp;:&nbsp;unit&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.<span class="constructor">Font_Options</span>.t<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_font_options_create"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;merge&nbsp;:&nbsp;<span class="constructor">Cairo</span>.<span class="constructor">Font_Options</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.<span class="constructor">Font_Options</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_font_options_merge"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;get_antialias&nbsp;:&nbsp;<span class="constructor">Cairo</span>.<span class="constructor">Font_Options</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.antialias<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_font_options_get_antialias"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;set_antialias&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">Cairo</span>.<span class="constructor">Font_Options</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.antialias&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_font_options_set_antialias"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;get_subpixel_order&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">Cairo</span>.<span class="constructor">Font_Options</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.subpixel_order<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_font_options_get_subpixel_order"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;set_subpixel_order&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">Cairo</span>.<span class="constructor">Font_Options</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.subpixel_order&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_font_options_set_subpixel_order"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;get_hint_style&nbsp;:&nbsp;<span class="constructor">Cairo</span>.<span class="constructor">Font_Options</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.hint_style<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_font_options_get_hint_style"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;set_hint_style&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">Cairo</span>.<span class="constructor">Font_Options</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.hint_style&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_font_options_set_hint_style"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;get_hint_metrics&nbsp;:&nbsp;<span class="constructor">Cairo</span>.<span class="constructor">Font_Options</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.hint_metrics<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_font_options_get_hint_metrics"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;set_hint_metrics&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">Cairo</span>.<span class="constructor">Font_Options</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.hint_metrics&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_font_options_set_hint_metrics"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;all&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;<span class="keywordsign">`</span><span class="constructor">ANTIALIAS_DEFAULT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">ANTIALIAS_GRAY</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">ANTIALIAS_NONE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">ANTIALIAS_SUBPIXEL</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">HINT_METRICS_DEFAULT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">HINT_METRICS_OFF</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">HINT_METRICS_ON</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">HINT_STYLE_DEFAULT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">HINT_STYLE_FULL</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">HINT_STYLE_MEDIUM</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">HINT_STYLE_NONE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">HINT_STYLE_SLIGHT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">SUBPIXEL_ORDER_BGR</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">SUBPIXEL_ORDER_DEFAULT</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">SUBPIXEL_ORDER_RGB</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">SUBPIXEL_ORDER_VBGR</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">SUBPIXEL_ORDER_VRGB</span>&nbsp;]<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;make&nbsp;:&nbsp;[&lt;&nbsp;<span class="constructor">Cairo</span>.<span class="constructor">Font_Options</span>.all&nbsp;]&nbsp;list&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.<span class="constructor">Font_Options</span>.t<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">end</span><br>
&nbsp;&nbsp;<span class="keyword">module</span>&nbsp;<span class="constructor">Scaled_Font</span>&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">sig</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;-<span class="keywordsign">'</span>a&nbsp;t<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;create&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;([&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="keyword">as</span>&nbsp;<span class="keywordsign">'</span>a)&nbsp;<span class="constructor">Cairo</span>.font_face&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">Cairo</span>.matrix&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">Cairo</span>.matrix&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.<span class="constructor">Font_Options</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="keywordsign">'</span>a&nbsp;<span class="constructor">Cairo</span>.<span class="constructor">Scaled_Font</span>.t<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_scaled_font_create"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;get_type&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.<span class="constructor">Scaled_Font</span>.t&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;<span class="keywordsign">`</span><span class="constructor">ATSUI</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">FT</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">TOY</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">Win32</span>&nbsp;]<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;downcast_to_toy&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.<span class="constructor">Scaled_Font</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;[&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">TOY</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.<span class="constructor">Scaled_Font</span>.t<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;font_extents&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.<span class="constructor">Scaled_Font</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.font_extents<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_scaled_font_extents"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;text_extents&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.<span class="constructor">Scaled_Font</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.text_extents<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_scaled_font_text_extents"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glyph_extents&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.<span class="constructor">Scaled_Font</span>.t&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">Cairo</span>.glyph&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.text_extents<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_scaled_font_glyph_extents"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;get_font_face&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;([&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="keyword">as</span>&nbsp;<span class="keywordsign">'</span>a)&nbsp;<span class="constructor">Cairo</span>.<span class="constructor">Scaled_Font</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="keywordsign">'</span>a&nbsp;<span class="constructor">Cairo</span>.font_face<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_scaled_font_get_font_face"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;get_font_matrix&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.<span class="constructor">Scaled_Font</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.matrix<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_scaled_font_get_font_matrix"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;get_ctm&nbsp;:&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.<span class="constructor">Scaled_Font</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.matrix<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_scaled_font_get_ctm"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;get_font_options&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.<span class="constructor">Scaled_Font</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.<span class="constructor">Font_Options</span>.t<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">end</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;select_font_face&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.font_slant&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.font_weight&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_select_font_face"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;set_font_size&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_set_font_size"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;set_font_matrix&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.matrix&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_set_font_matrix"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;get_font_matrix&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.matrix<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_get_font_matrix"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;set_font_options&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.<span class="constructor">Font_Options</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_set_font_matrix"</span><br>
&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;merge_font_options&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.<span class="constructor">Font_Options</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;get_font_options&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.<span class="constructor">Font_Options</span>.t<br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;set_scaled_font&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.<span class="constructor">Scaled_Font</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_set_scaled_font"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;show_text&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_cairo_show_text"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;show_glyphs&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.glyph&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_show_glyphs"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;get_font_face&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;[&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.font_face<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_get_font_face"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;font_extents&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.font_extents<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_font_extents"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;set_font_face&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.font_face&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_set_font_face"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;text_extents&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.text_extents<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_text_extents"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glyph_extents&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.glyph&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.text_extents<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_glyph_extents"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;text_path&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;string&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit&nbsp;=&nbsp;<span class="string">"ml_cairo_text_path"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;glyph_path&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.glyph&nbsp;array&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_glyph_path"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;get_operator&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.operator&nbsp;=&nbsp;<span class="string">"ml_cairo_get_operator"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;get_source&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;[&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.pattern<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_get_source"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;get_tolerance&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;float&nbsp;=&nbsp;<span class="string">"ml_cairo_get_tolerance"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;get_antialias&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.antialias<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_get_antialias"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;get_current_point&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.point<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_get_current_point"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;get_fill_rule&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.fill_rule<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_get_fill_rule"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;get_line_width&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;float&nbsp;=&nbsp;<span class="string">"ml_cairo_get_line_width"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;get_line_cap&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.line_cap&nbsp;=&nbsp;<span class="string">"ml_cairo_get_line_cap"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;get_line_join&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.line_join<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_get_line_join"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;get_miter_limit&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;float&nbsp;=&nbsp;<span class="string">"ml_cairo_get_miter_limit"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;get_matrix&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.matrix&nbsp;=&nbsp;<span class="string">"ml_cairo_get_matrix"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;get_target&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;[&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.surface<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_get_target"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;get_group_target&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;[&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.surface<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_get_group_target"</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;flat_path&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;<span class="keywordsign">`</span><span class="constructor">CLOSE</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">LINE_TO</span>&nbsp;<span class="keyword">of</span>&nbsp;<span class="constructor">Cairo</span>.point&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">MOVE_TO</span>&nbsp;<span class="keyword">of</span>&nbsp;<span class="constructor">Cairo</span>.point&nbsp;]<br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;path&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;<span class="keywordsign">`</span><span class="constructor">CLOSE</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">CURVE_TO</span>&nbsp;<span class="keyword">of</span>&nbsp;<span class="constructor">Cairo</span>.point&nbsp;*&nbsp;<span class="constructor">Cairo</span>.point&nbsp;*&nbsp;<span class="constructor">Cairo</span>.point<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">LINE_TO</span>&nbsp;<span class="keyword">of</span>&nbsp;<span class="constructor">Cairo</span>.point<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">MOVE_TO</span>&nbsp;<span class="keyword">of</span>&nbsp;<span class="constructor">Cairo</span>.point&nbsp;]<br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;fold_path&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;(<span class="keywordsign">'</span>a&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;[&gt;&nbsp;<span class="constructor">Cairo</span>.path&nbsp;]&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="keywordsign">'</span>a)&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="keywordsign">'</span>a&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="keywordsign">'</span>a<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_copy_path"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;fold_path_flat&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;(<span class="keywordsign">'</span>a&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;[&gt;&nbsp;<span class="constructor">Cairo</span>.flat_path&nbsp;]&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="keywordsign">'</span>a)&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="keywordsign">'</span>a&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="keywordsign">'</span>a<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_copy_path_flat"</span><br>
&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;append_path&nbsp;:&nbsp;<span class="constructor">Cairo</span>.t&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;[&lt;&nbsp;<span class="constructor">Cairo</span>.path&nbsp;]&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;surface_create_similar&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.surface&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">Cairo</span>.content&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;width:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;height:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;[&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.surface<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_surface_create_similar"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;surface_finish&nbsp;:&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.surface&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_surface_finish"</span><br>
&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;surface_get_type&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.surface&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">BeOS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">DirectFB</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">Glitz</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">Image</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">PDF</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">PS</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">Quartz</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">SVG</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">Win32</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">XCB</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">Xlib</span>&nbsp;]<br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;surface_get_content&nbsp;:&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.surface&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.content<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_surface_get_content"</span><br>
&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;surface_get_font_options&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.surface&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.<span class="constructor">Font_Options</span>.t<br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;surface_flush&nbsp;:&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.surface&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_surface_flush"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;mark_dirty&nbsp;:&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.surface&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_surface_mark_dirty"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;mark_dirty_rectangle&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.surface&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_surface_mark_dirty_rectangle"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;surface_set_device_offset&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.surface&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_surface_set_device_offset"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;surface_get_device_offset&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.surface&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;float&nbsp;*&nbsp;float<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_surface_get_device_offset"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;surface_set_fallback_resolution&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.surface&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_surface_set_fallback_resolution"</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;image_surface&nbsp;=&nbsp;[&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">Image</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.surface<br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;format&nbsp;=&nbsp;<span class="constructor">FORMAT_ARGB32</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">FORMAT_RGB24</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">FORMAT_A8</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">FORMAT_A1</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;image_surface_create&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">Cairo</span>.format&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;width:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;height:int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.image_surface<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_image_surface_create"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;image_surface_get_format&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Image</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.surface&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.format<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_image_surface_get_format"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;image_surface_get_width&nbsp;:&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Image</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.surface&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;int<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_image_surface_get_width"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;image_surface_get_height&nbsp;:&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Image</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.surface&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;int<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_image_surface_get_height"</span><br>
&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;image_surface_get_stride&nbsp;:&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Image</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.surface&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;int<br>
&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_image_surface_get_stride"</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;solid_pattern&nbsp;=&nbsp;[&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">Solid</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.pattern<br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;surface_pattern&nbsp;=&nbsp;[&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">Surface</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.pattern<br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;gradient_pattern&nbsp;=&nbsp;[&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">Gradient</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.pattern<br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;extend&nbsp;=&nbsp;<span class="constructor">EXTEND_NONE</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">EXTEND_REPEAT</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">EXTEND_REFLECT</span><br>
&nbsp;&nbsp;<span class="keyword">type</span>&nbsp;filter&nbsp;=<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">FILTER_FAST</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">FILTER_GOOD</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">FILTER_BEST</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">FILTER_NEAREST</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">FILTER_BILINEAR</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="constructor">FILTER_GAUSSIAN</span><br>
&nbsp;&nbsp;<span class="keyword">module</span>&nbsp;<span class="constructor">Pattern</span>&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">sig</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;get_type&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.pattern&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">Linear</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">Radial</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">Solid</span>&nbsp;<span class="keywordsign">|</span>&nbsp;<span class="keywordsign">`</span><span class="constructor">Surface</span>&nbsp;]<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;downcast_to_solid&nbsp;:&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.pattern&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.solid_pattern<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;downcast_to_surface&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.pattern&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.surface_pattern<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;downcast_to_gradient&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.pattern&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.gradient_pattern<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;create_rgb&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;red:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;green:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;blue:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.solid_pattern<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_pattern_create_rgb"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;create_rgba&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;red:float&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;green:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;blue:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;alpha:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.solid_pattern<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_pattern_create_rgba"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;create_for_surface&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.surface&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.surface_pattern<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_pattern_create_for_surface"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;create_linear&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x0:float&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y0:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;x1:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;y1:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.gradient_pattern<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_pattern_create_linear"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;create_radial&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cx0:float&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cy0:float&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;radius0:float&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cx1:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;cy1:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;radius1:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.gradient_pattern<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_pattern_create_radial_bc"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"ml_cairo_pattern_create_radial"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;add_color_stop_rgb&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Gradient</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.pattern&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;off:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;red:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;green:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;blue:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_pattern_add_color_stop_rgb"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;add_color_stop_rgba&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Gradient</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.pattern&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;off:float&nbsp;<span class="keywordsign">-&gt;</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;red:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;green:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;blue:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;alpha:float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_pattern_add_color_stop_rgba_bc"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">"ml_cairo_pattern_add_color_stop_rgba"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;set_matrix&nbsp;:&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.pattern&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.matrix&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_pattern_set_matrix"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;get_matrix&nbsp;:&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Any</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.pattern&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.matrix<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_pattern_get_matrix"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;set_extend&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Surface</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.pattern&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.extend&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_pattern_set_extend"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;get_extend&nbsp;:&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Surface</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.pattern&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.extend<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_pattern_get_extend"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;set_filter&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Surface</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.pattern&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.filter&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_pattern_set_filter"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;get_filter&nbsp;:&nbsp;[&gt;&nbsp;<span class="keywordsign">`</span><span class="constructor">Surface</span>&nbsp;]&nbsp;<span class="constructor">Cairo</span>.pattern&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.filter<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_pattern_get_filter"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">end</span><br>
&nbsp;&nbsp;<span class="keyword">module</span>&nbsp;<span class="constructor">Matrix</span>&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">sig</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;init_identity&nbsp;:&nbsp;<span class="constructor">Cairo</span>.matrix<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;init_translate&nbsp;:&nbsp;float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.matrix<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;init_scale&nbsp;:&nbsp;float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.matrix<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;init_rotate&nbsp;:&nbsp;float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.matrix<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;translate&nbsp;:&nbsp;<span class="constructor">Cairo</span>.matrix&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.matrix<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_matrix_translate"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;scale&nbsp;:&nbsp;<span class="constructor">Cairo</span>.matrix&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.matrix<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_matrix_scale"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;rotate&nbsp;:&nbsp;<span class="constructor">Cairo</span>.matrix&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;float&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.matrix<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_matrix_rotate"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;invert&nbsp;:&nbsp;<span class="constructor">Cairo</span>.matrix&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.matrix<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_matrix_invert"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;multiply&nbsp;:&nbsp;<span class="constructor">Cairo</span>.matrix&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.matrix&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.matrix<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_matrix_multiply"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;transform_distance&nbsp;:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="constructor">Cairo</span>.matrix&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.point&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.point<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_matrix_transform_distance"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">external</span>&nbsp;transform_point&nbsp;:&nbsp;<span class="constructor">Cairo</span>.matrix&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.point&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Cairo</span>.point<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;<span class="string">"ml_cairo_matrix_transform_point"</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">end</span><br>
<span class="keyword">end</span></code></body></html>