From 4ca6413ec9cdfe78caecb6f942e2e1f1e79170c8 Mon Sep 17 00:00:00 2001 From: Qwerasd Date: Thu, 19 Dec 2024 11:21:57 -0500 Subject: [PATCH] renderer: do not constrain color glyphs There is no reason to and I do not know where this assumption came from. It's very possible for a colored glyph to (intentionally!) exceed the cell bounds, and we shouldn't be stopping this... --- src/renderer/shaders/cell.metal | 4 +--- src/renderer/shaders/cell.v.glsl | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/src/renderer/shaders/cell.metal b/src/renderer/shaders/cell.metal index ced057b72..2a107402b 100644 --- a/src/renderer/shaders/cell.metal +++ b/src/renderer/shaders/cell.metal @@ -256,9 +256,7 @@ vertex CellTextVertexOut cell_text_vertex( offset.y = uniforms.cell_size.y - offset.y; // If we're constrained then we need to scale the glyph. - // We also always constrain colored glyphs since we should have - // their scaled cell size exactly correct. - if (in.mode == MODE_TEXT_CONSTRAINED || in.mode == MODE_TEXT_COLOR) { + if (in.mode == MODE_TEXT_CONSTRAINED) { float max_width = uniforms.cell_size.x * in.constraint_width; if (size.x > max_width) { float new_y = size.y * (max_width / size.x); diff --git a/src/renderer/shaders/cell.v.glsl b/src/renderer/shaders/cell.v.glsl index 942b7ac44..f37e69adc 100644 --- a/src/renderer/shaders/cell.v.glsl +++ b/src/renderer/shaders/cell.v.glsl @@ -208,10 +208,8 @@ void main() { glyph_offset_calc.y = cell_size_scaled.y - glyph_offset_calc.y; // If this is a constrained mode, we need to constrain it! - // We also always constrain colored glyphs since we should have - // their scaled cell size exactly correct. vec2 glyph_size_calc = glyph_size; - if (mode == MODE_FG_CONSTRAINED || mode == MODE_FG_COLOR) { + if (mode == MODE_FG_CONSTRAINED) { if (glyph_size.x > cell_size_scaled.x) { float new_y = glyph_size.y * (cell_size_scaled.x / glyph_size.x); glyph_offset_calc.y = glyph_offset_calc.y + ((glyph_size.y - new_y) / 2);