ReactOS 0.4.15-dev-7887-g64a59a1
t1driver.c File Reference
#include <ft2build.h>
#include "t1driver.h"
#include "t1gload.h"
#include "t1load.h"
#include "t1errors.h"
#include "t1afm.h"
Include dependency graph for t1driver.c:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define FT_COMPONENT   trace_t1driver
 

Functions

static FT_Error t1_get_glyph_name (T1_Face face, FT_UInt glyph_index, FT_Pointer buffer, FT_UInt buffer_max)
 
static FT_UInt t1_get_name_index (T1_Face face, FT_String *glyph_name)
 
static const chart1_get_ps_name (T1_Face face)
 
static FT_Error t1_ps_get_font_info (FT_Face face, PS_FontInfoRec *afont_info)
 
static FT_Error t1_ps_get_font_extra (FT_Face face, PS_FontExtraRec *afont_extra)
 
static FT_Int t1_ps_has_glyph_names (FT_Face face)
 
static FT_Error t1_ps_get_font_private (FT_Face face, PS_PrivateRec *afont_private)
 
static FT_Long t1_ps_get_font_value (FT_Face face, PS_Dict_Keys key, FT_UInt idx, void *value, FT_Long value_len_)
 
 FT_DEFINE_SERVICE_PROPERTIESREC (t1_service_properties,(FT_Properties_SetFunc) ps_property_set,(FT_Properties_GetFunc) ps_property_get) static const FT_ServiceDescRec t1_services[]
 
 Get_Interface (FT_Module module, const FT_String *t1_interface)
 
static FT_Error Get_Kerning (FT_Face t1face, FT_UInt left_glyph, FT_UInt right_glyph, FT_Vector *kerning)
 

Variables

static const FT_Service_GlyphDictRec t1_service_glyph_dict
 
static const FT_Service_PsFontNameRec t1_service_ps_name
 
static const FT_Service_MultiMastersRec t1_service_multi_masters
 
static const FT_Service_PsInfoRec t1_service_ps_info
 
static const FT_Service_KerningRec t1_service_kerning
 
FT_CALLBACK_TABLE_DEF const FT_Driver_ClassRec t1_driver_class
 

Macro Definition Documentation

◆ FT_COMPONENT

#define FT_COMPONENT   trace_t1driver

Definition at line 53 of file t1driver.c.

Function Documentation

◆ FT_DEFINE_SERVICE_PROPERTIESREC()

