Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenpfrload.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 Sat May 26 2012 04:32:46 for ReactOS by
1.7.6.1
|