1*37da2899SCharles.Forsyth /***************************************************************************/ 2*37da2899SCharles.Forsyth /* */ 3*37da2899SCharles.Forsyth /* psauxmod.c */ 4*37da2899SCharles.Forsyth /* */ 5*37da2899SCharles.Forsyth /* FreeType auxiliary PostScript module implementation (body). */ 6*37da2899SCharles.Forsyth /* */ 7*37da2899SCharles.Forsyth /* Copyright 2000-2001, 2002 by */ 8*37da2899SCharles.Forsyth /* David Turner, Robert Wilhelm, and Werner Lemberg. */ 9*37da2899SCharles.Forsyth /* */ 10*37da2899SCharles.Forsyth /* This file is part of the FreeType project, and may only be used, */ 11*37da2899SCharles.Forsyth /* modified, and distributed under the terms of the FreeType project */ 12*37da2899SCharles.Forsyth /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 13*37da2899SCharles.Forsyth /* this file you indicate that you have read the license and */ 14*37da2899SCharles.Forsyth /* understand and accept it fully. */ 15*37da2899SCharles.Forsyth /* */ 16*37da2899SCharles.Forsyth /***************************************************************************/ 17*37da2899SCharles.Forsyth 18*37da2899SCharles.Forsyth 19*37da2899SCharles.Forsyth #include <ft2build.h> 20*37da2899SCharles.Forsyth #include "psauxmod.h" 21*37da2899SCharles.Forsyth #include "psobjs.h" 22*37da2899SCharles.Forsyth #include "t1decode.h" 23*37da2899SCharles.Forsyth #include "t1cmap.h" 24*37da2899SCharles.Forsyth 25*37da2899SCharles.Forsyth 26*37da2899SCharles.Forsyth FT_CALLBACK_TABLE_DEF 27*37da2899SCharles.Forsyth const PS_Table_FuncsRec ps_table_funcs = 28*37da2899SCharles.Forsyth { 29*37da2899SCharles.Forsyth ps_table_new, 30*37da2899SCharles.Forsyth ps_table_done, 31*37da2899SCharles.Forsyth ps_table_add, 32*37da2899SCharles.Forsyth ps_table_release 33*37da2899SCharles.Forsyth }; 34*37da2899SCharles.Forsyth 35*37da2899SCharles.Forsyth 36*37da2899SCharles.Forsyth FT_CALLBACK_TABLE_DEF 37*37da2899SCharles.Forsyth const PS_Parser_FuncsRec ps_parser_funcs = 38*37da2899SCharles.Forsyth { 39*37da2899SCharles.Forsyth ps_parser_init, 40*37da2899SCharles.Forsyth ps_parser_done, 41*37da2899SCharles.Forsyth ps_parser_skip_spaces, 42*37da2899SCharles.Forsyth ps_parser_skip_alpha, 43*37da2899SCharles.Forsyth ps_parser_to_int, 44*37da2899SCharles.Forsyth ps_parser_to_fixed, 45*37da2899SCharles.Forsyth ps_parser_to_coord_array, 46*37da2899SCharles.Forsyth ps_parser_to_fixed_array, 47*37da2899SCharles.Forsyth ps_parser_to_token, 48*37da2899SCharles.Forsyth ps_parser_to_token_array, 49*37da2899SCharles.Forsyth ps_parser_load_field, 50*37da2899SCharles.Forsyth ps_parser_load_field_table 51*37da2899SCharles.Forsyth }; 52*37da2899SCharles.Forsyth 53*37da2899SCharles.Forsyth 54*37da2899SCharles.Forsyth FT_CALLBACK_TABLE_DEF 55*37da2899SCharles.Forsyth const T1_Builder_FuncsRec t1_builder_funcs = 56*37da2899SCharles.Forsyth { 57*37da2899SCharles.Forsyth t1_builder_init, 58*37da2899SCharles.Forsyth t1_builder_done, 59*37da2899SCharles.Forsyth t1_builder_check_points, 60*37da2899SCharles.Forsyth t1_builder_add_point, 61*37da2899SCharles.Forsyth t1_builder_add_point1, 62*37da2899SCharles.Forsyth t1_builder_add_contour, 63*37da2899SCharles.Forsyth t1_builder_start_point, 64*37da2899SCharles.Forsyth t1_builder_close_contour 65*37da2899SCharles.Forsyth }; 66*37da2899SCharles.Forsyth 67*37da2899SCharles.Forsyth 68*37da2899SCharles.Forsyth FT_CALLBACK_TABLE_DEF 69*37da2899SCharles.Forsyth const T1_Decoder_FuncsRec t1_decoder_funcs = 70*37da2899SCharles.Forsyth { 71*37da2899SCharles.Forsyth t1_decoder_init, 72*37da2899SCharles.Forsyth t1_decoder_done, 73*37da2899SCharles.Forsyth t1_decoder_parse_charstrings 74*37da2899SCharles.Forsyth }; 75*37da2899SCharles.Forsyth 76*37da2899SCharles.Forsyth 77*37da2899SCharles.Forsyth FT_CALLBACK_TABLE_DEF 78*37da2899SCharles.Forsyth const T1_CMap_ClassesRec t1_cmap_classes = 79*37da2899SCharles.Forsyth { 80*37da2899SCharles.Forsyth &t1_cmap_standard_class_rec, 81*37da2899SCharles.Forsyth &t1_cmap_expert_class_rec, 82*37da2899SCharles.Forsyth &t1_cmap_custom_class_rec, 83*37da2899SCharles.Forsyth &t1_cmap_unicode_class_rec 84*37da2899SCharles.Forsyth }; 85*37da2899SCharles.Forsyth 86*37da2899SCharles.Forsyth 87*37da2899SCharles.Forsyth static 88*37da2899SCharles.Forsyth const PSAux_Interface psaux_interface = 89*37da2899SCharles.Forsyth { 90*37da2899SCharles.Forsyth &ps_table_funcs, 91*37da2899SCharles.Forsyth &ps_parser_funcs, 92*37da2899SCharles.Forsyth &t1_builder_funcs, 93*37da2899SCharles.Forsyth &t1_decoder_funcs, 94*37da2899SCharles.Forsyth 95*37da2899SCharles.Forsyth t1_decrypt, 96*37da2899SCharles.Forsyth 97*37da2899SCharles.Forsyth (const T1_CMap_ClassesRec*) &t1_cmap_classes, 98*37da2899SCharles.Forsyth }; 99*37da2899SCharles.Forsyth 100*37da2899SCharles.Forsyth 101*37da2899SCharles.Forsyth FT_CALLBACK_TABLE_DEF 102*37da2899SCharles.Forsyth const FT_Module_Class psaux_module_class = 103*37da2899SCharles.Forsyth { 104*37da2899SCharles.Forsyth 0, 105*37da2899SCharles.Forsyth sizeof( FT_ModuleRec ), 106*37da2899SCharles.Forsyth "psaux", 107*37da2899SCharles.Forsyth 0x10000L, 108*37da2899SCharles.Forsyth 0x20000L, 109*37da2899SCharles.Forsyth 110*37da2899SCharles.Forsyth &psaux_interface, /* module-specific interface */ 111*37da2899SCharles.Forsyth 112*37da2899SCharles.Forsyth (FT_Module_Constructor)0, 113*37da2899SCharles.Forsyth (FT_Module_Destructor) 0, 114*37da2899SCharles.Forsyth (FT_Module_Requester) 0 115*37da2899SCharles.Forsyth }; 116*37da2899SCharles.Forsyth 117*37da2899SCharles.Forsyth 118*37da2899SCharles.Forsyth /* END */ 119