4
* (C) Copyright IBM Corp. 1998, 1999, 2000, 2001 - All Rights Reserved
9
#include "LEGlyphFilter.h"
10
#include "OpenTypeTables.h"
11
#include "GlyphSubstitutionTables.h"
12
#include "MultipleSubstSubtables.h"
13
#include "GlyphIterator.h"
18
le_uint32 MultipleSubstitutionSubtable::process(GlyphIterator *glyphIterator, const LEGlyphFilter *filter) const
20
LEGlyphID glyph = (LEGlyphID) glyphIterator->getCurrGlyphID();
21
le_int32 coverageIndex = getGlyphCoverage(glyph);
22
le_uint16 seqCount = SWAPW(sequenceCount);
24
if (coverageIndex >= 0 && coverageIndex < seqCount)
26
Offset sequenceTableOffset = SWAPW(sequenceTableOffsetArray[coverageIndex]);
27
const SequenceTable *sequenceTable = (const SequenceTable *) ((char *) this + sequenceTableOffset);
28
le_uint16 glyphCount = SWAPW(sequenceTable->glyphCount);
30
if (glyphCount == 0) {
31
glyphIterator->setCurrGlyphID(0xFFFF);
35
// Can't do this 'till there's a way to
36
// grow the glyph array...