psauxmod.c revision f463818dd9146e11105c0572fb119e757eb47768
1/***************************************************************************/ 2/* */ 3/* psauxmod.c */ 4/* */ 5/* FreeType auxiliary PostScript module implementation (body). */ 6/* */ 7/* Copyright 2000-2001, 2002, 2003, 2006 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 25#ifndef T1_CONFIG_OPTION_NO_AFM 26#include "afmparse.h" 27#endif 28 29 30 FT_CALLBACK_TABLE_DEF 31 const PS_Table_FuncsRec ps_table_funcs = 32 { 33 ps_table_new, 34 ps_table_done, 35 ps_table_add, 36 ps_table_release 37 }; 38 39 40 FT_CALLBACK_TABLE_DEF 41 const PS_Parser_FuncsRec ps_parser_funcs = 42 { 43 ps_parser_init, 44 ps_parser_done, 45 ps_parser_skip_spaces, 46 ps_parser_skip_PS_token, 47 ps_parser_to_int, 48 ps_parser_to_fixed, 49 ps_parser_to_bytes, 50 ps_parser_to_coord_array, 51 ps_parser_to_fixed_array, 52 ps_parser_to_token, 53 ps_parser_to_token_array, 54 ps_parser_load_field, 55 ps_parser_load_field_table 56 }; 57 58 59 FT_CALLBACK_TABLE_DEF 60 const T1_Builder_FuncsRec t1_builder_funcs = 61 { 62 t1_builder_init, 63 t1_builder_done, 64 t1_builder_check_points, 65 t1_builder_add_point, 66 t1_builder_add_point1, 67 t1_builder_add_contour, 68 t1_builder_start_point, 69 t1_builder_close_contour 70 }; 71 72 73 FT_CALLBACK_TABLE_DEF 74 const T1_Decoder_FuncsRec t1_decoder_funcs = 75 { 76 t1_decoder_init, 77 t1_decoder_done, 78 t1_decoder_parse_charstrings 79 }; 80 81 82#ifndef T1_CONFIG_OPTION_NO_AFM 83 FT_CALLBACK_TABLE_DEF 84 const AFM_Parser_FuncsRec afm_parser_funcs = 85 { 86 afm_parser_init, 87 afm_parser_done, 88 afm_parser_parse 89 }; 90#endif 91 92 93 FT_CALLBACK_TABLE_DEF 94 const T1_CMap_ClassesRec t1_cmap_classes = 95 { 96 &t1_cmap_standard_class_rec, 97 &t1_cmap_expert_class_rec, 98 &t1_cmap_custom_class_rec, 99 &t1_cmap_unicode_class_rec 100 }; 101 102 103 static 104 const PSAux_Interface psaux_interface = 105 { 106 &ps_table_funcs, 107 &ps_parser_funcs, 108 &t1_builder_funcs, 109 &t1_decoder_funcs, 110 t1_decrypt, 111 112 (const T1_CMap_ClassesRec*) &t1_cmap_classes, 113 114#ifndef T1_CONFIG_OPTION_NO_AFM 115 &afm_parser_funcs, 116#else 117 0, 118#endif 119 }; 120 121 122 FT_CALLBACK_TABLE_DEF 123 const FT_Module_Class psaux_module_class = 124 { 125 0, 126 sizeof( FT_ModuleRec ), 127 "psaux", 128 0x20000L, 129 0x20000L, 130 131 &psaux_interface, /* module-specific interface */ 132 133 (FT_Module_Constructor)0, 134 (FT_Module_Destructor) 0, 135 (FT_Module_Requester) 0 136 }; 137 138 139/* END */ 140