| Index: third_party/freetype2/src/src/pfr/pfrload.h
|
| diff --git a/third_party/freetype2/src/src/pfr/pfrload.h b/third_party/freetype2/src/src/pfr/pfrload.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..867e632409070b531439782a81665001d9af05e9
|
| --- /dev/null
|
| +++ b/third_party/freetype2/src/src/pfr/pfrload.h
|
| @@ -0,0 +1,123 @@
|
| +/***************************************************************************/
|
| +/* */
|
| +/* pfrload.h */
|
| +/* */
|
| +/* FreeType PFR loader (specification). */
|
| +/* */
|
| +/* Copyright 2002-2015 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
|
| +
|
| + /* some size checks should be always done (mainly to prevent */
|
| + /* excessive allocation for malformed data), ... */
|
| +#define PFR_CHECK_SIZE( x ) do \
|
| + { \
|
| + if ( p + (x) > limit ) \
|
| + goto Too_Short; \
|
| + } while ( 0 )
|
| +
|
| + /* ... and some only if intensive checking is explicitly requested */
|
| +#ifdef PFR_CONFIG_NO_CHECKS
|
| +#define PFR_CHECK( x ) do { } while ( 0 )
|
| +#else
|
| +#define PFR_CHECK PFR_CHECK_SIZE
|
| +#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_Long *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 */
|
|
|