mirror of
https://github.com/curioustorvald/Terrarum-sans-bitmap.git
synced 2026-03-07 20:01:52 +09:00
fix: stack-down diacritic with nudge-Y values for both Kotlin and OTF
This commit is contained in:
Binary file not shown.
@@ -281,7 +281,13 @@ def build_font(assets_dir, output_path, no_bitmap=False, no_features=False):
|
|||||||
if advance == 0:
|
if advance == 0:
|
||||||
x_offset -= g.props.nudge_x * SCALE
|
x_offset -= g.props.nudge_x * SCALE
|
||||||
|
|
||||||
y_offset = -g.props.nudge_y * 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:
|
||||||
|
y_offset = g.props.nudge_y * SCALE
|
||||||
|
else:
|
||||||
|
y_offset = -g.props.nudge_y * SCALE
|
||||||
|
|
||||||
contours = trace_bitmap(g.bitmap, g.props.width)
|
contours = trace_bitmap(g.bitmap, g.props.width)
|
||||||
|
|
||||||
|
|||||||
@@ -1250,7 +1250,7 @@ class TerrarumSansBitmap(
|
|||||||
// set Y pos according to diacritics position
|
// set Y pos according to diacritics position
|
||||||
when (thisProp.stackWhere) {
|
when (thisProp.stackWhere) {
|
||||||
GlyphProps.STACK_DOWN -> {
|
GlyphProps.STACK_DOWN -> {
|
||||||
posYbuffer[charIndex] = -thisProp.nudgeY + (H_DIACRITICS * stackDownwardCounter + -thisProp.nudgeY) * flipY.toSign()
|
posYbuffer[charIndex] = (-thisProp.nudgeY + H_DIACRITICS * stackDownwardCounter) * flipY.toSign()
|
||||||
stackDownwardCounter++
|
stackDownwardCounter++
|
||||||
}
|
}
|
||||||
GlyphProps.STACK_UP -> {
|
GlyphProps.STACK_UP -> {
|
||||||
@@ -1272,11 +1272,11 @@ class TerrarumSansBitmap(
|
|||||||
// dbgprn("lastNonDiacriticChar: ${lastNonDiacriticChar.charInfo()}; stack counter: $stackUpwardCounter")
|
// dbgprn("lastNonDiacriticChar: ${lastNonDiacriticChar.charInfo()}; stack counter: $stackUpwardCounter")
|
||||||
}
|
}
|
||||||
GlyphProps.STACK_UP_N_DOWN -> {
|
GlyphProps.STACK_UP_N_DOWN -> {
|
||||||
posYbuffer[charIndex] = -thisProp.nudgeY + (H_DIACRITICS * stackDownwardCounter + -thisProp.nudgeY) * flipY.toSign()
|
posYbuffer[charIndex] = (-thisProp.nudgeY + H_DIACRITICS * stackDownwardCounter) * flipY.toSign()
|
||||||
stackDownwardCounter++
|
stackDownwardCounter++
|
||||||
|
|
||||||
|
|
||||||
posYbuffer[charIndex] = -thisProp.nudgeY + (-H_DIACRITICS * stackUpwardCounter + -thisProp.nudgeY) * flipY.toSign()
|
posYbuffer[charIndex] = (-thisProp.nudgeY + -H_DIACRITICS * stackUpwardCounter) * flipY.toSign()
|
||||||
// shift down on lowercase if applicable
|
// shift down on lowercase if applicable
|
||||||
if (getSheetType(thisChar) in autoShiftDownOnLowercase &&
|
if (getSheetType(thisChar) in autoShiftDownOnLowercase &&
|
||||||
lastNonDiacriticChar.isLowHeight()) {
|
lastNonDiacriticChar.isLowHeight()) {
|
||||||
|
|||||||
Reference in New Issue
Block a user