📄 ftxgpos.h
字号:
}; typedef struct TTO_LigatureArray_ TTO_LigatureArray; struct TTO_MarkLigPos_ { TT_UShort PosFormat; /* always 1 */ TTO_Coverage MarkCoverage; /* mark glyph coverage table */ TTO_Coverage LigatureCoverage; /* ligature glyph coverage table */ TT_UShort ClassCount; /* number of mark classes */ TTO_MarkArray MarkArray; /* mark array table */ TTO_LigatureArray LigatureArray; /* ligature array table */ }; typedef struct TTO_MarkLigPos_ TTO_MarkLigPos; /* LookupType 6 */ struct TTO_Mark2Record_ { TTO_Anchor* Mark2Anchor; /* array of mark glyph anchor tables */ }; typedef struct TTO_Mark2Record_ TTO_Mark2Record; struct TTO_Mark2Array_ { TT_UShort Mark2Count; /* number of Mark2Record tables */ TTO_Mark2Record* Mark2Record; /* array of Mark2Record tables */ }; typedef struct TTO_Mark2Array_ TTO_Mark2Array; struct TTO_MarkMarkPos_ { TT_UShort PosFormat; /* always 1 */ TTO_Coverage Mark1Coverage; /* first mark glyph coverage table */ TTO_Coverage Mark2Coverage; /* second mark glyph coverave table */ TT_UShort ClassCount; /* number of combining mark classes */ TTO_MarkArray Mark1Array; /* MarkArray table for first mark */ TTO_Mark2Array Mark2Array; /* MarkArray table for second mark */ }; typedef struct TTO_MarkMarkPos_ TTO_MarkMarkPos; /* needed by both lookup type 7 and 8 */ struct TTO_PosLookupRecord_ { TT_UShort SequenceIndex; /* index into current glyph sequence */ TT_UShort LookupListIndex; /* Lookup to apply to that pos. */ }; typedef struct TTO_PosLookupRecord_ TTO_PosLookupRecord; /* LookupType 7 */ struct TTO_PosRule_ { TT_UShort GlyphCount; /* total number of input glyphs */ TT_UShort PosCount; /* number of PosLookupRecord tables */ TT_UShort* Input; /* array of input glyph IDs */ TTO_PosLookupRecord* PosLookupRecord; /* array of PosLookupRecord tables */ }; typedef struct TTO_PosRule_ TTO_PosRule; struct TTO_PosRuleSet_ { TT_UShort PosRuleCount; /* number of PosRule tables */ TTO_PosRule* PosRule; /* array of PosRule tables */ }; typedef struct TTO_PosRuleSet_ TTO_PosRuleSet; struct TTO_ContextPosFormat1_ { TTO_Coverage Coverage; /* Coverage table */ TT_UShort PosRuleSetCount; /* number of PosRuleSet tables */ TTO_PosRuleSet* PosRuleSet; /* array of PosRuleSet tables */ }; typedef struct TTO_ContextPosFormat1_ TTO_ContextPosFormat1; struct TTO_PosClassRule_ { TT_UShort GlyphCount; /* total number of context classes */ TT_UShort PosCount; /* number of PosLookupRecord tables */ TT_UShort* Class; /* array of classes */ TTO_PosLookupRecord* PosLookupRecord; /* array of PosLookupRecord tables */ }; typedef struct TTO_PosClassRule_ TTO_PosClassRule; struct TTO_PosClassSet_ { TT_UShort PosClassRuleCount; /* number of PosClassRule tables */ TTO_PosClassRule* PosClassRule; /* array of PosClassRule tables */ }; typedef struct TTO_PosClassSet_ TTO_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 TTO_ContextPosFormat2_ { TT_UShort MaxContextLength; /* maximal context length */ TTO_Coverage Coverage; /* Coverage table */ TTO_ClassDefinition ClassDef; /* ClassDef table */ TT_UShort PosClassSetCount; /* number of PosClassSet tables */ TTO_PosClassSet* PosClassSet; /* array of PosClassSet tables */ }; typedef struct TTO_ContextPosFormat2_ TTO_ContextPosFormat2; struct TTO_ContextPosFormat3_ { TT_UShort GlyphCount; /* number of input glyphs */ TT_UShort PosCount; /* number of PosLookupRecord tables */ TTO_Coverage* Coverage; /* array of Coverage tables */ TTO_PosLookupRecord* PosLookupRecord; /* array of PosLookupRecord tables */ }; typedef struct TTO_ContextPosFormat3_ TTO_ContextPosFormat3; struct TTO_ContextPos_ { TT_UShort PosFormat; /* 1, 2, or 3 */ union { TTO_ContextPosFormat1 cpf1; TTO_ContextPosFormat2 cpf2; TTO_ContextPosFormat3 cpf3; } cpf; }; typedef struct TTO_ContextPos_ TTO_ContextPos; /* LookupType 8 */ struct TTO_ChainPosRule_ { TT_UShort BacktrackGlyphCount; /* total number of backtrack glyphs */ TT_UShort* Backtrack; /* array of backtrack glyph IDs */ TT_UShort InputGlyphCount; /* total number of input glyphs */ TT_UShort* Input; /* array of input glyph IDs */ TT_UShort LookaheadGlyphCount; /* total number of lookahead glyphs */ TT_UShort* Lookahead; /* array of lookahead glyph IDs */ TT_UShort PosCount; /* number of PosLookupRecords */ TTO_PosLookupRecord* PosLookupRecord; /* array of PosLookupRecords */ }; typedef struct TTO_ChainPosRule_ TTO_ChainPosRule; struct TTO_ChainPosRuleSet_ { TT_UShort ChainPosRuleCount; /* number of ChainPosRule tables */ TTO_ChainPosRule* ChainPosRule; /* array of ChainPosRule tables */ }; typedef struct TTO_ChainPosRuleSet_ TTO_ChainPosRuleSet; struct TTO_ChainContextPosFormat1_ { TTO_Coverage Coverage; /* Coverage table */ TT_UShort ChainPosRuleSetCount; /* number of ChainPosRuleSet tables */ TTO_ChainPosRuleSet* ChainPosRuleSet; /* array of ChainPosRuleSet tables */ }; typedef struct TTO_ChainContextPosFormat1_ TTO_ChainContextPosFormat1; struct TTO_ChainPosClassRule_ { TT_UShort BacktrackGlyphCount; /* total number of backtrack classes */ TT_UShort* Backtrack; /* array of backtrack classes */ TT_UShort InputGlyphCount; /* total number of context classes */ TT_UShort* Input; /* array of context classes */ TT_UShort LookaheadGlyphCount; /* total number of lookahead classes */ TT_UShort* Lookahead; /* array of lookahead classes */ TT_UShort PosCount; /* number of PosLookupRecords */ TTO_PosLookupRecord* PosLookupRecord; /* array of substitution lookups */ }; typedef struct TTO_ChainPosClassRule_ TTO_ChainPosClassRule; struct TTO_ChainPosClassSet_ { TT_UShort ChainPosClassRuleCount; /* number of ChainPosClassRule tables */ TTO_ChainPosClassRule* ChainPosClassRule; /* array of ChainPosClassRule tables */ }; typedef struct TTO_ChainPosClassSet_ TTO_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 TTO_ChainContextPosFormat2_ { TTO_Coverage Coverage; /* Coverage table */ TT_UShort MaxBacktrackLength; /* maximal backtrack length */ TTO_ClassDefinition BacktrackClassDef; /* BacktrackClassDef table */ TT_UShort MaxInputLength; /* maximal input length */ TTO_ClassDefinition InputClassDef; /* InputClassDef table */ TT_UShort MaxLookaheadLength; /* maximal lookahead length */ TTO_ClassDefinition LookaheadClassDef; /* LookaheadClassDef table */ TT_UShort ChainPosClassSetCount; /* number of ChainPosClassSet tables */ TTO_ChainPosClassSet* ChainPosClassSet; /* array of ChainPosClassSet tables */ }; typedef struct TTO_ChainContextPosFormat2_ TTO_ChainContextPosFormat2; struct TTO_ChainContextPosFormat3_ { TT_UShort BacktrackGlyphCount; /* number of backtrack glyphs */ TTO_Coverage* BacktrackCoverage; /* array of backtrack Coverage tables */ TT_UShort InputGlyphCount; /* number of input glyphs */ TTO_Coverage* InputCoverage; /* array of input coverage tables */ TT_UShort LookaheadGlyphCount; /* number of lookahead glyphs */ TTO_Coverage* LookaheadCoverage; /* array of lookahead coverage tables */ TT_UShort PosCount; /* number of PosLookupRecords */ TTO_PosLookupRecord* PosLookupRecord; /* array of substitution lookups */ }; typedef struct TTO_ChainContextPosFormat3_ TTO_ChainContextPosFormat3; struct TTO_ChainContextPos_ { TT_UShort PosFormat; /* 1, 2, or 3 */ union { TTO_ChainContextPosFormat1 ccpf1; TTO_ChainContextPosFormat2 ccpf2; TTO_ChainContextPosFormat3 ccpf3; } ccpf; }; typedef struct TTO_ChainContextPos_ TTO_ChainContextPos; union TTO_GPOS_SubTable_ { TTO_SinglePos single; TTO_PairPos pair; TTO_CursivePos cursive; TTO_MarkBasePos markbase; TTO_MarkLigPos marklig; TTO_MarkMarkPos markmark; TTO_ContextPos context; TTO_ChainContextPos chain; }; typedef union TTO_GPOS_SubTable_ TTO_GPOS_SubTable; /* finally, the GPOS API */ EXPORT_DEF TT_Error TT_Init_GPOS_Extension( TT_Engine engine ); EXPORT_DEF TT_Error TT_Load_GPOS_Table( TT_Face face, TTO_GPOSHeader* gpos, TTO_GDEFHeader* gdef ); EXPORT_DEF TT_Error TT_GPOS_Select_Script( TTO_GPOSHeader* gpos, TT_ULong script_tag, TT_UShort* script_index ); EXPORT_DEF TT_Error TT_GPOS_Select_Language( TTO_GPOSHeader* gpos, TT_ULong language_tag, TT_UShort script_index, TT_UShort* language_index, TT_UShort* req_feature_index ); EXPORT_DEF TT_Error TT_GPOS_Select_Feature( TTO_GPOSHeader* gpos, TT_ULong feature_tag, TT_UShort script_index, TT_UShort language_index, TT_UShort* feature_index ); EXPORT_DEF TT_Error TT_GPOS_Query_Scripts( TTO_GPOSHeader* gpos, TT_ULong** script_tag_list ); EXPORT_DEF TT_Error TT_GPOS_Query_Languages( TTO_GPOSHeader* gpos, TT_UShort script_index, TT_ULong** language_tag_list ); EXPORT_DEF TT_Error TT_GPOS_Query_Features( TTO_GPOSHeader* gpos, TT_UShort script_index, TT_UShort language_index, TT_ULong** feature_tag_list ); EXPORT_DEF TT_Error TT_GPOS_Add_Feature( TTO_GPOSHeader* gpos, TT_UShort feature_index, TT_UShort property ); EXPORT_DEF TT_Error TT_GPOS_Clear_Features( TTO_GPOSHeader* gpos );#ifdef __cplusplus}#endif#endif /* FTXGPOS_H *//* END */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -