ReactOS  0.4.15-dev-439-g292f67a
pshmod.c
Go to the documentation of this file.
1 /***************************************************************************/
2 /* */
3 /* pshmod.c */
4 /* */
5 /* FreeType PostScript hinter module implementation (body). */
6 /* */
7 /* Copyright 2001-2018 by */
8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */
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 #include <ft2build.h>
20 #include FT_INTERNAL_OBJECTS_H
21 #include "pshrec.h"
22 #include "pshalgo.h"
23 #include "pshpic.h"
24 
25 
26  /* the Postscript Hinter module structure */
27  typedef struct PS_Hinter_Module_Rec_
28  {
31 
35 
37 
38 
39  /* finalize module */
40  FT_CALLBACK_DEF( void )
42  {
43  module->t1_funcs.hints = NULL;
44  module->t2_funcs.hints = NULL;
45 
46  ps_hints_done( &module->ps_hints );
47  }
48 
49 
50  /* initialize module, create hints recorder and the interface */
53  {
54  FT_Memory memory = module->root.memory;
55  void* ph = &module->ps_hints;
56 
57 
58  ps_hints_init( &module->ps_hints, memory );
59 
60  psh_globals_funcs_init( &module->globals_funcs );
61 
62  t1_hints_funcs_init( &module->t1_funcs );
63  module->t1_funcs.hints = (T1_Hints)ph;
64 
65  t2_hints_funcs_init( &module->t2_funcs );
66  module->t2_funcs.hints = (T2_Hints)ph;
67 
68  return 0;
69  }
70 
71 
72  /* returns global hints interface */
75  {
76  return &((PS_Hinter_Module)module)->globals_funcs;
77  }
78 
79 
80  /* return Type 1 hints interface */
83  {
84  return &((PS_Hinter_Module)module)->t1_funcs;
85  }
86 
87 
88  /* return Type 2 hints interface */
91  {
92  return &((PS_Hinter_Module)module)->t2_funcs;
93  }
94 
95 
97  pshinter_interface,
98 
102  )
103 
104 
106  pshinter_module_class,
107 
108  0,
109  sizeof ( PS_Hinter_ModuleRec ),
110  "pshinter",
111  0x10000L,
112  0x20000L,
113 
114  &PSHINTER_INTERFACE_GET, /* module-specific interface */
115 
116  (FT_Module_Constructor)ps_hinter_init, /* module_init */
117  (FT_Module_Destructor) ps_hinter_done, /* module_done */
118  (FT_Module_Requester) NULL /* get_interface */
119  )
120 
121 /* END */
int FT_Error
Definition: fttypes.h:300
FT_Error(* FT_Module_Constructor)(FT_Module module)
Definition: ftmodapi.h:152
pshinter_get_globals_funcs(FT_Module module)
Definition: pshmod.c:74
#define FT_DEFINE_MODULE( class_, flags_, size_, name_, version_, requires_, interface_, init_, done_, get_interface_)
Definition: ftobjs.h:1497
struct T2_HintsRec_ * T2_Hints
Definition: pshints.h:391
FT_ModuleRec root
Definition: pshmod.c:29
ps_hints_init(PS_Hints hints, FT_Memory memory)
Definition: pshrec.c:818
static char memory[1024 *256]
Definition: process.c:116
struct PS_Hinter_Module_Rec_ * PS_Hinter_Module
PSH_Globals_FuncsRec globals_funcs
Definition: pshmod.c:32
struct T1_HintsRec_ * T1_Hints
Definition: pshints.h:104
T2_Hints_FuncsRec t2_funcs
Definition: pshmod.c:34
FT_Module_Interface(* FT_Module_Requester)(FT_Module module, const char *name)
Definition: ftmodapi.h:184
ps_hints_done(PS_Hints hints)
Definition: pshrec.c:804
smooth NULL
Definition: ftsmooth.c:416
PS_HintsRec ps_hints
Definition: pshmod.c:30
T1_Hints_FuncsRec t1_funcs
Definition: pshmod.c:33
#define PSHINTER_INTERFACE_GET
Definition: pshpic.h:28
pshinter_get_t1_funcs(FT_Module module)
Definition: pshmod.c:82
#define FT_CALLBACK_DEF(x)
Definition: ftconfig.h:533
#define FT_DEFINE_PSHINTER_INTERFACE( class_, get_globals_funcs_, get_t1_funcs_, get_t2_funcs_)
Definition: pshints.h:685
t2_hints_funcs_init(T2_Hints_FuncsRec *funcs)
Definition: pshrec.c:1207
typedefFT_BEGIN_HEADER struct FT_MemoryRec_ * FT_Memory
Definition: ftsystem.h:66
psh_globals_funcs_init(PSH_Globals_FuncsRec *funcs)
Definition: pshglob.c:787
t1_hints_funcs_init(T1_Hints_FuncsRec *funcs)
Definition: pshrec.c:1141
void(* FT_Module_Destructor)(FT_Module module)
Definition: ftmodapi.h:167
ps_hinter_init(PS_Hinter_Module module)
Definition: pshmod.c:52
ps_hinter_done(PS_Hinter_Module module)
Definition: pshmod.c:41
pshinter_get_t2_funcs(FT_Module module)
Definition: pshmod.c:90
struct PS_Hinter_Module_Rec_ PS_Hinter_ModuleRec