aboutsummaryrefslogtreecommitdiffstats
path: root/src/font.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/font.rs')
-rw-r--r--src/font.rs16
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],