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