ReactOS 0.4.15-dev-7953-g1f49173
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 */
#define NULL
Definition: types.h:112
#define FT_CALLBACK_DEF(x)
Definition: ftconfig.h:533
void(* FT_Module_Destructor)(FT_Module module)
Definition: ftmodapi.h:167
FT_Error(* FT_Module_Constructor)(FT_Module module)
Definition: ftmodapi.h:152
FT_Module_Interface(* FT_Module_Requester)(FT_Module module, const char *name)
Definition: ftmodapi.h:184
#define FT_DEFINE_MODULE( class_, flags_, size_, name_, version_, requires_, interface_, init_, done_, get_interface_)
Definition: ftobjs.h:1497
typedefFT_BEGIN_HEADER struct FT_MemoryRec_ * FT_Memory
Definition: ftsystem.h:66
int FT_Error
Definition: fttypes.h:300
#define FT_DEFINE_PSHINTER_INTERFACE( class_, get_globals_funcs_, get_t1_funcs_, get_t2_funcs_)
Definition: pshints.h:685
struct T1_HintsRec_ * T1_Hints
Definition: pshints.h:104
struct T2_HintsRec_ * T2_Hints
Definition: pshints.h:391
static char memory[1024 *256]
Definition: process.c:116
psh_globals_funcs_init(PSH_Globals_FuncsRec *funcs)
Definition: pshglob.c:787
ps_hinter_init(PS_Hinter_Module module)
Definition: pshmod.c:52
ps_hinter_done(PS_Hinter_Module module)
Definition: pshmod.c:41
struct PS_Hinter_Module_Rec_ * PS_Hinter_Module
pshinter_get_t2_funcs(FT_Module module)
Definition: pshmod.c:90
pshinter_get_globals_funcs(FT_Module module)
Definition: pshmod.c:74
struct PS_Hinter_Module_Rec_ PS_Hinter_ModuleRec
pshinter_get_t1_funcs(FT_Module module)
Definition: pshmod.c:82
#define PSHINTER_INTERFACE_GET
Definition: pshpic.h:28
t1_hints_funcs_init(T1_Hints_FuncsRec *funcs)
Definition: pshrec.c:1141
ps_hints_init(PS_Hints hints, FT_Memory memory)
Definition: pshrec.c:818
ps_hints_done(PS_Hints hints)
Definition: pshrec.c:804
t2_hints_funcs_init(T2_Hints_FuncsRec *funcs)
Definition: pshrec.c:1207
T2_Hints_FuncsRec t2_funcs
Definition: pshmod.c:34
PSH_Globals_FuncsRec globals_funcs
Definition: pshmod.c:32
PS_HintsRec ps_hints
Definition: pshmod.c:30
FT_ModuleRec root
Definition: pshmod.c:29
T1_Hints_FuncsRec t1_funcs
Definition: pshmod.c:33