ReactOS  0.4.13-dev-698-g77671f0
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  }
ft_service_list_lookup(FT_ServiceDesc service_descriptors, const char *service_id)
Definition: ftobjs.c:98
#define FT_UNUSED(arg)
Definition: ftconfig.h:101

◆ 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,
714  left_glyph,
715  right_glyph,
716  kerning );
717 
718  return FT_Err_Ok;
719  }
FT_Pos y
Definition: ftimage.h:77
struct T1_FaceRec_ * T1_Face
Definition: t1types.h:196
FT_UInt FT_UInt right_glyph
Definition: ttdriver.c:201
FT_Pos x
Definition: ftimage.h:76
return FT_Err_Ok
Definition: ftbbox.c:511
FT_UInt left_glyph
Definition: ttdriver.c:201
T1_Get_Kerning(AFM_FontInfo fi, FT_UInt glyph1, FT_UInt glyph2, FT_Vector *kerning)
Definition: t1afm.c:330
FT_UInt FT_UInt FT_Vector * kerning
Definition: ttdriver.c:204
GLenum GLuint GLint GLenum face
Definition: glext.h:7025

◆ 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  }
GLuint buffer
Definition: glext.h:5915
return FT_Err_Ok
Definition: ftbbox.c:511
#define FT_STRCPYN(dst, src, size)
Definition: ftmemory.h:382
GLenum GLuint GLint GLenum face
Definition: glext.h:7025

◆ 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  }
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
char FT_String
Definition: fttypes.h:187
unsigned int FT_UInt
Definition: fttypes.h:231
GLenum GLuint GLint GLenum face
Definition: glext.h:7025
#define ft_strcmp
Definition: ftstdlib.h:86

◆ 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  }
GLenum GLuint GLint GLenum face
Definition: glext.h:7025

◆ 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  }
struct T1_FaceRec_ * T1_Face
Definition: t1types.h:196
return FT_Err_Ok
Definition: ftbbox.c:511
GLenum GLuint GLint GLenum face
Definition: glext.h:7025

◆ 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  }
struct T1_FaceRec_ * T1_Face
Definition: t1types.h:196
return FT_Err_Ok
Definition: ftbbox.c:511
GLenum GLuint GLint GLenum face
Definition: glext.h:7025

◆ 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  }
struct T1_FaceRec_ * T1_Face
Definition: t1types.h:196
return FT_Err_Ok
Definition: ftbbox.c:511
GLenum GLuint GLint GLenum face
Definition: glext.h:7025

