os/textandloc/fontservices/textshaperplugin/IcuSource/layout/SinglePositioningSubtables.cpp
Update contrib.
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);