aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLibravatarLarge Libravatar memdmp <memdmpmemewarenet>2025-01-11 23:55:01 +0100
committerLibravatarLarge Libravatar memdmp <memdmpmemewarenet>2025-01-11 23:55:01 +0100
commitf87f0f26b21d445877658d7725472c666c2ee40c (patch)
treef3ecd3202508ed074fb2e4b7c05287ea888739e9 /src
parentf310c1af432b216edcafb23fe0622ea66fca9591 (diff)
downloadcosin25-invite-mountainbytes-f87f0f26b21d445877658d7725472c666c2ee40c.tar.gz
cosin25-invite-mountainbytes-f87f0f26b21d445877658d7725472c666c2ee40c.tar.bz2
cosin25-invite-mountainbytes-f87f0f26b21d445877658d7725472c666c2ee40c.tar.lz
cosin25-invite-mountainbytes-f87f0f26b21d445877658d7725472c666c2ee40c.zip

feat: calculate height based on width

Diffstat (limited to 'src')
-rw-r--r--src/font.rs11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/font.rs b/src/font.rs
index d4e8d88..7df0545 100644
--- a/src/font.rs
+++ b/src/font.rs
@@ -16,7 +16,11 @@ fn insert_value(arr: &mut Vec<*const Glyph>, idx: usize, glyph: *const Glyph) {
}
pub struct RenderableCharacter {
+ /** The width of the character, indicating where to break into a newline */
pub width: u16,
+ /** The height of the character, derived from data's length divided by width */
+ pub height: u16,
+ /** The raw alpha layer of the character */
pub data: &'static [u8],
}
/**
@@ -26,9 +30,12 @@ pub trait BakedFont {
fn get_char_bytes(character: char) -> &'static [u8];
fn get_char(character: char) -> RenderableCharacter {
let bytes = Self::get_char_bytes(character);
+ let width = (bytes[0] as u16) | (bytes[1] as u16 >> 8);
+ let data = &bytes[2..];
RenderableCharacter {
- width: (bytes[0] as u16) | (bytes[1] as u16 >> 8) ,
- data: &bytes[2..]
+ width,
+ height: data.len() as u16 / width,
+ data,
}
}
}