renderer: always reset font group on config change

This commit is contained in:
Mitchell Hashimoto
2023-09-26 08:18:11 -07:00
parent 17c0e7f75f
commit 4b791f3ee1
2 changed files with 16 additions and 14 deletions

View File

@ -975,13 +975,14 @@ fn prepKittyGraphics(
/// Update the configuration. /// Update the configuration.
pub fn changeConfig(self: *Metal, config: *DerivedConfig) !void { pub fn changeConfig(self: *Metal, config: *DerivedConfig) !void {
// If font thickening settings change, we need to reset our // On configuration change we always reset our font group. There
// font texture completely because we need to re-render the glyphs. // are a variety of configurations that can change font settings
if (self.config.font_thicken != config.font_thicken) { // so to be safe we just always reset it. This has a performance hit
self.font_group.reset(); // when its not necessary but config reloading shouldn't be so
self.font_group.atlas_greyscale.clear(); // common to cause a problem.
self.font_group.atlas_color.clear(); self.font_group.reset();
} 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

View File

@ -1205,13 +1205,14 @@ 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 {
// If font thickening settings change, we need to reset our // On configuration change we always reset our font group. There
// font texture completely because we need to re-render the glyphs. // are a variety of configurations that can change font settings
if (self.config.font_thicken != config.font_thicken) { // so to be safe we just always reset it. This has a performance hit
self.font_group.reset(); // when its not necessary but config reloading shouldn't be so
self.font_group.atlas_greyscale.clear(); // common to cause a problem.
self.font_group.atlas_color.clear(); self.font_group.reset();
} 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