/******************************************************************* * * t1objs.h 1.0 * * Type1 objects definition. * * 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. * ******************************************************************/ #ifndef T1OBJS_H #define T1OBJS_H #include #include #include #include #ifdef __cplusplus extern "C" { #endif /* The following structures must be defined by the hinter */ typedef struct T1_Size_Hints_ T1_Size_Hints; typedef struct T1_Glyph_Hints_ T1_Glyph_Hints; /***********************************************************************/ /* */ /* T1_Driver */ /* */ /* */ /* A handle to a Type 1 driver object. */ /* */ typedef struct T1_DriverRec_ *T1_Driver; /***********************************************************************/ /* */ /* T1_Size */ /* */ /* */ /* A handle to a Type 1 size object. */ /* */ typedef struct T1_SizeRec_* T1_Size; /***********************************************************************/ /* */ /* T1_GlyphSlot */ /* */ /* */ /* A handle to a Type 1 glyph slot object. */ /* */ typedef struct T1_GlyphSlotRec_* T1_GlyphSlot; /***********************************************************************/ /* */ /* T1_CharMap */ /* */ /* */ /* A handle to a Type 1 character mapping object. */ /* */ /* */ /* The Type 1 format doesn't use a charmap but an encoding table. */ /* The driver is responsible for making up charmap objects */ /* corresponding to these tables.. */ /* */ typedef struct T1_CharMapRec_* T1_CharMap; /**************************************************************************/ /* */ /* NOW BEGINS THE TYPE1 SPECIFIC STUFF .............................. */ /* */ /**************************************************************************/ /***************************************************/ /* */ /* T1_Size : */ /* */ /* Type 1 size record.. */ /* */ typedef struct T1_SizeRec_ { FT_SizeRec root; T1_Bool valid; T1_Size_Hints* hints; /* defined in the hinter. This allows */ /* us to experiment with different */ /* hinting schemes without having to */ /* change 't1objs' each time.. */ } T1_SizeRec; /***************************************************/ /* */ /* T1_GlyphSlot : */ /* */ /* TrueDoc glyph record.. */ /* */ typedef struct T1_GlyphSlotRec_ { FT_GlyphSlotRec root; T1_Bool hint; T1_Bool scaled; T1_Int max_points; T1_Int max_contours; FT_Fixed x_scale; FT_Fixed y_scale; T1_Glyph_Hints* hints; /* defined in the hinter */ } T1_GlyphSlotRec; /******************************************************************* * * T1_Init_Face * * * Initialise a given Type 1 face object * * * face_index :: index of font face in resource * resource :: source font resource * face :: face record to build * * * Error code. * ******************************************************************/ LOCAL_DEF T1_Error T1_Init_Face( FT_Stream stream, FT_Int face_index, T1_Face face ); /******************************************************************* * * T1_Done_Face * * * Finalise a given face object * * * face :: handle to the face object to destroy * ******************************************************************/ LOCAL_DEF void T1_Done_Face( T1_Face face ); /******************************************************************* * * T1_Init_Size * * * Initialise a new Type 1 size object * * * size :: handle to size object * * * Type 1 error code. 0 means success. * ******************************************************************/ LOCAL_DEF T1_Error T1_Init_Size( T1_Size size ); /******************************************************************* * * T1_Done_Size * * * The Type 1 size object finaliser. * * * size :: handle to the target size object. * ******************************************************************/ LOCAL_DEF void T1_Done_Size( T1_Size size ); /******************************************************************* * * T1_Reset_Size * * * Reset a Type 1 size when resolutions and character dimensions * have been changed.. * * * size :: handle to the target size object. * ******************************************************************/ LOCAL_DEF T1_Error T1_Reset_Size( T1_Size size ); /******************************************************************* * * T1_Init_GlyphSlot * * The TrueType glyph slot initialiser * * glyph :: glyph record to build. * * Error code. * ******************************************************************/ LOCAL_DEF T1_Error T1_Init_GlyphSlot( T1_GlyphSlot slot ); /******************************************************************* * * T1_Done_GlyphSlot * * The Type 1 glyph slot finaliser * * glyph :: handle to glyph slot object * * Error code. * ******************************************************************/ LOCAL_DEF void T1_Done_GlyphSlot( T1_GlyphSlot slot ); /******************************************************************* * * T1_Init_Driver * * * Initialise a given Type 1 driver object * * * driver :: handle to target driver object * * * Error code. * ******************************************************************/ LOCAL_DEF T1_Error T1_Init_Driver( T1_Driver driver ); /******************************************************************* * * T1_Done_Driver * * * finalise a given Type 1 driver * * * driver :: handle to target Type 1 driver * ******************************************************************/ LOCAL_DEF void T1_Done_Driver( T1_Driver driver ); #ifdef __cplusplus } #endif #endif /* T1OBJS_H */ /* END */