1#ifndef OT_LAYOUT_GPOS_COMMON_HH
2#define OT_LAYOUT_GPOS_COMMON_HH
3
4namespace OT {
5namespace Layout {
6namespace GPOS_impl {
7
8enum 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
21template<typename Iterator, typename SrcLookup>
22static 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