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
ftsnames.h
Go to the documentation of this file.
1
/***************************************************************************/
2
/* */
3
/* ftsnames.h */
4
/* */
5
/* Simple interface to access SFNT name tables (which are used */
6
/* to hold font names, copyright info, notices, etc.) (specification). */
7
/* */
8
/* This is _not_ used to retrieve glyph names! */
9
/* */
10
/* Copyright 1996-2001, 2002, 2003, 2006, 2009, 2010 by */
11
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
12
/* */
13
/* This file is part of the FreeType project, and may only be used, */
14
/* modified, and distributed under the terms of the FreeType project */
15
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
16
/* this file you indicate that you have read the license and */
17
/* understand and accept it fully. */
18
/* */
19
/***************************************************************************/
20
21
22
#ifndef __FT_SFNT_NAMES_H__
23
#define __FT_SFNT_NAMES_H__
24
25
26
#include <
ft2build.h
>
27
#include FT_FREETYPE_H
28
29
#ifdef FREETYPE_H
30
#error "freetype.h of FreeType 1 has been loaded!"
31
#error "Please fix the directory search order for header files"
32
#error "so that freetype.h of FreeType 2 is found first."
33
#endif
34
35
36
FT_BEGIN_HEADER
37
38
39
/*************************************************************************/
40
/* */
41
/* <Section> */
42
/* sfnt_names */
43
/* */
44
/* <Title> */
45
/* SFNT Names */
46
/* */
47
/* <Abstract> */
48
/* Access the names embedded in TrueType and OpenType files. */
49
/* */
50
/* <Description> */
51
/* The TrueType and OpenType specifications allow the inclusion of */
52
/* a special `names table' in font files. This table contains */
53
/* textual (and internationalized) information regarding the font, */
54
/* like family name, copyright, version, etc. */
55
/* */
56
/* The definitions below are used to access them if available. */
57
/* */
58
/* Note that this has nothing to do with glyph names! */
59
/* */
60
/*************************************************************************/
61
62
63
/*************************************************************************/
64
/* */
65
/* <Struct> */
66
/* FT_SfntName */
67
/* */
68
/* <Description> */
69
/* A structure used to model an SFNT `name' table entry. */
70
/* */
71
/* <Fields> */
72
/* platform_id :: The platform ID for `string'. */
73
/* */
74
/* encoding_id :: The encoding ID for `string'. */
75
/* */
76
/* language_id :: The language ID for `string'. */
77
/* */
78
/* name_id :: An identifier for `string'. */
79
/* */
80
/* string :: The `name' string. Note that its format differs */
81
/* depending on the (platform,encoding) pair. It can */
82
/* be a Pascal String, a UTF-16 one, etc. */
83
/* */
84
/* Generally speaking, the string is not */
85
/* zero-terminated. Please refer to the TrueType */
86
/* specification for details. */
87
/* */
88
/* string_len :: The length of `string' in bytes. */
89
/* */
90
/* <Note> */
91
/* Possible values for `platform_id', `encoding_id', `language_id', */
92
/* and `name_id' are given in the file `ttnameid.h'. For details */
93
/* please refer to the TrueType or OpenType specification. */
94
/* */
95
/* See also @TT_PLATFORM_XXX, @TT_APPLE_ID_XXX, @TT_MAC_ID_XXX, */
96
/* @TT_ISO_ID_XXX, and @TT_MS_ID_XXX. */
97
/* */
98
typedef
struct
FT_SfntName_
99
{
100
FT_UShort
platform_id
;
101
FT_UShort
encoding_id
;
102
FT_UShort
language_id
;
103
FT_UShort
name_id
;
104
105
FT_Byte
*
string
;
/* this string is *not* null-terminated! */
106
FT_UInt
string_len
;
/* in bytes */
107
108
}
FT_SfntName
;
109
110
111
/*************************************************************************/
112
/* */
113
/* <Function> */
114
/* FT_Get_Sfnt_Name_Count */
115
/* */
116
/* <Description> */
117
/* Retrieve the number of name strings in the SFNT `name' table. */
118
/* */
119
/* <Input> */
120
/* face :: A handle to the source face. */
121
/* */
122
/* <Return> */
123
/* The number of strings in the `name' table. */
124
/* */
125
FT_EXPORT
(
FT_UInt
)
126
FT_Get_Sfnt_Name_Count
(
FT_Face
face
);
127
128
129
/*************************************************************************/
130
/* */
131
/* <Function> */
132
/* FT_Get_Sfnt_Name */
133
/* */
134
/* <Description> */
135
/* Retrieve a string of the SFNT `name' table for a given index. */
136
/* */
137
/* <Input> */
138
/* face :: A handle to the source face. */
139
/* */
140
/* idx :: The index of the `name' string. */
141
/* */
142
/* <Output> */
143
/* aname :: The indexed @FT_SfntName structure. */
144
/* */
145
/* <Return> */
146
/* FreeType error code. 0~means success. */
147
/* */
148
/* <Note> */
149
/* The `string' array returned in the `aname' structure is not */
150
/* null-terminated. The application should deallocate it if it is no */
151
/* longer in use. */
152
/* */
153
/* Use @FT_Get_Sfnt_Name_Count to get the total number of available */
154
/* `name' table entries, then do a loop until you get the right */
155
/* platform, encoding, and name ID. */
156
/* */
157
FT_EXPORT
(
FT_Error
)
158
FT_Get_Sfnt_Name
(
FT_Face
face,
159
FT_UInt
idx
,
160
FT_SfntName
*aname );
161
162
163
/***************************************************************************
164
*
165
* @constant:
166
* FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY
167
*
168
* @description:
169
* A constant used as the tag of @FT_Parameter structures to make
170
* FT_Open_Face() ignore preferred family subfamily names in `name'
171
* table since OpenType version 1.4. For backwards compatibility with
172
* legacy systems which has 4-face-per-family restriction.
173
*
174
*/
175
#define FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY FT_MAKE_TAG( 'i', 'g', 'p', 'f' )
176
177
178
/***************************************************************************
179
*
180
* @constant:
181
* FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY
182
*
183
* @description:
184
* A constant used as the tag of @FT_Parameter structures to make
185
* FT_Open_Face() ignore preferred subfamily names in `name' table since
186
* OpenType version 1.4. For backwards compatibility with legacy
187
* systems which has 4-face-per-family restriction.
188
*
189
*/
190
#define FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY FT_MAKE_TAG( 'i', 'g', 'p', 's' )
191
192
/* */
193
194
195
FT_END_HEADER
196
197
#endif
/* __FT_SFNT_NAMES_H__ */
198
199
200
/* END */
FT_Error
int FT_Error
Definition:
fttypes.h:296
FT_SfntName_::string
FT_Byte * string
Definition:
ftsnames.h:105
FT_END_HEADER
#define FT_END_HEADER
Definition:
ftheader.h:54
FT_Byte
unsigned char FT_Byte
Definition:
fttypes.h:150
FT_BEGIN_HEADER
#define FT_BEGIN_HEADER
Definition:
ftheader.h:36
FT_SfntName_::string_len
FT_UInt string_len
Definition:
ftsnames.h:106
FT_SfntName_::encoding_id
FT_UShort encoding_id
Definition:
ftsnames.h:101
FT_FaceRec_
Definition:
freetype.h:912
idx
FT_UInt idx
Definition:
cffcmap.c:125
FT_SfntName_
Definition:
ftsnames.h:98
face
GLenum face
Definition:
gl2ext.h:1490
FT_Get_Sfnt_Name
FT_Get_Sfnt_Name(FT_Face face, FT_UInt idx, FT_SfntName *aname)
FT_SfntName_::language_id
FT_UShort language_id
Definition:
ftsnames.h:102
FT_SfntName
FT_BEGIN_HEADER struct FT_SfntName_ FT_SfntName
ft2build.h
FT_UInt
unsigned int FT_UInt
Definition:
fttypes.h:227
FT_EXPORT
#define FT_EXPORT(x)
Definition:
ftconfig.h:500
FT_SfntName_::platform_id
FT_UShort platform_id
Definition:
ftsnames.h:100
FT_Get_Sfnt_Name_Count
FT_Get_Sfnt_Name_Count(FT_Face face)
FT_UShort
unsigned short FT_UShort
Definition:
fttypes.h:205
FT_SfntName_::name_id
FT_UShort name_id
Definition:
ftsnames.h:103
zenilib
jni
external
freetype2
include
freetype
ftsnames.h
Generated on Thu Oct 3 2013 19:56:01 for zenilib by
1.8.5