Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygent1types.h
Go to the documentation of this file.
00001 /***************************************************************************/ 00002 /* */ 00003 /* t1types.h */ 00004 /* */ 00005 /* Basic Type1/Type2 type definitions and interface (specification */ 00006 /* only). */ 00007 /* */ 00008 /* Copyright 1996-2001, 2002, 2003, 2004, 2006, 2008, 2009 by */ 00009 /* David Turner, Robert Wilhelm, and Werner Lemberg. */ 00010 /* */ 00011 /* This file is part of the FreeType project, and may only be used, */ 00012 /* modified, and distributed under the terms of the FreeType project */ 00013 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 00014 /* this file you indicate that you have read the license and */ 00015 /* understand and accept it fully. */ 00016 /* */ 00017 /***************************************************************************/ 00018 00019 00020 #ifndef __T1TYPES_H__ 00021 #define __T1TYPES_H__ 00022 00023 00024 #include <ft2build.h> 00025 #include FT_TYPE1_TABLES_H 00026 #include FT_INTERNAL_POSTSCRIPT_HINTS_H 00027 #include FT_INTERNAL_SERVICE_H 00028 #include FT_SERVICE_POSTSCRIPT_CMAPS_H 00029 00030 00031 FT_BEGIN_HEADER 00032 00033 00034 /*************************************************************************/ 00035 /*************************************************************************/ 00036 /*************************************************************************/ 00037 /*** ***/ 00038 /*** ***/ 00039 /*** REQUIRED TYPE1/TYPE2 TABLES DEFINITIONS ***/ 00040 /*** ***/ 00041 /*** ***/ 00042 /*************************************************************************/ 00043 /*************************************************************************/ 00044 /*************************************************************************/ 00045 00046 00047 /*************************************************************************/ 00048 /* */ 00049 /* <Struct> */ 00050 /* T1_EncodingRec */ 00051 /* */ 00052 /* <Description> */ 00053 /* A structure modeling a custom encoding. */ 00054 /* */ 00055 /* <Fields> */ 00056 /* num_chars :: The number of character codes in the encoding. */ 00057 /* Usually 256. */ 00058 /* */ 00059 /* code_first :: The lowest valid character code in the encoding. */ 00060 /* */ 00061 /* code_last :: The highest valid character code in the encoding */ 00062 /* + 1. When equal to code_first there are no valid */ 00063 /* character codes. */ 00064 /* */ 00065 /* char_index :: An array of corresponding glyph indices. */ 00066 /* */ 00067 /* char_name :: An array of corresponding glyph names. */ 00068 /* */ 00069 typedef struct T1_EncodingRecRec_ 00070 { 00071 FT_Int num_chars; 00072 FT_Int code_first; 00073 FT_Int code_last; 00074 00075 FT_UShort* char_index; 00076 FT_String** char_name; 00077 00078 } T1_EncodingRec, *T1_Encoding; 00079 00080 00081 typedef enum T1_EncodingType_ 00082 { 00083 T1_ENCODING_TYPE_NONE = 0, 00084 T1_ENCODING_TYPE_ARRAY, 00085 T1_ENCODING_TYPE_STANDARD, 00086 T1_ENCODING_TYPE_ISOLATIN1, 00087 T1_ENCODING_TYPE_EXPERT 00088 00089 } T1_EncodingType; 00090 00091 00092 /* used to hold extra data of PS_FontInfoRec that 00093 * cannot be stored in the publicly defined structure. 00094 * 00095 * Note these can't be blended with multiple-masters. 00096 */ 00097 typedef struct PS_FontExtraRec_ 00098 { 00099 FT_UShort fs_type; 00100 00101 } PS_FontExtraRec; 00102 00103 00104 typedef struct T1_FontRec_ 00105 { 00106 PS_FontInfoRec font_info; /* font info dictionary */ 00107 PS_FontExtraRec font_extra; /* font info extra fields */ 00108 PS_PrivateRec private_dict; /* private dictionary */ 00109 FT_String* font_name; /* top-level dictionary */ 00110 00111 T1_EncodingType encoding_type; 00112 T1_EncodingRec encoding; 00113 00114 FT_Byte* subrs_block; 00115 FT_Byte* charstrings_block; 00116 FT_Byte* glyph_names_block; 00117 00118 FT_Int num_subrs; 00119 FT_Byte** subrs; 00120 FT_PtrDist* subrs_len; 00121 00122 FT_Int num_glyphs; 00123 FT_String** glyph_names; /* array of glyph names */ 00124 FT_Byte** charstrings; /* array of glyph charstrings */ 00125 FT_PtrDist* charstrings_len; 00126 00127 FT_Byte paint_type; 00128 FT_Byte font_type; 00129 FT_Matrix font_matrix; 00130 FT_Vector font_offset; 00131 FT_BBox font_bbox; 00132 FT_Long font_id; 00133 00134 FT_Fixed stroke_width; 00135 00136 } T1_FontRec, *T1_Font; 00137 00138 00139 typedef struct CID_SubrsRec_ 00140 { 00141 FT_UInt num_subrs; 00142 FT_Byte** code; 00143 00144 } CID_SubrsRec, *CID_Subrs; 00145 00146 00147 /*************************************************************************/ 00148 /*************************************************************************/ 00149 /*************************************************************************/ 00150 /*** ***/ 00151 /*** ***/ 00152 /*** AFM FONT INFORMATION STRUCTURES ***/ 00153 /*** ***/ 00154 /*** ***/ 00155 /*************************************************************************/ 00156 /*************************************************************************/ 00157 /*************************************************************************/ 00158 00159 typedef struct AFM_TrackKernRec_ 00160 { 00161 FT_Int degree; 00162 FT_Fixed min_ptsize; 00163 FT_Fixed min_kern; 00164 FT_Fixed max_ptsize; 00165 FT_Fixed max_kern; 00166 00167 } AFM_TrackKernRec, *AFM_TrackKern; 00168 00169 typedef struct AFM_KernPairRec_ 00170 { 00171 FT_Int index1; 00172 FT_Int index2; 00173 FT_Int x; 00174 FT_Int y; 00175 00176 } AFM_KernPairRec, *AFM_KernPair; 00177 00178 typedef struct AFM_FontInfoRec_ 00179 { 00180 FT_Bool IsCIDFont; 00181 FT_BBox FontBBox; 00182 FT_Fixed Ascender; 00183 FT_Fixed Descender; 00184 AFM_TrackKern TrackKerns; /* free if non-NULL */ 00185 FT_Int NumTrackKern; 00186 AFM_KernPair KernPairs; /* free if non-NULL */ 00187 FT_Int NumKernPair; 00188 00189 } AFM_FontInfoRec, *AFM_FontInfo; 00190 00191 00192 /*************************************************************************/ 00193 /*************************************************************************/ 00194 /*************************************************************************/ 00195 /*** ***/ 00196 /*** ***/ 00197 /*** ORIGINAL T1_FACE CLASS DEFINITION ***/ 00198 /*** ***/ 00199 /*** ***/ 00200 /*************************************************************************/ 00201 /*************************************************************************/ 00202 /*************************************************************************/ 00203 00204 00205 typedef struct T1_FaceRec_* T1_Face; 00206 typedef struct CID_FaceRec_* CID_Face; 00207 00208 00209 typedef struct T1_FaceRec_ 00210 { 00211 FT_FaceRec root; 00212 T1_FontRec type1; 00213 const void* psnames; 00214 const void* psaux; 00215 const void* afm_data; 00216 FT_CharMapRec charmaprecs[2]; 00217 FT_CharMap charmaps[2]; 00218 00219 #ifdef FT_CONFIG_OPTION_OLD_INTERNALS 00220 PS_Unicodes unicode_map; 00221 #endif 00222 00223 /* support for Multiple Masters fonts */ 00224 PS_Blend blend; 00225 00226 /* undocumented, optional: indices of subroutines that express */ 00227 /* the NormalizeDesignVector and the ConvertDesignVector procedure, */ 00228 /* respectively, as Type 2 charstrings; -1 if keywords not present */ 00229 FT_Int ndv_idx; 00230 FT_Int cdv_idx; 00231 00232 /* undocumented, optional: has the same meaning as len_buildchar */ 00233 /* for Type 2 fonts; manipulated by othersubrs 19, 24, and 25 */ 00234 FT_UInt len_buildchar; 00235 FT_Long* buildchar; 00236 00237 /* since version 2.1 - interface to PostScript hinter */ 00238 const void* pshinter; 00239 00240 } T1_FaceRec; 00241 00242 00243 typedef struct CID_FaceRec_ 00244 { 00245 FT_FaceRec root; 00246 void* psnames; 00247 void* psaux; 00248 CID_FaceInfoRec cid; 00249 PS_FontExtraRec font_extra; 00250 #if 0 00251 void* afm_data; 00252 #endif 00253 CID_Subrs subrs; 00254 00255 /* since version 2.1 - interface to PostScript hinter */ 00256 void* pshinter; 00257 00258 /* since version 2.1.8, but was originally positioned after `afm_data' */ 00259 FT_Byte* binary_data; /* used if hex data has been converted */ 00260 FT_Stream cid_stream; 00261 00262 } CID_FaceRec; 00263 00264 00265 FT_END_HEADER 00266 00267 #endif /* __T1TYPES_H__ */ 00268 00269 00270 /* END */ Generated on Sun May 27 2012 04:33:32 for ReactOS by
1.7.6.1
|