📄 harfbuzz-gpos-private.h
字号:
/* array of LigatureAttach tables */};typedef struct HB_LigatureArray_ HB_LigatureArray;struct HB_MarkLigPos_{ HB_UShort PosFormat; /* always 1 */ HB_Coverage MarkCoverage; /* mark glyph coverage table */ HB_Coverage LigatureCoverage; /* ligature glyph coverage table */ HB_UShort ClassCount; /* number of mark classes */ HB_MarkArray MarkArray; /* mark array table */ HB_LigatureArray LigatureArray; /* ligature array table */};typedef struct HB_MarkLigPos_ HB_MarkLigPos;/* LookupType 6 */struct HB_Mark2Record_{ HB_Anchor* Mark2Anchor; /* array of mark glyph anchor tables */};typedef struct HB_Mark2Record_ HB_Mark2Record;struct HB_Mark2Array_{ HB_UShort Mark2Count; /* number of Mark2Record tables */ HB_Mark2Record* Mark2Record; /* array of Mark2Record tables */};typedef struct HB_Mark2Array_ HB_Mark2Array;struct HB_MarkMarkPos_{ HB_UShort PosFormat; /* always 1 */ HB_Coverage Mark1Coverage; /* first mark glyph coverage table */ HB_Coverage Mark2Coverage; /* second mark glyph coverave table */ HB_UShort ClassCount; /* number of combining mark classes */ HB_MarkArray Mark1Array; /* MarkArray table for first mark */ HB_Mark2Array Mark2Array; /* MarkArray table for second mark */};typedef struct HB_MarkMarkPos_ HB_MarkMarkPos;/* needed by both lookup type 7 and 8 */struct HB_PosLookupRecord_{ HB_UShort SequenceIndex; /* index into current glyph sequence */ HB_UShort LookupListIndex; /* Lookup to apply to that pos. */};typedef struct HB_PosLookupRecord_ HB_PosLookupRecord;/* LookupType 7 */struct HB_PosRule_{ HB_UShort GlyphCount; /* total number of input glyphs */ HB_UShort PosCount; /* number of PosLookupRecord tables */ HB_UShort* Input; /* array of input glyph IDs */ HB_PosLookupRecord* PosLookupRecord; /* array of PosLookupRecord tables */};typedef struct HB_PosRule_ HB_PosRule;struct HB_PosRuleSet_{ HB_UShort PosRuleCount; /* number of PosRule tables */ HB_PosRule* PosRule; /* array of PosRule tables */};typedef struct HB_PosRuleSet_ HB_PosRuleSet;struct HB_ContextPosFormat1_{ HB_Coverage Coverage; /* Coverage table */ HB_UShort PosRuleSetCount; /* number of PosRuleSet tables */ HB_PosRuleSet* PosRuleSet; /* array of PosRuleSet tables */};typedef struct HB_ContextPosFormat1_ HB_ContextPosFormat1;struct HB_PosClassRule_{ HB_UShort GlyphCount; /* total number of context classes */ HB_UShort PosCount; /* number of PosLookupRecord tables */ HB_UShort* Class; /* array of classes */ HB_PosLookupRecord* PosLookupRecord; /* array of PosLookupRecord tables */};typedef struct HB_PosClassRule_ HB_PosClassRule;struct HB_PosClassSet_{ HB_UShort PosClassRuleCount; /* number of PosClassRule tables */ HB_PosClassRule* PosClassRule; /* array of PosClassRule tables */};typedef struct HB_PosClassSet_ HB_PosClassSet;/* The `MaxContextLength' field is not defined in the TTO specification but simplifies the implementation of this format. It holds the maximal context length used in the context rules. */struct HB_ContextPosFormat2_{ HB_UShort MaxContextLength; /* maximal context length */ HB_Coverage Coverage; /* Coverage table */ HB_ClassDefinition ClassDef; /* ClassDef table */ HB_UShort PosClassSetCount; /* number of PosClassSet tables */ HB_PosClassSet* PosClassSet; /* array of PosClassSet tables */};typedef struct HB_ContextPosFormat2_ HB_ContextPosFormat2;struct HB_ContextPosFormat3_{ HB_UShort GlyphCount; /* number of input glyphs */ HB_UShort PosCount; /* number of PosLookupRecord tables */ HB_Coverage* Coverage; /* array of Coverage tables */ HB_PosLookupRecord* PosLookupRecord; /* array of PosLookupRecord tables */};typedef struct HB_ContextPosFormat3_ HB_ContextPosFormat3;struct HB_ContextPos_{ HB_UShort PosFormat; /* 1, 2, or 3 */ union { HB_ContextPosFormat1 cpf1; HB_ContextPosFormat2 cpf2; HB_ContextPosFormat3 cpf3; } cpf;};typedef struct HB_ContextPos_ HB_ContextPos;/* LookupType 8 */struct HB_ChainPosRule_{ HB_UShort BacktrackGlyphCount; /* total number of backtrack glyphs */ HB_UShort* Backtrack; /* array of backtrack glyph IDs */ HB_UShort InputGlyphCount; /* total number of input glyphs */ HB_UShort* Input; /* array of input glyph IDs */ HB_UShort LookaheadGlyphCount; /* total number of lookahead glyphs */ HB_UShort* Lookahead; /* array of lookahead glyph IDs */ HB_UShort PosCount; /* number of PosLookupRecords */ HB_PosLookupRecord* PosLookupRecord; /* array of PosLookupRecords */};typedef struct HB_ChainPosRule_ HB_ChainPosRule;struct HB_ChainPosRuleSet_{ HB_UShort ChainPosRuleCount; /* number of ChainPosRule tables */ HB_ChainPosRule* ChainPosRule; /* array of ChainPosRule tables */};typedef struct HB_ChainPosRuleSet_ HB_ChainPosRuleSet;struct HB_ChainContextPosFormat1_{ HB_Coverage Coverage; /* Coverage table */ HB_UShort ChainPosRuleSetCount; /* number of ChainPosRuleSet tables */ HB_ChainPosRuleSet* ChainPosRuleSet; /* array of ChainPosRuleSet tables */};typedef struct HB_ChainContextPosFormat1_ HB_ChainContextPosFormat1;struct HB_ChainPosClassRule_{ HB_UShort BacktrackGlyphCount; /* total number of backtrack classes */ HB_UShort* Backtrack; /* array of backtrack classes */ HB_UShort InputGlyphCount; /* total number of context classes */ HB_UShort* Input; /* array of context classes */ HB_UShort LookaheadGlyphCount; /* total number of lookahead classes */ HB_UShort* Lookahead; /* array of lookahead classes */ HB_UShort PosCount; /* number of PosLookupRecords */ HB_PosLookupRecord* PosLookupRecord; /* array of substitution lookups */};typedef struct HB_ChainPosClassRule_ HB_ChainPosClassRule;struct HB_ChainPosClassSet_{ HB_UShort ChainPosClassRuleCount; /* number of ChainPosClassRule tables */ HB_ChainPosClassRule* ChainPosClassRule; /* array of ChainPosClassRule tables */};typedef struct HB_ChainPosClassSet_ HB_ChainPosClassSet;/* The `MaxXXXLength' fields are not defined in the TTO specification but simplifies the implementation of this format. It holds the maximal context length used in the specific context rules. */struct HB_ChainContextPosFormat2_{ HB_Coverage Coverage; /* Coverage table */ HB_UShort MaxBacktrackLength; /* maximal backtrack length */ HB_ClassDefinition BacktrackClassDef; /* BacktrackClassDef table */ HB_UShort MaxInputLength; /* maximal input length */ HB_ClassDefinition InputClassDef; /* InputClassDef table */ HB_UShort MaxLookaheadLength; /* maximal lookahead length */ HB_ClassDefinition LookaheadClassDef; /* LookaheadClassDef table */ HB_UShort ChainPosClassSetCount; /* number of ChainPosClassSet tables */ HB_ChainPosClassSet* ChainPosClassSet; /* array of ChainPosClassSet tables */};typedef struct HB_ChainContextPosFormat2_ HB_ChainContextPosFormat2;struct HB_ChainContextPosFormat3_{ HB_UShort BacktrackGlyphCount; /* number of backtrack glyphs */ HB_Coverage* BacktrackCoverage; /* array of backtrack Coverage tables */ HB_UShort InputGlyphCount; /* number of input glyphs */ HB_Coverage* InputCoverage; /* array of input coverage tables */ HB_UShort LookaheadGlyphCount; /* number of lookahead glyphs */ HB_Coverage* LookaheadCoverage; /* array of lookahead coverage tables */ HB_UShort PosCount; /* number of PosLookupRecords */ HB_PosLookupRecord* PosLookupRecord; /* array of substitution lookups */};typedef struct HB_ChainContextPosFormat3_ HB_ChainContextPosFormat3;struct HB_ChainContextPos_{ HB_UShort PosFormat; /* 1, 2, or 3 */ union { HB_ChainContextPosFormat1 ccpf1; HB_ChainContextPosFormat2 ccpf2; HB_ChainContextPosFormat3 ccpf3; } ccpf;};typedef struct HB_ChainContextPos_ HB_ChainContextPos;#if 0/* LookupType 10 */struct HB_ExtensionPos_{ HB_UShort PosFormat; /* always 1 */ HB_UShort LookuptType; /* lookup-type of referenced subtable */ HB_GPOS_SubTable *subtable; /* referenced subtable */};typedef struct HB_ExtensionPos_ HB_ExtensionPos;#endifunion HB_GPOS_SubTable_{ HB_SinglePos single; HB_PairPos pair; HB_CursivePos cursive; HB_MarkBasePos markbase; HB_MarkLigPos marklig; HB_MarkMarkPos markmark; HB_ContextPos context; HB_ChainContextPos chain;};typedef union HB_GPOS_SubTable_ HB_GPOS_SubTable;HB_INTERNAL HB_Error_HB_GPOS_Load_SubTable( HB_GPOS_SubTable* st, HB_Stream stream, HB_UShort lookup_type );HB_INTERNAL void_HB_GPOS_Free_SubTable( HB_GPOS_SubTable* st, HB_UShort lookup_type );HB_END_HEADER#endif /* HARFBUZZ_GPOS_PRIVATE_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -