This file is indexed.

/usr/lib/ocaml/camlimages/freetype.mli is in libcamlimages-ocaml-dev 1:4.2.0-1.1+b1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
(***********************************************************************)
(*                                                                     *)
(*                           Objective Caml                            *)
(*                                                                     *)
(*            Jun Furuse, projet Cristal, INRIA Rocquencourt           *)
(*                                                                     *)
(*  Copyright 1999-2004,                                               *)
(*  Institut National de Recherche en Informatique et en Automatique.  *)
(*  Distributed only by permission.                                    *)
(*                                                                     *)
(***********************************************************************)

(* $Id: freetype.mli,v 1.1 2007/01/18 10:29:57 rousse Exp $ *)

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;;
(** if you give [], freetype loads glyphs with scaling and 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;;

(** matrix and vector *)
type matrix = { ft_xx : float; ft_xy : float; ft_yx : float; ft_yy : float; };;
type vector = { ft_x : float; ft_y : float; };;

val set_transform : face -> matrix -> vector -> unit;;
val matrix_rotate : float -> matrix;;

(** bitmap ops *)
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;;

(** glyph metrics *)

type bbox = {
    xmin: float;
    ymin: float;
    xmax: float;
    ymax: float;
  };;

type bearing_advance = {
    bearingx: float;
    bearingy: float;
    advance: float;
  };;

type glyph_metrics = {
    gm_width: float;
    gm_height: float;
    gm_hori: bearing_advance;
    gm_vert: bearing_advance;
  };;

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;;

(** outline info *)
type outline_tag = On_point | Off_point_conic | Off_point_cubic;;

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;;