ReactOS 0.4.16-dev-981-g80eb313
t1types.h
Go to the documentation of this file.
1/****************************************************************************
2 *
3 * t1types.h
4 *
5 * Basic Type1/Type2 type definitions and interface (specification
6 * only).
7 *
8 * Copyright (C) 1996-2019 by
9 * David Turner, Robert Wilhelm, and Werner Lemberg.
10 *
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.
16 *
17 */
18
19
20#ifndef T1TYPES_H_
21#define T1TYPES_H_
22
23
24#include <ft2build.h>
25#include FT_TYPE1_TABLES_H
26#include FT_INTERNAL_POSTSCRIPT_HINTS_H
27#include FT_INTERNAL_SERVICE_H
28#include FT_INTERNAL_HASH_H
29#include FT_SERVICE_POSTSCRIPT_CMAPS_H
30
31
33
34
35 /*************************************************************************/
36 /*************************************************************************/
37 /*************************************************************************/
38 /*** ***/
39 /*** ***/
40 /*** REQUIRED TYPE1/TYPE2 TABLES DEFINITIONS ***/
41 /*** ***/
42 /*** ***/
43 /*************************************************************************/
44 /*************************************************************************/
45 /*************************************************************************/
46
47
48 /**************************************************************************
49 *
50 * @struct:
51 * T1_EncodingRec
52 *
53 * @description:
54 * A structure modeling a custom encoding.
55 *
56 * @fields:
57 * num_chars ::
58 * The number of character codes in the encoding. Usually 256.
59 *
60 * code_first ::
61 * The lowest valid character code in the encoding.
62 *
63 * code_last ::
64 * The highest valid character code in the encoding + 1. When equal to
65 * code_first there are no valid character codes.
66 *
67 * char_index ::
68 * An array of corresponding glyph indices.
69 *
70 * char_name ::
71 * An array of corresponding glyph names.
72 */
73 typedef struct T1_EncodingRecRec_
74 {
78
81
83
84
85 /* used to hold extra data of PS_FontInfoRec that
86 * cannot be stored in the publicly defined structure.
87 *
88 * Note these can't be blended with multiple-masters.
89 */
90 typedef struct PS_FontExtraRec_
91 {
93
95
96
97 typedef struct T1_FontRec_
98 {
99 PS_FontInfoRec font_info; /* font info dictionary */
100 PS_FontExtraRec font_extra; /* font info extra fields */
101 PS_PrivateRec private_dict; /* private dictionary */
102 FT_String* font_name; /* top-level dictionary */
103
106
110
115
117 FT_String** glyph_names; /* array of glyph names */
118 FT_Byte** charstrings; /* array of glyph charstrings */
120
127
129
131
132
133 typedef struct CID_SubrsRec_
134 {
137
139
140
141 /*************************************************************************/
142 /*************************************************************************/
143 /*************************************************************************/
144 /*** ***/
145 /*** ***/
146 /*** AFM FONT INFORMATION STRUCTURES ***/
147 /*** ***/
148 /*** ***/
149 /*************************************************************************/
150 /*************************************************************************/
151 /*************************************************************************/
152
153 typedef struct AFM_TrackKernRec_
154 {
160
162
163 typedef struct AFM_KernPairRec_
164 {
169
171
172 typedef struct AFM_FontInfoRec_
173 {
178 AFM_TrackKern TrackKerns; /* free if non-NULL */
180 AFM_KernPair KernPairs; /* free if non-NULL */
182
184
185
186 /*************************************************************************/
187 /*************************************************************************/
188 /*************************************************************************/
189 /*** ***/
190 /*** ***/
191 /*** ORIGINAL T1_FACE CLASS DEFINITION ***/
192 /*** ***/
193 /*** ***/
194 /*************************************************************************/
195 /*************************************************************************/
196 /*************************************************************************/
197
198
199 typedef struct T1_FaceRec_* T1_Face;
200 typedef struct CID_FaceRec_* CID_Face;
201
202
203 typedef struct T1_FaceRec_
204 {
207 const void* psnames;
208 const void* psaux;
209 const void* afm_data;
212
213 /* support for Multiple Masters fonts */
215
216 /* undocumented, optional: indices of subroutines that express */
217 /* the NormalizeDesignVector and the ConvertDesignVector procedure, */
218 /* respectively, as Type 2 charstrings; -1 if keywords not present */
221
222 /* undocumented, optional: has the same meaning as len_buildchar */
223 /* for Type 2 fonts; manipulated by othersubrs 19, 24, and 25 */
226
227 /* since version 2.1 - interface to PostScript hinter */
228 const void* pshinter;
229
231
232
233 typedef struct CID_FaceRec_
234 {
236 void* psnames;
237 void* psaux;
240#if 0
241 void* afm_data;
242#endif
244
245 /* since version 2.1 - interface to PostScript hinter */
246 void* pshinter;
247
248 /* since version 2.1.8, but was originally positioned after `afm_data' */
249 FT_Byte* binary_data; /* used if hex data has been converted */
251
253
254
256
257#endif /* T1TYPES_H_ */
258
259
260/* END */
#define FT_END_HEADER
Definition: ftheader.h:54
#define FT_BEGIN_HEADER
Definition: ftheader.h:36
FT_BEGIN_HEADER typedef unsigned char FT_Bool
Definition: fttypes.h:108
unsigned char FT_Byte
Definition: fttypes.h:154
signed long FT_Fixed
Definition: fttypes.h:287
signed long FT_Long
Definition: fttypes.h:242
unsigned short FT_UShort
Definition: fttypes.h:209
char FT_String
Definition: fttypes.h:187
unsigned int FT_UInt
Definition: fttypes.h:231
signed int FT_Int
Definition: fttypes.h:220
FT_Fixed Ascender
Definition: t1types.h:176
AFM_KernPair KernPairs
Definition: t1types.h:180
FT_Fixed Descender
Definition: t1types.h:177
FT_Bool IsCIDFont
Definition: t1types.h:174
FT_UInt NumKernPair
Definition: t1types.h:181
AFM_TrackKern TrackKerns
Definition: t1types.h:178
FT_UInt NumTrackKern
Definition: t1types.h:179
FT_BBox FontBBox
Definition: t1types.h:175
FT_UInt index2
Definition: t1types.h:166
FT_UInt index1
Definition: t1types.h:165
FT_Fixed max_ptsize
Definition: t1types.h:158
FT_Fixed min_ptsize
Definition: t1types.h:156
FT_Fixed max_kern
Definition: t1types.h:159
FT_Fixed min_kern
Definition: t1types.h:157
CID_FaceInfoRec cid
Definition: t1types.h:238
FT_Stream cid_stream
Definition: t1types.h:250
FT_Byte * binary_data
Definition: t1types.h:249
void * pshinter
Definition: t1types.h:246
void * psaux
Definition: t1types.h:237
CID_Subrs subrs
Definition: t1types.h:243
void * psnames
Definition: t1types.h:236
PS_FontExtraRec font_extra
Definition: t1types.h:239
FT_FaceRec root
Definition: t1types.h:235
FT_Byte ** code
Definition: t1types.h:136
FT_Int num_subrs
Definition: t1types.h:135
FT_UShort fs_type
Definition: t1types.h:92
FT_UShort * char_index
Definition: t1types.h:79
FT_Int code_last
Definition: t1types.h:77
FT_String ** char_name
Definition: t1types.h:80
FT_Int code_first
Definition: t1types.h:76
FT_Int num_chars
Definition: t1types.h:75
FT_CharMapRec charmaprecs[2]
Definition: t1types.h:210
FT_Int ndv_idx
Definition: t1types.h:219
FT_CharMap charmaps[2]
Definition: t1types.h:211
const void * psaux
Definition: t1types.h:208
const void * pshinter
Definition: t1types.h:228
FT_FaceRec root
Definition: t1types.h:205
PS_Blend blend
Definition: t1types.h:214
FT_UInt len_buildchar
Definition: t1types.h:224
FT_Int cdv_idx
Definition: t1types.h:220
T1_FontRec type1
Definition: t1types.h:206
const void * psnames
Definition: t1types.h:207
FT_Long * buildchar
Definition: t1types.h:225
const void * afm_data
Definition: t1types.h:209
FT_Long font_id
Definition: t1types.h:126
PS_PrivateRec private_dict
Definition: t1types.h:101
T1_EncodingType encoding_type
Definition: t1types.h:104
PS_FontInfoRec font_info
Definition: t1types.h:99
FT_Byte * subrs_block
Definition: t1types.h:107
FT_Byte ** subrs
Definition: t1types.h:112
FT_Int num_glyphs
Definition: t1types.h:116
FT_UInt * charstrings_len
Definition: t1types.h:119
FT_String ** glyph_names
Definition: t1types.h:117
T1_EncodingRec encoding
Definition: t1types.h:105
FT_Byte paint_type
Definition: t1types.h:121
FT_BBox font_bbox
Definition: t1types.h:125
FT_String * font_name
Definition: t1types.h:102
FT_Matrix font_matrix
Definition: t1types.h:123
FT_Int num_subrs
Definition: t1types.h:111
FT_Byte * charstrings_block
Definition: t1types.h:108
PS_FontExtraRec font_extra
Definition: t1types.h:100
FT_Hash subrs_hash
Definition: t1types.h:114
FT_Byte font_type
Definition: t1types.h:122
FT_Byte ** charstrings
Definition: t1types.h:118
FT_UInt * subrs_len
Definition: t1types.h:113
FT_Vector font_offset
Definition: t1types.h:124
FT_Fixed stroke_width
Definition: t1types.h:128
FT_Byte * glyph_names_block
Definition: t1types.h:109
FT_BEGIN_HEADER struct PS_FontInfoRec_ PS_FontInfoRec
enum T1_EncodingType_ T1_EncodingType
struct T1_FontRec_ T1_FontRec
struct CID_FaceRec_ * CID_Face
Definition: t1types.h:200
struct CID_FaceRec_ CID_FaceRec
FT_BEGIN_HEADER struct T1_EncodingRecRec_ T1_EncodingRec
FT_BEGIN_HEADER struct T1_EncodingRecRec_ * T1_Encoding
struct AFM_TrackKernRec_ AFM_TrackKernRec
struct AFM_TrackKernRec_ * AFM_TrackKern
struct PS_FontExtraRec_ PS_FontExtraRec
struct T1_FaceRec_ T1_FaceRec
struct T1_FontRec_ * T1_Font
struct AFM_FontInfoRec_ * AFM_FontInfo
struct AFM_KernPairRec_ AFM_KernPairRec
struct T1_FaceRec_ * T1_Face
Definition: t1types.h:199
struct AFM_FontInfoRec_ AFM_FontInfoRec
struct CID_SubrsRec_ CID_SubrsRec
struct CID_SubrsRec_ * CID_Subrs
struct AFM_KernPairRec_ * AFM_KernPair