zenilib
0.5.3.0
Main Page
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
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 2003, 2004, 2008 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 <
ft2build.h
>
23
#include FT_FREETYPE_H
24
25
#ifdef FREETYPE_H
26
#error "freetype.h of FreeType 1 has been loaded!"
27
#error "Please fix the directory search order for header files"
28
#error "so that freetype.h of FreeType 2 is found first."
29
#endif
30
31
32
FT_BEGIN_HEADER
33
34
35
/*************************************************************************/
36
/* */
37
/* <Section> */
38
/* winfnt_fonts */
39
/* */
40
/* <Title> */
41
/* Window FNT Files */
42
/* */
43
/* <Abstract> */
44
/* Windows FNT specific API. */
45
/* */
46
/* <Description> */
47
/* This section contains the declaration of Windows FNT specific */
48
/* functions. */
49
/* */
50
/*************************************************************************/
51
52
53
/*************************************************************************
54
*
55
* @enum:
56
* FT_WinFNT_ID_XXX
57
*
58
* @description:
59
* A list of valid values for the `charset' byte in
60
* @FT_WinFNT_HeaderRec. Exact mapping tables for the various cpXXXX
61
* encodings (except for cp1361) can be found at ftp://ftp.unicode.org
62
* in the MAPPINGS/VENDORS/MICSFT/WINDOWS subdirectory. cp1361 is
63
* roughly a superset of MAPPINGS/OBSOLETE/EASTASIA/KSC/JOHAB.TXT.
64
*
65
* @values:
66
* FT_WinFNT_ID_DEFAULT ::
67
* This is used for font enumeration and font creation as a
68
* `don't care' value. Valid font files don't contain this value.
69
* When querying for information about the character set of the font
70
* that is currently selected into a specified device context, this
71
* return value (of the related Windows API) simply denotes failure.
72
*
73
* FT_WinFNT_ID_SYMBOL ::
74
* There is no known mapping table available.
75
*
76
* FT_WinFNT_ID_MAC ::
77
* Mac Roman encoding.
78
*
79
* FT_WinFNT_ID_OEM ::
80
* From Michael Pöttgen <michael@poettgen.de>:
81
*
82
* The `Windows Font Mapping' article says that FT_WinFNT_ID_OEM
83
* is used for the charset of vector fonts, like `modern.fon',
84
* `roman.fon', and `script.fon' on Windows.
85
*
86
* The `CreateFont' documentation says: The FT_WinFNT_ID_OEM value
87
* specifies a character set that is operating-system dependent.
88
*
89
* The `IFIMETRICS' documentation from the `Windows Driver
90
* Development Kit' says: This font supports an OEM-specific
91
* character set. The OEM character set is system dependent.
92
*
93
* In general OEM, as opposed to ANSI (i.e., cp1252), denotes the
94
* second default codepage that most international versions of
95
* Windows have. It is one of the OEM codepages from
96
*
97
* http://www.microsoft.com/globaldev/reference/cphome.mspx,
98
*
99
* and is used for the `DOS boxes', to support legacy applications.
100
* A German Windows version for example usually uses ANSI codepage
101
* 1252 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
115
* ordering 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 :: A handle to the input face.
246
*
247
* @output:
248
* aheader :: The WinFNT header.
249
*
250
* @return:
251
* FreeType error code. 0~means success.
252
*
253
* @note:
254
* This function only works with Windows FNT faces, returning an error
255
* otherwise.
256
*/
257
FT_EXPORT
(
FT_Error
)
258
FT_Get_WinFNT_Header
(
FT_Face
face
,
259
FT_WinFNT_HeaderRec
*aheader );
260
261
262
/* */
263
264
FT_END_HEADER
265
266
#endif
/* __FTWINFNT_H__ */
267
268
269
/* END */
270
271
272
/* Local Variables: */
273
/* coding: utf-8 */
274
/* End: */
FT_WinFNT_HeaderRec_::max_width
FT_UShort max_width
Definition:
ftwinfnt.h:204
FT_WinFNT_HeaderRec_::face_name_offset
FT_ULong face_name_offset
Definition:
ftwinfnt.h:211
FT_WinFNT_HeaderRec_::default_char
FT_Byte default_char
Definition:
ftwinfnt.h:207
FT_Error
int FT_Error
Definition:
fttypes.h:296
FT_WinFNT_Header
struct FT_WinFNT_HeaderRec_ * FT_WinFNT_Header
Definition:
ftwinfnt.h:233
FT_ULong
unsigned long FT_ULong
Definition:
fttypes.h:249
FT_WinFNT_HeaderRec_::reserved1
FT_ULong reserved1[4]
Definition:
ftwinfnt.h:220
FT_WinFNT_HeaderRec_::last_char
FT_Byte last_char
Definition:
ftwinfnt.h:206
FT_WinFNT_HeaderRec_::bits_pointer
FT_ULong bits_pointer
Definition:
ftwinfnt.h:212
FT_Get_WinFNT_Header
FT_Get_WinFNT_Header(FT_Face face, FT_WinFNT_HeaderRec *aheader)
Definition:
ftwinfnt.c:28
FT_WinFNT_HeaderRec_::color_table_offset
FT_UShort color_table_offset
Definition:
ftwinfnt.h:219
FT_END_HEADER
#define FT_END_HEADER
Definition:
ftheader.h:54
FT_WinFNT_HeaderRec_::bits_offset
FT_ULong bits_offset
Definition:
ftwinfnt.h:213
FT_WinFNT_HeaderRec_
Definition:
ftwinfnt.h:183
FT_WinFNT_HeaderRec_::file_type
FT_UShort file_type
Definition:
ftwinfnt.h:188
FT_WinFNT_HeaderRec_::device_offset
FT_ULong device_offset
Definition:
ftwinfnt.h:210
FT_WinFNT_HeaderRec_::break_char
FT_Byte break_char
Definition:
ftwinfnt.h:208
FT_WinFNT_HeaderRec_::B_space
FT_UShort B_space
Definition:
ftwinfnt.h:217
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_::flags
FT_ULong flags
Definition:
ftwinfnt.h:215
FT_Byte
unsigned char FT_Byte
Definition:
fttypes.h:150
FT_BEGIN_HEADER
#define FT_BEGIN_HEADER
Definition:
ftheader.h:36
FT_WinFNT_HeaderRec_::internal_leading
FT_UShort internal_leading
Definition:
ftwinfnt.h:193
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_::reserved
FT_Byte reserved
Definition:
ftwinfnt.h:214
FT_WinFNT_HeaderRec_::version
FT_UShort version
Definition:
ftwinfnt.h:185
FT_FaceRec_
Definition:
freetype.h:912
FT_WinFNT_HeaderRec_::pitch_and_family
FT_Byte pitch_and_family
Definition:
ftwinfnt.h:202
face
GLenum face
Definition:
gl2ext.h:1490
FT_WinFNT_HeaderRec_::strike_out
FT_Byte strike_out
Definition:
ftwinfnt.h:197
FT_WinFNT_HeaderRec
struct FT_WinFNT_HeaderRec_ FT_WinFNT_HeaderRec
FT_WinFNT_HeaderRec_::underline
FT_Byte underline
Definition:
ftwinfnt.h:196
FT_WinFNT_HeaderRec_::nominal_point_size
FT_UShort nominal_point_size
Definition:
ftwinfnt.h:189
FT_WinFNT_HeaderRec_::vertical_resolution
FT_UShort vertical_resolution
Definition:
ftwinfnt.h:190
ft2build.h
FT_WinFNT_HeaderRec_::C_space
FT_UShort C_space
Definition:
ftwinfnt.h:218
FT_WinFNT_HeaderRec_::horizontal_resolution
FT_UShort horizontal_resolution
Definition:
ftwinfnt.h:191
FT_EXPORT
#define FT_EXPORT(x)
Definition:
ftconfig.h:500
FT_WinFNT_HeaderRec_::external_leading
FT_UShort external_leading
Definition:
ftwinfnt.h:194
FT_WinFNT_HeaderRec_::avg_width
FT_UShort avg_width
Definition:
ftwinfnt.h:203
FT_WinFNT_HeaderRec_::A_space
FT_UShort A_space
Definition:
ftwinfnt.h:216
FT_WinFNT_HeaderRec_::pixel_width
FT_UShort pixel_width
Definition:
ftwinfnt.h:200
FT_WinFNT_HeaderRec_::charset
FT_Byte charset
Definition:
ftwinfnt.h:199
FT_UShort
unsigned short FT_UShort
Definition:
fttypes.h:205
FT_WinFNT_HeaderRec_::italic
FT_Byte italic
Definition:
ftwinfnt.h:195
FT_WinFNT_HeaderRec_::file_size
FT_ULong file_size
Definition:
ftwinfnt.h:186
FT_WinFNT_HeaderRec_::copyright
FT_Byte copyright[60]
Definition:
ftwinfnt.h:187
FT_WinFNT_HeaderRec_::pixel_height
FT_UShort pixel_height
Definition:
ftwinfnt.h:201
zenilib
jni
external
freetype2
include
freetype
ftwinfnt.h
Generated on Thu Oct 3 2013 19:56:01 for zenilib by
1.8.5