17#ifndef FREETYPE_CONFIG_INTEGER_TYPES_H_
18#define FREETYPE_CONFIG_INTEGER_TYPES_H_
29#define FT_CHAR_BIT CHAR_BIT
35#if FT_UINT_MAX == 0xFFFFUL
36#define FT_SIZEOF_INT ( 16 / FT_CHAR_BIT )
37#elif FT_UINT_MAX == 0xFFFFFFFFUL
38#define FT_SIZEOF_INT ( 32 / FT_CHAR_BIT )
39#elif FT_UINT_MAX > 0xFFFFFFFFUL && FT_UINT_MAX == 0xFFFFFFFFFFFFFFFFUL
40#define FT_SIZEOF_INT ( 64 / FT_CHAR_BIT )
42#error "Unsupported size of `int' type!"
51#if FT_ULONG_MAX == 0xFFFFFFFFUL
52#define FT_SIZEOF_LONG ( 32 / FT_CHAR_BIT )
53#elif FT_ULONG_MAX > 0xFFFFFFFFUL && FT_ULONG_MAX == 0xFFFFFFFFFFUL
54#define FT_SIZEOF_LONG ( 32 / FT_CHAR_BIT )
55#elif FT_ULONG_MAX > 0xFFFFFFFFUL && FT_ULONG_MAX == 0xFFFFFFFFFFFFFFFFUL
56#define FT_SIZEOF_LONG ( 64 / FT_CHAR_BIT )
58#error "Unsupported size of `long' type!"
107 typedef signed XXX FT_Int32;
118 typedef unsigned XXX FT_UInt32;
142 typedef unsigned XXX FT_UInt64;
148#if FT_SIZEOF_INT == ( 32 / FT_CHAR_BIT )
150 typedef signed int FT_Int32;
151 typedef unsigned int FT_UInt32;
153#elif FT_SIZEOF_LONG == ( 32 / FT_CHAR_BIT )
155 typedef signed long FT_Int32;
156 typedef unsigned long FT_UInt32;
159#error "no 32bit type found -- please check your configuration files"
164#if FT_SIZEOF_INT >= ( 32 / FT_CHAR_BIT )
167 typedef unsigned int FT_UFast;
169#elif FT_SIZEOF_LONG >= ( 32 / FT_CHAR_BIT )
171 typedef long FT_Fast;
172 typedef unsigned long FT_UFast;
179#if FT_SIZEOF_LONG == ( 64 / FT_CHAR_BIT )
184#define FT_UINT64 unsigned long
193#elif !defined( __STDC__ ) || defined( FT_CONFIG_OPTION_FORCE_INT64 )
195#if defined( __STDC_VERSION__ ) && __STDC_VERSION__ >= 199901L
198#define FT_INT64 long long int
199#define FT_UINT64 unsigned long long int
201#elif defined( _MSC_VER ) && _MSC_VER >= 900
205#define FT_INT64 __int64
206#define FT_UINT64 unsigned __int64
208#elif defined( __BORLANDC__ )
215#define FT_INT64 __int64
216#define FT_UINT64 unsigned __int64
218#elif defined( __WATCOMC__ )
222#elif defined( __MWERKS__ )
225#define FT_INT64 long long int
226#define FT_UINT64 unsigned long long int
228#elif defined( __GNUC__ )
232#define FT_INT64 long long int
233#define FT_UINT64 unsigned long long int
241 typedef FT_UINT64 FT_UInt64;
struct FT_Int64_ FT_Int64