00001 /***************************************************************************/ 00002 /* */ 00003 /* t42parse.h */ 00004 /* */ 00005 /* Type 42 font parser (specification). */ 00006 /* */ 00007 /* Copyright 2002, 2003 by Roberto Alameda. */ 00008 /* */ 00009 /* This file is part of the FreeType project, and may only be used, */ 00010 /* modified, and distributed under the terms of the FreeType project */ 00011 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 00012 /* this file you indicate that you have read the license and */ 00013 /* understand and accept it fully. */ 00014 /* */ 00015 /***************************************************************************/ 00016 00017 00018 #ifndef __T42PARSE_H__ 00019 #define __T42PARSE_H__ 00020 00021 00022 #include "t42objs.h" 00023 #include FT_INTERNAL_POSTSCRIPT_AUX_H 00024 00025 00026 FT_BEGIN_HEADER 00027 00028 typedef struct T42_ParserRec_ 00029 { 00030 PS_ParserRec root; 00031 FT_Stream stream; 00032 00033 FT_Byte* base_dict; 00034 FT_Long base_len; 00035 00036 FT_Bool in_memory; 00037 00038 } T42_ParserRec, *T42_Parser; 00039 00040 00041 typedef struct T42_Loader_ 00042 { 00043 T42_ParserRec parser; /* parser used to read the stream */ 00044 00045 FT_UInt num_chars; /* number of characters in encoding */ 00046 PS_TableRec encoding_table; /* PS_Table used to store the */ 00047 /* encoding character names */ 00048 00049 FT_UInt num_glyphs; 00050 PS_TableRec glyph_names; 00051 PS_TableRec charstrings; 00052 PS_TableRec swap_table; /* For moving .notdef glyph to index 0. */ 00053 00054 } T42_LoaderRec, *T42_Loader; 00055 00056 00057 FT_LOCAL( FT_Error ) 00058 t42_parser_init( T42_Parser parser, 00059 FT_Stream stream, 00060 FT_Memory memory, 00061 PSAux_Service psaux ); 00062 00063 FT_LOCAL( void ) 00064 t42_parser_done( T42_Parser parser ); 00065 00066 00067 FT_LOCAL( FT_Error ) 00068 t42_parse_dict( T42_Face face, 00069 T42_Loader loader, 00070 FT_Byte* base, 00071 FT_Long size ); 00072 00073 00074 FT_LOCAL( void ) 00075 t42_loader_init( T42_Loader loader, 00076 T42_Face face ); 00077 00078 FT_LOCAL( void ) 00079 t42_loader_done( T42_Loader loader ); 00080 00081 00082 /* */ 00083 00084 FT_END_HEADER 00085 00086 00087 #endif /* __T42PARSE_H__ */ 00088 00089 00090 /* END */