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