optimize padding code

This commit is contained in:
be5invis 2016-05-03 00:26:04 +08:00
parent d71c135c73
commit 8a37a12411

View File

@ -512,14 +512,15 @@ export as build : define [buildFont para recursive recursiveCodes] : begin
# Note: we use 1000upm in design, and (1000 * upmsacle)upm in production, to avoid rounding error. # Note: we use 1000upm in design, and (1000 * upmsacle)upm in production, to avoid rounding error.
let [asc : para.leading * CAP / (CAP - DESCENDER)] [desc : para.leading * DESCENDER / (CAP - DESCENDER)] : begin let [asc : para.leading * CAP / (CAP - DESCENDER)] [desc : para.leading * DESCENDER / (CAP - DESCENDER)] : begin
local bottomPad : fallback para.linegap 0
set font.head.unitsPerEm 1000 set font.head.unitsPerEm 1000
set font.hhea.ascender asc set font.hhea.ascender asc
set font.OS_2.usWinAscent asc set font.OS_2.usWinAscent asc
set font.OS_2.sTypoAscender asc set font.OS_2.sTypoAscender asc
set font.hhea.descender (DESCENDER - para.linegap) set font.hhea.descender (DESCENDER - bottomPad)
set font.OS_2.usWinDescent ([Math.abs desc] + para.liengap) set font.OS_2.usWinDescent ([Math.abs desc] + bottomPad)
set font.OS_2.sTypoDescender (desc - para.liengap) set font.OS_2.sTypoDescender (desc - bottomPad)
set font.hhea.lineGap (para.leading - asc + DESCENDER) set font.hhea.lineGap (para.leading - asc + DESCENDER)
set font.OS_2.sTypoLineGap (para.leading - asc + desc) set font.OS_2.sTypoLineGap (para.leading - asc + desc)