1 /***************************************************************************/
5 /* Basic Type1/Type2 type definitions and interface (specification */
8 /* Copyright 1996-2000 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 /***************************************************************************/
24 #include <freetype/t1tables.h>
25 #include <freetype/internal/psnames.h>
28 /*************************************************************************/
29 /*************************************************************************/
30 /*************************************************************************/
33 /*** REQUIRED TYPE1/TYPE2 TABLES DEFINITIONS ***/
36 /*************************************************************************/
37 /*************************************************************************/
38 /*************************************************************************/
41 /*************************************************************************/
47 /* A structure modeling a custom encoding */
50 /* num_chars :: The number of character codes in the encoding. */
53 /* code_first :: The lowest valid character code in the encoding. */
55 /* code_last :: The highest valid character code in the encoding. */
57 /* char_index :: An array of corresponding glyph indices. */
59 /* char_name :: An array of corresponding glyph names. */
61 typedef struct T1_Encoding_
67 FT_UShort* char_index;
68 FT_String** char_name;
73 typedef enum T1_EncodingType_
83 typedef struct T1_Font_
86 /* font info dictionary */
87 T1_FontInfo font_info;
89 /* private dictionary */
90 T1_Private private_dict;
92 /* top-level dictionary */
95 T1_EncodingType encoding_type;
99 FT_Byte* charstrings_block;
100 FT_Byte* glyph_names_block;
107 FT_String** glyph_names; /* array of glyph names */
108 FT_Byte** charstrings; /* array of glyph charstrings */
109 FT_Int* charstrings_len;
113 FT_Matrix font_matrix;
122 typedef struct CID_Subrs_
130 /*************************************************************************/
131 /*************************************************************************/
132 /*************************************************************************/
135 /*** ORIGINAL T1_FACE CLASS DEFINITION ***/
138 /*************************************************************************/
139 /*************************************************************************/
140 /*************************************************************************/
143 /*************************************************************************/
145 /* This structure/class is defined here because it is common to the */
146 /* following formats: TTF, OpenType-TT, and OpenType-CFF. */
148 /* Note, however, that the classes TT_Size, TT_GlyphSlot, and TT_CharMap */
149 /* are not shared between font drivers, and are thus defined normally in */
152 /*************************************************************************/
154 typedef struct T1_FaceRec_* T1_Face;
155 typedef struct CID_FaceRec_* CID_Face;
158 typedef struct T1_FaceRec_
164 FT_CharMapRec charmaprecs[2];
165 FT_CharMap charmaps[2];
166 PS_Unicodes unicode_map;
168 /* support for Multiple Masters fonts */
174 typedef struct CID_FaceRec_
185 #endif /* T1TYPES_H */