• Zhiyi Zhang's avatar
    win32u: Choose a smaller ppem to avoid exceeding the requested font height. · 58b477d1
    Zhiyi Zhang authored
    When height > 0, CreateFontA/W() should not return a font face exceeding the requested height.
    For instance, Tahoma has 2049 units of ascent, 423 units of descent and its units per EM square is
    2048. When requesting a font 20 pixels in height, ppem = units_per_EM * requested_height / (ascent + descent)
    = 2048 * 20 / (2049 + 423) = 16.57 ~= 17. When getting the resulting height back from the ppem,
    resulting_height = (ascent + descent) * ppem / units_per_EM = (2049.0 + 423) * 17 / 2048 = 20.52
    ~=21. So it ends up getting a larger font than requested and violates the spec.
    
    Fix Nancy Drew: Legend of the Crystal Skull crash at start.
    Signed-off-by: 's avatarZhiyi Zhang <zzhang@codeweavers.com>
    58b477d1
Name
Last commit
Last update
dlls Loading commit data...
documentation Loading commit data...
fonts Loading commit data...
include Loading commit data...
libs Loading commit data...
loader Loading commit data...
nls Loading commit data...
po Loading commit data...
programs Loading commit data...
server Loading commit data...
tools Loading commit data...
.editorconfig Loading commit data...
.gitlab-ci.yml Loading commit data...
.mailmap Loading commit data...
ANNOUNCE Loading commit data...
AUTHORS Loading commit data...
COPYING.LIB Loading commit data...
LICENSE Loading commit data...
LICENSE.OLD Loading commit data...
MAINTAINERS Loading commit data...
README Loading commit data...
VERSION Loading commit data...
aclocal.m4 Loading commit data...
configure Loading commit data...
configure.ac Loading commit data...