1/* 2 * 3 * (C) Copyright IBM Corp. 1998-2013 - All Rights Reserved 4 * 5 */ 6 7#ifndef __GLYPHSUBSTITUTIONTABLES_H 8#define __GLYPHSUBSTITUTIONTABLES_H 9 10/** 11 * \file 12 * \internal 13 */ 14 15#include "LETypes.h" 16#include "OpenTypeTables.h" 17#include "Lookups.h" 18#include "GlyphLookupTables.h" 19 20U_NAMESPACE_BEGIN 21 22class LEGlyphStorage; 23class LEGlyphFilter; 24struct GlyphDefinitionTableHeader; 25 26struct GlyphSubstitutionTableHeader : public GlyphLookupTableHeader 27{ 28 le_int32 process(const LEReferenceTo<GlyphSubstitutionTableHeader> &base, 29 LEGlyphStorage &glyphStorage, 30 le_bool rightToLeft, 31 LETag scriptTag, 32 LETag languageTag, 33 const LEReferenceTo<GlyphDefinitionTableHeader> &glyphDefinitionTableHeader, 34 const LEGlyphFilter *filter, 35 const FeatureMap *featureMap, 36 le_int32 featureMapCount, 37 le_bool featureOrder, 38 LEErrorCode &success) const; 39}; 40 41enum GlyphSubstitutionSubtableTypes 42{ 43 gsstSingle = 1, 44 gsstMultiple = 2, 45 gsstAlternate = 3, 46 gsstLigature = 4, 47 gsstContext = 5, 48 gsstChainingContext = 6, 49 gsstExtension = 7, 50 gsstReverseChaining = 8 51}; 52 53typedef LookupSubtable GlyphSubstitutionSubtable; 54 55U_NAMESPACE_END 56#endif 57