Add structures for WOFF2.
Add structures and macro for WOFF 2 header and table directory. * include/freetype/internal/wofftypes.h (WOFF2_HeaderRec, WOFF2_TableRec_): New structures. * include/freetype/tttags.h (TTAG_wOF2): New macro.
This commit is contained in:
parent
47ca5cb69d
commit
c26c91aa39
|
@ -104,6 +104,73 @@ FT_BEGIN_HEADER
|
|||
} WOFF_TableRec, *WOFF_Table;
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
*
|
||||
* @struct:
|
||||
* WOFF2_HeaderRec
|
||||
*
|
||||
* @description:
|
||||
* WOFF2 file format header.
|
||||
*
|
||||
* @fields:
|
||||
* See
|
||||
*
|
||||
* https://www.w3.org/TR/WOFF2/#woff20Header
|
||||
*
|
||||
* @note:
|
||||
* We don't care about the fields `reserved`, `majorVersion` and
|
||||
* `minorVersion`, so they are not included. The `totalSfntSize` field
|
||||
* does not necessarily represent the actual size of the uncompressed
|
||||
* SFNT font stream, so that is not included either.
|
||||
*/
|
||||
typedef struct WOFF2_HeaderRec
|
||||
{
|
||||
FT_ULong signature;
|
||||
FT_ULong flavor;
|
||||
FT_ULong length;
|
||||
FT_UShort num_tables;
|
||||
FT_ULong totalCompressedSize;
|
||||
FT_ULong metaOffset;
|
||||
FT_ULong metaLength;
|
||||
FT_ULong metaOrigLength;
|
||||
FT_ULong privOffset;
|
||||
FT_ULong privLength;
|
||||
|
||||
FT_ULong uncompressed_size;
|
||||
FT_ULong header_version;
|
||||
|
||||
} WOFF2_HeaderRec, *WOFF2_Header;
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
*
|
||||
* @struct:
|
||||
* WOFF2_TableRec
|
||||
*
|
||||
* @description:
|
||||
* This structure describes a given table of a WOFF2 font.
|
||||
*
|
||||
* @fields:
|
||||
* See
|
||||
*
|
||||
* https://www.w3.org/TR/WOFF2/#table_dir_format
|
||||
*/
|
||||
typedef struct WOFF2_TableRec_
|
||||
{
|
||||
FT_Byte FlagByte; /* table type and flags */
|
||||
FT_ULong Tag; /* table file offset */
|
||||
FT_ULong OrigLength; /* uncompressed table length */
|
||||
FT_ULong TransformLength; /* transformed length */
|
||||
|
||||
FT_ULong flags; /* calculated flags */
|
||||
FT_ULong src_offset; /* compressed table offset */
|
||||
FT_ULong src_length; /* compressed table length */
|
||||
|
||||
FT_ULong dst_offset; /* uncompressed table offset */
|
||||
|
||||
} WOFF2_TableRec, *WOFF2_Table;
|
||||
|
||||
|
||||
FT_END_HEADER
|
||||
|
||||
#endif /* WOFFTYPES_H_ */
|
||||
|
|
|
@ -107,6 +107,7 @@ FT_BEGIN_HEADER
|
|||
#define TTAG_vmtx FT_MAKE_TAG( 'v', 'm', 't', 'x' )
|
||||
#define TTAG_VVAR FT_MAKE_TAG( 'V', 'V', 'A', 'R' )
|
||||
#define TTAG_wOFF FT_MAKE_TAG( 'w', 'O', 'F', 'F' )
|
||||
#define TTAG_wOF2 FT_MAKE_TAG( 'w', 'O', 'F', '2' )
|
||||
|
||||
/* used by "Keyboard.dfont" on legacy Mac OS X */
|
||||
#define TTAG_0xA5kbd FT_MAKE_TAG( 0xA5, 'k', 'b', 'd' )
|
||||
|
|
Loading…
Reference in New Issue