1/* 2 * 3 * (C) Copyright IBM Corp. 1998-2013 - All Rights Reserved 4 * 5 */ 6 7#ifndef __LIGATURESUBSTITUTIONSUBTABLES_H 8#define __LIGATURESUBSTITUTIONSUBTABLES_H 9 10/** 11 * \file 12 * \internal 13 */ 14 15#include "LETypes.h" 16#include "LEGlyphFilter.h" 17#include "OpenTypeTables.h" 18#include "GlyphSubstitutionTables.h" 19#include "GlyphIterator.h" 20 21U_NAMESPACE_BEGIN 22 23struct LigatureSetTable 24{ 25 le_uint16 ligatureCount; 26 Offset ligatureTableOffsetArray[ANY_NUMBER]; 27}; 28LE_VAR_ARRAY(LigatureSetTable, ligatureTableOffsetArray) 29 30struct LigatureTable 31{ 32 TTGlyphID ligGlyph; 33 le_uint16 compCount; 34 TTGlyphID componentArray[ANY_NUMBER]; 35}; 36LE_VAR_ARRAY(LigatureTable, componentArray) 37 38struct LigatureSubstitutionSubtable : GlyphSubstitutionSubtable 39{ 40 le_uint16 ligSetCount; 41 Offset ligSetTableOffsetArray[ANY_NUMBER]; 42 43 le_uint32 process(const LETableReference &base, GlyphIterator *glyphIterator, LEErrorCode &success, const LEGlyphFilter *filter = NULL) const; 44}; 45LE_VAR_ARRAY(LigatureSubstitutionSubtable, ligSetTableOffsetArray) 46 47U_NAMESPACE_END 48#endif 49