diff options
Diffstat (limited to 'Build/source/libs/icu/icu-4.8.1/layout/MorphTables.h')
-rw-r--r-- | Build/source/libs/icu/icu-4.8.1/layout/MorphTables.h | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/Build/source/libs/icu/icu-4.8.1/layout/MorphTables.h b/Build/source/libs/icu/icu-4.8.1/layout/MorphTables.h new file mode 100644 index 00000000000..8d198cf41fe --- /dev/null +++ b/Build/source/libs/icu/icu-4.8.1/layout/MorphTables.h @@ -0,0 +1,85 @@ +/* + * + * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved + * + */ + +#ifndef __MORPHTABLES_H +#define __MORPHTABLES_H + +/** + * \file + * \internal + */ + +#include "LETypes.h" +#include "LayoutTables.h" + +U_NAMESPACE_BEGIN + +class LEGlyphStorage; + +typedef le_uint32 FeatureFlags; + +typedef le_int16 FeatureType; +typedef le_int16 FeatureSetting; + +struct FeatureTableEntry +{ + FeatureType featureType; + FeatureSetting featureSetting; + FeatureFlags enableFlags; + FeatureFlags disableFlags; +}; + +struct ChainHeader +{ + FeatureFlags defaultFlags; + le_uint32 chainLength; + le_int16 nFeatureEntries; + le_int16 nSubtables; + FeatureTableEntry featureTable[ANY_NUMBER]; +}; + +struct MorphTableHeader +{ + le_int32 version; + le_uint32 nChains; + ChainHeader chains[ANY_NUMBER]; + + void process(LEGlyphStorage &glyphStorage) const; +}; + +typedef le_int16 SubtableCoverage; + +enum SubtableCoverageFlags +{ + scfVertical = 0x8000, + scfReverse = 0x4000, + scfIgnoreVt = 0x2000, + scfReserved = 0x1FF8, + scfTypeMask = 0x0007 +}; + +enum MorphSubtableType +{ + mstIndicRearrangement = 0, + mstContextualGlyphSubstitution = 1, + mstLigatureSubstitution = 2, + mstReservedUnused = 3, + mstNonContextualGlyphSubstitution = 4, + mstContextualGlyphInsertion = 5 +}; + +struct MorphSubtableHeader +{ + le_int16 length; + SubtableCoverage coverage; + FeatureFlags subtableFeatures; + + void process(LEGlyphStorage &glyphStorage) const; +}; + +U_NAMESPACE_END +#endif + |