ReactOS  0.4.15-dev-1070-ge1a01de
psauxmod.c
Go to the documentation of this file.
1 /***************************************************************************/
2 /* */
3 /* psauxmod.c */
4 /* */
5 /* FreeType auxiliary PostScript module implementation (body). */
6 /* */
7 /* Copyright 2000-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 "psauxmod.h"
21 #include "psobjs.h"
22 #include "t1decode.h"
23 #include "t1cmap.h"
24 #include "psft.h"
25 #include "cffdecode.h"
26 
27 #ifndef T1_CONFIG_OPTION_NO_AFM
28 #include "afmparse.h"
29 #endif
30 
31 
34  {
35  ps_table_new, /* init */
36  ps_table_done, /* done */
37  ps_table_add, /* add */
38  ps_table_release /* release */
39  };
40 
41 
44  {
45  ps_parser_init, /* init */
46  ps_parser_done, /* done */
47 
48  ps_parser_skip_spaces, /* skip_spaces */
49  ps_parser_skip_PS_token, /* skip_PS_token */
50 
51  ps_parser_to_int, /* to_int */
52  ps_parser_to_fixed, /* to_fixed */
53  ps_parser_to_bytes, /* to_bytes */
54  ps_parser_to_coord_array, /* to_coord_array */
55  ps_parser_to_fixed_array, /* to_fixed_array */
56  ps_parser_to_token, /* to_token */
57  ps_parser_to_token_array, /* to_token_array */
58 
59  ps_parser_load_field, /* load_field */
60  ps_parser_load_field_table /* load_field_table */
61  };
62 
63 
66  {
67  ps_builder_init, /* init */
68  ps_builder_done /* done */
69  };
70 
71 
74  {
75  t1_builder_init, /* init */
76  t1_builder_done, /* done */
77 
78  t1_builder_check_points, /* check_points */
79  t1_builder_add_point, /* add_point */
80  t1_builder_add_point1, /* add_point1 */
81  t1_builder_add_contour, /* add_contour */
82  t1_builder_start_point, /* start_point */
83  t1_builder_close_contour /* close_contour */
84  };
85 
86 
89  {
90  t1_decoder_init, /* init */
91  t1_decoder_done, /* done */
92 #ifdef T1_CONFIG_OPTION_OLD_ENGINE
93  t1_decoder_parse_charstrings, /* parse_charstrings_old */
94 #else
95  t1_decoder_parse_metrics, /* parse_metrics */
96 #endif
97  cf2_decoder_parse_charstrings /* parse_charstrings */
98  };
99 
100 
101 #ifndef T1_CONFIG_OPTION_NO_AFM
104  {
105  afm_parser_init, /* init */
106  afm_parser_done, /* done */
107  afm_parser_parse /* parse */
108  };
109 #endif
110 
111 
114  {
119  };
120 
121 
124  {
125  cff_builder_init, /* init */
126  cff_builder_done, /* done */
127 
128  cff_check_points, /* check_points */
129  cff_builder_add_point, /* add_point */
130  cff_builder_add_point1, /* add_point1 */
131  cff_builder_add_contour, /* add_contour */
132  cff_builder_start_point, /* start_point */
133  cff_builder_close_contour /* close_contour */
134  };
135 
136 
139  {
140  cff_decoder_init, /* init */
141  cff_decoder_prepare, /* prepare */
142 
143 #ifdef CFF_CONFIG_OPTION_OLD_ENGINE
144  cff_decoder_parse_charstrings, /* parse_charstrings_old */
145 #endif
146  cf2_decoder_parse_charstrings /* parse_charstrings */
147  };
148 
149 
150  static
152  {
157  t1_decrypt,
158  cff_random,
161 
163 
164 #ifndef T1_CONFIG_OPTION_NO_AFM
166 #else
167  0,
168 #endif
169 
171  };
172 
173 
176  {
177  0,
178  sizeof ( FT_ModuleRec ),
179  "psaux",
180  0x20000L,
181  0x20000L,
182 
183  &psaux_interface, /* module-specific interface */
184 
185  (FT_Module_Constructor)NULL, /* module_init */
186  (FT_Module_Destructor) NULL, /* module_done */
187  (FT_Module_Requester) NULL /* get_interface */
188  };
189 
190 
191 /* END */
ps_table_add(PS_Table table, FT_Int idx, void *object, FT_UInt length)
Definition: psobjs.c:170
t1_decoder_parse_metrics(T1_Decoder decoder, FT_Byte *charstring_base, FT_UInt charstring_len)
Definition: t1decode.c:1662
FT_CALLBACK_TABLE_DEF const PS_Builder_FuncsRec ps_builder_funcs
Definition: psauxmod.c:65
FT_Error(* FT_Module_Constructor)(FT_Module module)
Definition: ftmodapi.h:152
t1_builder_done(T1_Builder builder)
Definition: psobjs.c:1589
t1_builder_add_point1(T1_Builder builder, FT_Pos x, FT_Pos y)
Definition: psobjs.c:1634
cff_builder_init(CFF_Builder *builder, TT_Face face, CFF_Size size, CFF_GlyphSlot glyph, FT_Bool hinting)
Definition: psobjs.c:1793
FT_CALLBACK_TABLE_DEF const AFM_Parser_FuncsRec afm_parser_funcs
Definition: psauxmod.c:103
afm_parser_parse(AFM_Parser parser)
Definition: afmparse.c:862
ps_parser_load_field_table(PS_Parser parser, const T1_Field field, void **objects, FT_UInt max_objects, FT_ULong *pflags)
Definition: psobjs.c:1297
t1_builder_start_point(T1_Builder builder, FT_Pos x, FT_Pos y)
Definition: psobjs.c:1686
ps_parser_done(PS_Parser parser)
Definition: psobjs.c:1498
struct FT_ModuleRec_ FT_ModuleRec
cff_check_points(CFF_Builder *builder, FT_Int count)
Definition: psobjs.c:1870
ps_parser_to_fixed(PS_Parser parser, FT_Int power_ten)
Definition: psobjs.c:1433
static const PSAux_Interface psaux_interface
Definition: psauxmod.c:151
ps_parser_skip_PS_token(PS_Parser parser)
Definition: psobjs.c:510
ps_parser_to_fixed_array(PS_Parser parser, FT_Int max_values, FT_Fixed *values, FT_Int power_ten)
Definition: psobjs.c:1453
ps_parser_to_token(PS_Parser parser, T1_Token token)
Definition: psobjs.c:618
cff_random(FT_UInt32 r)
Definition: psobjs.c:2522
afm_parser_done(AFM_Parser parser)
Definition: afmparse.c:558
cff_decoder_prepare(CFF_Decoder *decoder, CFF_Size size, FT_UInt glyph_index)
Definition: cffdecode.c:2313
ps_table_new(PS_Table table, FT_Int count, FT_Memory memory)
Definition: psobjs.c:71
t1_decoder_init(T1_Decoder decoder, FT_Face face, FT_Size size, FT_GlyphSlot slot, FT_Byte **glyph_names, PS_Blend blend, FT_Bool hinting, FT_Render_Mode hint_mode, T1_Decoder_Callback parse_callback)
Definition: t1decode.c:1925
FT_CALLBACK_TABLE_DEF const T1_Builder_FuncsRec t1_builder_funcs
Definition: psauxmod.c:73
ps_builder_init(PS_Builder *ps_builder, void *builder, FT_Bool is_t1)
Definition: psobjs.c:2057
FT_CALLBACK_TABLE_DEF const PS_Parser_FuncsRec ps_parser_funcs
Definition: psauxmod.c:43
FT_CALLBACK_TABLE_DEF const FT_Module_Class psaux_module_class
Definition: psauxmod.c:175
FT_Module_Interface(* FT_Module_Requester)(FT_Module module, const char *name)
Definition: ftmodapi.h:184
cff_builder_add_contour(CFF_Builder *builder)
Definition: psobjs.c:1934
smooth NULL
Definition: ftsmooth.c:416
cff_decoder_init(CFF_Decoder *decoder, TT_Face face, CFF_Size size, CFF_GlyphSlot slot, FT_Bool hinting, FT_Render_Mode hint_mode, CFF_Decoder_Get_Glyph_Callback get_callback, CFF_Decoder_Free_Glyph_Callback free_callback)
Definition: cffdecode.c:2277
cff_builder_add_point1(CFF_Builder *builder, FT_Pos x, FT_Pos y)
Definition: psobjs.c:1917
FT_CALLBACK_TABLE_DEF const T1_Decoder_FuncsRec t1_decoder_funcs
Definition: psauxmod.c:88
ps_parser_skip_spaces(PS_Parser parser)
Definition: psobjs.c:608
FT_CALLBACK_TABLE_DEF const T1_CMap_ClassesRec t1_cmap_classes
Definition: psauxmod.c:113
ps_table_release(PS_Table table)
Definition: psobjs.c:260
ps_parser_load_field(PS_Parser parser, const T1_Field field, void **objects, FT_UInt max_objects, FT_ULong *pflags)
Definition: psobjs.c:1025
ps_parser_to_int(PS_Parser parser)
Definition: psobjs.c:1370
ps_table_done(PS_Table table)
Definition: psobjs.c:236
FT_CALLBACK_TABLE_DEF const FT_CMap_ClassRec t1_cmap_standard_class_rec
Definition: t1cmap.c:135
FT_CALLBACK_TABLE_DEF const CFF_Decoder_FuncsRec cff_decoder_funcs
Definition: psauxmod.c:138
t1_builder_close_contour(T1_Builder builder)
Definition: psobjs.c:1711
cff_builder_close_contour(CFF_Builder *builder)
Definition: psobjs.c:1984
FT_CALLBACK_TABLE_DEF const CFF_Builder_FuncsRec cff_builder_funcs
Definition: psauxmod.c:123
t1_decrypt(FT_Byte *buffer, FT_Offset length, FT_UShort seed)
Definition: psobjs.c:2509
FT_CALLBACK_TABLE_DEF const FT_CMap_ClassRec t1_cmap_unicode_class_rec
Definition: t1cmap.c:354
ps_parser_to_coord_array(PS_Parser parser, FT_Int max_coords, FT_Short *coords)
Definition: psobjs.c:1442
ps_parser_to_bytes(PS_Parser parser, FT_Byte *bytes, FT_Offset max_bytes, FT_ULong *pnum_bytes, FT_Bool delimiters)
Definition: psobjs.c:1380
ps_decoder_init(PS_Decoder *ps_decoder, void *decoder, FT_Bool is_t1)
Definition: psobjs.c:2357
afm_parser_init(AFM_Parser parser, FT_Memory memory, FT_Byte *base, FT_Byte *limit)
Definition: afmparse.c:530
void(* FT_Module_Destructor)(FT_Module module)
Definition: ftmodapi.h:167
t1_make_subfont(FT_Face face, PS_Private priv, CFF_SubFont subfont)
Definition: psobjs.c:2424
cf2_decoder_parse_charstrings(PS_Decoder *decoder, FT_Byte *charstring_base, FT_ULong charstring_len)
Definition: psft.c:308
t1_builder_add_point(T1_Builder builder, FT_Pos x, FT_Pos y, FT_Byte flag)
Definition: psobjs.c:1610
ps_parser_init(PS_Parser parser, FT_Byte *base, FT_Byte *limit, FT_Memory memory)
Definition: psobjs.c:1483
t1_builder_add_contour(T1_Builder builder)
Definition: psobjs.c:1651
cff_builder_start_point(CFF_Builder *builder, FT_Pos x, FT_Pos y)
Definition: psobjs.c:1962
t1_builder_init(T1_Builder builder, FT_Face face, FT_Size size, FT_GlyphSlot glyph, FT_Bool hinting)
Definition: psobjs.c:1533
FT_CALLBACK_TABLE_DEF const FT_CMap_ClassRec t1_cmap_custom_class_rec
Definition: t1cmap.c:264
t1_decoder_done(T1_Decoder decoder)
Definition: t1decode.c:1973
cff_builder_add_point(CFF_Builder *builder, FT_Pos x, FT_Pos y, FT_Byte flag)
Definition: psobjs.c:1879
ps_parser_to_token_array(PS_Parser parser, T1_Token tokens, FT_UInt max_tokens, FT_Int *pnum_tokens)
Definition: psobjs.c:721
t1_builder_check_points(T1_Builder builder, FT_Int count)
Definition: psobjs.c:1601
#define FT_CALLBACK_TABLE_DEF
Definition: ftconfig.h:553
cff_builder_done(CFF_Builder *builder)
Definition: psobjs.c:1858
FT_CALLBACK_TABLE_DEF const FT_CMap_ClassRec t1_cmap_expert_class_rec
Definition: t1cmap.c:164
ps_builder_done(PS_Builder *builder)
Definition: psobjs.c:2133
FT_CALLBACK_TABLE_DEF const PS_Table_FuncsRec ps_table_funcs
Definition: psauxmod.c:33