misc/libfreetype/src/psaux/psauxmod.c
changeset 5172 88f2e05288ba
equal deleted inserted replaced
5171:f9283dc4860d 5172:88f2e05288ba
       
     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 */