[pango/harfbuzz-ng] [HB] Start MarkFilteringSet support
- From: Behdad Esfahbod <behdad src gnome org>
- To: svn-commits-list gnome org
- Subject: [pango/harfbuzz-ng] [HB] Start MarkFilteringSet support
- Date: Tue, 26 May 2009 22:22:13 -0400 (EDT)
commit 3b1a840d2726772fb3a6ec0daedaf698fce29c52
Author: Behdad Esfahbod <behdad behdad org>
Date: Tue May 26 13:04:59 2009 -0400
[HB] Start MarkFilteringSet support
---
pango/opentype/hb-ot-layout-common-private.h | 24 +++++++++++++++++++-----
1 files changed, 19 insertions(+), 5 deletions(-)
diff --git a/pango/opentype/hb-ot-layout-common-private.h b/pango/opentype/hb-ot-layout-common-private.h
index 0a755bc..38933c8 100644
--- a/pango/opentype/hb-ot-layout-common-private.h
+++ b/pango/opentype/hb-ot-layout-common-private.h
@@ -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);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]