sl@0: /* sl@0: * sl@0: * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved sl@0: * sl@0: */ sl@0: sl@0: #include "LETypes.h" sl@0: #include "LEFontInstance.h" sl@0: #include "OpenTypeTables.h" sl@0: #include "Lookups.h" sl@0: #include "GlyphDefinitionTables.h" sl@0: #include "GlyphPositioningTables.h" sl@0: #include "GlyphPosnLookupProc.h" sl@0: #include "CursiveAttachmentSubtables.h" sl@0: #include "LEGlyphStorage.h" sl@0: #include "GlyphPositionAdjustments.h" sl@0: sl@0: U_NAMESPACE_BEGIN sl@0: sl@0: void GlyphPositioningTableHeader::process(LEGlyphStorage &glyphStorage, GlyphPositionAdjustments *glyphPositionAdjustments, le_bool rightToLeft, sl@0: LETag scriptTag, LETag languageTag, sl@0: const GlyphDefinitionTableHeader *glyphDefinitionTableHeader, sl@0: LEErrorCode &success, sl@0: const LEFontInstance *fontInstance, const LETag *featureOrder) const sl@0: { sl@0: if (LE_FAILURE(success)) { sl@0: return; sl@0: } sl@0: sl@0: GlyphPositioningLookupProcessor processor(this, scriptTag, languageTag, featureOrder); sl@0: sl@0: if (processor.isBogus()) { sl@0: success = LE_MEMORY_ALLOCATION_ERROR; sl@0: return; sl@0: } sl@0: sl@0: processor.process(glyphStorage, glyphPositionAdjustments, rightToLeft, sl@0: glyphDefinitionTableHeader, fontInstance, success); sl@0: sl@0: glyphPositionAdjustments->applyCursiveAdjustments(glyphStorage, rightToLeft, fontInstance); sl@0: } sl@0: sl@0: U_NAMESPACE_END