168 {
171 FT_Service_PsCMaps psnames;
176
180
181
183 face->root.num_faces = 1;
184
186 face->psnames = psnames;
187
189 "psaux" );
192 {
193 FT_ERROR((
"T42_Face_Init: cannot access `psaux' module\n" ));
196 }
197
199
200
204
205
206 if ( face_index < 0 )
208
209
210 if ( ( face_index & 0xFFFF ) > 0 )
211 {
212 FT_ERROR((
"T42_Face_Init: invalid face index\n" ));
215 }
216
217
218
219
220
221
222 root->num_glyphs = type1->num_glyphs;
223 root->num_charmaps = 0;
224 root->face_index = 0;
225
229
230 if (
info->is_fixed_pitch )
232
233#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
235#endif
236
237
238
239
240
241 root->family_name =
info->family_name;
242
243 root->style_name = (
char *)
"Regular";
244 if (
root->family_name )
245 {
246 char* full =
info->full_name;
247 char* family =
root->family_name;
248
249
250 if ( full )
251 {
252 while ( *full )
253 {
254 if ( *full == *family )
255 {
256 family++;
257 full++;
258 }
259 else
260 {
261 if ( *full == ' ' || *full == '-' )
262 full++;
263 else if ( *family == ' ' || *family == '-' )
264 family++;
265 else
266 {
267 if ( !*family )
268 root->style_name = full;
269 break;
270 }
271 }
272 }
273 }
274 }
275 else
276 {
277
278 if ( type1->font_name )
279 root->family_name = type1->font_name;
280 }
281
282
283 root->num_fixed_sizes = 0;
285
286
287 {
289
290
293 "truetype" );
296
297 if ( num_params )
298 {
300 args.num_params = num_params;
302 }
303
306 }
307
310
312
313
314
316 root->units_per_EM =
face->ttf_face->units_per_EM;
317
318 root->ascender =
face->ttf_face->ascender;
319 root->descender =
face->ttf_face->descender;
320 root->height =
face->ttf_face->height;
321
322 root->max_advance_width =
face->ttf_face->max_advance_width;
323 root->max_advance_height =
face->ttf_face->max_advance_height;
324
327
328
329 root->style_flags = 0;
330 if (
info->italic_angle )
332
335
338
339 {
340 if ( psnames )
341 {
345
346
348
349
352 charmap.
encoding = FT_ENCODING_UNICODE;
353
360
361
364
365 switch ( type1->encoding_type )
366 {
368 charmap.
encoding = FT_ENCODING_ADOBE_STANDARD;
371 break;
372
374 charmap.
encoding = FT_ENCODING_ADOBE_EXPERT;
376 clazz = cmap_classes->
expert;
377 break;
378
380 charmap.
encoding = FT_ENCODING_ADOBE_CUSTOM;
382 clazz = cmap_classes->
custom;
383 break;
384
386 charmap.
encoding = FT_ENCODING_ADOBE_LATIN_1;
389 break;
390
391 default:
392 ;
393 }
394
395 if ( clazz )
397 }
398 }
401 }
#define TT_MS_ID_UNICODE_CS
#define TT_PLATFORM_MICROSOFT
#define FT_STYLE_FLAG_ITALIC
#define FT_FACE_FLAG_SCALABLE
#define FT_FACE_FLAG_HINTER
FT_Open_Face(FT_Library library, const FT_Open_Args *args, FT_Long face_index, FT_Face *aface)
#define FT_FACE_FLAG_FIXED_WIDTH
#define FT_FACE_FLAG_VERTICAL
struct FT_FaceRec_ * FT_Face
#define FT_FACE_FLAG_GLYPH_NAMES
#define FT_STYLE_FLAG_BOLD
#define FT_FACE_FLAG_HORIZONTAL
#define FT_TRACE2(varformat)
#define FT_FACE_LIBRARY(x)
FT_CMap_New(FT_CMap_Class clazz, FT_Pointer init_data, FT_CharMap charmap, FT_CMap *acmap)
FT_Get_Module_Interface(FT_Library library, const char *mod_name)
#define FT_FACE_FIND_GLOBAL_SERVICE(face, ptr, id)
FT_Done_Size(FT_Size size)
GLenum const GLfloat * params
struct PSAux_ServiceRec_ * PSAux_Service
T1_CMap_Classes t1_cmap_classes
@ T1_ENCODING_TYPE_ISOLATIN1
@ T1_ENCODING_TYPE_STANDARD
@ T1_ENCODING_TYPE_EXPERT
static FT_Error T42_Open_Face(T42_Face face)
#define TT_ADOBE_ID_EXPERT
#define TT_ADOBE_ID_STANDARD
#define TT_PLATFORM_ADOBE
#define TT_ADOBE_ID_LATIN_1
#define TT_ADOBE_ID_CUSTOM