// SPDX-License-Identifier: MIT OR MPL-2.0 OR LGPL-2.1-or-later OR GPL-2.0-or-later // Copyright 2010, SIL International, All rights reserved. #pragma once /* Responsibility: Tim Eves Last reviewed: Not yet. Description: Provides types required to represent the TTF basic types. */ //********************************************************************************************** // Include files //********************************************************************************************** namespace graphite2 { namespace TtfUtil { //********************************************************************************************** // Forward declarations //********************************************************************************************** //********************************************************************************************** // Type declarations //********************************************************************************************** uint8; byte; int8; uint16; int16; uint32; int32; short_frac; fixed; fword; ufword; f2dot14; long_date_time; //********************************************************************************************** // Constants and enum types //**********************************************************************************************/ enum { … }; //********************************************************************************************** // Table declarations //********************************************************************************************** namespace Sfnt { #pragma pack(push,1) // We need this or the structure members aren't aligned // correctly. Fortunately this form of pragma is supposed // to be recognised by VS C++ too (at least according to // MSDN). struct OffsetSubTable { … }; struct CharacterCodeMap { … }; struct CmapSubTable { … }; struct CmapSubTableFormat4 : CmapSubTable { … }; struct CmapSubTableFormat12 { … }; struct FontHeader { … }; struct PostScriptGlyphName { … }; struct PostScriptGlyphName2 : PostScriptGlyphName { … }; struct PostScriptGlyphName25 : PostScriptGlyphName { … }; struct PostScriptGlyphName3 : PostScriptGlyphName { … }; struct PostScriptGlyphName4 : PostScriptGlyphName { … }; struct HorizontalHeader { … }; struct MaximumProfile { … }; Panose; struct Compatibility0 { … }; struct Compatibility1 : Compatibility0 { … }; struct Compatibility2 : Compatibility1 { … }; struct Compatibility3 : Compatibility2 { … }; Compatibility; struct NameRecord { … }; struct LangTagRecord { … }; struct FontNames { … }; struct HorizontalMetric { … }; struct Glyph { … }; struct SimpleGlyph : Glyph { … }; struct CompoundGlyph : Glyph { … }; #pragma pack(pop) } // end of namespace Sfnt } // end of namespace TtfUtil } // end of namespace graphite2