1 #ifndef OT_LAYOUT_GPOS_COMMON_HH 2 #define OT_LAYOUT_GPOS_COMMON_HH 3 4 namespace OT { 5 namespace Layout { 6 namespace GPOS_impl { 7 8 enum attach_type_t { 9 ATTACH_TYPE_NONE = 0X00, 10 11 /* Each attachment should be either a mark or a cursive; can't be both. */ 12 ATTACH_TYPE_MARK = 0X01, 13 ATTACH_TYPE_CURSIVE = 0X02, 14 }; 15 16 /* buffer **position** var allocations */ 17 #define attach_chain() var.i16[0] /* glyph to which this attaches to, relative to current glyphs; negative for going back, positive for forward. */ 18 #define attach_type() var.u8[2] /* attachment type */ 19 /* Note! if attach_chain() is zero, the value of attach_type() is irrelevant. */ 20 21 template<typename Iterator, typename SrcLookup> 22 static void SinglePos_serialize (hb_serialize_context_t *c, 23 const SrcLookup *src, 24 Iterator it, 25 const hb_hashmap_t<unsigned, hb_pair_t<unsigned, int>> *layout_variation_idx_delta_map, 26 bool all_axes_pinned); 27 28 29 } 30 } 31 } 32 33 #endif // OT_LAYOUT_GPOS_COMMON_HH 34