Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. /***************************************************************************/
  2. /*                                                                         */
  3. /*  t42parse.h                                                             */
  4. /*                                                                         */
  5. /*    Type 42 font parser (specification).                                 */
  6. /*                                                                         */
  7. /*  Copyright 2002, 2003 by Roberto Alameda.                               */
  8. /*                                                                         */
  9. /*  This file is part of the FreeType project, and may only be used,       */
  10. /*  modified, and distributed under the terms of the FreeType project      */
  11. /*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
  12. /*  this file you indicate that you have read the license and              */
  13. /*  understand and accept it fully.                                        */
  14. /*                                                                         */
  15. /***************************************************************************/
  16.  
  17.  
  18. #ifndef __T42PARSE_H__
  19. #define __T42PARSE_H__
  20.  
  21.  
  22. #include "t42objs.h"
  23. #include FT_INTERNAL_POSTSCRIPT_AUX_H
  24.  
  25.  
  26. FT_BEGIN_HEADER
  27.  
  28.   typedef struct  T42_ParserRec_
  29.   {
  30.     PS_ParserRec  root;
  31.     FT_Stream     stream;
  32.  
  33.     FT_Byte*      base_dict;
  34.     FT_Long       base_len;
  35.  
  36.     FT_Bool       in_memory;
  37.  
  38.   } T42_ParserRec, *T42_Parser;
  39.  
  40.  
  41.   typedef struct  T42_Loader_
  42.   {
  43.     T42_ParserRec  parser;          /* parser used to read the stream */
  44.  
  45.     FT_UInt        num_chars;       /* number of characters in encoding */
  46.     PS_TableRec    encoding_table;  /* PS_Table used to store the       */
  47.                                     /* encoding character names         */
  48.  
  49.     FT_UInt        num_glyphs;
  50.     PS_TableRec    glyph_names;
  51.     PS_TableRec    charstrings;
  52.     PS_TableRec    swap_table;      /* For moving .notdef glyph to index 0. */
  53.  
  54.   } T42_LoaderRec, *T42_Loader;
  55.  
  56.  
  57.   FT_LOCAL( FT_Error )
  58.   t42_parser_init( T42_Parser     parser,
  59.                    FT_Stream      stream,
  60.                    FT_Memory      memory,
  61.                    PSAux_Service  psaux );
  62.  
  63.   FT_LOCAL( void )
  64.   t42_parser_done( T42_Parser  parser );
  65.  
  66.  
  67.   FT_LOCAL( FT_Error )
  68.   t42_parse_dict( T42_Face    face,
  69.                   T42_Loader  loader,
  70.                   FT_Byte*    base,
  71.                   FT_Long     size );
  72.  
  73.  
  74.   FT_LOCAL( void )
  75.   t42_loader_init( T42_Loader  loader,
  76.                    T42_Face    face );
  77.  
  78.   FT_LOCAL( void )
  79.   t42_loader_done( T42_Loader  loader );
  80.  
  81.  
  82.  /* */
  83.  
  84. FT_END_HEADER
  85.  
  86.  
  87. #endif /* __T42PARSE_H__ */
  88.  
  89.  
  90. /* END */
  91.