X-Git-Url: https://git.saurik.com/apple/icu.git/blobdiff_plain/374ca955a76ecab1204ca8bfa63ff9238d998416..e4f10fab0c078f399c9deef476d9c9b73b47dff8:/icuSources/layout/GlyphPositioningTables.cpp diff --git a/icuSources/layout/GlyphPositioningTables.cpp b/icuSources/layout/GlyphPositioningTables.cpp index 5607711d..b973fb7a 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-2008 - 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(LEGlyphStorage &glyphStorage, GlyphPositionAdjustments *glyphPositionAdjustments, le_bool rightToLeft, LETag scriptTag, LETag languageTag, - const GlyphDefinitionTableHeader *glyphDefinitionTableHeader, - const LEFontInstance *fontInstance, const LETag *featureOrder) const + const GlyphDefinitionTableHeader *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(this, 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