mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-07-16 16:56:09 +03:00
font: deferred face can load core text backend
This commit is contained in:
@ -339,17 +339,20 @@ pub fn create(alloc: Allocator, loop: libuv.Loop, config: *const Config) !*Windo
|
|||||||
font.DeferredFace.initLoaded(try font.Face.init(font_lib, face_bold_ttf, font_size)),
|
font.DeferredFace.initLoaded(try font.Face.init(font_lib, face_bold_ttf, font_size)),
|
||||||
);
|
);
|
||||||
|
|
||||||
// Emoji
|
// Emoji fallback. We don't include this on Mac since Mac is expected
|
||||||
try group.addFace(
|
// to always have the Apple Emoji available.
|
||||||
alloc,
|
if (builtin.os.tag != .macos or font.Discover == void) {
|
||||||
.regular,
|
try group.addFace(
|
||||||
font.DeferredFace.initLoaded(try font.Face.init(font_lib, face_emoji_ttf, font_size)),
|
alloc,
|
||||||
);
|
.regular,
|
||||||
try group.addFace(
|
font.DeferredFace.initLoaded(try font.Face.init(font_lib, face_emoji_ttf, font_size)),
|
||||||
alloc,
|
);
|
||||||
.regular,
|
try group.addFace(
|
||||||
font.DeferredFace.initLoaded(try font.Face.init(font_lib, face_emoji_text_ttf, font_size)),
|
alloc,
|
||||||
);
|
.regular,
|
||||||
|
font.DeferredFace.initLoaded(try font.Face.init(font_lib, face_emoji_text_ttf, font_size)),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
break :group group;
|
break :group group;
|
||||||
});
|
});
|
||||||
|
@ -115,6 +115,7 @@ pub fn load(
|
|||||||
// both here.
|
// both here.
|
||||||
switch (font.Face) {
|
switch (font.Face) {
|
||||||
@import("face/freetype.zig").Face => try self.loadCoreTextFreetype(lib, size),
|
@import("face/freetype.zig").Face => try self.loadCoreTextFreetype(lib, size),
|
||||||
|
@import("face/coretext.zig").Face => try self.loadCoreText(lib, size),
|
||||||
else => unreachable,
|
else => unreachable,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -142,6 +143,17 @@ fn loadFontconfig(
|
|||||||
self.face = try Face.initFile(lib, filename, face_index, size);
|
self.face = try Face.initFile(lib, filename, face_index, size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn loadCoreText(
|
||||||
|
self: *DeferredFace,
|
||||||
|
lib: Library,
|
||||||
|
size: font.face.DesiredSize,
|
||||||
|
) !void {
|
||||||
|
_ = lib;
|
||||||
|
assert(self.face == null);
|
||||||
|
const ct = self.ct.?;
|
||||||
|
self.face = try Face.initFontCopy(ct.font, size);
|
||||||
|
}
|
||||||
|
|
||||||
fn loadCoreTextFreetype(
|
fn loadCoreTextFreetype(
|
||||||
self: *DeferredFace,
|
self: *DeferredFace,
|
||||||
lib: Library,
|
lib: Library,
|
||||||
|
Reference in New Issue
Block a user