00001
00002
00003
00004
00005
00006
00007
00008 #ifndef __GLYPHSUBSTITUTIONTABLES_H
00009 #define __GLYPHSUBSTITUTIONTABLES_H
00010
00011 #include "LETypes.h"
00012 #include "LEGlyphFilter.h"
00013 #include "OpenTypeTables.h"
00014 #include "Lookups.h"
00015 #include "GlyphDefinitionTables.h"
00016 #include "GlyphPositionAdjustments.h"
00017
00018 struct GlyphSubstitutionTableHeader
00019 {
00020 fixed32 version;
00021 Offset scriptListOffset;
00022 Offset featureListOffset;
00023 Offset lookupListOffset;
00024
00025 void process(LEGlyphID *glyphs, const LETag **glyphTags, le_int32 glyphCount,
00026 le_bool rightToLeft, LETag scriptTag, LETag languageTag,
00027 GlyphDefinitionTableHeader *glyphDefinitionTableHeader,
00028 LEGlyphFilter *filter = NULL);
00029
00030 le_bool coversScript(LETag scriptTag);
00031 };
00032
00033 enum GlyphSubstitutionSubtableTypes
00034 {
00035 gsstSingle = 1,
00036 gsstMultiple = 2,
00037 gsstAlternate = 3,
00038 gsstLigature = 4,
00039 gsstContext = 5,
00040 gsstChainingContext = 6
00041 };
00042
00043 typedef LookupSubtable GlyphSubstitutionSubtable;
00044
00045 #endif