FT_DEFINE_SERVICE_PROPERTIESREC ( t1_service_properties  ,
(FT_Properties_SetFunc ps_property_set,
(FT_Properties_GetFunc ps_property_get 
) const

◆ Get_Interface()

Get_Interface ( FT_Module  module,
const FT_String t1_interface 
)

Definition at line 657 of file t1driver.c.

659 {
660 FT_UNUSED( module );
661
662 return ft_service_list_lookup( t1_services, t1_interface );
663 }
#define FT_UNUSED(arg)
Definition: ftconfig.h:101
ft_service_list_lookup(FT_ServiceDesc service_descriptors, const char *service_id)
Definition: ftobjs.c:98

◆ Get_Kerning()

static FT_Error Get_Kerning ( FT_Face  t1face,
FT_UInt  left_glyph,
FT_UInt  right_glyph,
FT_Vector kerning 
)
static

Definition at line 701 of file t1driver.c.

705 {
706 T1_Face face = (T1_Face)t1face;
707
708
709 kerning->x = 0;
710 kerning->y = 0;
711
712 if ( face->afm_data )
713 T1_Get_Kerning( (AFM_FontInfo)face->afm_data,
716 kerning );
717
718 return FT_Err_Ok;
719 }
return FT_Err_Ok
Definition: ftbbox.c:511
GLenum GLuint GLint GLenum face
Definition: glext.h:7025
FT_Pos x
Definition: ftimage.h:76
FT_Pos y
Definition: ftimage.h:77
T1_Get_Kerning(AFM_FontInfo fi, FT_UInt glyph1, FT_UInt glyph2, FT_Vector *kerning)
Definition: t1afm.c:330
struct T1_FaceRec_ * T1_Face
Definition: t1types.h:196
FT_UInt FT_UInt FT_Vector * kerning
Definition: ttdriver.c:204
FT_UInt left_glyph
Definition: ttdriver.c:201
FT_UInt FT_UInt right_glyph
Definition: ttdriver.c:202

◆ t1_get_glyph_name()

static FT_Error t1_get_glyph_name ( T1_Face  face,
FT_UInt  glyph_index,
FT_Pointer  buffer,
FT_UInt  buffer_max 
)
static

Definition at line 61 of file t1driver.c.

65 {
66 FT_STRCPYN( buffer, face->type1.glyph_names[glyph_index], buffer_max );
67
68 return FT_Err_Ok;
69 }
#define FT_STRCPYN(dst, src, size)
Definition: ftmemory.h:382
GLuint buffer
Definition: glext.h:5915

◆ t1_get_name_index()

static FT_UInt t1_get_name_index ( T1_Face  face,
FT_String glyph_name 
)
static

Definition at line 73 of file t1driver.c.

75 {
76 FT_Int i;
77
78
79 for ( i = 0; i < face->type1.num_glyphs; i++ )
80 {
81 FT_String* gname = face->type1.glyph_names[i];
82
83
84 if ( !ft_strcmp( glyph_name, gname ) )
85 return (FT_UInt)i;
86 }
87
88 return 0;
89 }
#define ft_strcmp
Definition: ftstdlib.h:86
char FT_String
Definition: fttypes.h:187
unsigned int FT_UInt
Definition: fttypes.h:231
signed int FT_Int
Definition: fttypes.h:220
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248

◆ t1_get_ps_name()

static const char * t1_get_ps_name ( T1_Face  face)
static

Definition at line 105 of file t1driver.c.

106 {
107 return (const char*) face->type1.font_name;
108 }

◆ t1_ps_get_font_extra()

static FT_Error t1_ps_get_font_extra ( FT_Face  face,
PS_FontExtraRec afont_extra 
)
static

Definition at line 156 of file t1driver.c.

158 {
159 *afont_extra = ((T1_Face)face)->type1.font_extra;
160
161 return FT_Err_Ok;
162 }

◆ t1_ps_get_font_info()

static FT_Error t1_ps_get_font_info ( FT_Face  face,
PS_FontInfoRec afont_info 
)
static

Definition at line 146 of file t1driver.c.

148 {
149 *afont_info = ((T1_Face)face)->type1.font_info;
150
151 return FT_Err_Ok;
152 }

◆ t1_ps_get_font_private()

static FT_Error t1_ps_get_font_private ( FT_Face  face,
PS_PrivateRec afont_private 
)
static

Definition at line 175 of file t1driver.c.

177 {
178 *afont_private = ((T1_Face)face)->type1.private_dict;
179
180 return FT_Err_Ok;
181 }

◆ t1_ps_get_font_value()

static FT_Long t1_ps_get_font_value ( FT_Face  face,
PS_Dict_Keys  key,
FT_UInt  idx,
void value,
FT_Long  value_len_ 
)
static

Definition at line 185 of file t1driver.c.

190 {
191 FT_ULong retval = 0; /* always >= 1 if valid */
192 FT_ULong value_len = value_len_ < 0 ? 0 : (FT_ULong)value_len_;
193
194 T1_Face t1face = (T1_Face)face;
195 T1_Font type1 = &t1face->type1;
196
197
198 switch ( key )
199 {
201 retval = sizeof ( type1->font_type );
202 if ( value && value_len >= retval )
203 *((FT_Byte *)value) = type1->font_type;
204 break;
205
207 if ( idx < sizeof ( type1->font_matrix ) /
208 sizeof ( type1->font_matrix.xx ) )
209 {
210 FT_Fixed val = 0;
211
212
213 retval = sizeof ( val );
214 if ( value && value_len >= retval )
215 {
216 switch ( idx )
217 {
218 case 0:
219 val = type1->font_matrix.xx;
220 break;
221 case 1:
222 val = type1->font_matrix.xy;
223 break;
224 case 2:
225 val = type1->font_matrix.yx;
226 break;
227 case 3:
228 val = type1->font_matrix.yy;
229 break;
230 }
231 *((FT_Fixed *)value) = val;
232 }
233 }
234 break;
235
237 if ( idx < sizeof ( type1->font_bbox ) /
238 sizeof ( type1->font_bbox.xMin ) )
239 {
240 FT_Fixed val = 0;
241
242
243 retval = sizeof ( val );
244 if ( value && value_len >= retval )
245 {
246 switch ( idx )
247 {
248 case 0:
249 val = type1->font_bbox.xMin;
250 break;
251 case 1:
252 val = type1->font_bbox.yMin;
253 break;
254 case 2:
255 val = type1->font_bbox.xMax;
256 break;
257 case 3:
258 val = type1->font_bbox.yMax;
259 break;
260 }
261 *((FT_Fixed *)value) = val;
262 }
263 }
264 break;
265
267 retval = sizeof ( type1->paint_type );
268 if ( value && value_len >= retval )
269 *((FT_Byte *)value) = type1->paint_type;
270 break;
271
273 retval = ft_strlen( type1->font_name ) + 1;
274 if ( value && value_len >= retval )
275 ft_memcpy( value, (void *)( type1->font_name ), retval );
276 break;
277
279 retval = sizeof ( type1->private_dict.unique_id );
280 if ( value && value_len >= retval )
281 *((FT_Int *)value) = type1->private_dict.unique_id;
282 break;
283
285 retval = sizeof ( type1->num_glyphs );
286 if ( value && value_len >= retval )
287 *((FT_Int *)value) = type1->num_glyphs;
288 break;
289
291 if ( idx < (FT_UInt)type1->num_glyphs )
292 {
293 retval = ft_strlen( type1->glyph_names[idx] ) + 1;
294 if ( value && value_len >= retval )
295 {
296 ft_memcpy( value, (void *)( type1->glyph_names[idx] ), retval );
297 ((FT_Char *)value)[retval - 1] = (FT_Char)'\0';
298 }
299 }
300 break;
301
303 if ( idx < (FT_UInt)type1->num_glyphs )
304 {
305 retval = type1->charstrings_len[idx] + 1;
306 if ( value && value_len >= retval )
307 {
308 ft_memcpy( value, (void *)( type1->charstrings[idx] ),
309 retval - 1 );
310 ((FT_Char *)value)[retval - 1] = (FT_Char)'\0';
311 }
312 }
313 break;
314
316 retval = sizeof ( type1->encoding_type );
317 if ( value && value_len >= retval )
318 *((T1_EncodingType *)value) = type1->encoding_type;
319 break;
320
322 if ( type1->encoding_type == T1_ENCODING_TYPE_ARRAY &&
323 idx < (FT_UInt)type1->encoding.num_chars )
324 {
325 retval = ft_strlen( type1->encoding.char_name[idx] ) + 1;
326 if ( value && value_len >= retval )
327 {
328 ft_memcpy( value, (void *)( type1->encoding.char_name[idx] ),
329 retval - 1 );
330 ((FT_Char *)value)[retval - 1] = (FT_Char)'\0';
331 }
332 }
333 break;
334
336 retval = sizeof ( type1->num_subrs );
337 if ( value && value_len >= retval )
338 *((FT_Int *)value) = type1->num_subrs;
339 break;
340
341 case PS_DICT_SUBR:
342 {
343 FT_Bool ok = 0;
344
345
346 if ( type1->subrs_hash )
347 {
348 /* convert subr index to array index */
349 size_t* val = ft_hash_num_lookup( (FT_Int)idx,
350 type1->subrs_hash );
351
352
353 if ( val )
354 {
355 idx = *val;
356 ok = 1;
357 }
358 }
359 else
360 {
361 if ( idx < (FT_UInt)type1->num_subrs )
362 ok = 1;
363 }
364
365 if ( ok )
366 {
367 retval = type1->subrs_len[idx] + 1;
368 if ( value && value_len >= retval )
369 {
370 ft_memcpy( value, (void *)( type1->subrs[idx] ), retval - 1 );
371 ((FT_Char *)value)[retval - 1] = (FT_Char)'\0';
372 }
373 }
374 }
375 break;
376
377 case PS_DICT_STD_HW:
378 retval = sizeof ( type1->private_dict.standard_width[0] );
379 if ( value && value_len >= retval )
380 *((FT_UShort *)value) = type1->private_dict.standard_width[0];
381 break;
382
383 case PS_DICT_STD_VW:
384 retval = sizeof ( type1->private_dict.standard_height[0] );
385 if ( value && value_len >= retval )
387 break;
388
390 retval = sizeof ( type1->private_dict.num_blue_values );
391 if ( value && value_len >= retval )
393 break;
394
396 if ( idx < type1->private_dict.num_blue_values )
397 {
398 retval = sizeof ( type1->private_dict.blue_values[idx] );
399 if ( value && value_len >= retval )
400 *((FT_Short *)value) = type1->private_dict.blue_values[idx];
401 }
402 break;
403
405 retval = sizeof ( type1->private_dict.blue_scale );
406 if ( value && value_len >= retval )
407 *((FT_Fixed *)value) = type1->private_dict.blue_scale;
408 break;
409
411 retval = sizeof ( type1->private_dict.blue_fuzz );
412 if ( value && value_len >= retval )
413 *((FT_Int *)value) = type1->private_dict.blue_fuzz;
414 break;
415
417 retval = sizeof ( type1->private_dict.blue_shift );
418 if ( value && value_len >= retval )
419 *((FT_Int *)value) = type1->private_dict.blue_shift;
420 break;
421
423 retval = sizeof ( type1->private_dict.num_other_blues );
424 if ( value && value_len >= retval )
426 break;
427
429 if ( idx < type1->private_dict.num_other_blues )
430 {
431 retval = sizeof ( type1->private_dict.other_blues[idx] );
432 if ( value && value_len >= retval )
433 *((FT_Short *)value) = type1->private_dict.other_blues[idx];
434 }
435 break;
436
438 retval = sizeof ( type1->private_dict.num_family_blues );
439 if ( value && value_len >= retval )
441 break;
442
444 if ( idx < type1->private_dict.num_family_blues )
445 {
446 retval = sizeof ( type1->private_dict.family_blues[idx] );
447 if ( value && value_len >= retval )
449 }
450 break;
451
453 retval = sizeof ( type1->private_dict.num_family_other_blues );
454 if ( value && value_len >= retval )
456 break;
457
459 if ( idx < type1->private_dict.num_family_other_blues )
460 {
461 retval = sizeof ( type1->private_dict.family_other_blues[idx] );
462 if ( value && value_len >= retval )
464 }
465 break;
466
468 retval = sizeof ( type1->private_dict.num_snap_widths );
469 if ( value && value_len >= retval )
471 break;
472
474 if ( idx < type1->private_dict.num_snap_widths )
475 {
476 retval = sizeof ( type1->private_dict.snap_widths[idx] );
477 if ( value && value_len >= retval )
478 *((FT_Short *)value) = type1->private_dict.snap_widths[idx];
479 }
480 break;
481
483 retval = sizeof ( type1->private_dict.num_snap_heights );
484 if ( value && value_len >= retval )
486 break;
487
489 if ( idx < type1->private_dict.num_snap_heights )
490 {
491 retval = sizeof ( type1->private_dict.snap_heights[idx] );
492 if ( value && value_len >= retval )
494 }
495 break;
496
498 retval = sizeof ( type1->private_dict.round_stem_up );
499 if ( value && value_len >= retval )
501 break;
502
504 retval = sizeof ( type1->private_dict.force_bold );
505 if ( value && value_len >= retval )
506 *((FT_Bool *)value) = type1->private_dict.force_bold;
507 break;
508
510 if ( idx < sizeof ( type1->private_dict.min_feature ) /
511 sizeof ( type1->private_dict.min_feature[0] ) )
512 {
513 retval = sizeof ( type1->private_dict.min_feature[idx] );
514 if ( value && value_len >= retval )
515 *((FT_Short *)value) = type1->private_dict.min_feature[idx];
516 }
517 break;
518
519 case PS_DICT_LEN_IV:
520 retval = sizeof ( type1->private_dict.lenIV );
521 if ( value && value_len >= retval )
522 *((FT_Int *)value) = type1->private_dict.lenIV;
523 break;
524
525 case PS_DICT_PASSWORD:
526 retval = sizeof ( type1->private_dict.password );
527 if ( value && value_len >= retval )
528 *((FT_Long *)value) = type1->private_dict.password;
529 break;
530
532 retval = sizeof ( type1->private_dict.language_group );
533 if ( value && value_len >= retval )
535 break;
536
538 retval = sizeof ( type1->font_info.is_fixed_pitch );
539 if ( value && value_len >= retval )
540 *((FT_Bool *)value) = type1->font_info.is_fixed_pitch;
541 break;
542
544 retval = sizeof ( type1->font_info.underline_position );
545 if ( value && value_len >= retval )
546 *((FT_Short *)value) = type1->font_info.underline_position;
547 break;
548
550 retval = sizeof ( type1->font_info.underline_thickness );
551 if ( value && value_len >= retval )
552 *((FT_UShort *)value) = type1->font_info.underline_thickness;
553 break;
554
555 case PS_DICT_FS_TYPE:
556 retval = sizeof ( type1->font_extra.fs_type );
557 if ( value && value_len >= retval )
558 *((FT_UShort *)value) = type1->font_extra.fs_type;
559 break;
560
561 case PS_DICT_VERSION:
562 retval = ft_strlen( type1->font_info.version ) + 1;
563 if ( value && value_len >= retval )
564 ft_memcpy( value, (void *)( type1->font_info.version ), retval );
565 break;
566
567 case PS_DICT_NOTICE:
568 retval = ft_strlen( type1->font_info.notice ) + 1;
569 if ( value && value_len >= retval )
570 ft_memcpy( value, (void *)( type1->font_info.notice ), retval );
571 break;
572
574 retval = ft_strlen( type1->font_info.full_name ) + 1;
575 if ( value && value_len >= retval )
576 ft_memcpy( value, (void *)( type1->font_info.full_name ), retval );
577 break;
578
580 retval = ft_strlen( type1->font_info.family_name ) + 1;
581 if ( value && value_len >= retval )
582 ft_memcpy( value, (void *)( type1->font_info.family_name ), retval );
583 break;
584
585 case PS_DICT_WEIGHT:
586 retval = ft_strlen( type1->font_info.weight ) + 1;
587 if ( value && value_len >= retval )
588 ft_memcpy( value, (void *)( type1->font_info.weight ), retval );
589 break;
590
592 retval = sizeof ( type1->font_info.italic_angle );
593 if ( value && value_len >= retval )
594 *((FT_Long *)value) = type1->font_info.italic_angle;
595 break;
596 }
597
598 return retval == 0 ? -1 : (FT_Long)retval;
599 }
#define ok(value,...)
Definition: atltest.h:57
unsigned int idx
Definition: utils.c:41
size_t * ft_hash_num_lookup(FT_Int num, FT_Hash hash)
Definition: fthash.c:327
#define ft_memcpy
Definition: ftstdlib.h:82
#define ft_strlen
Definition: ftstdlib.h:88
signed char FT_Char
Definition: fttypes.h:143
FT_BEGIN_HEADER typedef unsigned char FT_Bool
Definition: fttypes.h:108
unsigned long FT_ULong
Definition: fttypes.h:253
unsigned char FT_Byte
Definition: fttypes.h:154
signed long FT_Fixed
Definition: fttypes.h:288
signed long FT_Long
Definition: fttypes.h:242
unsigned short FT_UShort
Definition: fttypes.h:209
signed short FT_Short
Definition: fttypes.h:198
GLuint GLfloat * val
Definition: glext.h:7180
FT_Pos xMin
Definition: ftimage.h:117
FT_Pos yMax
Definition: ftimage.h:118
FT_Pos yMin
Definition: ftimage.h:117
FT_Pos xMax
Definition: ftimage.h:118
FT_Fixed xx
Definition: fttypes.h:387
FT_Fixed yx
Definition: fttypes.h:388
FT_Fixed yy
Definition: fttypes.h:388
FT_Fixed xy
Definition: fttypes.h:387
FT_UShort fs_type
Definition: t1types.h:89
FT_Byte num_snap_widths
Definition: t1tables.h:161
FT_Byte num_other_blues
Definition: t1tables.h:144
FT_UShort standard_width[1]
Definition: t1tables.h:158
FT_Byte num_family_blues
Definition: t1tables.h:145
FT_Int blue_fuzz
Definition: t1tables.h:156
FT_Long password
Definition: t1tables.h:172
FT_Short snap_heights[13]
Definition: t1tables.h:167
FT_Short snap_widths[13]
Definition: t1tables.h:166
FT_Bool force_bold
Definition: t1tables.h:163
FT_Byte num_snap_heights
Definition: t1tables.h:162
FT_Short other_blues[10]
Definition: t1tables.h:149
FT_Byte num_family_other_blues
Definition: t1tables.h:146
FT_Int lenIV
Definition: t1tables.h:141
FT_UShort standard_height[1]
Definition: t1tables.h:159
FT_Bool round_stem_up
Definition: t1tables.h:164
FT_Short family_blues[14]
Definition: t1tables.h:151
FT_Int blue_shift
Definition: t1tables.h:155
FT_Short family_other_blues[10]
Definition: t1tables.h:152
FT_Short blue_values[14]
Definition: t1tables.h:148
FT_Byte num_blue_values
Definition: t1tables.h:143
FT_Int unique_id
Definition: t1tables.h:140
FT_Fixed blue_scale
Definition: t1tables.h:154
FT_Short min_feature[2]
Definition: t1tables.h:174
FT_Long language_group
Definition: t1tables.h:171
T1_FontRec type1
Definition: t1types.h:203
PS_PrivateRec private_dict
Definition: t1types.h:98
T1_EncodingType encoding_type
Definition: t1types.h:101
PS_FontInfoRec font_info
Definition: t1types.h:96
FT_Byte ** subrs
Definition: t1types.h:109
FT_Int num_glyphs
Definition: t1types.h:113
FT_UInt * charstrings_len
Definition: t1types.h:116
FT_String ** glyph_names
Definition: t1types.h:114
T1_EncodingRec encoding
Definition: t1types.h:102
FT_Byte paint_type
Definition: t1types.h:118
FT_BBox font_bbox
Definition: t1types.h:122
FT_String * font_name
Definition: t1types.h:99
FT_Matrix font_matrix
Definition: t1types.h:120
FT_Int num_subrs
Definition: t1types.h:108
PS_FontExtraRec font_extra
Definition: t1types.h:97
FT_Hash subrs_hash
Definition: t1types.h:111
FT_Byte font_type
Definition: t1types.h:119
FT_Byte ** charstrings
Definition: t1types.h:115
FT_UInt * subrs_len
Definition: t1types.h:110
Definition: copy.c:22
@ T1_ENCODING_TYPE_ARRAY
Definition: t1tables.h:563
@ PS_DICT_ITALIC_ANGLE
Definition: t1tables.h:683
@ PS_DICT_FONT_BBOX
Definition: t1tables.h:636
@ PS_DICT_NUM_BLUE_VALUES
Definition: t1tables.h:651
@ PS_DICT_WEIGHT
Definition: t1tables.h:678
@ PS_DICT_BLUE_SHIFT
Definition: t1tables.h:661
@ PS_DICT_FONT_NAME
Definition: t1tables.h:638
@ PS_DICT_NUM_STEM_SNAP_V
Definition: t1tables.h:664
@ PS_DICT_SUBR
Definition: t1tables.h:648
@ PS_DICT_PASSWORD
Definition: t1tables.h:670
@ PS_DICT_NUM_CHAR_STRINGS
Definition: t1tables.h:640
@ PS_DICT_STEM_SNAP_H
Definition: t1tables.h:663
@ PS_DICT_NUM_STEM_SNAP_H
Definition: t1tables.h:662
@ PS_DICT_BLUE_SCALE
Definition: t1tables.h:660
@ PS_DICT_ENCODING_ENTRY
Definition: t1tables.h:644
@ PS_DICT_FS_TYPE
Definition: t1tables.h:682
@ PS_DICT_FONT_MATRIX
Definition: t1tables.h:635
@ PS_DICT_NUM_FAMILY_OTHER_BLUES
Definition: t1tables.h:658
@ PS_DICT_IS_FIXED_PITCH
Definition: t1tables.h:679
@ PS_DICT_FAMILY_OTHER_BLUE
Definition: t1tables.h:659
@ PS_DICT_LANGUAGE_GROUP
Definition: t1tables.h:671
@ PS_DICT_NUM_SUBRS
Definition: t1tables.h:647
@ PS_DICT_FAMILY_NAME
Definition: t1tables.h:677
@ PS_DICT_LEN_IV
Definition: t1tables.h:669
@ PS_DICT_FONT_TYPE
Definition: t1tables.h:634
@ PS_DICT_FULL_NAME
Definition: t1tables.h:676
@ PS_DICT_STD_HW
Definition: t1tables.h:649
@ PS_DICT_NUM_FAMILY_BLUES
Definition: t1tables.h:656
@ PS_DICT_BLUE_VALUE
Definition: t1tables.h:652
@ PS_DICT_MIN_FEATURE
Definition: t1tables.h:668
@ PS_DICT_NOTICE
Definition: t1tables.h:675
@ PS_DICT_STEM_SNAP_V
Definition: t1tables.h:665
@ PS_DICT_NUM_OTHER_BLUES
Definition: t1tables.h:654
@ PS_DICT_STD_VW
Definition: t1tables.h:650
@ PS_DICT_ENCODING_TYPE
Definition: t1tables.h:643
@ PS_DICT_FORCE_BOLD
Definition: t1tables.h:666
@ PS_DICT_BLUE_FUZZ
Definition: t1tables.h:653
@ PS_DICT_CHAR_STRING_KEY
Definition: t1tables.h:641
@ PS_DICT_UNDERLINE_POSITION
Definition: t1tables.h:680
@ PS_DICT_UNDERLINE_THICKNESS
Definition: t1tables.h:681
@ PS_DICT_VERSION
Definition: t1tables.h:674
@ PS_DICT_RND_STEM_UP
Definition: t1tables.h:667
@ PS_DICT_CHAR_STRING
Definition: t1tables.h:642
@ PS_DICT_OTHER_BLUE
Definition: t1tables.h:655
@ PS_DICT_UNIQUE_ID
Definition: t1tables.h:639
@ PS_DICT_PAINT_TYPE
Definition: t1tables.h:637
@ PS_DICT_FAMILY_BLUE
Definition: t1tables.h:657
enum T1_EncodingType_ T1_EncodingType
Definition: pdh_main.c:94

◆ t1_ps_has_glyph_names()

static FT_Int t1_ps_has_glyph_names ( FT_Face  face)
static

Definition at line 166 of file t1driver.c.

167 {
168 FT_UNUSED( face );
169
170 return 1;
171 }

Variable Documentation

◆ t1_driver_class

Definition at line 726 of file t1driver.c.

◆ t1_service_glyph_dict

const FT_Service_GlyphDictRec t1_service_glyph_dict
static
Initial value:
=
{
}
FT_UInt(* FT_GlyphDict_NameIndexFunc)(FT_Face face, FT_String *glyph_name)
Definition: svgldict.h:44
FT_Error(* FT_GlyphDict_GetNameFunc)(FT_Face face, FT_UInt glyph_index, FT_Pointer buffer, FT_UInt buffer_max)
Definition: svgldict.h:38
static FT_Error t1_get_glyph_name(T1_Face face, FT_UInt glyph_index, FT_Pointer buffer, FT_UInt buffer_max)
Definition: t1driver.c:61
static FT_UInt t1_get_name_index(T1_Face face, FT_String *glyph_name)
Definition: t1driver.c:73

Definition at line 92 of file t1driver.c.

Referenced by FT_DEFINE_SERVICE_PROPERTIESREC().

◆ t1_service_kerning

const FT_Service_KerningRec t1_service_kerning
static
Initial value:
=
{
}
T1_Get_Track_Kerning(FT_Face face, FT_Fixed ptsize, FT_Int degree, FT_Fixed *kerning)
Definition: t1afm.c:371

Definition at line 613 of file t1driver.c.

Referenced by FT_DEFINE_SERVICE_PROPERTIESREC().

◆ t1_service_multi_masters

const FT_Service_MultiMastersRec t1_service_multi_masters
static
Initial value:
=
{
}
#define NULL
Definition: types.h:112
FT_Error(* FT_Set_Instance_Func)(FT_Face face, FT_UInt instance_index)
Definition: svmm.h:71
FT_Error(* FT_Set_MM_Blend_Func)(FT_Face face, FT_UInt num_coords, FT_Long *coords)
Definition: svmm.h:61
FT_Error(* FT_Get_MM_Func)(FT_Face face, FT_Multi_Master *master)
Definition: svmm.h:39
FT_Error(* FT_Set_MM_Design_Func)(FT_Face face, FT_UInt num_coords, FT_Long *coords)
Definition: svmm.h:47
FT_Error(* FT_Get_MM_Var_Func)(FT_Face face, FT_MM_Var **master)
Definition: svmm.h:43
FT_Error(* FT_Get_MM_Blend_Func)(FT_Face face, FT_UInt num_coords, FT_Long *coords)
Definition: svmm.h:75
void(* FT_Done_Blend_Func)(FT_Face)
Definition: svmm.h:87
FT_Error(* FT_Get_Var_Blend_Func)(FT_Face face, FT_UInt *num_coords, FT_Fixed **coords, FT_Fixed **normalizedcoords, FT_MM_Var **mm_var)
Definition: svmm.h:80
FT_Error(* FT_Get_Var_Design_Func)(FT_Face face, FT_UInt num_coords, FT_Fixed *coords)
Definition: svmm.h:66
FT_Error(* FT_Set_Var_Design_Func)(FT_Face face, FT_UInt num_coords, FT_Fixed *coords)
Definition: svmm.h:54
T1_Reset_MM_Blend(T1_Face face, FT_UInt instance_index)
Definition: t1load.c:567
T1_Get_Var_Design(T1_Face face, FT_UInt num_coords, FT_Fixed *coords)
Definition: t1load.c:601
T1_Get_MM_Blend(T1_Face face, FT_UInt num_coords, FT_Fixed *coords)
Definition: t1load.c:445
T1_Set_Var_Design(T1_Face face, FT_UInt num_coords, FT_Fixed *coords)
Definition: t1load.c:582
T1_Set_MM_Blend(T1_Face face, FT_UInt num_coords, FT_Fixed *coords)
Definition: t1load.c:424
T1_Done_Blend(T1_Face face)
Definition: t1load.c:637
T1_Set_MM_Design(T1_Face face, FT_UInt num_coords, FT_Long *coords)
Definition: t1load.c:480
T1_Get_MM_Var(T1_Face face, FT_MM_Var **master)
Definition: t1load.c:302
T1_Get_Multi_Master(T1_Face face, FT_Multi_Master *master)
Definition: t1load.c:192

Definition at line 123 of file t1driver.c.

Referenced by FT_DEFINE_SERVICE_PROPERTIESREC().

◆ t1_service_ps_info

const FT_Service_PsInfoRec t1_service_ps_info
static
Initial value:
=
{
}
FT_Long(* PS_GetFontValueFunc)(FT_Face face, PS_Dict_Keys key, FT_UInt idx, void *value, FT_Long value_len)
Definition: svpsinfo.h:48
FT_Error(* PS_GetFontInfoFunc)(FT_Face face, PS_FontInfoRec *afont_info)
Definition: svpsinfo.h:33
FT_Int(* PS_HasGlyphNamesFunc)(FT_Face face)
Definition: svpsinfo.h:41
FT_Error(* PS_GetFontExtraFunc)(FT_Face face, PS_FontExtraRec *afont_extra)
Definition: svpsinfo.h:37
FT_Error(* PS_GetFontPrivateFunc)(FT_Face face, PS_PrivateRec *afont_private)
Definition: svpsinfo.h:44
static FT_Error t1_ps_get_font_private(FT_Face face, PS_PrivateRec *afont_private)
Definition: t1driver.c:175
static FT_Int t1_ps_has_glyph_names(FT_Face face)
Definition: t1driver.c:166
static FT_Error t1_ps_get_font_extra(FT_Face face, PS_FontExtraRec *afont_extra)
Definition: t1driver.c:156
static FT_Long t1_ps_get_font_value(FT_Face face, PS_Dict_Keys key, FT_UInt idx, void *value, FT_Long value_len_)
Definition: t1driver.c:185
static FT_Error t1_ps_get_font_info(FT_Face face, PS_FontInfoRec *afont_info)
Definition: t1driver.c:146

Definition at line 602 of file t1driver.c.

Referenced by FT_DEFINE_SERVICE_PROPERTIESREC().

◆ t1_service_ps_name

const FT_Service_PsFontNameRec t1_service_ps_name
static
Initial value:
=
{
}
const char *(* FT_PsName_GetFunc)(FT_Face face)
Definition: svpostnm.h:41
static const char * t1_get_ps_name(T1_Face face)
Definition: t1driver.c:105

Definition at line 111 of file t1driver.c.

Referenced by FT_DEFINE_SERVICE_PROPERTIESREC().