0,0 → 1,150 |
/******************************************************************* |
* |
* tttypes.h |
* |
* Freetype engine's common types specification |
* (this spec has no associated body). |
* |
* Copyright 1996-1999 by |
* David Turner, Robert Wilhelm, and Werner Lemberg. |
* |
* This file is part of the FreeType project, and may only be used |
* modified and distributed under the terms of the FreeType project |
* license, LICENSE.TXT. By continuing to use, modify, or distribute |
* this file you indicate that you have read the license and |
* understand and accept it fully. |
* |
* NOTE: |
* |
* All these declarations are library internals, and *not* part |
* of the high-level interface. See also 'freetype.h'. |
* |
******************************************************************/ |
|
#ifndef TTTYPES_H |
#define TTTYPES_H |
|
#include "ttconfig.h" |
#include "freetype.h" |
|
#ifdef __MACTYPES__ |
#error "<MacTypes.h> have been included, and this prevents the proper\ |
compilation of this library. Please remove the precompiled headers." |
#endif |
|
typedef char String; |
typedef signed char Char; |
typedef unsigned char Byte; |
|
typedef unsigned short UShort; |
typedef signed short Short; |
|
typedef unsigned long ULong; |
typedef signed long Long; |
|
typedef TT_Int32 Fixed; |
|
typedef int Int; |
|
/* Simple access types: pointers and tables */ |
|
typedef Byte* PByte; |
typedef UShort* PUShort; |
typedef Short* PShort; |
typedef ULong* PULong; |
typedef Long* PLong; |
|
typedef Fixed* PFixed; |
|
typedef Int* PInt; |
|
typedef void* Pointer; |
|
typedef TT_F26Dot6* PCoordinates; |
typedef unsigned char* PTouchTable; |
|
|
#ifndef Bool |
typedef int Bool; /* No boolean type in C */ |
#endif |
|
#ifndef TRUE |
#define TRUE 1 |
#endif |
|
#ifndef FALSE |
#define FALSE 0 |
#endif |
|
#ifndef NULL |
#define NULL (void*)0 |
#endif |
|
typedef Long Storage; |
typedef Storage* PStorage; |
|
|
/* Rounding mode constants */ |
|
#define TT_Round_Off 5 |
#define TT_Round_To_Half_Grid 0 |
#define TT_Round_To_Grid 1 |
#define TT_Round_To_Double_Grid 2 |
#define TT_Round_Up_To_Grid 4 |
#define TT_Round_Down_To_Grid 3 |
#define TT_Round_Super 6 |
#define TT_Round_Super_45 7 |
|
|
/* Touch flag masks */ |
|
#define TT_Flag_On_Curve 1 |
#define TT_Flag_Touched_X 2 |
#define TT_Flag_Touched_Y 4 |
#define TT_Flag_Touched_Both 6 |
|
|
/* Error management constants :) */ |
|
#define SUCCESS 0 |
#define FAILURE -1 |
|
|
/* The min and max functions missing in C. As usual, be careful not to */ |
/* write things like MIN( a++, b++ ) to avoid side effects. */ |
|
#ifndef MIN |
#define MIN( a, b ) ( (a) < (b) ? (a) : (b) ) |
#endif |
|
#ifndef MAX |
#define MAX( a, b ) ( (a) > (b) ? (a) : (b) ) |
#endif |
|
#ifndef ABS |
#define ABS( a ) ( (a) < 0 ? -(a) : (a) ) |
#endif |
|
/* conversion macros for the handles defined in freetype.h */ |
|
#define HANDLE_Val( handle ) ((handle).z) |
|
#define HANDLE_Engine( handle ) ((PEngine_Instance)HANDLE_Val( handle )) |
|
#define HANDLE_Face( handle ) ((PFace)HANDLE_Val( handle )) |
|
#define HANDLE_Instance( handle ) ((PInstance)HANDLE_Val( handle )) |
|
/* HANDLE_Stream( handle ) must be defined in ttfile.c */ |
|
#define HANDLE_Glyph( handle ) ((PGlyph)HANDLE_Val( handle )) |
|
#define HANDLE_CharMap( handle ) ((PCMapTable)HANDLE_Val( handle )) |
|
#define HANDLE_Set( handle, val ) ((handle).z = (void*)(val)) |
|
|
#endif /* TTTYPES_H */ |
|
|
/* END */ |