⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ftxgsub.h

📁 神龙卡开发原代码
💻 H
📖 第 1 页 / 共 2 页
字号:
  {    TT_UShort               GlyphCount; /* number of input glyphs        */    TT_UShort               SubstCount; /* number of SubstLookupRecords  */    TTO_Coverage*           Coverage;   /* array of Coverage tables      */    TTO_SubstLookupRecord*  SubstLookupRecord;                                        /* array of substitution lookups */  };  typedef struct TTO_ContextSubstFormat3_  TTO_ContextSubstFormat3;  struct  TTO_ContextSubst_  {    TT_UShort  SubstFormat;             /* 1, 2, or 3 */    union    {      TTO_ContextSubstFormat1  csf1;      TTO_ContextSubstFormat2  csf2;      TTO_ContextSubstFormat3  csf3;    } csf;  };  typedef struct TTO_ContextSubst_  TTO_ContextSubst;  /* LookupType 6 */  struct  TTO_ChainSubRule_  {    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               SubstCount; /* number of SubstLookupRecords     */    TTO_SubstLookupRecord*  SubstLookupRecord;                                        /* array of SubstLookupRecords      */  };  typedef struct TTO_ChainSubRule_  TTO_ChainSubRule;  struct  TTO_ChainSubRuleSet_  {    TT_UShort          ChainSubRuleCount;                                        /* number of ChainSubRule tables */    TTO_ChainSubRule*  ChainSubRule;    /* array of ChainSubRule tables  */  };  typedef struct TTO_ChainSubRuleSet_  TTO_ChainSubRuleSet;  struct  TTO_ChainContextSubstFormat1_  {    TTO_Coverage          Coverage;     /* Coverage table                   */    TT_UShort             ChainSubRuleSetCount;                                        /* number of ChainSubRuleSet tables */    TTO_ChainSubRuleSet*  ChainSubRuleSet;                                        /* array of ChainSubRuleSet tables  */  };  typedef struct TTO_ChainContextSubstFormat1_  TTO_ChainContextSubstFormat1;  struct  TTO_ChainSubClassRule_  {    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               SubstCount; /* number of SubstLookupRecords    */    TTO_SubstLookupRecord*  SubstLookupRecord;                                        /* array of substitution lookups   */  };  typedef struct TTO_ChainSubClassRule_  TTO_ChainSubClassRule;  struct  TTO_ChainSubClassSet_  {    TT_UShort               ChainSubClassRuleCount;                                        /* number of ChainSubClassRule                                           tables                      */    TTO_ChainSubClassRule*  ChainSubClassRule;                                        /* array of ChainSubClassRule                                           tables                      */  };  typedef struct TTO_ChainSubClassSet_  TTO_ChainSubClassSet;  /* 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_ChainContextSubstFormat2_  {    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              ChainSubClassSetCount;                                        /* number of ChainSubClassSet                                           tables                     */    TTO_ChainSubClassSet*  ChainSubClassSet;                                        /* array of ChainSubClassSet                                           tables                     */  };  typedef struct TTO_ChainContextSubstFormat2_  TTO_ChainContextSubstFormat2;  struct  TTO_ChainContextSubstFormat3_  {    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               SubstCount; /* number of SubstLookupRecords  */    TTO_SubstLookupRecord*  SubstLookupRecord;                                        /* array of substitution lookups */  };  typedef struct TTO_ChainContextSubstFormat3_  TTO_ChainContextSubstFormat3;  struct  TTO_ChainContextSubst_  {    TT_UShort  SubstFormat;             /* 1, 2, or 3 */    union    {      TTO_ChainContextSubstFormat1  ccsf1;      TTO_ChainContextSubstFormat2  ccsf2;      TTO_ChainContextSubstFormat3  ccsf3;    } ccsf;  };  typedef struct TTO_ChainContextSubst_  TTO_ChainContextSubst;  union  TTO_GSUB_SubTable_  {    TTO_SingleSubst        single;    TTO_MultipleSubst      multiple;    TTO_AlternateSubst     alternate;    TTO_LigatureSubst      ligature;    TTO_ContextSubst       context;    TTO_ChainContextSubst  chain;  };  typedef union TTO_GSUB_SubTable_  TTO_GSUB_SubTable;  /* A simple string object.  It can both `send' and `receive' data.     In case of sending, `length' and `pos' will be used.  In case of     receiving, `pos' points to the first free slot, and `allocated'     specifies the amount of allocated memory (and the `length' field     will be ignored).  The routine TT_Add_String() will increase the     amount of memory if necessary.  After end of receive, `length'     should be set to the value of `pos', and `pos' will be set to zero.     `properties' (which is treated as a bit field) gives the glyph's     properties: If a certain bit is set for a glyph, the feature which     has the same bit set in its property value is applied.     NEVER modify any elements of the structure!  You should rather copy     its contents if necessary.     TT_Add_String() will also handle allocation; you should use     free() in case you want to destroy the arrays in the object. */  struct  TTO_GSUB_String_  {    TT_ULong    length;    TT_ULong    pos;    TT_ULong    allocated;    TT_UShort*  string;    TT_UShort*  properties;  };  typedef struct TTO_GSUB_String_  TTO_GSUB_String;  /* finally, the GSUB API */  EXPORT_DEF  TT_Error  TT_Init_GSUB_Extension( TT_Engine  engine );  EXPORT_DEF  TT_Error  TT_Load_GSUB_Table( TT_Face          face,                                TTO_GSUBHeader*  gsub,                                TTO_GDEFHeader*  gdef );  EXPORT_DEF  TT_Error  TT_GSUB_Select_Script( TTO_GSUBHeader*  gsub,                                   TT_ULong         script_tag,                                   TT_UShort*       script_index );  EXPORT_DEF  TT_Error  TT_GSUB_Select_Language( TTO_GSUBHeader*  gsub,                                     TT_ULong         language_tag,                                     TT_UShort        script_index,                                     TT_UShort*       language_index,                                     TT_UShort*       req_feature_index );  EXPORT_DEF  TT_Error  TT_GSUB_Select_Feature( TTO_GSUBHeader*  gsub,                                    TT_ULong         feature_tag,                                    TT_UShort        script_index,                                    TT_UShort        language_index,                                    TT_UShort*       feature_index );  EXPORT_DEF  TT_Error  TT_GSUB_Query_Scripts( TTO_GSUBHeader*  gsub,                                   TT_ULong**       script_tag_list );  EXPORT_DEF  TT_Error  TT_GSUB_Query_Languages( TTO_GSUBHeader*  gsub,                                     TT_UShort        script_index,                                     TT_ULong**       language_tag_list );  EXPORT_DEF  TT_Error  TT_GSUB_Query_Features( TTO_GSUBHeader*  gsub,                                    TT_UShort        script_index,                                    TT_UShort        language_index,                                    TT_ULong**       feature_tag_list );  EXPORT_DEF  TT_Error  TT_GSUB_Add_Feature( TTO_GSUBHeader*  gsub,                                 TT_UShort        feature_index,                                 TT_UShort        property );  EXPORT_DEF  TT_Error  TT_GSUB_Clear_Features( TTO_GSUBHeader*  gsub );  EXPORT_DEF  TT_Error  TT_GSUB_Register_Alternate_Function( TTO_GSUBHeader*  gsub,                                                 TTO_AltFunction  alt,                                                 void*            data );  EXPORT_DEF  TT_Error  TT_GSUB_Apply_String( TTO_GSUBHeader*   gsub,                                  TTO_GSUB_String*  in,                                  TTO_GSUB_String*  out );  EXPORT_DEF  TT_Error  TT_GSUB_Add_String( TTO_GSUB_String*  in,                                TT_UShort         num_in,                                TTO_GSUB_String*  out,                                TT_UShort         num_out,                                TT_UShort*        data );#ifdef __cplusplus}#endif#endif /* FTXGSUB_H *//* END */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -