2022-06-25 00:01:02 +02:00
|
|
|
#ifndef OT_LAYOUT_GPOS_COMMON_HH
|
|
|
|
#define OT_LAYOUT_GPOS_COMMON_HH
|
|
|
|
|
|
|
|
namespace OT {
|
|
|
|
namespace Layout {
|
|
|
|
namespace GPOS {
|
|
|
|
|
2022-06-25 00:36:14 +02:00
|
|
|
enum attach_type_t {
|
|
|
|
ATTACH_TYPE_NONE = 0X00,
|
|
|
|
|
|
|
|
/* Each attachment should be either a mark or a cursive; can't be both. */
|
|
|
|
ATTACH_TYPE_MARK = 0X01,
|
|
|
|
ATTACH_TYPE_CURSIVE = 0X02,
|
|
|
|
};
|
|
|
|
|
|
|
|
/* buffer **position** var allocations */
|
|
|
|
#define attach_chain() var.i16[0] /* glyph to which this attaches to, relative to current glyphs; negative for going back, positive for forward. */
|
|
|
|
#define attach_type() var.u8[2] /* attachment type */
|
|
|
|
/* Note! if attach_chain() is zero, the value of attach_type() is irrelevant. */
|
|
|
|
|
2022-06-25 00:01:02 +02:00
|
|
|
template<typename Iterator, typename SrcLookup>
|
|
|
|
static void SinglePos_serialize (hb_serialize_context_t *c,
|
|
|
|
const SrcLookup *src,
|
|
|
|
Iterator it,
|
|
|
|
const hb_map_t *layout_variation_idx_map);
|
|
|
|
|
2022-06-25 00:36:14 +02:00
|
|
|
|
2022-06-25 00:01:02 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif // OT_LAYOUT_GPOS_COMMON_HH
|