1 /***************************************************************************/
2 /*                                                                         */
3 /*  basepic.h                                                              */
4 /*                                                                         */
5 /*    The FreeType position independent code services for base.            */
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 BASEPIC_H_
20 #define BASEPIC_H_
21 
22 
23 #include FT_INTERNAL_PIC_H
24 
25 
26 #ifndef FT_CONFIG_OPTION_PIC
27 
28 #define FT_OUTLINE_GLYPH_CLASS_GET  &ft_outline_glyph_class
29 #define FT_BITMAP_GLYPH_CLASS_GET   &ft_bitmap_glyph_class
30 #define FT_DEFAULT_MODULES_GET      ft_default_modules
31 
32 #ifdef FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK
33 #define FT_RACCESS_GUESS_TABLE_GET  ft_raccess_guess_table
34 #endif
35 
36 #else /* FT_CONFIG_OPTION_PIC */
37 
38 #include FT_GLYPH_H
39 
40 #ifdef FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK
41 #include FT_INTERNAL_RFORK_H
42 #endif
43 
44 
45 FT_BEGIN_HEADER
46 
47   typedef struct  BasePIC_
48   {
49     FT_Module_Class**  default_module_classes;
50     FT_Glyph_Class     ft_outline_glyph_class;
51     FT_Glyph_Class     ft_bitmap_glyph_class;
52 
53 #ifdef FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK
54     ft_raccess_guess_rec  ft_raccess_guess_table[FT_RACCESS_N_RULES];
55 #endif
56 
57   } BasePIC;
58 
59 
60 #define GET_PIC( lib )  ( (BasePIC*)( (lib)->pic_container.base ) )
61 
62 #define FT_OUTLINE_GLYPH_CLASS_GET                      \
63           ( &GET_PIC( library )->ft_outline_glyph_class )
64 #define FT_BITMAP_GLYPH_CLASS_GET                        \
65           ( &GET_PIC( library )->ft_bitmap_glyph_class )
66 #define FT_DEFAULT_MODULES_GET                           \
67           ( GET_PIC( library )->default_module_classes )
68 
69 #ifdef FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK
70 #define FT_RACCESS_GUESS_TABLE_GET                       \
71           ( GET_PIC( library )->ft_raccess_guess_table )
72 #endif
73 
74 
75   /* see basepic.c for the implementation */
76   void
77   ft_base_pic_free( FT_Library  library );
78 
79   FT_Error
80   ft_base_pic_init( FT_Library  library );
81 
82 FT_END_HEADER
83 
84 #endif /* FT_CONFIG_OPTION_PIC */
85 
86   /* */
87 
88 #endif /* BASEPIC_H_ */
89 
90 
91 /* END */
92