font: start working on core text cell height calcs

This commit is contained in:
Mitchell Hashimoto
2022-10-08 17:03:09 -07:00
parent 22f437aac6
commit a97f997f9a
3 changed files with 23 additions and 2 deletions

View File

@ -112,6 +112,22 @@ pub const Font = opaque {
)); ));
} }
pub fn getAscent(self: *Font) f64 {
return c.CTFontGetAscent(@ptrCast(c.CTFontRef, self));
}
pub fn getDescent(self: *Font) f64 {
return c.CTFontGetDescent(@ptrCast(c.CTFontRef, self));
}
pub fn getLeading(self: *Font) f64 {
return c.CTFontGetLeading(@ptrCast(c.CTFontRef, self));
}
pub fn getBoundingBox(self: *Font) graphics.Rect {
return @bitCast(graphics.Rect, c.CTFontGetBoundingBox(@ptrCast(c.CTFontRef, self)));
}
pub fn getUnderlinePosition(self: *Font) f64 { pub fn getUnderlinePosition(self: *Font) f64 {
return c.CTFontGetUnderlinePosition(@ptrCast(c.CTFontRef, self)); return c.CTFontGetUnderlinePosition(@ptrCast(c.CTFontRef, self));
} }

View File

@ -118,7 +118,12 @@ pub const Face = struct {
break :cell_width @floatCast(f32, max); break :cell_width @floatCast(f32, max);
}; };
std.log.warn("width={}", .{cell_width}); const cell_height: f32 = cell_height: {
const diff = ct_font.getAscent() + ct_font.getDescent() + ct_font.getLeading();
break :cell_height @floatCast(f32, diff);
};
std.log.warn("width={}, height={}", .{ cell_width, cell_height });
return undefined; return undefined;
} }
}; };

View File

@ -389,7 +389,7 @@ test {
var ft_font = try Face.init(lib, testFont, .{ .points = 12 }); var ft_font = try Face.init(lib, testFont, .{ .points = 12 });
defer ft_font.deinit(); defer ft_font.deinit();
//log.warn("FT WIDTH={}", .{ft_font.metrics.cell_width}); log.warn("FT={}", .{ft_font.metrics});
try testing.expectEqual(Presentation.text, ft_font.presentation); try testing.expectEqual(Presentation.text, ft_font.presentation);