1 /***************************************************************************/
5 /* Basic Type1/Type2 type definitions and interface (specification */
8 /* Copyright 1996-2001 by */
9 /* David Turner, Robert Wilhelm, and Werner Lemberg. */
11 /* This file is part of the FreeType project, and may only be used, */
12 /* modified, and distributed under the terms of the FreeType project */
13 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */
14 /* this file you indicate that you have read the license and */
15 /* understand and accept it fully. */
17 /***************************************************************************/
25 #include FT_TYPE1_TABLES_H
26 #include FT_INTERNAL_POSTSCRIPT_NAMES_H
32 /*************************************************************************/
33 /*************************************************************************/
34 /*************************************************************************/
37 /*** REQUIRED TYPE1/TYPE2 TABLES DEFINITIONS ***/
40 /*************************************************************************/
41 /*************************************************************************/
42 /*************************************************************************/
45 /*************************************************************************/
51 /* A structure modeling a custom encoding. */
54 /* num_chars :: The number of character codes in the encoding. */
57 /* code_first :: The lowest valid character code in the encoding. */
59 /* code_last :: The highest valid character code in the encoding. */
61 /* char_index :: An array of corresponding glyph indices. */
63 /* char_name :: An array of corresponding glyph names. */
65 typedef struct T1_Encoding_
71 FT_UShort* char_index;
72 FT_String** char_name;
77 typedef enum T1_EncodingType_
87 typedef struct T1_Font_
89 /* font info dictionary */
90 T1_FontInfo font_info;
92 /* private dictionary */
93 T1_Private private_dict;
95 /* top-level dictionary */
98 T1_EncodingType encoding_type;
101 FT_Byte* subrs_block;
102 FT_Byte* charstrings_block;
103 FT_Byte* glyph_names_block;
110 FT_String** glyph_names; /* array of glyph names */
111 FT_Byte** charstrings; /* array of glyph charstrings */
112 FT_Int* charstrings_len;
116 FT_Matrix font_matrix;
117 FT_Vector font_offset;
126 typedef struct CID_Subrs_
134 /*************************************************************************/
135 /*************************************************************************/
136 /*************************************************************************/
139 /*** ORIGINAL T1_FACE CLASS DEFINITION ***/
142 /*************************************************************************/
143 /*************************************************************************/
144 /*************************************************************************/
147 /*************************************************************************/
149 /* This structure/class is defined here because it is common to the */
150 /* following formats: TTF, OpenType-TT, and OpenType-CFF. */
152 /* Note, however, that the classes TT_Size, TT_GlyphSlot, and TT_CharMap */
153 /* are not shared between font drivers, and are thus defined normally in */
156 /*************************************************************************/
158 typedef struct T1_FaceRec_* T1_Face;
159 typedef struct CID_FaceRec_* CID_Face;
162 typedef struct T1_FaceRec_
169 FT_CharMapRec charmaprecs[2];
170 FT_CharMap charmaps[2];
171 PS_Unicodes unicode_map;
173 /* support for Multiple Masters fonts */
179 typedef struct CID_FaceRec_
193 #endif /* __T1TYPES_H__ */