Round projs computed executing IP/ISECT instructions and improve IUP
authorPo Lu <luangruo@yahoo.com>
Sat, 20 Jan 2024 01:30:04 +0000 (09:30 +0800)
committerPo Lu <luangruo@yahoo.com>
Sat, 20 Jan 2024 01:30:04 +0000 (09:30 +0800)
commitb3e4fbe867f96a28c5dc9db19fcad2af5b4a4b7e
tree35a6cecddba06947f5d930734a071f29355ac844
parenta34b76cd663e39d9f5d30c4b0e49ba246fac0d63
Round projs computed executing IP/ISECT instructions and improve IUP

* src/sfnt.c (sfnt_multiply_divide_rounded): New function.
(sfnt_multiply_divide_signed): Always round values, as fonts
which rely on IP to move points in concert with prior motion and
subsequently round such points with MDAP are sensitive to minor
deviations in the behavior of the former instruction.
(load_unscaled): New macro.
(IUP_SINGLE_PAIR, sfnt_interpret_iup_1): Compute ratio w/
unscaled points if possible.
src/sfnt.c