123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- /***************************************************************************/
- /* */
- /* pfrload.h */
- /* */
- /* FreeType PFR loader (specification). */
- /* */
- /* Copyright 2002 by */
- /* David Turner, Robert Wilhelm, and Werner Lemberg. */
- /* */
- /* This file is part of the FreeType project, and may only be used, */
- /* modified, and distributed under the terms of the FreeType project */
- /* license, LICENSE.TXT. By continuing to use, modify, or distribute */
- /* this file you indicate that you have read the license and */
- /* understand and accept it fully. */
- /* */
- /***************************************************************************/
- #ifndef __PFRLOAD_H__
- #define __PFRLOAD_H__
- #include "pfrobjs.h"
- #include FT_INTERNAL_STREAM_H
- FT_BEGIN_HEADER
- #ifdef PFR_CONFIG_NO_CHECKS
- #define PFR_CHECK( x ) do { } while ( 0 )
- #else
- #define PFR_CHECK( x ) do \
- { \
- if ( p + (x) > limit ) \
- goto Too_Short; \
- } while ( 0 )
- #endif
- #define PFR_NEXT_BYTE( p ) FT_NEXT_BYTE( p )
- #define PFR_NEXT_INT8( p ) FT_NEXT_CHAR( p )
- #define PFR_NEXT_SHORT( p ) FT_NEXT_SHORT( p )
- #define PFR_NEXT_USHORT( p ) FT_NEXT_USHORT( p )
- #define PFR_NEXT_LONG( p ) FT_NEXT_OFF3( p )
- #define PFR_NEXT_ULONG( p ) FT_NEXT_UOFF3( p )
- /* handling extra items */
- typedef FT_Error
- (*PFR_ExtraItem_ParseFunc)( FT_Byte* p,
- FT_Byte* limit,
- FT_Pointer data );
- typedef struct PFR_ExtraItemRec_
- {
- FT_UInt type;
- PFR_ExtraItem_ParseFunc parser;
-
- } PFR_ExtraItemRec;
-
- typedef const struct PFR_ExtraItemRec_* PFR_ExtraItem;
-
- FT_LOCAL( FT_Error )
- pfr_extra_items_skip( FT_Byte* *pp,
- FT_Byte* limit );
- FT_LOCAL( FT_Error )
- pfr_extra_items_parse( FT_Byte* *pp,
- FT_Byte* limit,
- PFR_ExtraItem item_list,
- FT_Pointer item_data );
- /* load a PFR header */
- FT_LOCAL( FT_Error )
- pfr_header_load( PFR_Header header,
- FT_Stream stream );
- /* check a PFR header */
- FT_LOCAL( FT_Bool )
- pfr_header_check( PFR_Header header );
- /* return number of logical fonts in this file */
- FT_LOCAL( FT_Error )
- pfr_log_font_count( FT_Stream stream,
- FT_UInt32 log_section_offset,
- FT_UInt *acount );
- /* load a pfr logical font entry */
- FT_LOCAL( FT_Error )
- pfr_log_font_load( PFR_LogFont log_font,
- FT_Stream stream,
- FT_UInt face_index,
- FT_UInt32 section_offset,
- FT_Bool size_increment );
- /* load a physical font entry */
- FT_LOCAL( FT_Error )
- pfr_phy_font_load( PFR_PhyFont phy_font,
- FT_Stream stream,
- FT_UInt32 offset,
- FT_UInt32 size );
- /* finalize a physical font */
- FT_LOCAL( void )
- pfr_phy_font_done( PFR_PhyFont phy_font,
- FT_Memory memory );
- /* */
-
- FT_END_HEADER
- #endif /* __PFRLOAD_H__ */
- /* END */
|