diff options
Diffstat (limited to 'Build/source/libs/icu/icu-xetex/layout/PairPositioningSubtables.h')
-rw-r--r-- | Build/source/libs/icu/icu-xetex/layout/PairPositioningSubtables.h | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/Build/source/libs/icu/icu-xetex/layout/PairPositioningSubtables.h b/Build/source/libs/icu/icu-xetex/layout/PairPositioningSubtables.h new file mode 100644 index 00000000000..f017c33f65b --- /dev/null +++ b/Build/source/libs/icu/icu-xetex/layout/PairPositioningSubtables.h @@ -0,0 +1,84 @@ +/* + * + * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved + * + */ + +#ifndef __PAIRPOSITIONINGSUBTABLES_H +#define __PAIRPOSITIONINGSUBTABLES_H + +/** + * \file + * \internal + */ + +#include "LETypes.h" +#include "LEFontInstance.h" +#include "OpenTypeTables.h" +#include "GlyphPositioningTables.h" +#include "ValueRecords.h" +#include "GlyphIterator.h" + +U_NAMESPACE_BEGIN + +// NOTE: ValueRecord has a variable size +struct PairValueRecord +{ + TTGlyphID secondGlyph; + ValueRecord valueRecord1; +// ValueRecord valueRecord2; +}; + +struct PairSetTable +{ + le_uint16 pairValueCount; + PairValueRecord pairValueRecordArray[ANY_NUMBER]; +}; + +struct PairPositioningSubtable : GlyphPositioningSubtable +{ + ValueFormat valueFormat1; + ValueFormat valueFormat2; + + le_uint32 process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const; +}; + +struct PairPositioningFormat1Subtable : PairPositioningSubtable +{ + le_uint16 pairSetCount; + Offset pairSetTableOffsetArray[ANY_NUMBER]; + + le_uint32 process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const; + +private: + const PairValueRecord *findPairValueRecord(TTGlyphID glyphID, const PairValueRecord *records, + le_uint16 recordCount, le_uint16 recordSize) const; +}; + +// NOTE: ValueRecord has a variable size +struct Class2Record +{ + ValueRecord valueRecord1; +// ValueRecord valurRecord2; +}; + +struct Class1Record +{ + Class2Record class2RecordArray[ANY_NUMBER]; +}; + +struct PairPositioningFormat2Subtable : PairPositioningSubtable +{ + Offset classDef1Offset; + Offset classDef2Offset; + le_uint16 class1Count; + le_uint16 class2Count; + Class1Record class1RecordArray[ANY_NUMBER]; + + le_uint32 process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const; +}; + +U_NAMESPACE_END +#endif + + |