1 /***************************************************************************/
2 /*                                                                         */
3 /*  ttpic.h                                                                */
4 /*                                                                         */
5 /*    The FreeType position independent code services for truetype module. */
6 /*                                                                         */
7 /*  Copyright 2009-2016 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_TRUETYPE_GLYF_GET     tt_service_truetype_glyf
31 #define TT_SERVICE_PROPERTIES_GET        tt_service_properties
32 
33 #else /* FT_CONFIG_OPTION_PIC */
34 
35 #include FT_MULTIPLE_MASTERS_H
36 #include FT_SERVICE_MULTIPLE_MASTERS_H
37 #include FT_SERVICE_TRUETYPE_GLYF_H
38 #include FT_SERVICE_PROPERTIES_H
39 
40 
41 FT_BEGIN_HEADER
42 
43   typedef struct  TTModulePIC_
44   {
45     FT_ServiceDescRec*          tt_services;
46 #ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
47     FT_Service_MultiMastersRec  tt_service_gx_multi_masters;
48 #endif
49     FT_Service_TTGlyfRec        tt_service_truetype_glyf;
50     FT_Service_PropertiesRec    tt_service_properties;
51 
52   } TTModulePIC;
53 
54 
55 #define GET_PIC( lib )                                      \
56           ( (TTModulePIC*)((lib)->pic_container.truetype) )
57 #define TT_SERVICES_GET                       \
58           ( GET_PIC( library )->tt_services )
59 #define TT_SERVICE_GX_MULTI_MASTERS_GET                       \
60           ( GET_PIC( library )->tt_service_gx_multi_masters )
61 #define TT_SERVICE_TRUETYPE_GLYF_GET                       \
62           ( GET_PIC( library )->tt_service_truetype_glyf )
63 #define TT_SERVICE_PROPERTIES_GET                       \
64           ( GET_PIC( library )->tt_service_properties )
65 
66 
67   /* see ttpic.c for the implementation */
68   void
69   tt_driver_class_pic_free( FT_Library  library );
70 
71   FT_Error
72   tt_driver_class_pic_init( FT_Library  library );
73 
74 FT_END_HEADER
75 
76 #endif /* FT_CONFIG_OPTION_PIC */
77 
78  /* */
79 
80 #endif /* TTPIC_H_ */
81 
82 
83 /* END */
84