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