contrib/OWB: add correct SDL dependency, fix compilers used
[AROS-Contrib.git] / freetype1 / pascal / lib / tttypes.pas
blob7450b4d1747ebf7f2edb33a36da90e1c5724c32b
1 (*******************************************************************
3 * TTTypes.pas 1.0
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 ******************************************************************)
18 unit TTTypes;
20 interface
22 uses FreeType;
24 type
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 *)
34 Long = Longint;
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 *)
40 {$IFDEF USE32}
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;
47 PByte = ^TByteArray;
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;
56 PStorage = ^TStorage;
57 PLong = PStorage;
58 PULong = PStorage;
60 TError = boolean;
62 (***************** FreeType Internal Types *****************************)
64 TCoordinates = array[0..1023] of TT_F26Dot6;
65 PCoordinates = ^TCoordinates;
67 PTouchTable = PByte;
69 TVecRecord = record
70 n : Int; (* number of points *)
71 org_x : PCoordinates; (* original coordinates arrays *)
72 org_y : PCoordinates;
73 cur_x : PCoordinates; (* current coordinates arrays *)
74 cur_y : PCoordinates;
75 touch : PTouchTable; (* touch flags array *)
76 end;
77 (* This type is used to describe each point zone in the interpreter *)
79 const
81 TT_Round_Off = 5;
82 TT_Round_To_Half_Grid = 0;
83 TT_Round_To_Grid = 1;
84 TT_Round_To_Double_Grid = 2;
85 TT_Round_Up_To_Grid = 4;
86 TT_Round_Down_To_Grid = 3;
87 TT_Round_Super = 6;
88 TT_ROund_Super_45 = 7;
90 Success = False;
91 Failure = True;
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 *)
100 implementation
102 end.