73 {
76
79
80
82
83
87
89 {
93 }
94
95
96 {
98
99
101 face->header.log_dir_offset,
102 &num_faces );
105
106 pfrface->num_faces = num_faces;
107 }
108
109 if ( face_index < 0 )
111
112 if ( ( face_index & 0xFFFF ) >= pfrface->num_faces )
113 {
114 FT_ERROR((
"pfr_face_init: invalid face index\n" ));
117 }
118
119
123 (
FT_UInt)( face_index & 0xFFFF ),
124 face->header.log_dir_offset,
125 FT_BOOL(
face->header.phy_font_max_size_high != 0 ) );
128
129
131 face->log_font.phys_offset,
132 face->log_font.phys_size );
135
136
137 {
139
140
141 pfrface->face_index = face_index & 0xFFFF;
143
145
146
147
148 {
150
151
154 break;
155
157 {
159 pfrface->face_flags = 0;
160 else
161 {
162 FT_ERROR((
"pfr_face_init: font doesn't contain glyphs\n" ));
165 }
166 }
167 }
168
171
174 else
176
179
182
183
184
185
186
188 if ( !pfrface->family_name )
189 pfrface->family_name = phy_font->
font_id;
190
191
192
193
195
196 pfrface->num_fixed_sizes = 0;
197 pfrface->available_sizes =
NULL;
198
199 pfrface->bbox = phy_font->
bbox;
203
204 pfrface->height = (
FT_Short)( ( pfrface->units_per_EM * 12 ) / 10 );
205 if ( pfrface->height < pfrface->ascender - pfrface->descender )
206 pfrface->height = (
FT_Short)(pfrface->ascender - pfrface->descender);
207
209 {
214
215
218
219 size = pfrface->available_sizes;
222 {
228 }
230 }
231
232
235 else
236 {
240
241
243 {
246 }
247
249 }
250
251 pfrface->max_advance_height = pfrface->height;
252
253 pfrface->underline_position = (
FT_Short)( -pfrface->units_per_EM / 10 );
254 pfrface->underline_thickness = (
FT_Short)( pfrface->units_per_EM / 30 );
255
256
257 {
259
260
261 charmap.
face = pfrface;
264 charmap.
encoding = FT_ENCODING_UNICODE;
265
267 }
268
269
272 }
273
276 }
_STLP_MOVE_TO_STD_NAMESPACE void _STLP_CALL advance(_InputIterator &__i, _Distance __n)
#define TT_MS_ID_UNICODE_CS
#define TT_PLATFORM_MICROSOFT
#define FT_FACE_FLAG_KERNING
#define FT_FACE_FLAG_FIXED_SIZES
#define FT_FACE_FLAG_SCALABLE
#define FT_FACE_FLAG_FIXED_WIDTH
#define FT_FACE_FLAG_VERTICAL
#define FT_FACE_FLAG_HORIZONTAL
#define FT_ERROR(varformat)
#define FT_TRACE2(varformat)
FT_BEGIN_HEADER typedef signed long FT_Pos
#define FT_NEW_ARRAY(ptr, count)
FT_CMap_New(FT_CMap_Class clazz, FT_Pointer init_data, FT_CharMap charmap, FT_CMap *acmap)
GLenum const GLfloat * params
FT_CALLBACK_TABLE_DEF const FT_CMap_ClassRec pfr_cmap_class_rec
pfr_log_font_count(FT_Stream stream, FT_UInt32 section_offset, FT_Long *acount)
pfr_log_font_load(PFR_LogFont log_font, FT_Stream stream, FT_UInt idx, FT_UInt32 section_offset, FT_Bool size_increment)
pfr_header_load(PFR_Header header, FT_Stream stream)
pfr_header_check(PFR_Header header)
pfr_phy_font_load(PFR_PhyFont phy_font, FT_Stream stream, FT_UInt32 offset, FT_UInt32 size)
#define PFR_PHY_PROPORTIONAL
FT_UInt outline_resolution