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