1ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/***************************************************************************/
2ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*                                                                         */
3ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*  cffpic.h                                                               */
4ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*                                                                         */
5ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*    The FreeType position independent code services for cff module.      */
6ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*                                                                         */
7ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*  Copyright 2009, 2012, 2013 by                                          */
8ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*  Oran Agra and Mickey Gabel.                                            */
9ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*                                                                         */
10ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*  This file is part of the FreeType project, and may only be used,       */
11ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*  modified, and distributed under the terms of the FreeType project      */
12ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
13ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*  this file you indicate that you have read the license and              */
14ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*  understand and accept it fully.                                        */
15ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/*                                                                         */
16ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/***************************************************************************/
17ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
18ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
19ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifndef __CFFPIC_H__
20ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define __CFFPIC_H__
21ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
22ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
23ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFT_BEGIN_HEADER
24ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
25ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "../../include/freetype/internal/ftpic.h"
26ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
27ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
28ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifndef FT_CONFIG_OPTION_PIC
29ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
30ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define CFF_SERVICE_PS_INFO_GET          cff_service_ps_info
31ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define CFF_SERVICE_GLYPH_DICT_GET       cff_service_glyph_dict
32ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define CFF_SERVICE_PS_NAME_GET          cff_service_ps_name
33ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define CFF_SERVICE_GET_CMAP_INFO_GET    cff_service_get_cmap_info
34ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define CFF_SERVICE_CID_INFO_GET         cff_service_cid_info
35ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define CFF_SERVICE_PROPERTIES_GET       cff_service_properties
36ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define CFF_SERVICES_GET                 cff_services
37ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define CFF_CMAP_ENCODING_CLASS_REC_GET  cff_cmap_encoding_class_rec
38ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define CFF_CMAP_UNICODE_CLASS_REC_GET   cff_cmap_unicode_class_rec
39ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define CFF_FIELD_HANDLERS_GET           cff_field_handlers
40ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
41ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#else /* FT_CONFIG_OPTION_PIC */
42ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
43ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "../../include/freetype/internal/services/svgldict.h"
44ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "cffparse.h"
45ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "../../include/freetype/internal/services/svpsinfo.h"
46ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "../../include/freetype/internal/services/svpostnm.h"
47ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "../../include/freetype/internal/services/svttcmap.h"
48ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "../../include/freetype/internal/services/svcid.h"
49ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "../../include/freetype/internal/services/svprop.h"
50ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
51ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
52ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  typedef struct  CffModulePIC_
53ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  {
54ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_ServiceDescRec*        cff_services;
55ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    CFF_Field_Handler*        cff_field_handlers;
56ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Service_PsInfoRec      cff_service_ps_info;
57ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Service_GlyphDictRec   cff_service_glyph_dict;
58ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Service_PsFontNameRec  cff_service_ps_name;
59ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Service_TTCMapsRec     cff_service_get_cmap_info;
60ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Service_CIDRec         cff_service_cid_info;
61ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_Service_PropertiesRec  cff_service_properties;
62ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_CMap_ClassRec          cff_cmap_encoding_class_rec;
63ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov    FT_CMap_ClassRec          cff_cmap_unicode_class_rec;
64ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
65ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  } CffModulePIC;
66ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
67ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
68ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define GET_PIC( lib )                                    \
69ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov          ( (CffModulePIC*)( (lib)->pic_container.cff ) )
70ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
71ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define CFF_SERVICE_PS_INFO_GET                       \
72ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov          ( GET_PIC( library )->cff_service_ps_info )
73ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define CFF_SERVICE_GLYPH_DICT_GET                       \
74ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov          ( GET_PIC( library )->cff_service_glyph_dict )
75ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define CFF_SERVICE_PS_NAME_GET                       \
76ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov          ( GET_PIC( library )->cff_service_ps_name )
77ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define CFF_SERVICE_GET_CMAP_INFO_GET                       \
78ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov          ( GET_PIC( library )->cff_service_get_cmap_info )
79ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define CFF_SERVICE_CID_INFO_GET                       \
80ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov          ( GET_PIC( library )->cff_service_cid_info )
81ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define CFF_SERVICE_PROPERTIES_GET                       \
82ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov          ( GET_PIC( library )->cff_service_properties )
83ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define CFF_SERVICES_GET                       \
84ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov          ( GET_PIC( library )->cff_services )
85ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define CFF_CMAP_ENCODING_CLASS_REC_GET                       \
86ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov          ( GET_PIC( library )->cff_cmap_encoding_class_rec )
87ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define CFF_CMAP_UNICODE_CLASS_REC_GET                       \
88ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov          ( GET_PIC( library )->cff_cmap_unicode_class_rec )
89ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define CFF_FIELD_HANDLERS_GET                       \
90ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov          ( GET_PIC( library )->cff_field_handlers )
91ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
92ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  /* see cffpic.c for the implementation */
93ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  void
94ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  cff_driver_class_pic_free( FT_Library  library );
95ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
96ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  FT_Error
97ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov  cff_driver_class_pic_init( FT_Library  library );
98ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
99ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif /* FT_CONFIG_OPTION_PIC */
100ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
101ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */
102ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
103ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFT_END_HEADER
104ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
105ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif /* __CFFPIC_H__ */
106ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
107ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
108ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* END */
109