afpic.h revision 41371e1e39c8528eb0c4bc40683c736e6683e60c
1/***************************************************************************/
2/*                                                                         */
3/*  afpic.h                                                                */
4/*                                                                         */
5/*    The FreeType position independent code services for autofit module.  */
6/*                                                                         */
7/*  Copyright 2009, 2011 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 __AFPIC_H__
20#define __AFPIC_H__
21
22
23FT_BEGIN_HEADER
24
25#include FT_INTERNAL_PIC_H
26
27#ifndef FT_CONFIG_OPTION_PIC
28
29#define AF_SCRIPT_CLASSES_GET         af_script_classes
30#define AF_AF_AUTOFITTER_SERVICE_GET  af_autofitter_service
31
32#else /* FT_CONFIG_OPTION_PIC */
33
34#include "aftypes.h"
35
36  /* increase these when you add new scripts, */
37  /* and update autofit_module_class_pic_init */
38#ifdef FT_OPTION_AUTOFIT2
39#define AF_SCRIPT_CLASSES_COUNT     6
40#else
41#define AF_SCRIPT_CLASSES_COUNT     5
42#endif
43#define AF_SCRIPT_CLASSES_REC_COUNT  ( AF_SCRIPT_CLASSES_COUNT - 1 )
44
45  typedef struct AFModulePIC_
46  {
47    AF_ScriptClass            af_script_classes[AF_SCRIPT_CLASSES_COUNT];
48    AF_ScriptClassRec         af_script_classes_rec[AF_SCRIPT_CLASSES_REC_COUNT];
49    FT_AutoHinter_ServiceRec  af_autofitter_service;
50
51  } AFModulePIC;
52
53#define GET_PIC( lib )                                                     \
54          ( (AFModulePIC*)((lib)->pic_container.autofit) )
55#define AF_SCRIPT_CLASSES_GET                                              \
56          ( GET_PIC( FT_FACE_LIBRARY(globals->face) )->af_script_classes )
57#define AF_AF_AUTOFITTER_SERVICE_GET                                       \
58          ( GET_PIC( library )->af_autofitter_service )
59
60  /* see afpic.c for the implementation */
61  void
62  autofit_module_class_pic_free( FT_Library  library );
63
64  FT_Error
65  autofit_module_class_pic_init( FT_Library  library );
66
67#endif /* FT_CONFIG_OPTION_PIC */
68
69 /* */
70
71FT_END_HEADER
72
73#endif /* __AFPIC_H__ */
74
75
76/* END */
77