cidparse.h

Go to the documentation of this file.
00001 /***************************************************************************/
00002 /*                                                                         */
00003 /*  cidparse.h                                                             */
00004 /*                                                                         */
00005 /*    CID-keyed Type1 parser (specification).                              */
00006 /*                                                                         */
00007 /*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
00008 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
00009 /*                                                                         */
00010 /*  This file is part of the FreeType project, and may only be used,       */
00011 /*  modified, and distributed under the terms of the FreeType project      */
00012 /*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
00013 /*  this file you indicate that you have read the license and              */
00014 /*  understand and accept it fully.                                        */
00015 /*                                                                         */
00016 /***************************************************************************/
00017 
00018 
00019 #ifndef __CIDPARSE_H__
00020 #define __CIDPARSE_H__
00021 
00022 
00023 #include <ft2build.h>
00024 #include FT_INTERNAL_TYPE1_TYPES_H
00025 #include FT_INTERNAL_STREAM_H
00026 #include FT_INTERNAL_POSTSCRIPT_AUX_H
00027 
00028 
00029 FT_BEGIN_HEADER
00030 
00031 
00032   /*************************************************************************/
00033   /*                                                                       */
00034   /* <Struct>                                                              */
00035   /*    CID_Parser                                                         */
00036   /*                                                                       */
00037   /* <Description>                                                         */
00038   /*    A CID_Parser is an object used to parse a Type 1 fonts very        */
00039   /*    quickly.                                                           */
00040   /*                                                                       */
00041   /* <Fields>                                                              */
00042   /*    root           :: The root PS_ParserRec fields.                    */
00043   /*                                                                       */
00044   /*    stream         :: The current input stream.                        */
00045   /*                                                                       */
00046   /*    postscript     :: A pointer to the data to be parsed.              */
00047   /*                                                                       */
00048   /*    postscript_len :: The length of the data to be parsed.             */
00049   /*                                                                       */
00050   /*    data_offset    :: The start position of the binary data (i.e., the */
00051   /*                      end of the data to be parsed.                    */
00052   /*                                                                       */
00053   /*    binary_length  :: The length of the data after the `StartData'     */
00054   /*                      command if the data format is hexadecimal.       */
00055   /*                                                                       */
00056   /*    cid            :: A structure which holds the information about    */
00057   /*                      the current font.                                */
00058   /*                                                                       */
00059   /*    num_dict       :: The number of font dictionaries.                 */
00060   /*                                                                       */
00061   typedef struct  CID_Parser_
00062   {
00063     PS_ParserRec  root;
00064     FT_Stream     stream;
00065 
00066     FT_Byte*      postscript;
00067     FT_Long       postscript_len;
00068 
00069     FT_ULong      data_offset;
00070 
00071     FT_Long       binary_length;
00072 
00073     CID_FaceInfo  cid;
00074     FT_Int        num_dict;
00075 
00076   } CID_Parser;
00077 
00078 
00079   FT_LOCAL( FT_Error )
00080   cid_parser_new( CID_Parser*    parser,
00081                   FT_Stream      stream,
00082                   FT_Memory      memory,
00083                   PSAux_Service  psaux );
00084 
00085   FT_LOCAL( void )
00086   cid_parser_done( CID_Parser*  parser );
00087 
00088 
00089   /*************************************************************************/
00090   /*                                                                       */
00091   /*                            PARSING ROUTINES                           */
00092   /*                                                                       */
00093   /*************************************************************************/
00094 
00095 #define cid_parser_skip_spaces( p ) \
00096           (p)->root.funcs.skip_spaces( &(p)->root )
00097 #define cid_parser_skip_PS_token( p ) \
00098           (p)->root.funcs.skip_PS_token( &(p)->root )
00099 
00100 #define cid_parser_to_int( p )        (p)->root.funcs.to_int( &(p)->root )
00101 #define cid_parser_to_fixed( p, t )   (p)->root.funcs.to_fixed( &(p)->root, t )
00102 
00103 #define cid_parser_to_coord_array( p, m, c )                          \
00104           (p)->root.funcs.to_coord_array( &(p)->root, m, c )
00105 #define cid_parser_to_fixed_array( p, m, f, t )                          \
00106           (p)->root.funcs.to_fixed_array( &(p)->root, m, f, t )
00107 #define cid_parser_to_token( p, t )                         \
00108           (p)->root.funcs.to_token( &(p)->root, t )
00109 #define cid_parser_to_token_array( p, t, m, c )                          \
00110           (p)->root.funcs.to_token_array( &(p)->root, t, m, c )
00111 
00112 #define cid_parser_load_field( p, f, o )                              \
00113           (p)->root.funcs.load_field( &(p)->root, f, o, 0, 0 )
00114 #define cid_parser_load_field_table( p, f, o )                              \
00115           (p)->root.funcs.load_field_table( &(p)->root, f, o, 0, 0 )
00116 
00117 
00118 FT_END_HEADER
00119 
00120 #endif /* __CIDPARSE_H__ */
00121 
00122 
00123 /* END */

Generated on Tue Jul 5 14:13:46 2011 for ROOT_528-00b_version by  doxygen 1.5.1