提交 9624de5b 编写于 作者: B Behdad Esfahbod

Clarify cursive_chain (and change its sign)

上级 d6c9eadb
......@@ -869,12 +869,12 @@ struct CursivePosFormat1
if (c->lookup_flag & LookupFlag::RightToLeft)
{
c->buffer->pos[i].cursive_chain = i - j;
c->buffer->pos[i].cursive_chain = j - i;
c->buffer->pos[i].y_offset = entry_y - exit_y;
}
else
{
c->buffer->pos[j].cursive_chain = j - i;
c->buffer->pos[j].cursive_chain = i - j;
c->buffer->pos[j].y_offset = exit_y - entry_y;
}
......
......@@ -611,24 +611,25 @@ hb_ot_layout_position_finish (hb_font_t *font HB_UNUSED,
/* TODO: Vertical */
/* Handle cursive connections */
/* First handle all left-to-right connections */
/* First handle all chain-back connections */
for (j = 0; j < len; j++) {
if (pos[j].cursive_chain > 0)
if (pos[j].cursive_chain < 0)
{
pos[j].y_offset += pos[j - pos[j].cursive_chain].y_offset;
pos[j].y_offset += pos[j + pos[j].cursive_chain].y_offset;
pos[j].cursive_chain = 0;
}
}
/* Then handle all right-to-left connections */
/* Then handle all chain-forward connections */
for (i = len; i > 0; i--) {
j = i - 1;
if (pos[j].cursive_chain < 0)
if (pos[j].cursive_chain > 0)
{
pos[j].y_offset += pos[j - pos[j].cursive_chain].y_offset;
pos[j].y_offset += pos[j + pos[j].cursive_chain].y_offset;
pos[j].cursive_chain = 0;
}
}
/* Handle attachments */
for (i = 0; i < len; i++)
if (pos[i].back)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册