#ifndef HARFBUZZ_OPEN_H
#define HARFBUZZ_OPEN_H
#include "harfbuzz-global.h"
HB_BEGIN_HEADER
#define HB_ALL_GLYPHS 0xFFFF
#define HB_DEFAULT_LANGUAGE 0xFFFF
#define HB_MAX_NESTING_LEVEL 100
struct HB_LangSys_
{
HB_UShort LookupOrderOffset;
HB_UShort ReqFeatureIndex;
HB_UShort FeatureCount;
HB_UShort* FeatureIndex;
};
typedef struct HB_LangSys_ HB_LangSys;
struct HB_LangSysRecord_
{
HB_UInt LangSysTag;
HB_LangSys LangSys;
};
typedef struct HB_LangSysRecord_ HB_LangSysRecord;
struct HB_ScriptTable_
{
HB_LangSys DefaultLangSys;
HB_UShort LangSysCount;
HB_LangSysRecord* LangSysRecord;
};
typedef struct HB_ScriptTable_ HB_ScriptTable;
struct HB_ScriptRecord_
{
HB_UInt ScriptTag;
HB_ScriptTable Script;
};
typedef struct HB_ScriptRecord_ HB_ScriptRecord;
struct HB_ScriptList_
{
HB_UShort ScriptCount;
HB_ScriptRecord* ScriptRecord;
};
typedef struct HB_ScriptList_ HB_ScriptList;
struct HB_Feature_
{
HB_UShort FeatureParams;
HB_UShort LookupListCount;
HB_UShort* LookupListIndex;
};
typedef struct HB_Feature_ HB_Feature;
struct HB_FeatureRecord_
{
HB_UInt FeatureTag;
HB_Feature Feature;
};
typedef struct HB_FeatureRecord_ HB_FeatureRecord;
struct HB_FeatureList_
{
HB_UShort FeatureCount;
HB_FeatureRecord* FeatureRecord;
HB_UShort* ApplyOrder;
HB_UShort ApplyCount;
};
typedef struct HB_FeatureList_ HB_FeatureList;
typedef struct HB_SubTable_ HB_SubTable;
struct HB_Lookup_
{
HB_UShort LookupType;
HB_UShort LookupFlag;
HB_UShort SubTableCount;
HB_SubTable* SubTable;
};
typedef struct HB_Lookup_ HB_Lookup;
struct HB_LookupList_
{
HB_UShort LookupCount;
HB_Lookup* Lookup;
HB_UInt* Properties;
};
typedef struct HB_LookupList_ HB_LookupList;
#define HB_LOOKUP_FLAG_RIGHT_TO_LEFT 0x0001
#define HB_LOOKUP_FLAG_IGNORE_BASE_GLYPHS 0x0002
#define HB_LOOKUP_FLAG_IGNORE_LIGATURES 0x0004
#define HB_LOOKUP_FLAG_IGNORE_MARKS 0x0008
#define HB_LOOKUP_FLAG_IGNORE_SPECIAL_MARKS 0xFF00
struct HB_CoverageFormat1_
{
HB_UShort GlyphCount;
HB_UShort* GlyphArray;
};
typedef struct HB_CoverageFormat1_ HB_CoverageFormat1;
struct HB_RangeRecord_
{
HB_UShort Start;
HB_UShort End;
HB_UShort StartCoverageIndex;
};
typedef struct HB_RangeRecord_ HB_RangeRecord;
struct HB_CoverageFormat2_
{
HB_UShort RangeCount;
HB_RangeRecord* RangeRecord;
};
typedef struct HB_CoverageFormat2_ HB_CoverageFormat2;
struct HB_Coverage_
{
HB_UShort CoverageFormat;
union
{
HB_CoverageFormat1 cf1;
HB_CoverageFormat2 cf2;
} cf;
};
typedef struct HB_Coverage_ HB_Coverage;
struct HB_ClassDefFormat1_
{
HB_UShort StartGlyph;
HB_UShort GlyphCount;
HB_UShort* ClassValueArray;
};
typedef struct HB_ClassDefFormat1_ HB_ClassDefFormat1;
struct HB_ClassRangeRecord_
{
HB_UShort Start;
HB_UShort End;
HB_UShort Class;
};
typedef struct HB_ClassRangeRecord_ HB_ClassRangeRecord;
struct HB_ClassDefFormat2_
{
HB_UShort ClassRangeCount;
HB_ClassRangeRecord* ClassRangeRecord;
};
typedef struct HB_ClassDefFormat2_ HB_ClassDefFormat2;
struct HB_ClassDefinition_
{
HB_Bool loaded;
HB_UShort ClassFormat;
union
{
HB_ClassDefFormat1 cd1;
HB_ClassDefFormat2 cd2;
} cd;
};
typedef struct HB_ClassDefinition_ HB_ClassDefinition;
struct HB_Device_
{
HB_UShort StartSize;
HB_UShort EndSize;
HB_UShort DeltaFormat;
HB_UShort* DeltaValue;
};
typedef struct HB_Device_ HB_Device;
enum HB_Type_
{
HB_Type_GSUB,
HB_Type_GPOS
};
typedef enum HB_Type_ HB_Type;
HB_END_HEADER
#endif