00001 /***************************************************************************/ 00002 /* */ 00003 /* t1load.h */ 00004 /* */ 00005 /* Type 1 font loader (specification). */ 00006 /* */ 00007 /* Copyright 1996-2001, 2002, 2004, 2006, 2007 by */ 00008 /* David Turner, Robert Wilhelm, and Werner Lemberg. */ 00009 /* */ 00010 /* This file is part of the FreeType project, and may only be used, */ 00011 /* modified, and distributed under the terms of the FreeType project */ 00012 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 00013 /* this file you indicate that you have read the license and */ 00014 /* understand and accept it fully. */ 00015 /* */ 00016 /***************************************************************************/ 00017 00018 00019 #ifndef __T1LOAD_H__ 00020 #define __T1LOAD_H__ 00021 00022 00023 #include <ft2build.h> 00024 #include FT_INTERNAL_STREAM_H 00025 #include FT_INTERNAL_POSTSCRIPT_AUX_H 00026 #include FT_MULTIPLE_MASTERS_H 00027 00028 #include "t1parse.h" 00029 00030 00031 FT_BEGIN_HEADER 00032 00033 00034 typedef struct T1_Loader_ 00035 { 00036 T1_ParserRec parser; /* parser used to read the stream */ 00037 00038 FT_Int num_chars; /* number of characters in encoding */ 00039 PS_TableRec encoding_table; /* PS_Table used to store the */ 00040 /* encoding character names */ 00041 00042 FT_Int num_glyphs; 00043 PS_TableRec glyph_names; 00044 PS_TableRec charstrings; 00045 PS_TableRec swap_table; /* For moving .notdef glyph to index 0. */ 00046 00047 FT_Int num_subrs; 00048 PS_TableRec subrs; 00049 FT_Bool fontdata; 00050 00051 FT_UInt keywords_encountered; /* T1_LOADER_ENCOUNTERED_XXX */ 00052 00053 } T1_LoaderRec, *T1_Loader; 00054 00055 00056 /* treatment of some keywords differs depending on whether */ 00057 /* they precede or follow certain other keywords */ 00058 00059 #define T1_PRIVATE ( 1 << 0 ) 00060 #define T1_FONTDIR_AFTER_PRIVATE ( 1 << 1 ) 00061 00062 00063 FT_LOCAL( FT_Error ) 00064 T1_Open_Face( T1_Face face ); 00065 00066 #ifndef T1_CONFIG_OPTION_NO_MM_SUPPORT 00067 00068 FT_LOCAL( FT_Error ) 00069 T1_Get_Multi_Master( T1_Face face, 00070 FT_Multi_Master* master ); 00071 00072 FT_LOCAL_DEF( FT_Error ) 00073 T1_Get_MM_Var( T1_Face face, 00074 FT_MM_Var* *master ); 00075 00076 FT_LOCAL( FT_Error ) 00077 T1_Set_MM_Blend( T1_Face face, 00078 FT_UInt num_coords, 00079 FT_Fixed* coords ); 00080 00081 FT_LOCAL( FT_Error ) 00082 T1_Set_MM_Design( T1_Face face, 00083 FT_UInt num_coords, 00084 FT_Long* coords ); 00085 00086 FT_LOCAL_DEF( FT_Error ) 00087 T1_Set_Var_Design( T1_Face face, 00088 FT_UInt num_coords, 00089 FT_Fixed* coords ); 00090 00091 FT_LOCAL( void ) 00092 T1_Done_Blend( T1_Face face ); 00093 00094 #endif /* !T1_CONFIG_OPTION_NO_MM_SUPPORT */ 00095 00096 00097 FT_END_HEADER 00098 00099 #endif /* __T1LOAD_H__ */ 00100 00101 00102 /* END */