summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNadir Fejzic <n.fejzic@commend.com>2024-11-09 11:55:29 +0100
committerNadir Fejzic <n.fejzic@commend.com>2024-11-09 12:34:39 +0100
commit83c4d0077b7a06d487057fca3bddcc8a3685ed03 (patch)
treecb2ea9aa3c482a35c3c05f8a1369735a15782888 /src
parente7f286d83fc5d43be519abd0e21a03fadb43377f (diff)
refactor: define `FreetypeLoadFlags` struct and default in `font.face`
Diffstat (limited to 'src')
-rw-r--r--src/config.zig12
-rw-r--r--src/font/Collection.zig13
-rw-r--r--src/font/SharedGridSet.zig15
-rw-r--r--src/font/face.zig16
-rw-r--r--src/font/face/freetype.zig2
5 files changed, 19 insertions, 39 deletions
diff --git a/src/config.zig b/src/config.zig
index f2d4876ae..08d93a6a3 100644
--- a/src/config.zig
+++ b/src/config.zig
@@ -11,18 +11,6 @@ pub const url = @import("config/url.zig");
pub const FileFormatter = formatter.FileFormatter;
pub const entryFormatter = formatter.entryFormatter;
pub const formatEntry = formatter.formatEntry;
-pub const FreetypeLoadFlags = switch (options.backend) {
- .freetype,
- .fontconfig_freetype,
- .coretext_freetype,
- => Config.FreetypeLoadFlags,
-
- .coretext,
- .coretext_harfbuzz,
- .coretext_noshape,
- .web_canvas,
- => void,
-};
// Field types
pub const ClipboardAccess = Config.ClipboardAccess;
diff --git a/src/font/Collection.zig b/src/font/Collection.zig
index b65b4bd2e..478c39ded 100644
--- a/src/font/Collection.zig
+++ b/src/font/Collection.zig
@@ -452,18 +452,7 @@ pub const LoadOptions = struct {
/// for this is owned by the user and is not freed by the collection.
metric_modifiers: Metrics.ModifierSet = .{},
- freetype_load_flags: config.FreetypeLoadFlags = switch (font.options.backend) {
- .freetype,
- .fontconfig_freetype,
- .coretext_freetype,
- => .{},
-
- .coretext,
- .coretext_harfbuzz,
- .coretext_noshape,
- .web_canvas,
- => {},
- },
+ freetype_load_flags: font.face.FreetypeLoadFlags = font.face.freetype_load_flags_default,
pub fn deinit(self: *LoadOptions, alloc: Allocator) void {
_ = self;
diff --git a/src/font/SharedGridSet.zig b/src/font/SharedGridSet.zig
index 49886c8f2..6459435a1 100644
--- a/src/font/SharedGridSet.zig
+++ b/src/font/SharedGridSet.zig
@@ -428,7 +428,7 @@ pub const DerivedConfig = struct {
@"adjust-strikethrough-position": ?Metrics.Modifier,
@"adjust-strikethrough-thickness": ?Metrics.Modifier,
@"adjust-cursor-thickness": ?Metrics.Modifier,
- @"freetype-load-flags": configpkg.FreetypeLoadFlags,
+ @"freetype-load-flags": font.face.FreetypeLoadFlags,
/// Initialize a DerivedConfig. The config should be either a
/// config.Config or another DerivedConfig to clone from.
@@ -514,18 +514,7 @@ pub const Key = struct {
/// font grid.
font_size: DesiredSize = .{ .points = 12 },
- load_flags: configpkg.FreetypeLoadFlags = switch (font.options.backend) {
- .freetype,
- .fontconfig_freetype,
- .coretext_freetype,
- => .{},
-
- .coretext,
- .coretext_harfbuzz,
- .coretext_noshape,
- .web_canvas,
- => {},
- },
+ load_flags: configpkg.FreetypeLoadFlags = font.face.freetype_load_flags_default,
const style_offsets_len = std.enums.directEnumArrayLen(Style, 0);
const StyleOffsets = [style_offsets_len]usize;
diff --git a/src/font/face.zig b/src/font/face.zig
index 663a86672..24c9b0422 100644
--- a/src/font/face.zig
+++ b/src/font/face.zig
@@ -27,11 +27,25 @@ pub const Face = switch (options.backend) {
/// using whatever platform method you can.
pub const default_dpi = if (builtin.os.tag == .macos) 72 else 96;
+pub const FreetypeLoadFlags = switch (options.backend) {
+ .freetype,
+ .fontconfig_freetype,
+ .coretext_freetype,
+ => config.Config.FreetypeLoadFlags,
+
+ .coretext,
+ .coretext_harfbuzz,
+ .coretext_noshape,
+ .web_canvas,
+ => void,
+};
+pub const freetype_load_flags_default = if (options.backend.hasFreetype()) .{} else {};
+
/// Options for initializing a font face.
pub const Options = struct {
size: DesiredSize,
metric_modifiers: ?*const Metrics.ModifierSet = null,
- freetype_load_flags: config.FreetypeLoadFlags,
+ freetype_load_flags: FreetypeLoadFlags,
};
/// The desired size for loading a font.
diff --git a/src/font/face/freetype.zig b/src/font/face/freetype.zig
index 5bbbb246b..8a1465d7e 100644
--- a/src/font/face/freetype.zig
+++ b/src/font/face/freetype.zig
@@ -36,7 +36,7 @@ pub const Face = struct {
metrics: font.face.Metrics,
/// Freetype load flags for this font face.
- load_flags: config.FreetypeLoadFlags,
+ load_flags: font.face.FreetypeLoadFlags,
/// Set quirks.disableDefaultFontFeatures
quirks_disable_default_font_features: bool = false,