mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-07-15 00:06:09 +03:00
address many fontmem todos
This commit is contained in:
@ -18,9 +18,6 @@
|
|||||||
//! reinitialized and all surfaces should switch over to using that one.
|
//! reinitialized and all surfaces should switch over to using that one.
|
||||||
const SharedGrid = @This();
|
const SharedGrid = @This();
|
||||||
|
|
||||||
// TODO(fontmem):
|
|
||||||
// - consider config changes and how they affect the shared grid.
|
|
||||||
|
|
||||||
const std = @import("std");
|
const std = @import("std");
|
||||||
const assert = std.debug.assert;
|
const assert = std.debug.assert;
|
||||||
const Allocator = std.mem.Allocator;
|
const Allocator = std.mem.Allocator;
|
||||||
|
@ -174,12 +174,10 @@ pub const Modifier = union(enum) {
|
|||||||
const autoHash = std.hash.autoHash;
|
const autoHash = std.hash.autoHash;
|
||||||
autoHash(hasher, std.meta.activeTag(self));
|
autoHash(hasher, std.meta.activeTag(self));
|
||||||
switch (self) {
|
switch (self) {
|
||||||
// floats can't be hashed directly so we round it to the
|
// floats can't be hashed directly so we bitcast to i64.
|
||||||
// nearest int and then hash that. This is not perfect but
|
// for the purpose of what we're trying to do this seems
|
||||||
// hash collisions due to the modifier being wrong are really
|
// good enough but I would prefer value hashing.
|
||||||
// rare so we should fix this up later.
|
.percent => |v| autoHash(hasher, @as(i64, @bitCast(v))),
|
||||||
// TODO(fontmem): make better
|
|
||||||
.percent => |v| autoHash(hasher, @as(i64, @intFromFloat(v))),
|
|
||||||
.absolute => |v| autoHash(hasher, v),
|
.absolute => |v| autoHash(hasher, v),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1363,21 +1363,6 @@ fn prepKittyGraphics(
|
|||||||
|
|
||||||
/// Update the configuration.
|
/// Update the configuration.
|
||||||
pub fn changeConfig(self: *Metal, config: *DerivedConfig) !void {
|
pub fn changeConfig(self: *Metal, config: *DerivedConfig) !void {
|
||||||
// On configuration change we always reset our font group. There
|
|
||||||
// are a variety of configurations that can change font settings
|
|
||||||
// so to be safe we just always reset it. This has a performance hit
|
|
||||||
// when its not necessary but config reloading shouldn't be so
|
|
||||||
// common to cause a problem.
|
|
||||||
//
|
|
||||||
// TODO(fontmem): we no longer do this. the surface should handle
|
|
||||||
// font changes, create a new grid for us, and send it via message
|
|
||||||
// passing or something.
|
|
||||||
//
|
|
||||||
// self.font_group.reset();
|
|
||||||
// self.font_group.group.styles = config.font_styles;
|
|
||||||
// self.font_group.atlas_greyscale.clear();
|
|
||||||
// self.font_group.atlas_color.clear();
|
|
||||||
|
|
||||||
// We always redo the font shaper in case font features changed. We
|
// We always redo the font shaper in case font features changed. We
|
||||||
// could check to see if there was an actual config change but this is
|
// could check to see if there was an actual config change but this is
|
||||||
// easier and rare enough to not cause performance issues.
|
// easier and rare enough to not cause performance issues.
|
||||||
|
@ -1530,18 +1530,6 @@ fn gridSize(self: *const OpenGL, screen_size: renderer.ScreenSize) renderer.Grid
|
|||||||
|
|
||||||
/// Update the configuration.
|
/// Update the configuration.
|
||||||
pub fn changeConfig(self: *OpenGL, config: *DerivedConfig) !void {
|
pub fn changeConfig(self: *OpenGL, config: *DerivedConfig) !void {
|
||||||
// On configuration change we always reset our font group. There
|
|
||||||
// are a variety of configurations that can change font settings
|
|
||||||
// so to be safe we just always reset it. This has a performance hit
|
|
||||||
// when its not necessary but config reloading shouldn't be so
|
|
||||||
// common to cause a problem.
|
|
||||||
//
|
|
||||||
// TODO(fontmem): see Metal
|
|
||||||
// self.font_group.reset();
|
|
||||||
// self.font_group.group.styles = config.font_styles;
|
|
||||||
// self.font_group.atlas_greyscale.clear();
|
|
||||||
// self.font_group.atlas_color.clear();
|
|
||||||
|
|
||||||
// We always redo the font shaper in case font features changed. We
|
// We always redo the font shaper in case font features changed. We
|
||||||
// could check to see if there was an actual config change but this is
|
// could check to see if there was an actual config change but this is
|
||||||
// easier and rare enough to not cause performance issues.
|
// easier and rare enough to not cause performance issues.
|
||||||
|
Reference in New Issue
Block a user