1 /***************************************************************************/
   2 /*                                                                         */
   3 /*  afpic.h                                                                */
   4 /*                                                                         */
   5 /*    The FreeType position independent code services for autofit module.  */
   6 /*                                                                         */
   7 /*  Copyright 2009-2018 by                                                 */
   8 /*  Oran Agra and Mickey Gabel.                                            */
   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 #ifndef AFPIC_H_
  20 #define AFPIC_H_
  21 
  22 
  23 #include FT_INTERNAL_PIC_H
  24 
  25 
  26 #ifndef FT_CONFIG_OPTION_PIC
  27 
  28 #define AF_SERVICES_GET                af_services
  29 #define AF_SERVICE_PROPERTIES_GET      af_service_properties
  30 
  31 #define AF_WRITING_SYSTEM_CLASSES_GET  af_writing_system_classes
  32 #define AF_SCRIPT_CLASSES_GET          af_script_classes
  33 #define AF_STYLE_CLASSES_GET           af_style_classes
  34 #define AF_INTERFACE_GET               af_autofitter_interface
  35 
  36 #else /* FT_CONFIG_OPTION_PIC */
  37 
  38   /* some include files required for members of AFModulePIC */
  39 #include FT_SERVICE_PROPERTIES_H
  40 
  41 #include "aftypes.h"
  42 
  43 
  44 FT_BEGIN_HEADER
  45 
  46   typedef struct  AFModulePIC_
  47   {
  48     FT_ServiceDescRec*          af_services;
  49     FT_Service_PropertiesRec    af_service_properties;
  50 
  51     AF_WritingSystemClass       af_writing_system_classes
  52                                   [AF_WRITING_SYSTEM_MAX + 1];
  53     AF_WritingSystemClassRec    af_writing_system_classes_rec
  54                                   [AF_WRITING_SYSTEM_MAX];
  55 
  56     AF_ScriptClass              af_script_classes
  57                                   [AF_SCRIPT_MAX + 1];
  58     AF_ScriptClassRec           af_script_classes_rec
  59                                   [AF_SCRIPT_MAX];
  60 
  61     AF_StyleClass               af_style_classes
  62                                   [AF_STYLE_MAX + 1];
  63     AF_StyleClassRec            af_style_classes_rec
  64                                   [AF_STYLE_MAX];
  65 
  66     FT_AutoHinter_InterfaceRec  af_autofitter_interface;
  67 
  68   } AFModulePIC;
  69 
  70 
  71 #define GET_PIC( lib )  \
  72           ( (AFModulePIC*)( (lib)->pic_container.autofit ) )
  73 
  74 #define AF_SERVICES_GET  \
  75           ( GET_PIC( library )->af_services )
  76 #define AF_SERVICE_PROPERTIES_GET  \
  77           ( GET_PIC( library )->af_service_properties )
  78 
  79 #define AF_WRITING_SYSTEM_CLASSES_GET  \
  80           ( GET_PIC( FT_FACE_LIBRARY( globals->face ) )->af_writing_system_classes )
  81 #define AF_SCRIPT_CLASSES_GET  \
  82           ( GET_PIC( FT_FACE_LIBRARY( globals->face ) )->af_script_classes )
  83 #define AF_STYLE_CLASSES_GET  \
  84           ( GET_PIC( FT_FACE_LIBRARY( globals->face ) )->af_style_classes )
  85 #define AF_INTERFACE_GET  \
  86           ( GET_PIC( library )->af_autofitter_interface )
  87 
  88 
  89   /* see afpic.c for the implementation */
  90   void
  91   autofit_module_class_pic_free( FT_Library  library );
  92 
  93   FT_Error
  94   autofit_module_class_pic_init( FT_Library  library );
  95 
  96 FT_END_HEADER
  97 
  98 #endif /* FT_CONFIG_OPTION_PIC */
  99 
 100  /* */
 101 
 102 #endif /* AFPIC_H_ */
 103 
 104 
 105 /* END */