1 /***************************************************************************/ 2 /* */ 3 /* t42parse.h */ 4 /* */ 5 /* Type 42 font parser (specification). */ 6 /* */ 7 /* Copyright 2002, 2003 by Roberto Alameda. */ 8 /* */ 9 /* This file is part of the FreeType project, and may only be used, */ 10 /* modified, and distributed under the terms of the FreeType project */ 11 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 12 /* this file you indicate that you have read the license and */ 13 /* understand and accept it fully. */ 14 /* */ 15 /***************************************************************************/ 16 17 18 #ifndef __T42PARSE_H__ 19 #define __T42PARSE_H__ 20 21 22 #include "t42objs.h" 23 #include FT_INTERNAL_POSTSCRIPT_AUX_H 24 25 26 FT_BEGIN_HEADER 27 28 typedef struct T42_ParserRec_ 29 { 30 PS_ParserRec root; 31 FT_Stream stream; 32 33 FT_Byte* base_dict; 34 FT_Long base_len; 35 36 FT_Bool in_memory; 37 38 } T42_ParserRec, *T42_Parser; 39 40 41 typedef struct T42_Loader_ 42 { 43 T42_ParserRec parser; /* parser used to read the stream */ 44 45 FT_UInt num_chars; /* number of characters in encoding */ 46 PS_TableRec encoding_table; /* PS_Table used to store the */ 47 /* encoding character names */ 48 49 FT_UInt num_glyphs; 50 PS_TableRec glyph_names; 51 PS_TableRec charstrings; 52 PS_TableRec swap_table; /* For moving .notdef glyph to index 0. */ 53 54 } T42_LoaderRec, *T42_Loader; 55 56 57 FT_LOCAL( FT_Error ) 58 t42_parser_init( T42_Parser parser, 59 FT_Stream stream, 60 FT_Memory memory, 61 PSAux_Service psaux ); 62 63 FT_LOCAL( void ) 64 t42_parser_done( T42_Parser parser ); 65 66 67 FT_LOCAL( FT_Error ) 68 t42_parse_dict( T42_Face face, 69 T42_Loader loader, 70 FT_Byte* base, 71 FT_Long size ); 72 73 74 FT_LOCAL( void ) 75 t42_loader_init( T42_Loader loader, 76 T42_Face face ); 77 78 FT_LOCAL( void ) 79 t42_loader_done( T42_Loader loader ); 80 81 82 /* */ 83 84 FT_END_HEADER 85 86 87 #endif /* __T42PARSE_H__ */ 88 89 90 /* END */ 91