2362N/A * or visit www.oracle.com if you need additional information or have any
0N/A#include "LEFontInstance.h"
0N/A#include "OpenTypeTables.h"
0N/A#include "AnchorTables.h"
0N/A#include "MarkArrays.h"
0N/A#include "GlyphPositioningTables.h"
0N/A#include "AttachmentPosnSubtables.h"
0N/A#include "MarkToBasePosnSubtables.h"
0N/A#include "GlyphIterator.h"
5980N/Ale_int32 MarkToBasePositioningSubtable::process(const LETableReference &base, GlyphIterator *glyphIterator, const LEFontInstance *fontInstance, LEErrorCode &success) const
0N/A if (markCoverage < 0) {
0N/A le_int32 markClass = markArray->getMarkClass(markGlyph, markCoverage, fontInstance, markAnchor);
0N/A GlyphIterator baseIterator(*glyphIterator, (le_uint16) (lfIgnoreMarks /*| lfIgnoreLigatures*/));
0N/A const AnchorTable *anchorTable = (const AnchorTable *) ((char *) baseArray + anchorTableOffset);
0N/A if (anchorTableOffset == 0) {
0N/A glyphIterator->setCurrGlyphPositionAdjustment(anchorDiffX, anchorDiffY, -markAdvance.fX, -markAdvance.fY);
3171N/A //JK: adjustment needs to account for non-zero advance of any marks between base glyph and current mark
3171N/A GlyphIterator gi(baseIterator, (le_uint16)0); // copy of baseIterator that won't ignore marks
3171N/A while (gi.getCurrStreamPosition() < glyphIterator->getCurrStreamPosition()) { // for all intervening glyphs (marks)...