From f310c1af432b216edcafb23fe0622ea66fca9591 Mon Sep 17 00:00:00 2001 From: memdmp Date: Sat, 11 Jan 2025 23:50:49 +0100 Subject: feat: get_char should return a character with render-ready information --- src/font.rs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'src/font.rs') diff --git a/src/font.rs b/src/font.rs index 546fabe..d4e8d88 100644 --- a/src/font.rs +++ b/src/font.rs @@ -15,8 +15,22 @@ fn insert_value(arr: &mut Vec<*const Glyph>, idx: usize, glyph: *const Glyph) { arr[idx] = glyph; } +pub struct RenderableCharacter { + pub width: u16, + pub data: &'static [u8], +} +/** + A trait describing a generated font. + */ pub trait BakedFont { - fn get_char(character: char) -> &'static [u8]; + fn get_char_bytes(character: char) -> &'static [u8]; + fn get_char(character: char) -> RenderableCharacter { + let bytes = Self::get_char_bytes(character); + RenderableCharacter { + width: (bytes[0] as u16) | (bytes[1] as u16 >> 8) , + data: &bytes[2..] + } + } } pub struct Font<'a> { pub texture: &'a [u8], -- cgit v1.2.3