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