From 80fd5743200cbe221ae3adf057fe0e5ef54a894c Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Wed, 10 Jan 2018 11:09:53 +0100 Subject: [PATCH] [aat] Add Class subtable thingy From old 'mort' table. --- src/hb-aat-layout-common-private.hh | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/hb-aat-layout-common-private.hh b/src/hb-aat-layout-common-private.hh index c3058682d..4b96ee6c9 100644 --- a/src/hb-aat-layout-common-private.hh +++ b/src/hb-aat-layout-common-private.hh @@ -424,6 +424,30 @@ struct Lookup }; +struct Class +{ + inline unsigned int get_class (hb_codepoint_t glyph_id) const + { + return firstGlyph <= glyph_id && glyph_id - firstGlyph < glyphCount ? classArrayZ[glyph_id - firstGlyph] : 1; + } + + inline bool sanitize (hb_sanitize_context_t *c) const + { + TRACE_SANITIZE (this); + return_trace (c->check_struct (this) && classArrayZ.sanitize (c, glyphCount)); + } + + protected: + GlyphID firstGlyph; /* First glyph index included in the trimmed array. */ + HBUINT16 glyphCount; /* Total number of glyphs (equivalent to the last + * glyph minus the value of firstGlyph plus 1). */ + UnsizedArrayOf + classArrayZ; /* The class codes (indexed by glyph index minus + * firstGlyph). */ + public: + DEFINE_SIZE_ARRAY (4, classArrayZ); +}; + } /* namespace AAT */