Github User Fetcher
1.0.0
C Application with Server and GUI
Loading...
Searching...
No Matches
ftwinfnt.h
Go to the documentation of this file.
1
/****************************************************************************
2
*
3
* ftwinfnt.h
4
*
5
* FreeType API for accessing Windows fnt-specific data.
6
*
7
* Copyright (C) 2003-2024 by
8
* David Turner, Robert Wilhelm, and Werner Lemberg.
9
*
10
* This file is part of the FreeType project, and may only be used,
11
* modified, and distributed under the terms of the FreeType project
12
* license, LICENSE.TXT. By continuing to use, modify, or distribute
13
* this file you indicate that you have read the license and
14
* understand and accept it fully.
15
*
16
*/
17
18
19
#ifndef FTWINFNT_H_
20
#define FTWINFNT_H_
21
22
#include <freetype/freetype.h>
23
24
#ifdef FREETYPE_H
25
#error "freetype.h of FreeType 1 has been loaded!"
26
#error "Please fix the directory search order for header files"
27
#error "so that freetype.h of FreeType 2 is found first."
28
#endif
29
30
31
FT_BEGIN_HEADER
32
33
34
/**************************************************************************
35
*
36
* @section:
37
* winfnt_fonts
38
*
39
* @title:
40
* Window FNT Files
41
*
42
* @abstract:
43
* Windows FNT-specific API.
44
*
45
* @description:
46
* This section contains the declaration of Windows FNT-specific
47
* functions.
48
*
49
*/
50
51
52
/**************************************************************************
53
*
54
* @enum:
55
* FT_WinFNT_ID_XXX
56
*
57
* @description:
58
* A list of valid values for the `charset` byte in @FT_WinFNT_HeaderRec.
59
* Exact mapping tables for the various 'cpXXXX' encodings (except for
60
* 'cp1361') can be found at 'ftp://ftp.unicode.org/Public/' in the
61
* `MAPPINGS/VENDORS/MICSFT/WINDOWS` subdirectory. 'cp1361' is roughly a
62
* superset of `MAPPINGS/OBSOLETE/EASTASIA/KSC/JOHAB.TXT`.
63
*
64
* @values:
65
* FT_WinFNT_ID_DEFAULT ::
66
* This is used for font enumeration and font creation as a 'don't
67
* care' value. Valid font files don't contain this value. When
68
* querying for information about the character set of the font that is
69
* currently selected into a specified device context, this return
70
* value (of the related Windows API) simply denotes failure.
71
*
72
* FT_WinFNT_ID_SYMBOL ::
73
* There is no known mapping table available.
74
*
75
* FT_WinFNT_ID_MAC ::
76
* Mac Roman encoding.
77
*
78
* FT_WinFNT_ID_OEM ::
79
* From Michael Poettgen <michael@poettgen.de>:
80
*
81
* The 'Windows Font Mapping' article says that `FT_WinFNT_ID_OEM` is
82
* used for the charset of vector fonts, like `modern.fon`,
83
* `roman.fon`, and `script.fon` on Windows.
84
*
85
* The 'CreateFont' documentation says: The `FT_WinFNT_ID_OEM` value
86
* specifies a character set that is operating-system dependent.
87
*
88
* The 'IFIMETRICS' documentation from the 'Windows Driver Development
89
* Kit' says: This font supports an OEM-specific character set. The
90
* OEM character set is system dependent.
91
*
92
* In general OEM, as opposed to ANSI (i.e., 'cp1252'), denotes the
93
* second default codepage that most international versions of Windows
94
* have. It is one of the OEM codepages from
95
*
96
* https://docs.microsoft.com/en-us/windows/desktop/intl/code-page-identifiers
97
* ,
98
*
99
* and is used for the 'DOS boxes', to support legacy applications. A
100
* German Windows version for example usually uses ANSI codepage 1252
101
* and OEM codepage 850.
102
*
103
* FT_WinFNT_ID_CP874 ::
104
* A superset of Thai TIS 620 and ISO 8859-11.
105
*
106
* FT_WinFNT_ID_CP932 ::
107
* A superset of Japanese Shift-JIS (with minor deviations).
108
*
109
* FT_WinFNT_ID_CP936 ::
110
* A superset of simplified Chinese GB 2312-1980 (with different
111
* ordering and minor deviations).
112
*
113
* FT_WinFNT_ID_CP949 ::
114
* A superset of Korean Hangul KS~C 5601-1987 (with different ordering
115
* and minor deviations).
116
*
117
* FT_WinFNT_ID_CP950 ::
118
* A superset of traditional Chinese Big~5 ETen (with different
119
* ordering and minor deviations).
120
*
121
* FT_WinFNT_ID_CP1250 ::
122
* A superset of East European ISO 8859-2 (with slightly different
123
* ordering).
124
*
125
* FT_WinFNT_ID_CP1251 ::
126
* A superset of Russian ISO 8859-5 (with different ordering).
127
*
128
* FT_WinFNT_ID_CP1252 ::
129
* ANSI encoding. A superset of ISO 8859-1.
130
*
131
* FT_WinFNT_ID_CP1253 ::
132
* A superset of Greek ISO 8859-7 (with minor modifications).
133
*
134
* FT_WinFNT_ID_CP1254 ::
135
* A superset of Turkish ISO 8859-9.
136
*
137
* FT_WinFNT_ID_CP1255 ::
138
* A superset of Hebrew ISO 8859-8 (with some modifications).
139
*
140
* FT_WinFNT_ID_CP1256 ::
141
* A superset of Arabic ISO 8859-6 (with different ordering).
142
*
143
* FT_WinFNT_ID_CP1257 ::
144
* A superset of Baltic ISO 8859-13 (with some deviations).
145
*
146
* FT_WinFNT_ID_CP1258 ::
147
* For Vietnamese. This encoding doesn't cover all necessary
148
* characters.
149
*
150
* FT_WinFNT_ID_CP1361 ::
151
* Korean (Johab).
152
*/
153
154
#define FT_WinFNT_ID_CP1252 0
155
#define FT_WinFNT_ID_DEFAULT 1
156
#define FT_WinFNT_ID_SYMBOL 2
157
#define FT_WinFNT_ID_MAC 77
158
#define FT_WinFNT_ID_CP932 128
159
#define FT_WinFNT_ID_CP949 129
160
#define FT_WinFNT_ID_CP1361 130
161
#define FT_WinFNT_ID_CP936 134
162
#define FT_WinFNT_ID_CP950 136
163
#define FT_WinFNT_ID_CP1253 161
164
#define FT_WinFNT_ID_CP1254 162
165
#define FT_WinFNT_ID_CP1258 163
166
#define FT_WinFNT_ID_CP1255 177
167
#define FT_WinFNT_ID_CP1256 178
168
#define FT_WinFNT_ID_CP1257 186
169
#define FT_WinFNT_ID_CP1251 204
170
#define FT_WinFNT_ID_CP874 222
171
#define FT_WinFNT_ID_CP1250 238
172
#define FT_WinFNT_ID_OEM 255
173
174
175
/**************************************************************************
176
*
177
* @struct:
178
* FT_WinFNT_HeaderRec
179
*
180
* @description:
181
* Windows FNT Header info.
182
*/
183
typedef
struct
FT_WinFNT_HeaderRec_
184
{
185
FT_UShort
version
;
186
FT_ULong
file_size
;
187
FT_Byte
copyright
[60];
188
FT_UShort
file_type
;
189
FT_UShort
nominal_point_size
;
190
FT_UShort
vertical_resolution
;
191
FT_UShort
horizontal_resolution
;
192
FT_UShort
ascent
;
193
FT_UShort
internal_leading
;
194
FT_UShort
external_leading
;
195
FT_Byte
italic
;
196
FT_Byte
underline
;
197
FT_Byte
strike_out
;
198
FT_UShort
weight
;
199
FT_Byte
charset
;
200
FT_UShort
pixel_width
;
201
FT_UShort
pixel_height
;
202
FT_Byte
pitch_and_family
;
203
FT_UShort
avg_width
;
204
FT_UShort
max_width
;
205
FT_Byte
first_char
;
206
FT_Byte
last_char
;
207
FT_Byte
default_char
;
208
FT_Byte
break_char
;
209
FT_UShort
bytes_per_row
;
210
FT_ULong
device_offset
;
211
FT_ULong
face_name_offset
;
212
FT_ULong
bits_pointer
;
213
FT_ULong
bits_offset
;
214
FT_Byte
reserved
;
215
FT_ULong
flags
;
216
FT_UShort
A_space
;
217
FT_UShort
B_space
;
218
FT_UShort
C_space
;
219
FT_UShort
color_table_offset
;
220
FT_ULong
reserved1
[4];
221
222
}
FT_WinFNT_HeaderRec
;
223
224
225
/**************************************************************************
226
*
227
* @struct:
228
* FT_WinFNT_Header
229
*
230
* @description:
231
* A handle to an @FT_WinFNT_HeaderRec structure.
232
*/
233
typedef
struct
FT_WinFNT_HeaderRec_
*
FT_WinFNT_Header
;
234
235
236
/**************************************************************************
237
*
238
* @function:
239
* FT_Get_WinFNT_Header
240
*
241
* @description:
242
* Retrieve a Windows FNT font info header.
243
*
244
* @input:
245
* face ::
246
* A handle to the input face.
247
*
248
* @output:
249
* aheader ::
250
* The WinFNT header.
251
*
252
* @return:
253
* FreeType error code. 0~means success.
254
*
255
* @note:
256
* This function only works with Windows FNT faces, returning an error
257
* otherwise.
258
*/
259
FT_EXPORT
(
FT_Error
)
260
FT_Get_WinFNT_Header
(
FT_Face
face,
261
FT_WinFNT_HeaderRec
*aheader );
262
263
/* */
264
265
266
FT_END_HEADER
267
268
#endif
/* FTWINFNT_H_ */
269
270
271
/* END */
272
273
274
/* Local Variables: */
275
/* coding: utf-8 */
276
/* End: */
FT_END_HEADER
#define FT_END_HEADER
Definition
ftheader.h:57
FT_BEGIN_HEADER
#define FT_BEGIN_HEADER
Definition
ftheader.h:37
FT_ULong
unsigned long FT_ULong
Definition
fttypes.h:256
FT_Byte
unsigned char FT_Byte
Definition
fttypes.h:157
FT_Error
int FT_Error
Definition
fttypes.h:302
FT_UShort
unsigned short FT_UShort
Definition
fttypes.h:212
FT_WinFNT_HeaderRec
struct FT_WinFNT_HeaderRec_ FT_WinFNT_HeaderRec
FT_WinFNT_Header
struct FT_WinFNT_HeaderRec_ * FT_WinFNT_Header
Definition
ftwinfnt.h:233
FT_Get_WinFNT_Header
FT_Get_WinFNT_Header(FT_Face face, FT_WinFNT_HeaderRec *aheader)
FT_EXPORT
#define FT_EXPORT(x)
Definition
public-macros.h:104
FT_FaceRec_
Definition
freetype.h:1230
FT_WinFNT_HeaderRec_
Definition
ftwinfnt.h:184
FT_WinFNT_HeaderRec_::horizontal_resolution
FT_UShort horizontal_resolution
Definition
ftwinfnt.h:191
FT_WinFNT_HeaderRec_::file_type
FT_UShort file_type
Definition
ftwinfnt.h:188
FT_WinFNT_HeaderRec_::C_space
FT_UShort C_space
Definition
ftwinfnt.h:218
FT_WinFNT_HeaderRec_::pitch_and_family
FT_Byte pitch_and_family
Definition
ftwinfnt.h:202
FT_WinFNT_HeaderRec_::copyright
FT_Byte copyright[60]
Definition
ftwinfnt.h:187
FT_WinFNT_HeaderRec_::last_char
FT_Byte last_char
Definition
ftwinfnt.h:206
FT_WinFNT_HeaderRec_::default_char
FT_Byte default_char
Definition
ftwinfnt.h:207
FT_WinFNT_HeaderRec_::internal_leading
FT_UShort internal_leading
Definition
ftwinfnt.h:193
FT_WinFNT_HeaderRec_::avg_width
FT_UShort avg_width
Definition
ftwinfnt.h:203
FT_WinFNT_HeaderRec_::break_char
FT_Byte break_char
Definition
ftwinfnt.h:208
FT_WinFNT_HeaderRec_::reserved
FT_Byte reserved
Definition
ftwinfnt.h:214
FT_WinFNT_HeaderRec_::color_table_offset
FT_UShort color_table_offset
Definition
ftwinfnt.h:219
FT_WinFNT_HeaderRec_::external_leading
FT_UShort external_leading
Definition
ftwinfnt.h:194
FT_WinFNT_HeaderRec_::version
FT_UShort version
Definition
ftwinfnt.h:185
FT_WinFNT_HeaderRec_::charset
FT_Byte charset
Definition
ftwinfnt.h:199
FT_WinFNT_HeaderRec_::nominal_point_size
FT_UShort nominal_point_size
Definition
ftwinfnt.h:189
FT_WinFNT_HeaderRec_::ascent
FT_UShort ascent
Definition
ftwinfnt.h:192
FT_WinFNT_HeaderRec_::weight
FT_UShort weight
Definition
ftwinfnt.h:198
FT_WinFNT_HeaderRec_::max_width
FT_UShort max_width
Definition
ftwinfnt.h:204
FT_WinFNT_HeaderRec_::B_space
FT_UShort B_space
Definition
ftwinfnt.h:217
FT_WinFNT_HeaderRec_::bits_pointer
FT_ULong bits_pointer
Definition
ftwinfnt.h:212
FT_WinFNT_HeaderRec_::face_name_offset
FT_ULong face_name_offset
Definition
ftwinfnt.h:211
FT_WinFNT_HeaderRec_::underline
FT_Byte underline
Definition
ftwinfnt.h:196
FT_WinFNT_HeaderRec_::pixel_height
FT_UShort pixel_height
Definition
ftwinfnt.h:201
FT_WinFNT_HeaderRec_::bits_offset
FT_ULong bits_offset
Definition
ftwinfnt.h:213
FT_WinFNT_HeaderRec_::device_offset
FT_ULong device_offset
Definition
ftwinfnt.h:210
FT_WinFNT_HeaderRec_::flags
FT_ULong flags
Definition
ftwinfnt.h:215
FT_WinFNT_HeaderRec_::italic
FT_Byte italic
Definition
ftwinfnt.h:195
FT_WinFNT_HeaderRec_::strike_out
FT_Byte strike_out
Definition
ftwinfnt.h:197
FT_WinFNT_HeaderRec_::bytes_per_row
FT_UShort bytes_per_row
Definition
ftwinfnt.h:209
FT_WinFNT_HeaderRec_::first_char
FT_Byte first_char
Definition
ftwinfnt.h:205
FT_WinFNT_HeaderRec_::vertical_resolution
FT_UShort vertical_resolution
Definition
ftwinfnt.h:190
FT_WinFNT_HeaderRec_::A_space
FT_UShort A_space
Definition
ftwinfnt.h:216
FT_WinFNT_HeaderRec_::file_size
FT_ULong file_size
Definition
ftwinfnt.h:186
FT_WinFNT_HeaderRec_::pixel_width
FT_UShort pixel_width
Definition
ftwinfnt.h:200
FT_WinFNT_HeaderRec_::reserved1
FT_ULong reserved1[4]
Definition
ftwinfnt.h:220
nix
store
w4wi2ik0fkz57b7i8ds4fr1jnj0333j0-freetype-2.13.3-dev
include
freetype2
freetype
ftwinfnt.h
Generated by
1.10.0