1 (*******************************************************************
5 * Global internal types definitions
7 * Copyright 1996, 1997 by
8 * David Turner, Robert Wilhelm, and Werner Lemberg.
10 * This file is part of the FreeType project, and may only be used
11 * modified and distributed under the terms of the FreeType project
12 * license, LICENSE.TXT. By continuing to use, modify or distribute
13 * this file you indicate that you have read the license and
14 * understand and accept it fully.
16 ******************************************************************)
26 (*********************** SIMPLE PRIMITIVE TYPES *******************)
28 (* BYTE is already defined in Pascal *)
29 (* They are equivalent to C unsigned chars *)
31 UShort
= Word; (* unsigned short integer, must be on 16 bits *)
32 Short
= Integer; (* signed short integer, must be on 16 bits *)
35 ULong
= LongInt; (* unsigned long integer, must be on 32 bits *)
36 (* NOTE : There is no 'LongWord' in Pascal, *)
37 (* but the unsigned ops are all in *)
38 (* the inline assembly routines *)
41 Int
= LongInt; (* the 'int' type is used for loop counters and *)
42 {$ELSE} (* indexes.. Their size must be the one a given *)
43 Int
= Integer; (* system handles most easily ( 16 bits on Turbo *)
44 {$ENDIF} (* and 32 on Virtual Pascals ) *)
46 TByteArray
= array[0..1000] of Byte;
49 TShortArray
= array[0..1000] of Short
;
50 PShort
= ^TShortArray
;
52 TUShortArray
= array[0..1000] of UShort
;
53 PUShort
= ^TUShortArray
;
55 TStorage
= array[0..16000] of Long
;
62 (***************** FreeType Internal Types *****************************)
64 TCoordinates
= array[0..1023] of TT_F26Dot6
;
65 PCoordinates
= ^TCoordinates
;
70 n
: Int
; (* number of points *)
71 org_x
: PCoordinates
; (* original coordinates arrays *)
73 cur_x
: PCoordinates
; (* current coordinates arrays *)
75 touch
: PTouchTable
; (* touch flags array *)
77 (* This type is used to describe each point zone in the interpreter *)
82 TT_Round_To_Half_Grid
= 0;
84 TT_Round_To_Double_Grid
= 2;
85 TT_Round_Up_To_Grid
= 4;
86 TT_Round_Down_To_Grid
= 3;
88 TT_ROund_Super_45
= 7;
93 TT_Flag_Touched_X
= $02; (* X touched flag *)
94 TT_Flag_Touched_Y
= $04; (* Y touched flag *)
96 TT_Flag_Touched_Both
= TT_Flag_Touched_X
or TT_FLag_Touched_Y
;
98 TT_Flag_On_Curve
= $01; (* Point is On curve *)