提交 d7df42d7 编写于 作者: B Behdad Esfahbod

[HB] Start MarkFilteringSet support

上级 62964afc
......@@ -158,7 +158,8 @@ struct LookupFlag : USHORT
IgnoreBaseGlyphs = 0x0002u,
IgnoreLigatures = 0x0004u,
IgnoreMarks = 0x0008u,
Reserved = 0x00F0u,
UseMarkFilteringSet = 0x0010u,
Reserved = 0x00E0u,
MarkAttachmentType = 0xFF00u,
};
};
......@@ -177,12 +178,25 @@ struct Lookup
inline unsigned int get_subtable_count (void) const { return subTable.len; }
inline unsigned int get_type (void) const { return lookupType; }
inline unsigned int get_flag (void) const { return lookupFlag; }
inline unsigned int get_flag (void) const
{
unsigned int flag = lookupFlag;
if (HB_UNLIKELY (flag & LookupFlag::UseMarkFilteringSet))
{
const USHORT &markFilteringSet = *(const USHORT*)
((const char *) &subTable + subTable.get_size ());
flag += markFilteringSet << 16;
}
return flag;
}
USHORT lookupType; /* Different enumerations for GSUB and GPOS */
USHORT lookupFlag; /* Lookup qualifiers */
USHORT lookupType; /* Different enumerations for GSUB and GPOS */
USHORT lookupFlag; /* Lookup qualifiers */
OffsetArrayOf<LookupSubTable>
subTable; /* Array of SubTables */
subTable; /* Array of SubTables */
USHORT markFilteringSetX[0]; /* Index (base 0) into GDEF mark glyph sets
* structure. This field is only present if bit
* UseMarkFilteringSet of lookup flags is set. */
};
ASSERT_SIZE (Lookup, 6);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册