◆ 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  {
200  case PS_DICT_FONT_TYPE:
201  retval = sizeof ( type1->font_type );
202  if ( value && value_len >= retval )
203  *((FT_Byte *)value) = type1->font_type;
204  break;
205 
206  case PS_DICT_FONT_MATRIX:
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 
236  case PS_DICT_FONT_BBOX:
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 
266  case PS_DICT_PAINT_TYPE:
267  retval = sizeof ( type1->paint_type );
268  if ( value && value_len >= retval )
269  *((FT_Byte *)value) = type1->paint_type;
270  break;
271 
272  case PS_DICT_FONT_NAME:
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 
278  case PS_DICT_UNIQUE_ID:
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 
302  case PS_DICT_CHAR_STRING:
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 
335  case PS_DICT_NUM_SUBRS:
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 )
386  *((FT_UShort *)value) = type1->private_dict.standard_height[0];
387  break;
388 
390  retval = sizeof ( type1->private_dict.num_blue_values );
391  if ( value && value_len >= retval )
392  *((FT_Byte *)value) = type1->private_dict.num_blue_values;
393  break;
394 
395  case PS_DICT_BLUE_VALUE:
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 
404  case PS_DICT_BLUE_SCALE:
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 
410  case PS_DICT_BLUE_FUZZ:
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 
416  case PS_DICT_BLUE_SHIFT:
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 )
425  *((FT_Byte *)value) = type1->private_dict.num_other_blues;
426  break;
427 
428  case PS_DICT_OTHER_BLUE:
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 
443  case PS_DICT_FAMILY_BLUE:
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 )
448  *((FT_Short *)value) = type1->private_dict.family_blues[idx];
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 )
470  *((FT_Byte *)value) = type1->private_dict.num_snap_widths;
471  break;
472 
473  case PS_DICT_STEM_SNAP_H:
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 
488  case PS_DICT_STEM_SNAP_V:
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 )
493  *((FT_Short *)value) = type1->private_dict.snap_heights[idx];
494  }
495  break;
496 
497  case PS_DICT_RND_STEM_UP:
498  retval = sizeof ( type1->private_dict.round_stem_up );
499  if ( value && value_len >= retval )
500  *((FT_Bool *)value) = type1->private_dict.round_stem_up;
501  break;
502 
503  case PS_DICT_FORCE_BOLD:
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 
509  case PS_DICT_MIN_FEATURE:
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 )
534  *((FT_Long *)value) = type1->private_dict.language_group;
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 
573  case PS_DICT_FULL_NAME:
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 
579  case PS_DICT_FAMILY_NAME:
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  }
PS_PrivateRec private_dict
Definition: t1types.h:98
T1_EncodingType encoding_type
Definition: t1types.h:101
signed long FT_Long
Definition: fttypes.h:242
unsigned long FT_ULong
Definition: fttypes.h:253
struct T1_FaceRec_ * T1_Face
Definition: t1types.h:196
FT_UInt * subrs_len
Definition: t1types.h:110
FT_Long language_group
Definition: t1tables.h:171
signed int FT_Int
Definition: fttypes.h:220
FT_Matrix font_matrix
Definition: t1types.h:120
FT_String ** glyph_names
Definition: t1types.h:114
FT_Byte num_family_other_blues
Definition: t1tables.h:146
FT_Int blue_fuzz
Definition: t1tables.h:156
FT_Byte paint_type
Definition: t1types.h:118
FT_Byte num_blue_values
Definition: t1tables.h:143
signed char FT_Char
Definition: fttypes.h:143
size_t * ft_hash_num_lookup(FT_Int num, FT_Hash hash)
Definition: fthash.c:327
FT_BBox font_bbox
Definition: t1types.h:122
FT_Byte ** subrs
Definition: t1types.h:109
FT_Int lenIV
Definition: t1tables.h:141
FT_UShort fs_type
Definition: t1types.h:89
FT_UInt * charstrings_len
Definition: t1types.h:116
FT_Byte num_other_blues
Definition: t1tables.h:144
FT_BEGIN_HEADER typedef unsigned char FT_Bool
Definition: fttypes.h:108
FT_Int num_glyphs
Definition: t1types.h:113
FT_Short blue_values[14]
Definition: t1tables.h:148
FT_Fixed xx
Definition: fttypes.h:387
FT_Fixed blue_scale
Definition: t1tables.h:154
unsigned char FT_Byte
Definition: fttypes.h:154
#define ok(value,...)
unsigned int idx
Definition: utils.c:41
FT_Short other_blues[10]
Definition: t1tables.h:149
FT_UShort standard_height[1]
Definition: t1tables.h:159
FT_Pos yMax
Definition: ftimage.h:118
FT_Short snap_widths[13]
Definition: t1tables.h:166
GLuint GLfloat * val
Definition: glext.h:7180
FT_Byte font_type
Definition: t1types.h:119
FT_UShort standard_width[1]
Definition: t1tables.h:158
FT_Pos xMin
Definition: ftimage.h:117
PS_FontInfoRec font_info
Definition: t1types.h:96
FT_Pos xMax
Definition: ftimage.h:118
enum T1_EncodingType_ T1_EncodingType
FT_Int unique_id
Definition: t1tables.h:140
PS_FontExtraRec font_extra
Definition: t1types.h:97
signed short FT_Short
Definition: fttypes.h:198
FT_Byte num_family_blues
Definition: t1tables.h:145
FT_Short family_other_blues[10]
Definition: t1tables.h:152
FT_Hash subrs_hash
Definition: t1types.h:111
FT_Byte ** charstrings
Definition: t1types.h:115
FT_Byte num_snap_widths
Definition: t1tables.h:161
signed long FT_Fixed
Definition: fttypes.h:288
T1_EncodingRec encoding
Definition: t1types.h:102
unsigned int FT_UInt
Definition: fttypes.h:231
FT_Int num_subrs
Definition: t1types.h:108
FT_Byte num_snap_heights
Definition: t1tables.h:162
FT_Fixed xy
Definition: fttypes.h:387
FT_Pos yMin
Definition: ftimage.h:117
FT_Int blue_shift
Definition: t1tables.h:155
FT_Short min_feature[2]
Definition: t1tables.h:174
FT_Short snap_heights[13]
Definition: t1tables.h:167
FT_Long password
Definition: t1tables.h:172
T1_FontRec type1
Definition: t1types.h:203
FT_Fixed yx
Definition: fttypes.h:388
FT_Fixed yy
Definition: fttypes.h:388
unsigned short FT_UShort
Definition: fttypes.h:209
#define ft_memcpy
Definition: ftstdlib.h:82
FT_Bool round_stem_up
Definition: t1tables.h:164
#define ft_strlen
Definition: ftstdlib.h:88
FT_Bool force_bold
Definition: t1tables.h:163
FT_String * font_name
Definition: t1types.h:99
FT_Short family_blues[14]
Definition: t1tables.h:151
GLenum GLuint GLint GLenum face
Definition: glext.h:7025
Definition: path.c:42

