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