1
/* Copyright (C) 2001-2006 Artifex Software, Inc.
4
This software is provided AS-IS with no warranty, either express or
7
This software is distributed under license and may not be copied, modified
8
or distributed except as expressly authorized under the terms of that
9
license. Refer to licensing information at http://www.artifex.com/
10
or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
11
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
14
/* $Id: tttypes.h 8022 2007-06-05 22:23:38Z giles $ */
16
/* Changes after FreeType: cut out the TrueType instruction interpreter. */
19
/*******************************************************************
23
* Freetype engine's common types specification
24
* (this spec has no associated body).
26
* Copyright 1996-1998 by
27
* David Turner, Robert Wilhelm, and Werner Lemberg.
29
* This file is part of the FreeType project, and may only be used
30
* modified and distributed under the terms of the FreeType project
31
* license, LICENSE.TXT. By continuing to use, modify, or distribute
32
* this file you indicate that you have read the license and
33
* understand and accept it fully.
37
* All these declarations are library internals, and *not* part
38
* of the high-level interface. See also 'freetype.h'.
40
******************************************************************/
57
typedef unsigned char Byte;
59
typedef unsigned short UShort;
60
typedef signed short Short;
62
typedef unsigned long ULong;
63
typedef signed long Long;
69
/* Simple access types: pointers and tables */
72
typedef UShort* PUShort;
73
typedef Short* PShort;
74
typedef ULong* PULong;
79
typedef void* Pointer;
81
typedef TT_F26Dot6* PCoordinates;
82
typedef unsigned char* PTouchTable;
86
typedef int Bool; /* No boolean type in C */
101
typedef Long* PStorage;
104
/* Rounding mode constants */
106
#define TT_Round_Off 5
107
#define TT_Round_To_Half_Grid 0
108
#define TT_Round_To_Grid 1
109
#define TT_Round_To_Double_Grid 2
110
#define TT_Round_Up_To_Grid 4
111
#define TT_Round_Down_To_Grid 3
112
#define TT_Round_Super 6
113
#define TT_Round_Super_45 7
116
/* Touch flag masks */
118
#define TT_Flag_On_Curve 1
119
#define TT_Flag_Touched_X 2
120
#define TT_Flag_Touched_Y 4
121
#define TT_Flag_Touched_Both 6
124
/* Error management constants :) */
130
/* The min and max functions missing in C. As usual, be careful not to */
131
/* write things like MIN( a++, b++ ) to avoid side effects. */
134
#define MIN( a, b ) ( (a) < (b) ? (a) : (b) )
138
#define MAX( a, b ) ( (a) > (b) ? (a) : (b) )
142
#define ABS( a ) ( (a) < 0 ? -(a) : (a) )
145
/* conversion macros for the handles defined in freetype.h */
147
#define HANDLE_Val( handle ) ((handle).z)
149
#define HANDLE_Engine( handle ) ((PEngine_Instance)HANDLE_Val( handle ))
151
#define HANDLE_Face( handle ) ((PFace)HANDLE_Val( handle ))
153
#define HANDLE_Instance( handle ) ((PInstance)HANDLE_Val( handle ))
155
/* HANDLE_Stream( handle ) must be defined in ttfile.c */
157
#define HANDLE_Glyph( handle ) ((PGlyph)HANDLE_Val( handle ))
159
#define HANDLE_CharMap( handle ) ((PCMapTable)HANDLE_Val( handle ))
161
#define HANDLE_Set( handle, val ) ((handle).z = (void*)(val))
164
#endif /* TTTYPES_H */