(root)/
freetype-2.13.2/
src/
psaux/
psobjs.h
       1  /****************************************************************************
       2   *
       3   * psobjs.h
       4   *
       5   *   Auxiliary functions for PostScript fonts (specification).
       6   *
       7   * Copyright (C) 1996-2023 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 <freetype/internal/psaux.h>
      24  #include <freetype/internal/cffotypes.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                  const void*  object,
      58                  FT_UInt      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_ULong*  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    /*****                           CFF BUILDER                         *****/
     197    /*****                                                               *****/
     198    /*************************************************************************/
     199    /*************************************************************************/
     200  
     201    FT_LOCAL( void )
     202    cff_builder_init( CFF_Builder*   builder,
     203                      TT_Face        face,
     204                      CFF_Size       size,
     205                      CFF_GlyphSlot  glyph,
     206                      FT_Bool        hinting );
     207  
     208    FT_LOCAL( void )
     209    cff_builder_done( CFF_Builder*  builder );
     210  
     211    FT_LOCAL( FT_Error )
     212    cff_check_points( CFF_Builder*  builder,
     213                      FT_Int        count );
     214  
     215    FT_LOCAL( void )
     216    cff_builder_add_point( CFF_Builder*  builder,
     217                           FT_Pos        x,
     218                           FT_Pos        y,
     219                           FT_Byte       flag );
     220    FT_LOCAL( FT_Error )
     221    cff_builder_add_point1( CFF_Builder*  builder,
     222                            FT_Pos        x,
     223                            FT_Pos        y );
     224    FT_LOCAL( FT_Error )
     225    cff_builder_start_point( CFF_Builder*  builder,
     226                             FT_Pos        x,
     227                             FT_Pos        y );
     228    FT_LOCAL( void )
     229    cff_builder_close_contour( CFF_Builder*  builder );
     230  
     231    FT_LOCAL( FT_Error )
     232    cff_builder_add_contour( CFF_Builder*  builder );
     233  
     234  
     235    /*************************************************************************/
     236    /*************************************************************************/
     237    /*****                                                               *****/
     238    /*****                            PS BUILDER                         *****/
     239    /*****                                                               *****/
     240    /*************************************************************************/
     241    /*************************************************************************/
     242  
     243    FT_LOCAL( void )
     244    ps_builder_init( PS_Builder*  ps_builder,
     245                     void*        builder,
     246                     FT_Bool      is_t1 );
     247  
     248  
     249    FT_LOCAL( void )
     250    ps_builder_done( PS_Builder*  builder );
     251  
     252    FT_LOCAL( FT_Error )
     253    ps_builder_check_points( PS_Builder*  builder,
     254                             FT_Int       count );
     255  
     256    FT_LOCAL( void )
     257    ps_builder_add_point( PS_Builder*  builder,
     258                          FT_Pos       x,
     259                          FT_Pos       y,
     260                          FT_Byte      flag );
     261  
     262    FT_LOCAL( FT_Error )
     263    ps_builder_add_point1( PS_Builder*  builder,
     264                           FT_Pos       x,
     265                           FT_Pos       y );
     266  
     267    FT_LOCAL( FT_Error )
     268    ps_builder_add_contour( PS_Builder*  builder );
     269  
     270    FT_LOCAL( FT_Error )
     271    ps_builder_start_point( PS_Builder*  builder,
     272                            FT_Pos       x,
     273                            FT_Pos       y );
     274  
     275    FT_LOCAL( void )
     276    ps_builder_close_contour( PS_Builder*  builder );
     277  
     278  
     279    /*************************************************************************/
     280    /*************************************************************************/
     281    /*****                                                               *****/
     282    /*****                            OTHER                              *****/
     283    /*****                                                               *****/
     284    /*************************************************************************/
     285    /*************************************************************************/
     286  
     287    FT_LOCAL( void )
     288    ps_decoder_init( PS_Decoder*  ps_decoder,
     289                     void*        decoder,
     290                     FT_Bool      is_t1 );
     291  
     292    FT_LOCAL( void )
     293    t1_make_subfont( FT_Face      face,
     294                     PS_Private   priv,
     295                     CFF_SubFont  subfont );
     296  
     297    FT_LOCAL( void )
     298    t1_decrypt( FT_Byte*   buffer,
     299                FT_Offset  length,
     300                FT_UShort  seed );
     301  
     302  
     303    FT_LOCAL( FT_UInt32 )
     304    cff_random( FT_UInt32  r );
     305  
     306  
     307  FT_END_HEADER
     308  
     309  #endif /* PSOBJS_H_ */
     310  
     311  
     312  /* END */