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 | |