HB_BEGIN_DECLS
+/* buffer var allocations */
+#define attach_lookback() var.u16[0] /* number of glyphs to go back to attach this glyph to its base */
+#define cursive_chain() var.i16[1] /* character to which this connects, may be positive or negative */
+
+
/* Shared Tables: ValueRecord, Anchor Table, and MarkArray */
typedef USHORT Value;
glyph_anchor.get_anchor (c->layout, c->buffer->info[glyph_pos].codepoint, &base_x, &base_y);
hb_glyph_position_t &o = c->buffer->pos[c->buffer->i];
- o.x_offset = base_x - mark_x;
- o.y_offset = base_y - mark_y;
- o.back() = c->buffer->i - glyph_pos;
+ o.x_offset = base_x - mark_x;
+ o.y_offset = base_y - mark_y;
+ o.attach_lookback() = c->buffer->i - glyph_pos;
c->buffer->i++;
return true;
/* Handle attachments */
for (i = 0; i < len; i++)
- if (pos[i].back())
+ if (pos[i].attach_lookback())
{
- unsigned int back = i - pos[i].back();
+ unsigned int back = i - pos[i].attach_lookback();
pos[i].x_offset += pos[back].x_offset;
pos[i].y_offset += pos[back].y_offset;
}
+#undef attach_lookback
+#undef cursive_chain
+
+
HB_END_DECLS
#endif /* HB_OT_LAYOUT_GPOS_PRIVATE_HH */
#define component() var1.u16[0]
#define lig_id() var1.u16[1]
#define gproperty() var2.u32
-#define back() var.u16[0] /* number of glyphs to go back for drawing current glyph */
-#define cursive_chain() var.i16[1] /* character to which this connects, may be positive or negative */
typedef enum {
HB_OT_LAYOUT_GLYPH_CLASS_UNCLASSIFIED = 0x0001,