module Freetype: sig .. end
type for Freetype library
type t
type for Freetype library
val init : unit -> t
init () initializes the Freetype library.
The returned library is required to load fonts.
type face
Type for 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 : t -> string -> int -> face * face_info
new_face library fontfile n loads n-th font stored
in the font file fontfile, and returns its face and
face information.
val get_num_glyphs : face -> int
Returns number of glyphs stored in the face.
Equivalent to face_info.num_glyphs
val set_char_size : face -> float -> float -> int -> int -> unit
set_char_size face charw charh resh resv sets the character
size of face. charw and charh are the points of the characters
in width and height. resh and resv are the horizontal and
vertical resolution (in dpi)
val set_pixel_sizes : face -> int -> int -> unit
set_pixel_sizes face pixw pixh also sets the character size
of face. pixw and pixh are standard width and height of
characters in pixels.
type charmap = {
|
platform_id : int; |
|
encoding_id : int; |
}
type char_index
val int_of_char_index : char_index -> int
val char_index_of_int : int -> char_index
val get_charmaps : face -> charmap list
val set_charmap : face -> charmap -> unit
val get_char_index : face -> int -> char_index
type render_mode =
| |
Render_Normal |
| |
Render_Mono |
type load_flag =
| |
Load_no_scale |
| |
Load_no_hinting |
val load_glyph : face ->
char_index -> load_flag list -> float * float
val load_char : face -> int -> load_flag list -> float * float
val render_glyph_of_face : face -> render_mode -> unit
val render_glyph : face ->
char_index ->
load_flag list -> render_mode -> float * float
val render_char : face ->
int -> load_flag list -> render_mode -> float * float
type matrix = {
|
ft_xx : float; |
|
ft_xy : float; |
|
ft_yx : float; |
|
ft_yy : float; |
}
matrix and vector
type vector = {
|
ft_x : float; |
|
ft_y : float; |
}
val set_transform : face -> matrix -> vector -> unit
val matrix_rotate : float -> matrix
type bitmap_info = {
|
bitmap_left : int; |
|
bitmap_top : int; |
|
bitmap_width : int; |
|
bitmap_height : int; |
}
bitmap ops
val get_bitmap_info : face -> bitmap_info
val read_bitmap : face -> int -> int -> int
glyph metrics
type bbox = {
|
xmin : float; |
|
ymin : float; |
|
xmax : float; |
|
ymax : float; |
}
type bearing_advance = {
|
bearingx : float; |
|
bearingy : float; |
|
advance : float; |
}
type glyph_metrics = {
}
val get_glyph_metrics : face -> glyph_metrics
size metrics
type size_metrics = {
|
x_ppem : int; |
|
y_ppem : int; |
|
x_scale : float; |
|
y_scale : float; |
}
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 : (float * float) array; |
|
tags : outline_tag array; |
|
contours : int array; |
}
val get_outline_contents : face -> outline_contents