Home | History | Annotate | Download | only in truetype
      1 /***************************************************************************/
      2 /*                                                                         */
      3 /*  ttpic.h                                                                */
      4 /*                                                                         */
      5 /*    The FreeType position independent code services for truetype 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 TTPIC_H_
     20 #define TTPIC_H_
     21 
     22 
     23 #include FT_INTERNAL_PIC_H
     24 
     25 
     26 #ifndef FT_CONFIG_OPTION_PIC
     27 
     28 #define TT_SERVICES_GET                    tt_services
     29 #define TT_SERVICE_GX_MULTI_MASTERS_GET    tt_service_gx_multi_masters
     30 #define TT_SERVICE_METRICS_VARIATIONS_GET  tt_service_metrics_variations
     31 #define TT_SERVICE_TRUETYPE_GLYF_GET       tt_service_truetype_glyf
     32 #define TT_SERVICE_PROPERTIES_GET          tt_service_properties
     33 
     34 #else /* FT_CONFIG_OPTION_PIC */
     35 
     36 #include FT_MULTIPLE_MASTERS_H
     37 #include FT_SERVICE_MULTIPLE_MASTERS_H
     38 #include FT_SERVICE_METRICS_VARIATIONS_H
     39 #include FT_SERVICE_TRUETYPE_GLYF_H
     40 #include FT_SERVICE_PROPERTIES_H
     41 
     42 
     43 FT_BEGIN_HEADER
     44 
     45   typedef struct  TTModulePIC_
     46   {
     47     FT_ServiceDescRec*               tt_services;
     48 #ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
     49     FT_Service_MultiMastersRec       tt_service_gx_multi_masters;
     50     FT_Service_MetricsVariationsRec  tt_service_metrics_variations;
     51 #endif
     52     FT_Service_TTGlyfRec             tt_service_truetype_glyf;
     53     FT_Service_PropertiesRec         tt_service_properties;
     54 
     55   } TTModulePIC;
     56 
     57 
     58 #define GET_PIC( lib )                                      \
     59           ( (TTModulePIC*)((lib)->pic_container.truetype) )
     60 #define TT_SERVICES_GET                       \
     61           ( GET_PIC( library )->tt_services )
     62 #define TT_SERVICE_METRICS_VARIATIONS_GET                       \
     63           ( GET_PIC( library )->tt_service_metrics_variations )
     64 #define TT_SERVICE_GX_MULTI_MASTERS_GET                       \
     65           ( GET_PIC( library )->tt_service_gx_multi_masters )
     66 #define TT_SERVICE_TRUETYPE_GLYF_GET                       \
     67           ( GET_PIC( library )->tt_service_truetype_glyf )
     68 #define TT_SERVICE_PROPERTIES_GET                       \
     69           ( GET_PIC( library )->tt_service_properties )
     70 
     71 
     72   /* see ttpic.c for the implementation */
     73   void
     74   tt_driver_class_pic_free( FT_Library  library );
     75 
     76   FT_Error
     77   tt_driver_class_pic_init( FT_Library  library );
     78 
     79 FT_END_HEADER
     80 
     81 #endif /* FT_CONFIG_OPTION_PIC */
     82 
     83  /* */
     84 
     85 #endif /* TTPIC_H_ */
     86 
     87 
     88 /* END */
     89