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

📄 harfbuzz-gpos-private.h

📁 Pango is a library for layout and rendering of text, with an emphasis on internationalization. Pang
💻 H
📖 第 1 页 / 共 2 页
字号:
/* * Copyright (C) 1998-2004  David Turner and Werner Lemberg * Copyright (C) 2006  Behdad Esfahbod * *  This is part of HarfBuzz, an OpenType Layout engine library. * * Permission is hereby granted, without written agreement and without * license or royalty fees, to use, copy, modify, and distribute this * software and its documentation for any purpose, provided that the * above copyright notice and the following two paragraphs appear in * all copies of this software. * * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. * * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. */#ifndef HARFBUZZ_GPOS_PRIVATE_H#define HARFBUZZ_GPOS_PRIVATE_H#include "harfbuzz-impl.h"#include "harfbuzz-stream-private.h"#include "harfbuzz-gpos.h"HB_BEGIN_HEADER/* shared tables */struct  HB_ValueRecord_{  HB_Short    XPlacement;             /* horizontal adjustment for					 placement                      */  HB_Short    YPlacement;             /* vertical adjustment for					 placement                      */  HB_Short    XAdvance;               /* horizontal adjustment for					 advance                        */  HB_Short    YAdvance;               /* vertical adjustment for					 advance                        */  HB_Device  XPlacementDevice;       /* device table for horizontal					 placement                      */  HB_Device  YPlacementDevice;       /* device table for vertical					 placement                      */  HB_Device  XAdvanceDevice;         /* device table for horizontal					 advance                        */  HB_Device  YAdvanceDevice;         /* device table for vertical					 advance                        */  HB_UShort   XIdPlacement;           /* horizontal placement metric ID */  HB_UShort   YIdPlacement;           /* vertical placement metric ID   */  HB_UShort   XIdAdvance;             /* horizontal advance metric ID   */  HB_UShort   YIdAdvance;             /* vertical advance metric ID     */};typedef struct HB_ValueRecord_  HB_ValueRecord;/* Mask values to scan the value format of the ValueRecord structure. We always expand compressed ValueRecords of the font.              */#define HB_GPOS_FORMAT_HAVE_X_PLACEMENT         0x0001#define HB_GPOS_FORMAT_HAVE_Y_PLACEMENT         0x0002#define HB_GPOS_FORMAT_HAVE_X_ADVANCE           0x0004#define HB_GPOS_FORMAT_HAVE_Y_ADVANCE           0x0008#define HB_GPOS_FORMAT_HAVE_X_PLACEMENT_DEVICE  0x0010#define HB_GPOS_FORMAT_HAVE_Y_PLACEMENT_DEVICE  0x0020#define HB_GPOS_FORMAT_HAVE_X_ADVANCE_DEVICE    0x0040#define HB_GPOS_FORMAT_HAVE_Y_ADVANCE_DEVICE    0x0080#define HB_GPOS_FORMAT_HAVE_X_ID_PLACEMENT      0x0100#define HB_GPOS_FORMAT_HAVE_Y_ID_PLACEMENT      0x0200#define HB_GPOS_FORMAT_HAVE_X_ID_ADVANCE        0x0400#define HB_GPOS_FORMAT_HAVE_Y_ID_ADVANCE        0x0800struct  HB_AnchorFormat1_{  HB_Short   XCoordinate;             /* horizontal value */  HB_Short   YCoordinate;             /* vertical value   */};typedef struct HB_AnchorFormat1_  HB_AnchorFormat1;struct  HB_AnchorFormat2_{  HB_Short   XCoordinate;             /* horizontal value             */  HB_Short   YCoordinate;             /* vertical value               */  HB_UShort  AnchorPoint;             /* index to glyph contour point */};typedef struct HB_AnchorFormat2_  HB_AnchorFormat2;struct  HB_AnchorFormat3_{  HB_Short    XCoordinate;            /* horizontal value              */  HB_Short    YCoordinate;            /* vertical value                */  HB_Device  XDeviceTable;           /* device table for X coordinate */  HB_Device  YDeviceTable;           /* device table for Y coordinate */};typedef struct HB_AnchorFormat3_  HB_AnchorFormat3;struct  HB_AnchorFormat4_{  HB_UShort  XIdAnchor;               /* horizontal metric ID */  HB_UShort  YIdAnchor;               /* vertical metric ID   */};typedef struct HB_AnchorFormat4_  HB_AnchorFormat4;struct  HB_Anchor_{  HB_UShort  PosFormat;               /* 1, 2, 3, or 4 -- 0 indicates					 that there is no Anchor table */  union  {    HB_AnchorFormat1  af1;    HB_AnchorFormat2  af2;    HB_AnchorFormat3  af3;    HB_AnchorFormat4  af4;  } af;};typedef struct HB_Anchor_  HB_Anchor;struct  HB_MarkRecord_{  HB_UShort   Class;                  /* mark class   */  HB_Anchor  MarkAnchor;             /* anchor table */};typedef struct HB_MarkRecord_  HB_MarkRecord;struct  HB_MarkArray_{  HB_UShort        MarkCount;         /* number of MarkRecord tables */  HB_MarkRecord*  MarkRecord;        /* array of MarkRecord tables  */};typedef struct HB_MarkArray_  HB_MarkArray;/* LookupType 1 */struct  HB_SinglePosFormat1_{  HB_ValueRecord  Value;             /* ValueRecord for all covered					 glyphs                      */};typedef struct HB_SinglePosFormat1_  HB_SinglePosFormat1;struct  HB_SinglePosFormat2_{  HB_UShort         ValueCount;       /* number of ValueRecord tables */  HB_ValueRecord*  Value;            /* array of ValueRecord tables  */};typedef struct HB_SinglePosFormat2_  HB_SinglePosFormat2;struct  HB_SinglePos_{  HB_UShort     PosFormat;            /* 1 or 2         */  HB_Coverage  Coverage;             /* Coverage table */  HB_UShort     ValueFormat;          /* format of ValueRecord table */  union  {    HB_SinglePosFormat1  spf1;    HB_SinglePosFormat2  spf2;  } spf;};typedef struct HB_SinglePos_  HB_SinglePos;/* LookupType 2 */struct  HB_PairValueRecord_{  HB_UShort        SecondGlyph;       /* glyph ID for second glyph  */  HB_ValueRecord  Value1;            /* pos. data for first glyph  */  HB_ValueRecord  Value2;            /* pos. data for second glyph */};typedef struct HB_PairValueRecord_  HB_PairValueRecord;struct  HB_PairSet_{  HB_UShort             PairValueCount;				      /* number of PairValueRecord tables */  HB_PairValueRecord*  PairValueRecord;				      /* array of PairValueRecord tables  */};typedef struct HB_PairSet_  HB_PairSet;struct  HB_PairPosFormat1_{  HB_UShort     PairSetCount;         /* number of PairSet tables    */  HB_PairSet*  PairSet;              /* array of PairSet tables     */};typedef struct HB_PairPosFormat1_  HB_PairPosFormat1;struct  HB_Class2Record_{  HB_ValueRecord  Value1;            /* pos. data for first glyph  */  HB_ValueRecord  Value2;            /* pos. data for second glyph */};typedef struct HB_Class2Record_  HB_Class2Record;struct  HB_Class1Record_{  HB_Class2Record*  Class2Record;    /* array of Class2Record tables */};typedef struct HB_Class1Record_  HB_Class1Record;struct  HB_PairPosFormat2_{  HB_ClassDefinition  ClassDef1;     /* class def. for first glyph     */  HB_ClassDefinition  ClassDef2;     /* class def. for second glyph    */  HB_UShort            Class1Count;   /* number of classes in ClassDef1					 table                          */  HB_UShort            Class2Count;   /* number of classes in ClassDef2					 table                          */  HB_Class1Record*    Class1Record;  /* array of Class1Record tables   */};typedef struct HB_PairPosFormat2_  HB_PairPosFormat2;struct  HB_PairPos_{  HB_UShort     PosFormat;            /* 1 or 2         */  HB_Coverage  Coverage;             /* Coverage table */  HB_UShort     ValueFormat1;         /* format of ValueRecord table					 for first glyph             */  HB_UShort     ValueFormat2;         /* format of ValueRecord table					 for second glyph            */  union  {    HB_PairPosFormat1  ppf1;    HB_PairPosFormat2  ppf2;  } ppf;};typedef struct HB_PairPos_  HB_PairPos;/* LookupType 3 */struct  HB_EntryExitRecord_{  HB_Anchor  EntryAnchor;            /* entry Anchor table */  HB_Anchor  ExitAnchor;             /* exit Anchor table  */};typedef struct HB_EntryExitRecord_  HB_EntryExitRecord;struct  HB_CursivePos_{  HB_UShort             PosFormat;    /* always 1                         */  HB_Coverage          Coverage;     /* Coverage table                   */  HB_UShort             EntryExitCount;				      /* number of EntryExitRecord tables */  HB_EntryExitRecord*  EntryExitRecord;				      /* array of EntryExitRecord tables  */};typedef struct HB_CursivePos_  HB_CursivePos;/* LookupType 4 */struct  HB_BaseRecord_{  HB_Anchor*  BaseAnchor;            /* array of base glyph anchor					 tables                     */};typedef struct HB_BaseRecord_  HB_BaseRecord;struct  HB_BaseArray_{  HB_UShort        BaseCount;         /* number of BaseRecord tables */  HB_BaseRecord*  BaseRecord;        /* array of BaseRecord tables  */};typedef struct HB_BaseArray_  HB_BaseArray;struct  HB_MarkBasePos_{  HB_UShort      PosFormat;           /* always 1                  */  HB_Coverage   MarkCoverage;        /* mark glyph coverage table */  HB_Coverage   BaseCoverage;        /* base glyph coverage table */  HB_UShort      ClassCount;          /* number of mark classes    */  HB_MarkArray  MarkArray;           /* mark array table          */  HB_BaseArray  BaseArray;           /* base array table          */};typedef struct HB_MarkBasePos_  HB_MarkBasePos;/* LookupType 5 */struct  HB_ComponentRecord_{  HB_Anchor*  LigatureAnchor;        /* array of ligature glyph anchor					 tables                         */};typedef struct HB_ComponentRecord_  HB_ComponentRecord;struct  HB_LigatureAttach_{  HB_UShort             ComponentCount;				      /* number of ComponentRecord tables */  HB_ComponentRecord*  ComponentRecord;				      /* array of ComponentRecord tables  */};typedef struct HB_LigatureAttach_  HB_LigatureAttach;struct  HB_LigatureArray_{  HB_UShort            LigatureCount; /* number of LigatureAttach tables */  HB_LigatureAttach*  LigatureAttach;

⌨️ 快捷键说明

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