Module Ftlow


module Ftlow: sig .. end
Almost all of the functions are just interpretation of functions of the freetype library. See the documents of the freetype library.

type library 
val init : unit -> library
val close : library -> unit
type face 

type face_info = {
   num_faces : int;
   num_glyphs : int;
   family_name : string;
   style_name : string;
   has_horizontal : bool;
   has_vertical : bool;
   has_kerning : bool;
   is_scalable : bool;
   is_sfnt : bool;
   is_fixed_width : bool;
   has_fixed_sizes : bool;
   has_fast_glyphs : bool;
   has_glyph_names : bool;
   has_multiple_masters : bool;
}
val new_face : library -> string -> int -> face
val face_info : face -> face_info
val done_face : face -> unit
val get_num_glyphs : face -> int
val set_char_size : face -> int -> int -> int -> int -> unit
val set_pixel_sizes : face -> int -> int -> unit

type charmap = {
   platform_id : int;
   encoding_id : int;
}
val get_charmaps : face -> charmap list
val set_charmap : face -> charmap -> unit
val get_char_index : face -> int -> int

type render_mode =
| Render_Normal (*default*)
| Render_Mono

type load_flag =
| Load_no_scale
| Load_no_hinting
val load_glyph : face -> int -> load_flag list -> int * int
val load_char : face -> int -> load_flag list -> int * int
val render_glyph_of_face : face -> render_mode -> unit
val render_glyph : face -> int -> load_flag list -> render_mode -> int * int
val render_char : face -> int -> load_flag list -> render_mode -> int * int
val set_transform : face -> int * int * int * int -> int * int -> unit

type bitmap_info = {
   bitmap_left : int;
   bitmap_top : int;
   bitmap_width : int;
   bitmap_height : int;
}
val get_bitmap_info : face -> bitmap_info
val read_bitmap : face -> int -> int -> int

type bbox = {
   xmin : int; (*26.6*)
   ymin : int; (*26.6*)
   xmax : int; (*26.6*)
   ymax : int; (*26.6*)
}
glyph metrics

type bearing_advance = {
   bearingx : int; (*26.6*)
   bearingy : int; (*26.6*)
   advance : int; (*26.6*)
}
type glyph_metrics = {
   gm_width : int; (*26.6*)
   gm_height : int; (*26.6*)
   gm_hori : bearing_advance;
   gm_vert : bearing_advance;
}
val get_glyph_metrics : face -> glyph_metrics

type size_metrics = {
   x_ppem : int;
   y_ppem : int;
   x_scale : int; (*16.16*)
   y_scale : int; (*16.16*)
}
size metrics
val get_size_metrics : face -> size_metrics

type outline_tag =
| On_point
| Off_point_conic
| Off_point_cubic
outline info

type outline_contents = {
   n_contours : int;
   n_points : int;
   points : (int * int) array;
   tags : outline_tag array;
   contours : int array;
}
val get_outline_contents : face -> outline_contents