pfrload.h

Go to the documentation of this file.
00001 /***************************************************************************/
00002 /*                                                                         */
00003 /*  pfrload.h                                                              */
00004 /*                                                                         */
00005 /*    FreeType PFR loader (specification).                                 */
00006 /*                                                                         */
00007 /*  Copyright 2002 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 __PFRLOAD_H__
00020 #define __PFRLOAD_H__
00021 
00022 #include "pfrobjs.h"
00023 #include FT_INTERNAL_STREAM_H
00024 
00025 
00026 FT_BEGIN_HEADER
00027 
00028 #ifdef PFR_CONFIG_NO_CHECKS
00029 #define PFR_CHECK( x )  do { } while ( 0 )
00030 #else
00031 #define PFR_CHECK( x )  do                       \
00032                         {                        \
00033                           if ( p + (x) > limit ) \
00034                             goto Too_Short;      \
00035                         } while ( 0 )
00036 #endif
00037 
00038 #define PFR_NEXT_BYTE( p )    FT_NEXT_BYTE( p )
00039 #define PFR_NEXT_INT8( p )    FT_NEXT_CHAR( p )
00040 #define PFR_NEXT_SHORT( p )   FT_NEXT_SHORT( p )
00041 #define PFR_NEXT_USHORT( p )  FT_NEXT_USHORT( p )
00042 #define PFR_NEXT_LONG( p )    FT_NEXT_OFF3( p )
00043 #define PFR_NEXT_ULONG( p )   FT_NEXT_UOFF3( p )
00044 
00045 
00046  /* handling extra items */
00047 
00048   typedef FT_Error
00049   (*PFR_ExtraItem_ParseFunc)( FT_Byte*    p,
00050                               FT_Byte*    limit,
00051                               FT_Pointer  data );
00052 
00053   typedef struct  PFR_ExtraItemRec_
00054   {
00055     FT_UInt                  type;
00056     PFR_ExtraItem_ParseFunc  parser;
00057 
00058   } PFR_ExtraItemRec;
00059 
00060   typedef const struct PFR_ExtraItemRec_*  PFR_ExtraItem;
00061 
00062 
00063   FT_LOCAL( FT_Error )
00064   pfr_extra_items_skip( FT_Byte*  *pp,
00065                         FT_Byte*  limit );
00066 
00067   FT_LOCAL( FT_Error )
00068   pfr_extra_items_parse( FT_Byte*      *pp,
00069                          FT_Byte*       limit,
00070                          PFR_ExtraItem  item_list,
00071                          FT_Pointer     item_data );
00072 
00073 
00074   /* load a PFR header */
00075   FT_LOCAL( FT_Error )
00076   pfr_header_load( PFR_Header  header,
00077                    FT_Stream   stream );
00078 
00079   /* check a PFR header */
00080   FT_LOCAL( FT_Bool )
00081   pfr_header_check( PFR_Header  header );
00082 
00083 
00084   /* return number of logical fonts in this file */
00085   FT_LOCAL( FT_Error )
00086   pfr_log_font_count( FT_Stream   stream,
00087                       FT_UInt32   log_section_offset,
00088                       FT_UInt    *acount );
00089 
00090   /* load a pfr logical font entry */
00091   FT_LOCAL( FT_Error )
00092   pfr_log_font_load( PFR_LogFont  log_font,
00093                      FT_Stream    stream,
00094                      FT_UInt      face_index,
00095                      FT_UInt32    section_offset,
00096                      FT_Bool      size_increment );
00097 
00098 
00099   /* load a physical font entry */
00100   FT_LOCAL( FT_Error )
00101   pfr_phy_font_load( PFR_PhyFont  phy_font,
00102                      FT_Stream    stream,
00103                      FT_UInt32    offset,
00104                      FT_UInt32    size );
00105 
00106   /* finalize a physical font */
00107   FT_LOCAL( void )
00108   pfr_phy_font_done( PFR_PhyFont  phy_font,
00109                      FT_Memory    memory );
00110 
00111   /* */
00112 
00113 FT_END_HEADER
00114 
00115 #endif /* __PFRLOAD_H__ */
00116 
00117 
00118 /* END */

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