1 /* 2 * 3 * (C) Copyright IBM Corp. 1998-2013 - All Rights Reserved 4 * 5 */ 6 7 #ifndef __MARKTOLIGATUREPOSITIONINGSUBTABLES_H 8 #define __MARKTOLIGATUREPOSITIONINGSUBTABLES_H 9 10 /** 11 * \file 12 * \internal 13 */ 14 15 #include "LETypes.h" 16 #include "LEFontInstance.h" 17 #include "OpenTypeTables.h" 18 #include "GlyphPositioningTables.h" 19 #include "AttachmentPosnSubtables.h" 20 #include "GlyphIterator.h" 21 22 U_NAMESPACE_BEGIN 23 24 struct MarkToLigaturePositioningSubtable : AttachmentPositioningSubtable 25 { 26 le_int32 process(const LETableReference &base, GlyphIterator *glyphIterator, const LEFontInstance *fontInstance, LEErrorCode &success) const; 27 LEGlyphID findLigatureGlyph(GlyphIterator *glyphIterator) const; 28 }; 29 30 struct ComponentRecord 31 { 32 Offset ligatureAnchorTableOffsetArray[ANY_NUMBER]; 33 }; 34 LE_VAR_ARRAY(ComponentRecord, ligatureAnchorTableOffsetArray) 35 36 struct LigatureAttachTable 37 { 38 le_uint16 componentCount; 39 ComponentRecord componentRecordArray[ANY_NUMBER]; 40 }; 41 LE_VAR_ARRAY(LigatureAttachTable, componentRecordArray) 42 43 struct LigatureArray 44 { 45 le_uint16 ligatureCount; 46 Offset ligatureAttachTableOffsetArray[ANY_NUMBER]; 47 }; 48 LE_VAR_ARRAY(LigatureArray, ligatureAttachTableOffsetArray) 49 50 U_NAMESPACE_END 51 #endif 52 53