Home | History | Annotate | Download | only in cff
      1 /***************************************************************************/
      2 /*                                                                         */
      3 /*  cffpic.h                                                               */
      4 /*                                                                         */
      5 /*    The FreeType position independent code services for cff 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 CFFPIC_H_
     20 #define CFFPIC_H_
     21 
     22 
     23 #include FT_INTERNAL_PIC_H
     24 
     25 #ifndef FT_CONFIG_OPTION_PIC
     26 
     27 #define CFF_SERVICE_PS_INFO_GET          cff_service_ps_info
     28 #define CFF_SERVICE_GLYPH_DICT_GET       cff_service_glyph_dict
     29 #define CFF_SERVICE_PS_NAME_GET          cff_service_ps_name
     30 #define CFF_SERVICE_GET_CMAP_INFO_GET    cff_service_get_cmap_info
     31 #define CFF_SERVICE_CID_INFO_GET         cff_service_cid_info
     32 #define CFF_SERVICE_PROPERTIES_GET       cff_service_properties
     33 #define CFF_SERVICES_GET                 cff_services
     34 #define CFF_SERVICE_MULTI_MASTERS_GET    cff_service_multi_masters
     35 #define CFF_SERVICE_METRICS_VAR_GET      cff_service_metrics_variations
     36 #define CFF_SERVICE_CFF_LOAD_GET         cff_service_cff_load
     37 #define CFF_CMAP_ENCODING_CLASS_REC_GET  cff_cmap_encoding_class_rec
     38 #define CFF_CMAP_UNICODE_CLASS_REC_GET   cff_cmap_unicode_class_rec
     39 #define CFF_FIELD_HANDLERS_GET           cff_field_handlers
     40 
     41 #else /* FT_CONFIG_OPTION_PIC */
     42 
     43 #include FT_SERVICE_GLYPH_DICT_H
     44 #include "cffparse.h"
     45 #include FT_SERVICE_POSTSCRIPT_INFO_H
     46 #include FT_SERVICE_POSTSCRIPT_NAME_H
     47 #include FT_SERVICE_TT_CMAP_H
     48 #include FT_SERVICE_CID_H
     49 #include FT_SERVICE_PROPERTIES_H
     50 #include FT_SERVICE_MULTIPLE_MASTERS_H
     51 #include FT_SERVICE_METRICS_VARIATIONS_H
     52 
     53 
     54 FT_BEGIN_HEADER
     55 
     56   typedef struct  CffModulePIC_
     57   {
     58     FT_ServiceDescRec*               cff_services;
     59     CFF_Field_Handler*               cff_field_handlers;
     60     FT_Service_PsInfoRec             cff_service_ps_info;
     61     FT_Service_GlyphDictRec          cff_service_glyph_dict;
     62     FT_Service_PsFontNameRec         cff_service_ps_name;
     63     FT_Service_TTCMapsRec            cff_service_get_cmap_info;
     64     FT_Service_CIDRec                cff_service_cid_info;
     65     FT_Service_PropertiesRec         cff_service_properties;
     66     FT_Service_MultiMastersRec       cff_service_multi_masters;
     67     FT_Service_MetricsVariationsRec  cff_service_metrics_variations;
     68     FT_Service_CFFLoadRec            cff_service_cff_load;
     69     FT_CMap_ClassRec                 cff_cmap_encoding_class_rec;
     70     FT_CMap_ClassRec                 cff_cmap_unicode_class_rec;
     71 
     72   } CffModulePIC;
     73 
     74 
     75 #define GET_PIC( lib )                                    \
     76           ( (CffModulePIC*)( (lib)->pic_container.cff ) )
     77 
     78 #define CFF_SERVICE_PS_INFO_GET                       \
     79           ( GET_PIC( library )->cff_service_ps_info )
     80 #define CFF_SERVICE_GLYPH_DICT_GET                       \
     81           ( GET_PIC( library )->cff_service_glyph_dict )
     82 #define CFF_SERVICE_PS_NAME_GET                       \
     83           ( GET_PIC( library )->cff_service_ps_name )
     84 #define CFF_SERVICE_GET_CMAP_INFO_GET                       \
     85           ( GET_PIC( library )->cff_service_get_cmap_info )
     86 #define CFF_SERVICE_CID_INFO_GET                       \
     87           ( GET_PIC( library )->cff_service_cid_info )
     88 #define CFF_SERVICE_PROPERTIES_GET                       \
     89           ( GET_PIC( library )->cff_service_properties )
     90 #define CFF_SERVICES_GET                       \
     91           ( GET_PIC( library )->cff_services )
     92 #define CFF_SERVICE_MULTI_MASTERS_GET                       \
     93           ( GET_PIC( library )->cff_service_multi_masters )
     94 #define CFF_SERVICE_METRICS_VAR_GET                              \
     95           ( GET_PIC( library )->cff_service_metrics_variations )
     96 #define CFF_SERVICE_CFF_LOAD_GET                       \
     97           ( GET_PIC( library )->cff_service_cff_load )
     98 #define CFF_CMAP_ENCODING_CLASS_REC_GET                       \
     99           ( GET_PIC( library )->cff_cmap_encoding_class_rec )
    100 #define CFF_CMAP_UNICODE_CLASS_REC_GET                       \
    101           ( GET_PIC( library )->cff_cmap_unicode_class_rec )
    102 #define CFF_FIELD_HANDLERS_GET                       \
    103           ( GET_PIC( library )->cff_field_handlers )
    104 
    105   /* see cffpic.c for the implementation */
    106   void
    107   cff_driver_class_pic_free( FT_Library  library );
    108 
    109   FT_Error
    110   cff_driver_class_pic_init( FT_Library  library );
    111 
    112 FT_END_HEADER
    113 
    114 #endif /* FT_CONFIG_OPTION_PIC */
    115 
    116  /* */
    117 
    118 #endif /* CFFPIC_H_ */
    119 
    120 
    121 /* END */
    122