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

📄 harfbuzz-gsub-private.h

📁 GTK+-2.0源码之pango-1.15.6.tar.gz
💻 H
字号:
/******************************************************************* * *  Copyright 1996-2000 by *  David Turner, Robert Wilhelm, and Werner Lemberg. * *  Copyright 2006  Behdad Esfahbod * *  This is part of HarfBuzz, an OpenType Layout engine library. * *  See the file name COPYING for licensing information. * ******************************************************************/#ifndef HARFBUZZ_GSUB_PRIVATE_H#define HARFBUZZ_GSUB_PRIVATE_H#include "harfbuzz-gsub.h"FT_BEGIN_HEADERtypedef union HB_GSUB_SubTable_  HB_GSUB_SubTable;/* LookupType 1 */struct  HB_SingleSubstFormat1_{  FT_Short  DeltaGlyphID;             /* constant added to get					 substitution glyph index */};typedef struct HB_SingleSubstFormat1_  HB_SingleSubstFormat1;struct  HB_SingleSubstFormat2_{  FT_UShort   GlyphCount;             /* number of glyph IDs in					 Substitute array              */  FT_UShort*  Substitute;             /* array of substitute glyph IDs */};typedef struct HB_SingleSubstFormat2_  HB_SingleSubstFormat2;struct  HB_SingleSubst_{  FT_UShort     SubstFormat;          /* 1 or 2         */  HB_Coverage  Coverage;             /* Coverage table */  union  {    HB_SingleSubstFormat1  ssf1;    HB_SingleSubstFormat2  ssf2;  } ssf;};typedef struct HB_SingleSubst_  HB_SingleSubst;/* LookupType 2 */struct  HB_Sequence_{  FT_UShort   GlyphCount;             /* number of glyph IDs in the					 Substitute array           */  FT_UShort*  Substitute;             /* string of glyph IDs to					 substitute                 */};typedef struct HB_Sequence_  HB_Sequence;struct  HB_MultipleSubst_{  FT_UShort      SubstFormat;         /* always 1                  */  HB_Coverage   Coverage;            /* Coverage table            */  FT_UShort      SequenceCount;       /* number of Sequence tables */  HB_Sequence*  Sequence;            /* array of Sequence tables  */};typedef struct HB_MultipleSubst_  HB_MultipleSubst;/* LookupType 3 */struct  HB_AlternateSet_{  FT_UShort   GlyphCount;             /* number of glyph IDs in the					 Alternate array              */  FT_UShort*  Alternate;              /* array of alternate glyph IDs */};typedef struct HB_AlternateSet_  HB_AlternateSet;struct  HB_AlternateSubst_{  FT_UShort          SubstFormat;     /* always 1                      */  HB_Coverage       Coverage;        /* Coverage table                */  FT_UShort          AlternateSetCount;				      /* number of AlternateSet tables */  HB_AlternateSet*  AlternateSet;    /* array of AlternateSet tables  */};typedef struct HB_AlternateSubst_  HB_AlternateSubst;/* LookupType 4 */struct  HB_Ligature_{  FT_UShort   LigGlyph;               /* glyphID of ligature					 to substitute                    */  FT_UShort   ComponentCount;         /* number of components in ligature */  FT_UShort*  Component;              /* array of component glyph IDs     */};typedef struct HB_Ligature_  HB_Ligature;struct  HB_LigatureSet_{  FT_UShort      LigatureCount;       /* number of Ligature tables */  HB_Ligature*  Ligature;            /* array of Ligature tables  */};typedef struct HB_LigatureSet_  HB_LigatureSet;struct  HB_LigatureSubst_{  FT_UShort         SubstFormat;      /* always 1                     */  HB_Coverage      Coverage;         /* Coverage table               */  FT_UShort         LigatureSetCount; /* number of LigatureSet tables */  HB_LigatureSet*  LigatureSet;      /* array of LigatureSet tables  */};typedef struct HB_LigatureSubst_  HB_LigatureSubst;/* needed by both lookup type 5 and 6 */struct  HB_SubstLookupRecord_{  FT_UShort  SequenceIndex;           /* index into current					 glyph sequence               */  FT_UShort  LookupListIndex;         /* Lookup to apply to that pos. */};typedef struct HB_SubstLookupRecord_  HB_SubstLookupRecord;/* LookupType 5 */struct  HB_SubRule_{  FT_UShort               GlyphCount; /* total number of input glyphs */  FT_UShort               SubstCount; /* number of SubstLookupRecord					 tables                       */  FT_UShort*              Input;      /* array of input glyph IDs     */  HB_SubstLookupRecord*  SubstLookupRecord;				      /* array of SubstLookupRecord					 tables                       */};typedef struct HB_SubRule_  HB_SubRule;struct  HB_SubRuleSet_{  FT_UShort     SubRuleCount;         /* number of SubRule tables */  HB_SubRule*  SubRule;              /* array of SubRule tables  */};typedef struct HB_SubRuleSet_  HB_SubRuleSet;struct  HB_ContextSubstFormat1_{  HB_Coverage     Coverage;          /* Coverage table              */  FT_UShort        SubRuleSetCount;   /* number of SubRuleSet tables */  HB_SubRuleSet*  SubRuleSet;        /* array of SubRuleSet tables  */};typedef struct HB_ContextSubstFormat1_  HB_ContextSubstFormat1;struct  HB_SubClassRule_{  FT_UShort               GlyphCount; /* total number of context classes */  FT_UShort               SubstCount; /* number of SubstLookupRecord					 tables                          */  FT_UShort*              Class;      /* array of classes                */  HB_SubstLookupRecord*  SubstLookupRecord;				      /* array of SubstLookupRecord					 tables                          */};typedef struct HB_SubClassRule_  HB_SubClassRule;struct  HB_SubClassSet_{  FT_UShort          SubClassRuleCount;				      /* number of SubClassRule tables */  HB_SubClassRule*  SubClassRule;    /* array of SubClassRule tables  */};typedef struct HB_SubClassSet_  HB_SubClassSet;/* 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_ContextSubstFormat2_{  FT_UShort            MaxContextLength;				      /* maximal context length       */  HB_Coverage         Coverage;      /* Coverage table               */  HB_ClassDefinition  ClassDef;      /* ClassDef table               */  FT_UShort            SubClassSetCount;				      /* number of SubClassSet tables */  HB_SubClassSet*     SubClassSet;   /* array of SubClassSet tables  */};typedef struct HB_ContextSubstFormat2_  HB_ContextSubstFormat2;struct  HB_ContextSubstFormat3_{  FT_UShort               GlyphCount; /* number of input glyphs        */  FT_UShort               SubstCount; /* number of SubstLookupRecords  */  HB_Coverage*           Coverage;   /* array of Coverage tables      */  HB_SubstLookupRecord*  SubstLookupRecord;				      /* array of substitution lookups */};typedef struct HB_ContextSubstFormat3_  HB_ContextSubstFormat3;struct  HB_ContextSubst_{  FT_UShort  SubstFormat;             /* 1, 2, or 3 */  union  {    HB_ContextSubstFormat1  csf1;    HB_ContextSubstFormat2  csf2;    HB_ContextSubstFormat3  csf3;  } csf;};typedef struct HB_ContextSubst_  HB_ContextSubst;/* LookupType 6 */struct  HB_ChainSubRule_{  FT_UShort               BacktrackGlyphCount;				      /* total number of backtrack glyphs */  FT_UShort*              Backtrack;  /* array of backtrack glyph IDs     */  FT_UShort               InputGlyphCount;				      /* total number of input glyphs     */  FT_UShort*              Input;      /* array of input glyph IDs         */  FT_UShort               LookaheadGlyphCount;				      /* total number of lookahead glyphs */  FT_UShort*              Lookahead;  /* array of lookahead glyph IDs     */  FT_UShort               SubstCount; /* number of SubstLookupRecords     */  HB_SubstLookupRecord*  SubstLookupRecord;				      /* array of SubstLookupRecords      */};typedef struct HB_ChainSubRule_  HB_ChainSubRule;struct  HB_ChainSubRuleSet_{  FT_UShort          ChainSubRuleCount;				      /* number of ChainSubRule tables */  HB_ChainSubRule*  ChainSubRule;    /* array of ChainSubRule tables  */};typedef struct HB_ChainSubRuleSet_  HB_ChainSubRuleSet;struct  HB_ChainContextSubstFormat1_{  HB_Coverage          Coverage;     /* Coverage table                   */  FT_UShort             ChainSubRuleSetCount;				      /* number of ChainSubRuleSet tables */  HB_ChainSubRuleSet*  ChainSubRuleSet;				      /* array of ChainSubRuleSet tables  */};typedef struct HB_ChainContextSubstFormat1_  HB_ChainContextSubstFormat1;struct  HB_ChainSubClassRule_{  FT_UShort               BacktrackGlyphCount;				      /* total number of backtrack					 classes                         */  FT_UShort*              Backtrack;  /* array of backtrack classes      */  FT_UShort               InputGlyphCount;				      /* total number of context classes */  FT_UShort*              Input;      /* array of context classes        */  FT_UShort               LookaheadGlyphCount;				      /* total number of lookahead					 classes                         */  FT_UShort*              Lookahead;  /* array of lookahead classes      */  FT_UShort               SubstCount; /* number of SubstLookupRecords    */  HB_SubstLookupRecord*  SubstLookupRecord;				      /* array of substitution lookups   */};typedef struct HB_ChainSubClassRule_  HB_ChainSubClassRule;struct  HB_ChainSubClassSet_{  FT_UShort               ChainSubClassRuleCount;				      /* number of ChainSubClassRule					 tables                      */  HB_ChainSubClassRule*  ChainSubClassRule;				      /* array of ChainSubClassRule					 tables                      */};typedef struct HB_ChainSubClassSet_  HB_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  HB_ChainContextSubstFormat2_{  HB_Coverage           Coverage;    /* Coverage table             */  FT_UShort              MaxBacktrackLength;				      /* maximal backtrack length   */  HB_ClassDefinition    BacktrackClassDef;				      /* BacktrackClassDef table    */  FT_UShort              MaxInputLength;				      /* maximal input length       */  HB_ClassDefinition    InputClassDef;				      /* InputClassDef table        */  FT_UShort              MaxLookaheadLength;				      /* maximal lookahead length   */  HB_ClassDefinition    LookaheadClassDef;				      /* LookaheadClassDef table    */  FT_UShort              ChainSubClassSetCount;				      /* number of ChainSubClassSet					 tables                     */  HB_ChainSubClassSet*  ChainSubClassSet;				      /* array of ChainSubClassSet					 tables                     */};typedef struct HB_ChainContextSubstFormat2_  HB_ChainContextSubstFormat2;struct  HB_ChainContextSubstFormat3_{  FT_UShort               BacktrackGlyphCount;				      /* number of backtrack glyphs    */  HB_Coverage*           BacktrackCoverage;				      /* array of backtrack Coverage					 tables                        */  FT_UShort               InputGlyphCount;				      /* number of input glyphs        */  HB_Coverage*           InputCoverage;				      /* array of input coverage					 tables                        */  FT_UShort               LookaheadGlyphCount;				      /* number of lookahead glyphs    */  HB_Coverage*           LookaheadCoverage;				      /* array of lookahead coverage					 tables                        */  FT_UShort               SubstCount; /* number of SubstLookupRecords  */  HB_SubstLookupRecord*  SubstLookupRecord;				      /* array of substitution lookups */};typedef struct HB_ChainContextSubstFormat3_  HB_ChainContextSubstFormat3;struct  HB_ChainContextSubst_{  FT_UShort  SubstFormat;             /* 1, 2, or 3 */  union  {    HB_ChainContextSubstFormat1  ccsf1;    HB_ChainContextSubstFormat2  ccsf2;    HB_ChainContextSubstFormat3  ccsf3;  } ccsf;};typedef struct HB_ChainContextSubst_  HB_ChainContextSubst;/* LookupType 8 */struct HB_ReverseChainContextSubst_{  FT_UShort      SubstFormat;         /* always 1 */  HB_Coverage   Coverage;	        /* coverage table for input glyphs */  FT_UShort      BacktrackGlyphCount; /* number of backtrack glyphs      */  HB_Coverage*  BacktrackCoverage;   /* array of backtrack Coverage					 tables                          */  FT_UShort      LookaheadGlyphCount; /* number of lookahead glyphs      */  HB_Coverage*  LookaheadCoverage;   /* array of lookahead Coverage					 tables                          */  FT_UShort      GlyphCount;          /* number of Glyph IDs             */  FT_UShort*     Substitute;          /* array of substitute Glyph ID    */};typedef struct HB_ReverseChainContextSubst_  HB_ReverseChainContextSubst;union  HB_GSUB_SubTable_{  HB_SingleSubst              single;  HB_MultipleSubst            multiple;  HB_AlternateSubst           alternate;  HB_LigatureSubst            ligature;  HB_ContextSubst             context;  HB_ChainContextSubst        chain;  HB_ReverseChainContextSubst reverse;};FT_Error  _HB_GSUB_Load_SubTable( HB_GSUB_SubTable*  st,				  FT_Stream     stream,				  FT_UShort     lookup_type );void  _HB_GSUB_Free_SubTable( HB_GSUB_SubTable*  st,			      FT_Memory     memory,			      FT_UShort     lookup_type );FT_END_HEADER#endif /* HARFBUZZ_GSUB_PRIVATE_H */

⌨️ 快捷键说明

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