Imported Upstream version 8.2.2
[platform/upstream/harfbuzz.git] / src / OT / Layout / GPOS / Common.hh
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