From 85b07b4c8c6b825aca984648fed7ee49b6591d97 Mon Sep 17 00:00:00 2001 From: callym Date: Tue, 8 Jul 2025 15:58:24 +0100 Subject: [PATCH] Add pixel font flag (#402) --- src/glyph_cache.rs | 2 ++ src/swash.rs | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/glyph_cache.rs b/src/glyph_cache.rs index 3b5d246..ffec6d4 100644 --- a/src/glyph_cache.rs +++ b/src/glyph_cache.rs @@ -9,6 +9,8 @@ bitflags::bitflags! { const FAKE_ITALIC = 1; /// Disable hinting const DISABLE_HINTING = 2; + /// Render as a pixel font + const PIXEL_FONT = 4; } } diff --git a/src/swash.rs b/src/swash.rs index fe24bd7..657e109 100644 --- a/src/swash.rs +++ b/src/swash.rs @@ -46,7 +46,14 @@ fn swash_image( // Compute the fractional offset-- you'll likely want to quantize this // in a real renderer - let offset = Vector::new(cache_key.x_bin.as_float(), cache_key.y_bin.as_float()); + let offset = if cache_key.flags.contains(CacheKeyFlags::PIXEL_FONT) { + Vector::new( + cache_key.x_bin.as_float().round() + 1.0, + cache_key.y_bin.as_float().round(), + ) + } else { + Vector::new(cache_key.x_bin.as_float(), cache_key.y_bin.as_float()) + }; // Select our source order Render::new(&[