Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  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.