ReactOS  0.4.14-dev-342-gdc047f9
afmodule.c
Go to the documentation of this file.
1 /***************************************************************************/
2 /* */
3 /* afmodule.c */
4 /* */
5 /* Auto-fitter module implementation (body). */
6 /* */
7 /* Copyright 2003-2018 by */
8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */
9 /* */
10 /* This file is part of the FreeType project, and may only be used, */
11 /* modified, and distributed under the terms of the FreeType project */
12 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */
13 /* this file you indicate that you have read the license and */
14 /* understand and accept it fully. */
15 /* */
16 /***************************************************************************/
17 
18 
19 #include "afglobal.h"
20 #include "afmodule.h"
21 #include "afloader.h"
22 #include "aferrors.h"
23 #include "afpic.h"
24 
25 #ifdef FT_DEBUG_AUTOFIT
26 
27 #ifndef FT_MAKE_OPTION_SINGLE_OBJECT
28 
29 #ifdef __cplusplus
30  extern "C" {
31 #endif
32  extern void
33  af_glyph_hints_dump_segments( AF_GlyphHints hints,
34  FT_Bool to_stdout );
35  extern void
36  af_glyph_hints_dump_points( AF_GlyphHints hints,
37  FT_Bool to_stdout );
38  extern void
39  af_glyph_hints_dump_edges( AF_GlyphHints hints,
40  FT_Bool to_stdout );
41 #ifdef __cplusplus
42  }
43 #endif
44 
45 #endif
46 
47  int _af_debug_disable_horz_hints;
48  int _af_debug_disable_vert_hints;
49  int _af_debug_disable_blue_hints;
50 
51  /* we use a global object instead of a local one for debugging */
52  AF_GlyphHintsRec _af_debug_hints_rec[1];
53 
54  void* _af_debug_hints = _af_debug_hints_rec;
55 #endif
56 
57 #include FT_INTERNAL_OBJECTS_H
58 #include FT_INTERNAL_DEBUG_H
59 #include FT_DRIVER_H
60 #include FT_SERVICE_PROPERTIES_H
61 
62 
63  /*************************************************************************/
64  /* */
65  /* The macro FT_COMPONENT is used in trace mode. It is an implicit */
66  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log */
67  /* messages during execution. */
68  /* */
69 #undef FT_COMPONENT
70 #define FT_COMPONENT trace_afmodule
71 
72 
73  static FT_Error
75  AF_FaceGlobals* aglobals,
77  {
79  AF_FaceGlobals globals;
80 
81 
82  if ( !face )
83  return FT_THROW( Invalid_Face_Handle );
84 
85  globals = (AF_FaceGlobals)face->autohint.data;
86  if ( !globals )
87  {
88  /* trigger computation of the global style data */
89  /* in case it hasn't been done yet */
90  error = af_face_globals_new( face, &globals, module );
91  if ( !error )
92  {
93  face->autohint.data =
94  (FT_Pointer)globals;
95  face->autohint.finalizer =
97  }
98  }
99 
100  if ( !error )
101  *aglobals = globals;
102 
103  return error;
104  }
105 
106 
107 #ifdef FT_CONFIG_OPTION_PIC
108 
109 #undef AF_SCRIPT_CLASSES_GET
110 #define AF_SCRIPT_CLASSES_GET \
111  ( GET_PIC( ft_module->library )->af_script_classes )
112 
113 #undef AF_STYLE_CLASSES_GET
114 #define AF_STYLE_CLASSES_GET \
115  ( GET_PIC( ft_module->library )->af_style_classes )
116 
117 #endif
118 
119 
120  static FT_Error
122  const char* property_name,
123  const void* value,
124  FT_Bool value_is_string )
125  {
127  AF_Module module = (AF_Module)ft_module;
128 
129 #ifndef FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
130  FT_UNUSED( value_is_string );
131 #endif
132 
133 
134  if ( !ft_strcmp( property_name, "fallback-script" ) )
135  {
136  FT_UInt* fallback_script;
137  FT_UInt ss;
138 
139 
140 #ifdef FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
141  if ( value_is_string )
142  return FT_THROW( Invalid_Argument );
143 #endif
144 
145  fallback_script = (FT_UInt*)value;
146 
147  /* We translate the fallback script to a fallback style that uses */
148  /* `fallback-script' as its script and `AF_COVERAGE_NONE' as its */
149  /* coverage value. */
150  for ( ss = 0; AF_STYLE_CLASSES_GET[ss]; ss++ )
151  {
152  AF_StyleClass style_class = AF_STYLE_CLASSES_GET[ss];
153 
154 
155  if ( (FT_UInt)style_class->script == *fallback_script &&
156  style_class->coverage == AF_COVERAGE_DEFAULT )
157  {
158  module->fallback_style = ss;
159  break;
160  }
161  }
162 
163  if ( !AF_STYLE_CLASSES_GET[ss] )
164  {
165  FT_TRACE0(( "af_property_set: Invalid value %d for property `%s'\n",
166  fallback_script, property_name ));
167  return FT_THROW( Invalid_Argument );
168  }
169 
170  return error;
171  }
172  else if ( !ft_strcmp( property_name, "default-script" ) )
173  {
174  FT_UInt* default_script;
175 
176 
177 #ifdef FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
178  if ( value_is_string )
179  return FT_THROW( Invalid_Argument );
180 #endif
181 
182  default_script = (FT_UInt*)value;
183 
184  module->default_script = *default_script;
185 
186  return error;
187  }
188  else if ( !ft_strcmp( property_name, "increase-x-height" ) )
189  {
191  AF_FaceGlobals globals;
192 
193 
194 #ifdef FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
195  if ( value_is_string )
196  return FT_THROW( Invalid_Argument );
197 #endif
198 
200 
201  error = af_property_get_face_globals( prop->face, &globals, module );
202  if ( !error )
203  globals->increase_x_height = prop->limit;
204 
205  return error;
206  }
207 #ifdef AF_CONFIG_OPTION_USE_WARPER
208  else if ( !ft_strcmp( property_name, "warping" ) )
209  {
210 #ifdef FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
211  if ( value_is_string )
212  {
213  const char* s = (const char*)value;
214  long w = ft_strtol( s, NULL, 10 );
215 
216 
217  if ( w == 0 )
218  module->warping = 0;
219  else if ( w == 1 )
220  module->warping = 1;
221  else
222  return FT_THROW( Invalid_Argument );
223  }
224  else
225 #endif
226  {
227  FT_Bool* warping = (FT_Bool*)value;
228 
229 
230  module->warping = *warping;
231  }
232 
233  return error;
234  }
235 #endif /* AF_CONFIG_OPTION_USE_WARPER */
236  else if ( !ft_strcmp( property_name, "darkening-parameters" ) )
237  {
238  FT_Int* darken_params;
239  FT_Int x1, y1, x2, y2, x3, y3, x4, y4;
240 
241 #ifdef FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
242  FT_Int dp[8];
243 
244 
245  if ( value_is_string )
246  {
247  const char* s = (const char*)value;
248  char* ep;
249  int i;
250 
251 
252  /* eight comma-separated numbers */
253  for ( i = 0; i < 7; i++ )
254  {
255  dp[i] = (FT_Int)ft_strtol( s, &ep, 10 );
256  if ( *ep != ',' || s == ep )
257  return FT_THROW( Invalid_Argument );
258 
259  s = ep + 1;
260  }
261 
262  dp[7] = (FT_Int)ft_strtol( s, &ep, 10 );
263  if ( !( *ep == '\0' || *ep == ' ' ) || s == ep )
264  return FT_THROW( Invalid_Argument );
265 
266  darken_params = dp;
267  }
268  else
269 #endif
270  darken_params = (FT_Int*)value;
271 
272  x1 = darken_params[0];
273  y1 = darken_params[1];
274  x2 = darken_params[2];
275  y2 = darken_params[3];
276  x3 = darken_params[4];
277  y3 = darken_params[5];
278  x4 = darken_params[6];
279  y4 = darken_params[7];
280 
281  if ( x1 < 0 || x2 < 0 || x3 < 0 || x4 < 0 ||
282  y1 < 0 || y2 < 0 || y3 < 0 || y4 < 0 ||
283  x1 > x2 || x2 > x3 || x3 > x4 ||
284  y1 > 500 || y2 > 500 || y3 > 500 || y4 > 500 )
285  return FT_THROW( Invalid_Argument );
286 
287  module->darken_params[0] = x1;
288  module->darken_params[1] = y1;
289  module->darken_params[2] = x2;
290  module->darken_params[3] = y2;
291  module->darken_params[4] = x3;
292  module->darken_params[5] = y3;
293  module->darken_params[6] = x4;
294  module->darken_params[7] = y4;
295 
296  return error;
297  }
298  else if ( !ft_strcmp( property_name, "no-stem-darkening" ) )
299  {
300 #ifdef FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
301  if ( value_is_string )
302  {
303  const char* s = (const char*)value;
304  long nsd = ft_strtol( s, NULL, 10 );
305 
306 
307  if ( !nsd )
308  module->no_stem_darkening = FALSE;
309  else
310  module->no_stem_darkening = TRUE;
311  }
312  else
313 #endif
314  {
315  FT_Bool* no_stem_darkening = (FT_Bool*)value;
316 
317 
318  module->no_stem_darkening = *no_stem_darkening;
319  }
320 
321  return error;
322  }
323 
324  FT_TRACE0(( "af_property_set: missing property `%s'\n",
325  property_name ));
326  return FT_THROW( Missing_Property );
327  }
328 
329 
330  static FT_Error
332  const char* property_name,
333  void* value )
334  {
336  AF_Module module = (AF_Module)ft_module;
337  FT_UInt fallback_style = module->fallback_style;
338  FT_UInt default_script = module->default_script;
339 #ifdef AF_CONFIG_OPTION_USE_WARPER
340  FT_Bool warping = module->warping;
341 #endif
342 
343 
344  if ( !ft_strcmp( property_name, "glyph-to-script-map" ) )
345  {
347  AF_FaceGlobals globals;
348 
349 
350  error = af_property_get_face_globals( prop->face, &globals, module );
351  if ( !error )
352  prop->map = globals->glyph_styles;
353 
354  return error;
355  }
356  else if ( !ft_strcmp( property_name, "fallback-script" ) )
357  {
358  FT_UInt* val = (FT_UInt*)value;
359 
360  AF_StyleClass style_class = AF_STYLE_CLASSES_GET[fallback_style];
361 
362 
363  *val = style_class->script;
364 
365  return error;
366  }
367  else if ( !ft_strcmp( property_name, "default-script" ) )
368  {
369  FT_UInt* val = (FT_UInt*)value;
370 
371 
372  *val = default_script;
373 
374  return error;
375  }
376  else if ( !ft_strcmp( property_name, "increase-x-height" ) )
377  {
379  AF_FaceGlobals globals;
380 
381 
382  error = af_property_get_face_globals( prop->face, &globals, module );
383  if ( !error )
384  prop->limit = globals->increase_x_height;
385 
386  return error;
387  }
388 #ifdef AF_CONFIG_OPTION_USE_WARPER
389  else if ( !ft_strcmp( property_name, "warping" ) )
390  {
391  FT_Bool* val = (FT_Bool*)value;
392 
393 
394  *val = warping;
395 
396  return error;
397  }
398 #endif /* AF_CONFIG_OPTION_USE_WARPER */
399  else if ( !ft_strcmp( property_name, "darkening-parameters" ) )
400  {
401  FT_Int* darken_params = module->darken_params;
402  FT_Int* val = (FT_Int*)value;
403 
404 
405  val[0] = darken_params[0];
406  val[1] = darken_params[1];
407  val[2] = darken_params[2];
408  val[3] = darken_params[3];
409  val[4] = darken_params[4];
410  val[5] = darken_params[5];
411  val[6] = darken_params[6];
412  val[7] = darken_params[7];
413 
414  return error;
415  }
416  else if ( !ft_strcmp( property_name, "no-stem-darkening" ) )
417  {
418  FT_Bool no_stem_darkening = module->no_stem_darkening;
419  FT_Bool* val = (FT_Bool*)value;
420 
421 
422  *val = no_stem_darkening;
423 
424  return error;
425  }
426 
427  FT_TRACE0(( "af_property_get: missing property `%s'\n",
428  property_name ));
429  return FT_THROW( Missing_Property );
430  }
431 
432 
434  af_service_properties,
435 
436  (FT_Properties_SetFunc)af_property_set, /* set_property */
437  (FT_Properties_GetFunc)af_property_get ) /* get_property */
438 
439 
441  af_services,
442 
444 
445 
448  const char* module_interface )
449  {
450  /* AF_SERVICES_GET dereferences `library' in PIC mode */
451 #ifdef FT_CONFIG_OPTION_PIC
453 
454 
455  if ( !module )
456  return NULL;
457  library = module->library;
458  if ( !library )
459  return NULL;
460 #else
461  FT_UNUSED( module );
462 #endif
463 
465  }
466 
467 
469  af_autofitter_init( FT_Module ft_module ) /* AF_Module */
470  {
471  AF_Module module = (AF_Module)ft_module;
472 
473 
474  module->fallback_style = AF_STYLE_FALLBACK;
475  module->default_script = AF_SCRIPT_DEFAULT;
476 #ifdef AF_CONFIG_OPTION_USE_WARPER
477  module->warping = 0;
478 #endif
479  module->no_stem_darkening = TRUE;
480 
489 
490  return FT_Err_Ok;
491  }
492 
493 
494  FT_CALLBACK_DEF( void )
495  af_autofitter_done( FT_Module ft_module ) /* AF_Module */
496  {
497  FT_UNUSED( ft_module );
498 
499 #ifdef FT_DEBUG_AUTOFIT
500  if ( _af_debug_hints_rec->memory )
501  af_glyph_hints_done( _af_debug_hints_rec );
502 #endif
503  }
504 
505 
509  FT_Size size,
510  FT_UInt glyph_index,
511  FT_Int32 load_flags )
512  {
514  FT_Memory memory = module->root.library->memory;
515 
516 #ifdef FT_DEBUG_AUTOFIT
517 
518  /* in debug mode, we use a global object that survives this routine */
519 
520  AF_GlyphHints hints = _af_debug_hints_rec;
521  AF_LoaderRec loader[1];
522 
523  FT_UNUSED( size );
524 
525 
526  if ( hints->memory )
528 
530  af_loader_init( loader, hints );
531 
532  error = af_loader_load_glyph( loader, module, slot->face,
533  glyph_index, load_flags );
534 
535 #ifdef FT_DEBUG_LEVEL_TRACE
536  if ( ft_trace_levels[FT_COMPONENT] )
537  {
538 #endif
539  af_glyph_hints_dump_points( hints, 0 );
540  af_glyph_hints_dump_segments( hints, 0 );
541  af_glyph_hints_dump_edges( hints, 0 );
542 #ifdef FT_DEBUG_LEVEL_TRACE
543  }
544 #endif
545 
546  af_loader_done( loader );
547 
548  return error;
549 
550 #else /* !FT_DEBUG_AUTOFIT */
551 
552 #ifdef __REACTOS__
554  AF_LoaderRec *loader = malloc(sizeof(AF_LoaderRec));
555  if (!hints || !loader)
556  {
557  error = FT_Err_Out_Of_Memory;
558  goto Exit;
559  }
560 #else
562  AF_LoaderRec loader[1];
563 #endif
564 
565  FT_UNUSED( size );
566 
567 
569  af_loader_init( loader, hints );
570 
571  error = af_loader_load_glyph( loader, module, slot->face,
572  glyph_index, load_flags );
573 
574  af_loader_done( loader );
576 
577 #ifdef __REACTOS__
578 Exit:
579  free(hints);
580  free(loader);
581 #endif
582 
583  return error;
584 
585 #endif /* !FT_DEBUG_AUTOFIT */
586  }
587 
588 
590  af_autofitter_interface,
591 
592  NULL, /* reset_face */
593  NULL, /* get_global_hints */
594  NULL, /* done_global_hints */
596 
597 
599  autofit_module_class,
600 
602  sizeof ( AF_ModuleRec ),
603 
604  "autofitter",
605  0x10000L, /* version 1.0 of the autofitter */
606  0x20000L, /* requires FreeType 2.0 or above */
607 
608  (const void*)&AF_INTERFACE_GET,
609 
610  (FT_Module_Constructor)af_autofitter_init, /* module_init */
611  (FT_Module_Destructor) af_autofitter_done, /* module_done */
612  (FT_Module_Requester) af_get_interface /* get_interface */
613  )
614 
615 
616 /* END */
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG y1
Definition: winddi.h:3706
FT_BEGIN_HEADER struct AF_ModuleRec_ * AF_Module
namespace GUID const ADDRINFOEXW * hints
Definition: sock.c:80
#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X1
Definition: ftoption.h:777
ft_service_list_lookup(FT_ServiceDesc service_descriptors, const char *service_id)
Definition: ftobjs.c:98
#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3
Definition: ftoption.h:783
int FT_Error
Definition: fttypes.h:300
AF_Script script
Definition: aftypes.h:450
FT_BEGIN_HEADER struct AF_LoaderRec_ AF_LoaderRec
#define TRUE
Definition: types.h:120
FT_Error(* FT_Module_Constructor)(FT_Module module)
Definition: ftmodapi.h:152
GLubyte GLubyte GLubyte GLubyte w
Definition: glext.h:6102
#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y2
Definition: ftoption.h:781
af_glyph_hints_done(AF_GlyphHints hints)
Definition: afhints.c:672
#define error(str)
Definition: mkdosfs.c:1605
static FT_Error af_property_set(FT_Module ft_module, const char *property_name, const void *value, FT_Bool value_is_string)
Definition: afmodule.c:121
#define FT_DEFINE_MODULE( class_, flags_, size_, name_, version_, requires_, interface_, init_, done_, get_interface_)
Definition: ftobjs.h:1497
signed int FT_Int
Definition: fttypes.h:220
af_autofitter_load_glyph(AF_Module module, FT_GlyphSlot slot, FT_Size size, FT_UInt glyph_index, FT_Int32 load_flags)
Definition: afmodule.c:507
#define free
Definition: debug_ros.c:5
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG x1
Definition: winddi.h:3706
af_glyph_hints_init(AF_GlyphHints hints, FT_Memory memory)
Definition: afhints.c:662
#define AF_STYLE_FALLBACK
Definition: afglobal.h:71
void(* FT_Generic_Finalizer)(void *object)
Definition: fttypes.h:428
#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2
Definition: ftoption.h:780
AF_Coverage coverage
Definition: aftypes.h:452
#define FT_COMPONENT
Definition: afmodule.c:70
FT_DEFINE_AUTOHINTER_INTERFACE(af_autofitter_interface, NULL, NULL, NULL,(FT_AutoHinter_GlyphLoadFunc) af_autofitter_load_glyph) FT_DEFINE_MODULE(autofit_module_class
FT_Library library
Definition: cffdrivr.c:654
return FT_Err_Ok
Definition: ftbbox.c:511
static char memory[1024 *256]
Definition: process.c:116
#define FT_DEFINE_SERVICEDESCREC1(class_, serv_id_1, serv_data_1)
Definition: ftserv.h:189
af_face_globals_new(FT_Face face, AF_FaceGlobals *aglobals, AF_Module module)
Definition: afglobal.c:336
const void FT_Module_Constructor FT_Module_Destructor af_autofitter_done
Definition: afmodule.c:604
#define AF_STYLE_CLASSES_GET
Definition: afpic.h:33
#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X4
Definition: ftoption.h:786
FT_SERVICE_ID_PROPERTIES
Definition: afmodule.c:443
FT_BEGIN_HEADER typedef unsigned char FT_Bool
Definition: fttypes.h:108
FT_Error(* FT_Properties_SetFunc)(FT_Module module, const char *property_name, const void *value, FT_Bool value_is_string)
Definition: svprop.h:30
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
#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y1
Definition: ftoption.h:778
#define FT_THROW(e)
Definition: ftdebug.h:213
FT_Module_Interface(* FT_Module_Requester)(FT_Module module, const char *name)
Definition: ftmodapi.h:184
af_loader_init(AF_Loader loader, AF_GlyphHints hints)
Definition: afloader.c:32
smooth NULL
Definition: ftsmooth.c:416
static FT_Error af_property_get_face_globals(FT_Face face, AF_FaceGlobals *aglobals, AF_Module module)
Definition: afmodule.c:74
TT_CMap_Info_GetFunc tt_get_cmap_info const char * module_interface
Definition: sfdriver.c:1176
GLuint GLfloat * val
Definition: glext.h:7180
FT_BEGIN_HEADER struct AF_ModuleRec_ AF_ModuleRec
FT_UInt increase_x_height
Definition: afglobal.h:117
#define FT_TRACE0(varformat)
Definition: ftdebug.h:157
GLsizeiptr size
Definition: glext.h:5919
void * FT_Pointer
Definition: fttypes.h:311
if(!(yy_init))
Definition: macro.lex.yy.c:714
static void Exit(void)
Definition: sock.c:1331
static FT_Error af_property_get(FT_Module ft_module, const char *property_name, void *value)
Definition: afmodule.c:331
FT_Memory memory
Definition: afhints.h:336
#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y4
Definition: ftoption.h:787
af_face_globals_free(AF_FaceGlobals globals)
Definition: afglobal.c:387
const void FT_Module_Constructor af_autofitter_init
Definition: afmodule.c:604
&AF_SERVICE_PROPERTIES_GET af_get_interface(FT_Module module, const char *module_interface)
Definition: afmodule.c:447
#define FT_CALLBACK_DEF(x)
Definition: ftconfig.h:533
#define AF_SCRIPT_DEFAULT
Definition: afglobal.h:74
FT_Error(* FT_AutoHinter_GlyphLoadFunc)(FT_AutoHinter hinter, FT_GlyphSlot slot, FT_Size size, FT_UInt glyph_index, FT_Int32 load_flags)
Definition: autohint.h:175
typedefFT_BEGIN_HEADER struct FT_MemoryRec_ * FT_Memory
Definition: ftsystem.h:66
GLdouble s
Definition: gl.h:2039
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG _In_ LONG y2
Definition: winddi.h:3706
#define AF_SERVICES_GET
Definition: afpic.h:28
Definition: vfat.h:184
FT_MODULE_HINTER
Definition: afmodule.c:601
const void *& AF_INTERFACE_GET
Definition: afmodule.c:604
FT_UShort * glyph_styles
Definition: afglobal.h:109
struct AF_FaceGlobalsRec_ * AF_FaceGlobals
Definition: aftypes.h:467
unsigned int FT_UInt
Definition: fttypes.h:231
void(* FT_Module_Destructor)(FT_Module module)
Definition: ftmodapi.h:167
FT_DEFINE_SERVICE_PROPERTIESREC(af_service_properties,(FT_Properties_SetFunc) af_property_set,(FT_Properties_GetFunc) af_property_get) FT_DEFINE_SERVICEDESCREC1(af_services
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG x2
Definition: winddi.h:3706
#define AF_SERVICE_PROPERTIES_GET
Definition: afpic.h:29
#define const
Definition: zconf.h:230
FT_Error(* FT_Properties_GetFunc)(FT_Module module, const char *property_name, void *value)
Definition: svprop.h:36
#define malloc
Definition: debug_ros.c:4
af_loader_load_glyph(AF_Loader loader, AF_Module module, FT_Face face, FT_UInt glyph_index, FT_Int32 load_flags)
Definition: afloader.c:214
af_loader_done(AF_Loader loader)
Definition: afloader.c:73
#define ss
Definition: i386-dis.c:432
#define FT_UNUSED(arg)
Definition: ftconfig.h:101
#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y3
Definition: ftoption.h:784
GLenum GLuint GLint GLenum face
Definition: glext.h:7025
#define ft_strcmp
Definition: ftstdlib.h:86
#define ft_strtol
Definition: ftstdlib.h:145