X-Git-Url: https://git.saurik.com/apple/icu.git/blobdiff_plain/374ca955a76ecab1204ca8bfa63ff9238d998416..ef6cf650f4a75c3f97de06b51fa104f2069b9ea2:/icuSources/layout/GlyphPositioningTables.cpp diff --git a/icuSources/layout/GlyphPositioningTables.cpp b/icuSources/layout/GlyphPositioningTables.cpp index 5607711d..851128ed 100644 --- a/icuSources/layout/GlyphPositioningTables.cpp +++ b/icuSources/layout/GlyphPositioningTables.cpp @@ -1,6 +1,5 @@ /* - * - * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved + * (C) Copyright IBM Corp. 1998-2013 - All Rights Reserved * */ @@ -9,21 +8,31 @@ #include "OpenTypeTables.h" #include "Lookups.h" #include "GlyphDefinitionTables.h" -#include "GlyphPositionAdjustments.h" #include "GlyphPositioningTables.h" #include "GlyphPosnLookupProc.h" +#include "CursiveAttachmentSubtables.h" #include "LEGlyphStorage.h" +#include "GlyphPositionAdjustments.h" U_NAMESPACE_BEGIN -void GlyphPositioningTableHeader::process(LEGlyphStorage &glyphStorage, GlyphPositionAdjustment *glyphPositionAdjustments, le_bool rightToLeft, +void GlyphPositioningTableHeader::process(const LEReferenceTo &base, LEGlyphStorage &glyphStorage, GlyphPositionAdjustments *glyphPositionAdjustments, le_bool rightToLeft, LETag scriptTag, LETag languageTag, - const GlyphDefinitionTableHeader *glyphDefinitionTableHeader, - const LEFontInstance *fontInstance, const LETag *featureOrder) const + const LEReferenceTo &glyphDefinitionTableHeader, LEErrorCode &success, + const LEFontInstance *fontInstance, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder) const { - GlyphPositioningLookupProcessor processor(this, scriptTag, languageTag, featureOrder); + if (LE_FAILURE(success)) { + return; + } + + GlyphPositioningLookupProcessor processor(base, scriptTag, languageTag, featureMap, featureMapCount, featureOrder, success); + if (LE_FAILURE(success)) { + return; + } + + processor.process(glyphStorage, glyphPositionAdjustments, rightToLeft, glyphDefinitionTableHeader, fontInstance, success); - processor.process(glyphStorage, glyphPositionAdjustments, rightToLeft, glyphDefinitionTableHeader, fontInstance); + glyphPositionAdjustments->applyCursiveAdjustments(glyphStorage, rightToLeft, fontInstance); } U_NAMESPACE_END