00001
00002
00003
00004
00005
00006
00007
00008 #ifndef __GLYPHPOSITIONINGTABLES_H
00009 #define __GLYPHPOSITIONINGTABLES_H
00010
00011 #include "LETypes.h"
00012 #include "LEFontInstance.h"
00013 #include "OpenTypeTables.h"
00014 #include "Lookups.h"
00015 #include "GlyphDefinitionTables.h"
00016 #include "GlyphPositionAdjustments.h"
00017
00018 struct GlyphPositioningTableHeader
00019 {
00020 fixed32 version;
00021 Offset scriptListOffset;
00022 Offset featureListOffset;
00023 Offset lookupListOffset;
00024
00025 void process(LEUnicode *glyphs, GlyphPositionAdjustment *glyphPositionAdjustments,
00026 const LETag **glyphTags, le_int32 glyphCount,
00027 le_bool rightToLeft, LETag scriptTag, LETag languageTag,
00028 GlyphDefinitionTableHeader *glyphDefinitionTableHeader,
00029 LEFontInstance *fontInstance);
00030 };
00031
00032 enum GlyphPositioningSubtableTypes
00033 {
00034 gpstSingle = 1,
00035 gpstPair = 2,
00036 gpstCursive = 3,
00037 gpstMarkToBase = 4,
00038 gpstMarkToLigature = 5,
00039 gpstMarkToMark = 6,
00040 gpstContext = 7,
00041 gpstChainedContext = 8
00042 };
00043
00044 typedef LookupSubtable GlyphPositioningSubtable;
00045
00046 #endif