mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-08-02 14:57:31 +03:00
font: start working on core text cell height calcs
This commit is contained in:
@ -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 {
|
||||
return c.CTFontGetUnderlinePosition(@ptrCast(c.CTFontRef, self));
|
||||
}
|
||||
|
@ -118,7 +118,12 @@ pub const Face = struct {
|
||||
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;
|
||||
}
|
||||
};
|
||||
|
@ -389,7 +389,7 @@ test {
|
||||
|
||||
var ft_font = try Face.init(lib, testFont, .{ .points = 12 });
|
||||
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);
|
||||
|
||||
|
Reference in New Issue
Block a user