113 lines
2.7 KiB
C++
113 lines
2.7 KiB
C++
/****************************************************************************
|
|
*
|
|
* wofftypes.h
|
|
*
|
|
* Basic WOFF/WOFF2 type definitions and interface (specification
|
|
* only).
|
|
*
|
|
* Copyright (C) 1996-2019 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 WOFFTYPES_H_
|
|
#define WOFFTYPES_H_
|
|
|
|
|
|
#include <ft2build.h>
|
|
#include FT_TRUETYPE_TABLES_H
|
|
#include FT_INTERNAL_OBJECTS_H
|
|
|
|
|
|
FT_BEGIN_HEADER
|
|
|
|
|
|
/**************************************************************************
|
|
*
|
|
* @struct:
|
|
* WOFF_HeaderRec
|
|
*
|
|
* @description:
|
|
* WOFF file format header.
|
|
*
|
|
* @fields:
|
|
* See
|
|
*
|
|
* https://www.w3.org/TR/WOFF/#WOFFHeader
|
|
*/
|
|
typedef struct WOFF_HeaderRec_
|
|
{
|
|
FT_ULong signature;
|
|
FT_ULong flavor;
|
|
FT_ULong length;
|
|
FT_UShort num_tables;
|
|
FT_UShort reserved;
|
|
FT_ULong totalSfntSize;
|
|
FT_UShort majorVersion;
|
|
FT_UShort minorVersion;
|
|
FT_ULong metaOffset;
|
|
FT_ULong metaLength;
|
|
FT_ULong metaOrigLength;
|
|
FT_ULong privOffset;
|
|
FT_ULong privLength;
|
|
|
|
} WOFF_HeaderRec, *WOFF_Header;
|
|
|
|
|
|
/**************************************************************************
|
|
*
|
|
* @struct:
|
|
* WOFF_TableRec
|
|
*
|
|
* @description:
|
|
* This structure describes a given table of a WOFF font.
|
|
*
|
|
* @fields:
|
|
* Tag ::
|
|
* A four-bytes tag describing the table.
|
|
*
|
|
* Offset ::
|
|
* The offset of the table from the start of the WOFF font in its
|
|
* resource.
|
|
*
|
|
* CompLength ::
|
|
* Compressed table length (in bytes).
|
|
*
|
|
* OrigLength ::
|
|
* Uncompressed table length (in bytes).
|
|
*
|
|
* CheckSum ::
|
|
* The table checksum. This value can be ignored.
|
|
*
|
|
* OrigOffset ::
|
|
* The uncompressed table file offset. This value gets computed while
|
|
* constructing the (uncompressed) SFNT header. It is not contained in
|
|
* the WOFF file.
|
|
*/
|
|
typedef struct WOFF_TableRec_
|
|
{
|
|
FT_ULong Tag; /* table ID */
|
|
FT_ULong Offset; /* table file offset */
|
|
FT_ULong CompLength; /* compressed table length */
|
|
FT_ULong OrigLength; /* uncompressed table length */
|
|
FT_ULong CheckSum; /* uncompressed checksum */
|
|
|
|
FT_ULong OrigOffset; /* uncompressed table file offset */
|
|
/* (not in the WOFF file) */
|
|
} WOFF_TableRec, *WOFF_Table;
|
|
|
|
|
|
FT_END_HEADER
|
|
|
|
#endif /* WOFFTYPES_H_ */
|
|
|
|
|
|
/* END */
|