diff options
feat: get_char should return a character with render-ready information
Diffstat (limited to 'src')
-rw-r--r-- | src/font.rs | 16 |
1 files changed, 15 insertions, 1 deletions
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], |