keming machine dot removal directive

This commit is contained in:
minjaesong
2026-03-07 22:41:24 +09:00
parent 163e3d7b3e
commit 2008bbf6dd
8 changed files with 27 additions and 21 deletions

View File

@@ -370,10 +370,9 @@ def build_font(assets_dir, output_path, no_bitmap=False, no_features=False):
x_offset = 0
x_offset -= g.props.nudge_x * SCALE
# For STACK_DOWN marks (below-base diacritics), negative nudge_y
# means "shift content down to below baseline". The sign convention
# is opposite to non-marks where positive nudge_y means shift down.
if g.props.stack_where == SC.STACK_DOWN and g.props.write_on_top >= 0:
# For marks (write_on_top >= 0), positive nudge_y means shift UP
# in the bitmap engine (opposite to non-marks where positive = down).
if g.props.write_on_top >= 0:
y_offset = g.props.nudge_y * SCALE
else:
y_offset = -g.props.nudge_y * SCALE

View File

@@ -1878,12 +1878,16 @@ def _generate_mark(glyphs, has):
lines.append(f"lookup {mkmk_name} {{")
if scat == 'up':
m2y = SC.ASCENT + SC.H_DIACRITICS * SC.SCALE
m2y_base = SC.ASCENT + SC.H_DIACRITICS * SC.SCALE
else: # 'dn'
m2y = SC.ASCENT - SC.H_DIACRITICS * SC.SCALE
m2y_base = SC.ASCENT - SC.H_DIACRITICS * SC.SCALE
for cp, g in mark_list:
mx = mark_anchors.get(cp, 0)
# Cascade nudge_y: the mark2 anchor includes this mark's
# nudge so that the next stacked mark inherits the shift,
# matching the Kotlin engine's nudgeUpwardCounter / nudgeDownwardCounter.
m2y = m2y_base + g.props.nudge_y * SC.SCALE
lines.append(
f" pos mark {glyph_name(cp)}"
f" <anchor {mx} {m2y}> mark {class_name};"