From 4573890f22d52ea1f47f2a664f7db4aeb3de7543 Mon Sep 17 00:00:00 2001 From: Qwerasd Date: Fri, 13 Dec 2024 13:14:49 -0500 Subject: [PATCH] font: fix sign of usWinDescent interpretation --- src/font/face/coretext.zig | 4 +++- src/font/face/freetype.zig | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/font/face/coretext.zig b/src/font/face/coretext.zig index 756d1ae6a..09fdd7ad0 100644 --- a/src/font/face/coretext.zig +++ b/src/font/face/coretext.zig @@ -647,7 +647,9 @@ pub const Face = struct { const win_descent: f64 = @floatFromInt(os2.usWinDescent); break :vertical_metrics .{ win_ascent * px_per_unit, - win_descent * px_per_unit, + // usWinDescent is *positive* -> down unlike sTypoDescender + // and hhea.Descender, so we flip its sign to fix this. + -win_descent * px_per_unit, 0.0, }; }; diff --git a/src/font/face/freetype.zig b/src/font/face/freetype.zig index e9f8d3207..7d34c70f8 100644 --- a/src/font/face/freetype.zig +++ b/src/font/face/freetype.zig @@ -689,7 +689,9 @@ pub const Face = struct { const win_descent: f64 = @floatFromInt(os2.usWinDescent); break :vertical_metrics .{ win_ascent * px_per_unit, - win_descent * px_per_unit, + // usWinDescent is *positive* -> down unlike sTypoDescender + // and hhea.Descender, so we flip its sign to fix this. + -win_descent * px_per_unit, 0.0, }; };