1 /***************************************************************************/
5 /* Miscellaneous macros for stand-alone rasterizer (specification */
8 /* Copyright 2005, 2009 by */
9 /* David Turner, Robert Wilhelm, and Werner Lemberg. */
11 /* This file is part of the FreeType project, and may only be used */
12 /* modified and distributed under the terms of the FreeType project */
13 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */
14 /* this file you indicate that you have read the license and */
15 /* understand and accept it fully. */
17 /***************************************************************************/
20 /***************************************************/
22 /* This file is *not* portable! You have to adapt */
23 /* its definitions to your platform. */
25 /***************************************************/
31 #include FT_CONFIG_STANDARD_LIBRARY_H
33 #define FT_BEGIN_HEADER
36 #define FT_LOCAL_DEF( x ) static x
38 /* from include/freetype2/fttypes.h */
40 typedef unsigned char FT_Byte
;
41 typedef signed int FT_Int
;
42 typedef unsigned int FT_UInt
;
43 typedef signed long FT_Long
;
44 typedef unsigned long FT_ULong
;
45 typedef signed long FT_F26Dot6
;
48 #define FT_MAKE_TAG( _x1, _x2, _x3, _x4 ) \
49 ( ( (FT_ULong)_x1 << 24 ) | \
50 ( (FT_ULong)_x2 << 16 ) | \
51 ( (FT_ULong)_x3 << 8 ) | \
55 /* from include/freetype2/ftsystem.h */
57 typedef struct FT_MemoryRec_
* FT_Memory
;
59 typedef void* (*FT_Alloc_Func
)( FT_Memory memory
,
62 typedef void (*FT_Free_Func
)( FT_Memory memory
,
65 typedef void* (*FT_Realloc_Func
)( FT_Memory memory
,
70 typedef struct FT_MemoryRec_
76 FT_Realloc_Func realloc
;
80 /* from src/ftcalc.c */
84 typedef int64_t FT_Int64
;
96 if ( a
< 0 ) { a
= -a
; s
= -1; }
97 if ( b
< 0 ) { b
= -b
; s
= -s
; }
98 if ( c
< 0 ) { c
= -c
; s
= -s
; }
100 d
= (FT_Long
)( c
> 0 ? ( (FT_Int64
)a
* b
+ ( c
>> 1 ) ) / c
103 return ( s
> 0 ) ? d
: -d
;
106 #endif /* __FTMISC_H__ */