aboutsummaryrefslogtreecommitdiffstats
path: root/src/font.rs
diff options
context:
space:
mode:
authorLibravatarLarge Libravatar memdmp <memdmpmemewarenet>2025-01-11 23:50:49 +0100
committerLibravatarLarge Libravatar memdmp <memdmpmemewarenet>2025-01-11 23:50:49 +0100
commitf310c1af432b216edcafb23fe0622ea66fca9591 (patch)
treea4be4ddfd8d160482eb5029c7469b9135dc5a443 /src/font.rs
parentf5152a1e36f7e765f5894370fead0d5602894f8b (diff)
downloadcosin25-invite-mountainbytes-f310c1af432b216edcafb23fe0622ea66fca9591.tar.gz
cosin25-invite-mountainbytes-f310c1af432b216edcafb23fe0622ea66fca9591.tar.bz2
cosin25-invite-mountainbytes-f310c1af432b216edcafb23fe0622ea66fca9591.tar.lz
cosin25-invite-mountainbytes-f310c1af432b216edcafb23fe0622ea66fca9591.zip

feat: get_char should return a character with render-ready information

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],