◆ 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  }
#define FT_UNUSED(arg)
Definition: ftconfig.h:101
GLenum GLuint GLint GLenum face
Definition: glext.h:7025

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
static FT_UInt t1_get_name_index(T1_Face face, FT_String *glyph_name)
Definition: t1driver.c:73
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

Definition at line 92 of file t1driver.c.

◆ 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.

◆ t1_service_multi_masters

const FT_Service_MultiMastersRec t1_service_multi_masters
static
Initial value:
=
{
}
FT_Error(* FT_Set_MM_Design_Func)(FT_Face face, FT_UInt num_coords, FT_Long *coords)
Definition: svmm.h:47
T1_Set_MM_Blend(T1_Face face, FT_UInt num_coords, FT_Fixed *coords)
Definition: t1load.c:424
T1_Set_Var_Design(T1_Face face, FT_UInt num_coords, FT_Fixed *coords)
Definition: t1load.c:582
void(* FT_Done_Blend_Func)(FT_Face)
Definition: svmm.h:87
T1_Get_MM_Blend(T1_Face face, FT_UInt num_coords, FT_Fixed *coords)
Definition: t1load.c:445
T1_Set_MM_Design(T1_Face face, FT_UInt num_coords, FT_Long *coords)
Definition: t1load.c:480
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
smooth NULL
Definition: ftsmooth.c:416
FT_Error(* FT_Set_Instance_Func)(FT_Face face, FT_UInt instance_index)
Definition: svmm.h:71
FT_Error(* FT_Set_Var_Design_Func)(FT_Face face, FT_UInt num_coords, FT_Fixed *coords)
Definition: svmm.h:54
FT_Error(* FT_Set_MM_Blend_Func)(FT_Face face, FT_UInt num_coords, FT_Long *coords)
Definition: svmm.h:61
T1_Done_Blend(T1_Face face)
Definition: t1load.c:637
T1_Reset_MM_Blend(T1_Face face, FT_UInt instance_index)
Definition: t1load.c:567
T1_Get_MM_Var(T1_Face face, FT_MM_Var **master)
Definition: t1load.c:302
FT_Error(* FT_Get_MM_Func)(FT_Face face, FT_Multi_Master *master)
Definition: svmm.h:39
T1_Get_Var_Design(T1_Face face, FT_UInt num_coords, FT_Fixed *coords)
Definition: t1load.c:601
T1_Get_Multi_Master(T1_Face face, FT_Multi_Master *master)
Definition: t1load.c:192
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
FT_Error(* FT_Get_Var_Design_Func)(FT_Face face, FT_UInt num_coords, FT_Fixed *coords)
Definition: svmm.h:66

Definition at line 123 of file t1driver.c.

◆ t1_service_ps_info

const FT_Service_PsInfoRec t1_service_ps_info
static
Initial 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_)
Definition: t1driver.c:185
static FT_Error t1_ps_get_font_extra(FT_Face face, PS_FontExtraRec *afont_extra)
Definition: t1driver.c:156
FT_Long(* PS_GetFontValueFunc)(FT_Face face, PS_Dict_Keys key, FT_UInt idx, void *value, FT_Long value_len)
Definition: svpsinfo.h:48
static FT_Int t1_ps_has_glyph_names(FT_Face face)
Definition: t1driver.c:166
static FT_Error t1_ps_get_font_info(FT_Face face, PS_FontInfoRec *afont_info)
Definition: t1driver.c:146
FT_Error(* PS_GetFontExtraFunc)(FT_Face face, PS_FontExtraRec *afont_extra)
Definition: svpsinfo.h:37
static FT_Error t1_ps_get_font_private(FT_Face face, PS_PrivateRec *afont_private)
Definition: t1driver.c:175
FT_Int(* PS_HasGlyphNamesFunc)(FT_Face face)
Definition: svpsinfo.h:41
FT_Error(* PS_GetFontPrivateFunc)(FT_Face face, PS_PrivateRec *afont_private)
Definition: svpsinfo.h:44
FT_Error(* PS_GetFontInfoFunc)(FT_Face face, PS_FontInfoRec *afont_info)
Definition: svpsinfo.h:33

Definition at line 602 of file t1driver.c.

◆ 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.