equal
deleted
inserted
replaced
38 #include "GlyphIterator.h" |
38 #include "GlyphIterator.h" |
39 #include "LESwaps.h" |
39 #include "LESwaps.h" |
40 |
40 |
41 U_NAMESPACE_BEGIN |
41 U_NAMESPACE_BEGIN |
42 |
42 |
43 le_uint32 LigatureSubstitutionSubtable::process(GlyphIterator *glyphIterator, const LEGlyphFilter *filter) const |
43 le_uint32 LigatureSubstitutionSubtable::process(const LETableReference &base, GlyphIterator *glyphIterator, LEErrorCode &success, const LEGlyphFilter *filter) const |
44 { |
44 { |
45 LEGlyphID glyph = glyphIterator->getCurrGlyphID(); |
45 LEGlyphID glyph = glyphIterator->getCurrGlyphID(); |
46 le_int32 coverageIndex = getGlyphCoverage(glyph); |
46 le_int32 coverageIndex = getGlyphCoverage(base, glyph, success); |
47 |
47 |
48 if (coverageIndex >= 0) { |
48 if (coverageIndex >= 0) { |
49 Offset ligSetTableOffset = SWAPW(ligSetTableOffsetArray[coverageIndex]); |
49 Offset ligSetTableOffset = SWAPW(ligSetTableOffsetArray[coverageIndex]); |
50 const LigatureSetTable *ligSetTable = (const LigatureSetTable *) ((char *) this + ligSetTableOffset); |
50 const LigatureSetTable *ligSetTable = (const LigatureSetTable *) ((char *) this + ligSetTableOffset); |
51 le_uint16 ligCount = SWAPW(ligSetTable->ligatureCount); |
51 le_uint16 ligCount = SWAPW(ligSetTable->ligatureCount); |