| OLD | NEW |
| (Empty) |
| 1 /***************************************************************************/ | |
| 2 /* */ | |
| 3 /* t1parse.h */ | |
| 4 /* */ | |
| 5 /* Type 1 parser (specification). */ | |
| 6 /* */ | |
| 7 /* Copyright 1996-2001, 2002, 2003, 2008 by */ | |
| 8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */ | |
| 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 __T1PARSE_H__ | |
| 20 #define __T1PARSE_H__ | |
| 21 | |
| 22 | |
| 23 #include "../../include/ft2build.h" | |
| 24 #include "../../include/freetype/internal/t1types.h" | |
| 25 #include "../../include/freetype/internal/ftstream.h" | |
| 26 | |
| 27 | |
| 28 FT_BEGIN_HEADER | |
| 29 | |
| 30 | |
| 31 /*************************************************************************/ | |
| 32 /* */ | |
| 33 /* <Struct> */ | |
| 34 /* T1_ParserRec */ | |
| 35 /* */ | |
| 36 /* <Description> */ | |
| 37 /* A PS_ParserRec is an object used to parse a Type 1 fonts very */ | |
| 38 /* quickly. */ | |
| 39 /* */ | |
| 40 /* <Fields> */ | |
| 41 /* root :: The root parser. */ | |
| 42 /* */ | |
| 43 /* stream :: The current input stream. */ | |
| 44 /* */ | |
| 45 /* base_dict :: A pointer to the top-level dictionary. */ | |
| 46 /* */ | |
| 47 /* base_len :: The length in bytes of the top dictionary. */ | |
| 48 /* */ | |
| 49 /* private_dict :: A pointer to the private dictionary. */ | |
| 50 /* */ | |
| 51 /* private_len :: The length in bytes of the private dictionary. */ | |
| 52 /* */ | |
| 53 /* in_pfb :: A boolean. Indicates that we are handling a PFB */ | |
| 54 /* file. */ | |
| 55 /* */ | |
| 56 /* in_memory :: A boolean. Indicates a memory-based stream. */ | |
| 57 /* */ | |
| 58 /* single_block :: A boolean. Indicates that the private dictionary */ | |
| 59 /* is stored in lieu of the base dictionary. */ | |
| 60 /* */ | |
| 61 typedef struct T1_ParserRec_ | |
| 62 { | |
| 63 PS_ParserRec root; | |
| 64 FT_Stream stream; | |
| 65 | |
| 66 FT_Byte* base_dict; | |
| 67 FT_ULong base_len; | |
| 68 | |
| 69 FT_Byte* private_dict; | |
| 70 FT_ULong private_len; | |
| 71 | |
| 72 FT_Bool in_pfb; | |
| 73 FT_Bool in_memory; | |
| 74 FT_Bool single_block; | |
| 75 | |
| 76 } T1_ParserRec, *T1_Parser; | |
| 77 | |
| 78 | |
| 79 #define T1_Add_Table( p, i, o, l ) (p)->funcs.add( (p), i, o, l ) | |
| 80 #define T1_Done_Table( p ) \ | |
| 81 do \ | |
| 82 { \ | |
| 83 if ( (p)->funcs.done ) \ | |
| 84 (p)->funcs.done( p ); \ | |
| 85 } while ( 0 ) | |
| 86 #define T1_Release_Table( p ) \ | |
| 87 do \ | |
| 88 { \ | |
| 89 if ( (p)->funcs.release ) \ | |
| 90 (p)->funcs.release( p ); \ | |
| 91 } while ( 0 ) | |
| 92 | |
| 93 | |
| 94 #define T1_Skip_Spaces( p ) (p)->root.funcs.skip_spaces( &(p)->root ) | |
| 95 #define T1_Skip_PS_Token( p ) (p)->root.funcs.skip_PS_token( &(p)->root ) | |
| 96 | |
| 97 #define T1_ToInt( p ) (p)->root.funcs.to_int( &(p)->root ) | |
| 98 #define T1_ToFixed( p, t ) (p)->root.funcs.to_fixed( &(p)->root, t ) | |
| 99 | |
| 100 #define T1_ToCoordArray( p, m, c ) \ | |
| 101 (p)->root.funcs.to_coord_array( &(p)->root, m, c ) | |
| 102 #define T1_ToFixedArray( p, m, f, t ) \ | |
| 103 (p)->root.funcs.to_fixed_array( &(p)->root, m, f, t ) | |
| 104 #define T1_ToToken( p, t ) \ | |
| 105 (p)->root.funcs.to_token( &(p)->root, t ) | |
| 106 #define T1_ToTokenArray( p, t, m, c ) \ | |
| 107 (p)->root.funcs.to_token_array( &(p)->root, t, m, c ) | |
| 108 | |
| 109 #define T1_Load_Field( p, f, o, m, pf ) \ | |
| 110 (p)->root.funcs.load_field( &(p)->root, f, o, m, pf ) | |
| 111 | |
| 112 #define T1_Load_Field_Table( p, f, o, m, pf ) \ | |
| 113 (p)->root.funcs.load_field_table( &(p)->root, f, o, m, pf ) | |
| 114 | |
| 115 | |
| 116 FT_LOCAL( FT_Error ) | |
| 117 T1_New_Parser( T1_Parser parser, | |
| 118 FT_Stream stream, | |
| 119 FT_Memory memory, | |
| 120 PSAux_Service psaux ); | |
| 121 | |
| 122 FT_LOCAL( FT_Error ) | |
| 123 T1_Get_Private_Dict( T1_Parser parser, | |
| 124 PSAux_Service psaux ); | |
| 125 | |
| 126 FT_LOCAL( void ) | |
| 127 T1_Finalize_Parser( T1_Parser parser ); | |
| 128 | |
| 129 | |
| 130 FT_END_HEADER | |
| 131 | |
| 132 #endif /* __T1PARSE_H__ */ | |
| 133 | |
| 134 | |
| 135 /* END */ | |
| OLD | NEW |