jdk/src/share/native/sun/font/layout/CursiveAttachmentSubtables.cpp
changeset 16891 91e99bed64ae
parent 7486 6a36b1ebc620
child 18256 79d3f8278a38
equal deleted inserted replaced
16890:36b30720a997 16891:91e99bed64ae
    37 #include "OpenTypeUtilities.h"
    37 #include "OpenTypeUtilities.h"
    38 #include "LESwaps.h"
    38 #include "LESwaps.h"
    39 
    39 
    40 U_NAMESPACE_BEGIN
    40 U_NAMESPACE_BEGIN
    41 
    41 
    42 le_uint32 CursiveAttachmentSubtable::process(GlyphIterator *glyphIterator, const LEFontInstance *fontInstance) const
    42 le_uint32 CursiveAttachmentSubtable::process(const LEReferenceTo<CursiveAttachmentSubtable> &base, GlyphIterator *glyphIterator, const LEFontInstance *fontInstance, LEErrorCode &success) const
    43 {
    43 {
    44     LEGlyphID glyphID       = glyphIterator->getCurrGlyphID();
    44     LEGlyphID glyphID       = glyphIterator->getCurrGlyphID();
    45     le_int32  coverageIndex = getGlyphCoverage(glyphID);
    45     le_int32  coverageIndex = getGlyphCoverage(base, glyphID, success);
    46     le_uint16 eeCount       = SWAPW(entryExitCount);
    46     le_uint16 eeCount       = SWAPW(entryExitCount);
    47 
    47 
    48     if (coverageIndex < 0 || coverageIndex >= eeCount) {
    48     if (coverageIndex < 0 || coverageIndex >= eeCount) {
    49         glyphIterator->setCursiveGlyph();
    49         glyphIterator->setCursiveGlyph();
    50         return 0;
    50         return 0;
    51     }
    51     }
    52 
    52 
    53     LEPoint entryAnchor, exitAnchor;
    53     LEPoint entryAnchor, exitAnchor;
    54     Offset entryOffset = SWAPW(entryExitRecords[coverageIndex].entryAnchor);
    54     Offset entryOffset = SWAPW(entryExitRecords[coverageIndex].entryAnchor); // TODO
    55     Offset exitOffset  = SWAPW(entryExitRecords[coverageIndex].exitAnchor);
    55     Offset exitOffset  = SWAPW(entryExitRecords[coverageIndex].exitAnchor);
    56 
    56 
    57     if (entryOffset != 0) {
    57     if (entryOffset != 0) {
    58         const AnchorTable *entryAnchorTable = (const AnchorTable *) ((char *) this + entryOffset);
    58         const AnchorTable *entryAnchorTable = (const AnchorTable *) ((char *) this + entryOffset);
    59 
    59