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