1 /***************************************************************************/
2 /* */
3 /* psauxmod.c */
4 /* */
5 /* FreeType auxiliary PostScript module implementation (body). */
6 /* */
7 /* Copyright 2000-2001 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 /***************************************************************************/
19 #include <ft2build.h>
20 #include "psauxmod.h"
21 #include "psobjs.h"
22 #include "t1decode.h"
25 FT_CALLBACK_TABLE_DEF
26 const PS_Table_Funcs ps_table_funcs =
27 {
28 PS_Table_New,
29 PS_Table_Done,
30 PS_Table_Add,
31 PS_Table_Release
32 };
35 FT_CALLBACK_TABLE_DEF
36 const T1_Parser_Funcs t1_parser_funcs =
37 {
38 T1_Init_Parser,
39 T1_Done_Parser,
40 T1_Skip_Spaces,
41 T1_Skip_Alpha,
42 T1_ToInt,
43 T1_ToFixed,
44 T1_ToCoordArray,
45 T1_ToFixedArray,
46 T1_ToToken,
47 T1_ToTokenArray,
48 T1_Load_Field,
49 T1_Load_Field_Table
50 };
53 FT_CALLBACK_TABLE_DEF
54 const T1_Builder_Funcs t1_builder_funcs =
55 {
56 T1_Builder_Init,
57 T1_Builder_Done,
58 T1_Builder_Check_Points,
59 T1_Builder_Add_Point,
60 T1_Builder_Add_Point1,
61 T1_Builder_Add_Contour,
62 T1_Builder_Start_Point,
63 T1_Builder_Close_Contour
64 };
67 FT_CALLBACK_TABLE_DEF
68 const T1_Decoder_Funcs t1_decoder_funcs =
69 {
70 T1_Decoder_Init,
71 T1_Decoder_Done,
72 T1_Decoder_Parse_Charstrings
73 };
76 static
77 const PSAux_Interface psaux_interface =
78 {
79 &ps_table_funcs,
80 &t1_parser_funcs,
81 &t1_builder_funcs,
82 &t1_decoder_funcs,
84 T1_Decrypt
85 };
88 FT_CALLBACK_TABLE_DEF
89 const FT_Module_Class psaux_module_class =
90 {
91 0,
92 sizeof( FT_ModuleRec ),
93 "psaux",
94 0x10000L,
95 0x20000L,
97 &psaux_interface, /* module-specific interface */
99 (FT_Module_Constructor)0,
100 (FT_Module_Destructor) 0,
101 (FT_Module_Requester) 0
102 };
105 /* END */