3 * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
8 #include "LEFontInstance.h"
9 #include "OpenTypeTables.h"
10 #include "GlyphPositioningTables.h"
11 #include "SinglePositioningSubtables.h"
12 #include "ValueRecords.h"
13 #include "GlyphIterator.h"
18 le_uint32
SinglePositioningSubtable::process(GlyphIterator
*glyphIterator
, const LEFontInstance
*fontInstance
) const
20 switch(SWAPW(subtableFormat
))
27 const SinglePositioningFormat1Subtable
*subtable
= (const SinglePositioningFormat1Subtable
*) this;
29 return subtable
->process(glyphIterator
, fontInstance
);
34 const SinglePositioningFormat2Subtable
*subtable
= (const SinglePositioningFormat2Subtable
*) this;
36 return subtable
->process(glyphIterator
, fontInstance
);
44 le_uint32
SinglePositioningFormat1Subtable::process(GlyphIterator
*glyphIterator
, const LEFontInstance
*fontInstance
) const
46 LEGlyphID glyph
= glyphIterator
->getCurrGlyphID();
47 le_int32 coverageIndex
= getGlyphCoverage(glyph
);
49 if (coverageIndex
>= 0) {
50 valueRecord
.adjustPosition(SWAPW(valueFormat
), (const char *) this, *glyphIterator
, fontInstance
);
58 le_uint32
SinglePositioningFormat2Subtable::process(GlyphIterator
*glyphIterator
, const LEFontInstance
*fontInstance
) const
60 LEGlyphID glyph
= glyphIterator
->getCurrGlyphID();
61 le_int16 coverageIndex
= (le_int16
) getGlyphCoverage(glyph
);
63 if (coverageIndex
>= 0) {
64 valueRecordArray
[0].adjustPosition(coverageIndex
, SWAPW(valueFormat
), (const char *) this, *glyphIterator
, fontInstance
);