diff options
author | Peter Breitenlohner <peb@mppmu.mpg.de> | 2009-04-20 18:13:48 +0000 |
---|---|---|
committer | Peter Breitenlohner <peb@mppmu.mpg.de> | 2009-04-20 18:13:48 +0000 |
commit | e5786f530f9555469c01435f86039b06aa53feba (patch) | |
tree | c868e8d32282422d7d445b729db95c3fcdafb6d0 /Build/source/libs/icu/icu-xetex/layout/MorphTables.h | |
parent | ebaa1768b43c8606d923d2e861b5286b74207b3e (diff) |
new build system: build icu libs and xetex plus misc updates
git-svn-id: svn://tug.org/texlive/trunk@12759 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/libs/icu/icu-xetex/layout/MorphTables.h')
-rw-r--r-- | Build/source/libs/icu/icu-xetex/layout/MorphTables.h | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/Build/source/libs/icu/icu-xetex/layout/MorphTables.h b/Build/source/libs/icu/icu-xetex/layout/MorphTables.h new file mode 100644 index 00000000000..8d198cf41fe --- /dev/null +++ b/Build/source/libs/icu/icu-xetex/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 + |