Home | History | Annotate | Download | only in psaux
      1 /***************************************************************************/
      2 /*                                                                         */
      3 /*  psobjs.h                                                               */
      4 /*                                                                         */
      5 /*    Auxiliary functions for PostScript fonts (specification).            */
      6 /*                                                                         */
      7 /*  Copyright 1996-2001, 2002, 2003 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 #ifndef __PSOBJS_H__
     20 #define __PSOBJS_H__
     21 
     22 
     23 #include <ft2build.h>
     24 #include FT_INTERNAL_POSTSCRIPT_AUX_H
     25 
     26 
     27 FT_BEGIN_HEADER
     28 
     29 
     30   /*************************************************************************/
     31   /*************************************************************************/
     32   /*****                                                               *****/
     33   /*****                             T1_TABLE                          *****/
     34   /*****                                                               *****/
     35   /*************************************************************************/
     36   /*************************************************************************/
     37 
     38 
     39   FT_CALLBACK_TABLE
     40   const PS_Table_FuncsRec    ps_table_funcs;
     41 
     42   FT_CALLBACK_TABLE
     43   const PS_Parser_FuncsRec   ps_parser_funcs;
     44 
     45   FT_CALLBACK_TABLE
     46   const T1_Builder_FuncsRec  t1_builder_funcs;
     47 
     48 
     49   FT_LOCAL( FT_Error )
     50   ps_table_new( PS_Table   table,
     51                 FT_Int     count,
     52                 FT_Memory  memory );
     53 
     54   FT_LOCAL( FT_Error )
     55   ps_table_add( PS_Table    table,
     56                 FT_Int      idx,
     57                 void*       object,
     58                 FT_PtrDist  length );
     59 
     60   FT_LOCAL( void )
     61   ps_table_done( PS_Table  table );
     62 
     63 
     64   FT_LOCAL( void )
     65   ps_table_release( PS_Table  table );
     66 
     67 
     68   /*************************************************************************/
     69   /*************************************************************************/
     70   /*****                                                               *****/
     71   /*****                            T1 PARSER                          *****/
     72   /*****                                                               *****/
     73   /*************************************************************************/
     74   /*************************************************************************/
     75 
     76 
     77   FT_LOCAL( void )
     78   ps_parser_skip_spaces( PS_Parser  parser );
     79 
     80   FT_LOCAL( void )
     81   ps_parser_skip_PS_token( PS_Parser  parser );
     82 
     83   FT_LOCAL( void )
     84   ps_parser_to_token( PS_Parser  parser,
     85                       T1_Token   token );
     86 
     87   FT_LOCAL( void )
     88   ps_parser_to_token_array( PS_Parser  parser,
     89                             T1_Token   tokens,
     90                             FT_UInt    max_tokens,
     91                             FT_Int*    pnum_tokens );
     92 
     93   FT_LOCAL( FT_Error )
     94   ps_parser_load_field( PS_Parser       parser,
     95                         const T1_Field  field,
     96                         void**          objects,
     97                         FT_UInt         max_objects,
     98                         FT_ULong*       pflags );
     99 
    100   FT_LOCAL( FT_Error )
    101   ps_parser_load_field_table( PS_Parser       parser,
    102                               const T1_Field  field,
    103                               void**          objects,
    104                               FT_UInt         max_objects,
    105                               FT_ULong*       pflags );
    106 
    107   FT_LOCAL( FT_Long )
    108   ps_parser_to_int( PS_Parser  parser );
    109 
    110 
    111   FT_LOCAL( FT_Error )
    112   ps_parser_to_bytes( PS_Parser  parser,
    113                       FT_Byte*   bytes,
    114                       FT_Offset  max_bytes,
    115                       FT_Long*   pnum_bytes,
    116                       FT_Bool    delimiters );
    117 
    118 
    119   FT_LOCAL( FT_Fixed )
    120   ps_parser_to_fixed( PS_Parser  parser,
    121                       FT_Int     power_ten );
    122 
    123 
    124   FT_LOCAL( FT_Int )
    125   ps_parser_to_coord_array( PS_Parser  parser,
    126                             FT_Int     max_coords,
    127                             FT_Short*  coords );
    128 
    129   FT_LOCAL( FT_Int )
    130   ps_parser_to_fixed_array( PS_Parser  parser,
    131                             FT_Int     max_values,
    132                             FT_Fixed*  values,
    133                             FT_Int     power_ten );
    134 
    135 
    136   FT_LOCAL( void )
    137   ps_parser_init( PS_Parser  parser,
    138                   FT_Byte*   base,
    139                   FT_Byte*   limit,
    140                   FT_Memory  memory );
    141 
    142   FT_LOCAL( void )
    143   ps_parser_done( PS_Parser  parser );
    144 
    145 
    146   /*************************************************************************/
    147   /*************************************************************************/
    148   /*****                                                               *****/
    149   /*****                            T1 BUILDER                         *****/
    150   /*****                                                               *****/
    151   /*************************************************************************/
    152   /*************************************************************************/
    153 
    154   FT_LOCAL( void )
    155   t1_builder_init( T1_Builder    builder,
    156                    FT_Face       face,
    157                    FT_Size       size,
    158                    FT_GlyphSlot  glyph,
    159                    FT_Bool       hinting );
    160 
    161   FT_LOCAL( void )
    162   t1_builder_done( T1_Builder  builder );
    163 
    164   FT_LOCAL( FT_Error )
    165   t1_builder_check_points( T1_Builder  builder,
    166                            FT_Int      count );
    167 
    168   FT_LOCAL( void )
    169   t1_builder_add_point( T1_Builder  builder,
    170                         FT_Pos      x,
    171                         FT_Pos      y,
    172                         FT_Byte     flag );
    173 
    174   FT_LOCAL( FT_Error )
    175   t1_builder_add_point1( T1_Builder  builder,
    176                          FT_Pos      x,
    177                          FT_Pos      y );
    178 
    179   FT_LOCAL( FT_Error )
    180   t1_builder_add_contour( T1_Builder  builder );
    181 
    182 
    183   FT_LOCAL( FT_Error )
    184   t1_builder_start_point( T1_Builder  builder,
    185                           FT_Pos      x,
    186                           FT_Pos      y );
    187 
    188 
    189   FT_LOCAL( void )
    190   t1_builder_close_contour( T1_Builder  builder );
    191 
    192 
    193   /*************************************************************************/
    194   /*************************************************************************/
    195   /*****                                                               *****/
    196   /*****                            OTHER                              *****/
    197   /*****                                                               *****/
    198   /*************************************************************************/
    199   /*************************************************************************/
    200 
    201   FT_LOCAL( void )
    202   t1_decrypt( FT_Byte*   buffer,
    203               FT_Offset  length,
    204               FT_UShort  seed );
    205 
    206 
    207 FT_END_HEADER
    208 
    209 #endif /* __PSOBJS_H__ */
    210 
    211 
    212 /* END */
    213