aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatarLarge Libravatar memdmp <memdmpmemewarenet>2025-01-09 17:36:19 +0100
committerLibravatarLarge Libravatar memdmp <memdmpmemewarenet>2025-01-09 17:36:19 +0100
commit9767efcd3c28945ceeeb949854e6610f1273ba0a (patch)
treee204e515a18952610fb8d7e1e6234766cfddbedd
parentf8ecd07cf346dae921d8cf1d500443b56265ec36 (diff)
downloadcosin25-invite-mountainbytes-9767efcd3c28945ceeeb949854e6610f1273ba0a.tar.gz
cosin25-invite-mountainbytes-9767efcd3c28945ceeeb949854e6610f1273ba0a.tar.bz2
cosin25-invite-mountainbytes-9767efcd3c28945ceeeb949854e6610f1273ba0a.tar.lz
cosin25-invite-mountainbytes-9767efcd3c28945ceeeb949854e6610f1273ba0a.zip

fix: font encoding works now

-rw-r--r--build.rs53
1 files changed, 10 insertions, 43 deletions
diff --git a/build.rs b/build.rs
index 5f85c0b..be3e7c7 100644
--- a/build.rs
+++ b/build.rs
@@ -19,33 +19,6 @@ fn exec(font_path: &str, characters: Vec<char>, font_name: &str) -> io::Result<(
Ok(())
}
-fn set_bit_at_position_to_true(i: u8, p: u8) -> u8 {
- match p {
- 0 => i | 0b1000_0000,
- 1 => i | 0b0100_0000,
- 2 => i | 0b0010_0000,
- 3 => i | 0b0001_0000,
- 4 => i | 0b0000_1000,
- 5 => i | 0b0000_0100,
- 6 => i | 0b0000_0010,
- 7 => i | 0b0000_0001,
- 8_u8..=u8::MAX => todo!(),
- }
-}
-fn get_bit_at_position(i: u8, p: u8) -> bool {
- match p {
- 0 => (i & 0b1000_0000) == 0b1000_0000,
- 1 => (i & 0b0100_0000) == 0b0100_0000,
- 2 => (i & 0b0010_0000) == 0b0010_0000,
- 3 => (i & 0b0001_0000) == 0b0001_0000,
- 4 => (i & 0b0000_1000) == 0b0000_1000,
- 5 => (i & 0b0000_0100) == 0b0000_0100,
- 6 => (i & 0b0000_0010) == 0b0000_0010,
- 7 => (i & 0b0000_0001) == 0b0000_0001,
- 8_u8..=u8::MAX => todo!(),
- }
-}
-
fn render_character(font: &Font, scale: Scale, character: char) -> Vec<u8> {
let glyph = font.glyph(character).scaled(scale);
let bounding_box = glyph.exact_bounding_box().unwrap();
@@ -76,11 +49,8 @@ fn render_character(font: &Font, scale: Scale, character: char) -> Vec<u8> {
.positioned(Point { x: 0.0, y: 0.0 })
.draw(|gx: u32, gy: u32, v| {
let bit = (v * 255.0) as u8;
- // image.push(bit);
- let v = format!("{:x?}", bit);
- let v = if v.len() == 1 { format!("0{}", v) } else { v };
- for char in v.chars() {
- image[(2 + gy * width + gx) as usize] = char as u8;
+ if gx < width {
+ define_item(&mut image,(2 + (gy * width) + gx) as usize, bit);
}
});
image
@@ -88,24 +58,21 @@ fn render_character(font: &Font, scale: Scale, character: char) -> Vec<u8> {
fn img_to_hex(image: Vec<u8>) -> Vec<u8> {
let mut image2: Vec<u8> = Vec::new();
let width = (image[0] as u16) | (image[1] as u16 >> 8);
- for char in format!("Width: {width}\n").chars() {
- image2.push(char as u8);
- }
-
+
let mut i: i32 = -3;
for bit in image {
i += 1;
if i >= 0 {
- if i as u16 == width * 2 {
+ if i as u16 == width {
i = 0;
image2.push('\n' as u8);
}
- // let v = format!("{:x?}", bit);
- // let v = if v.len() == 1 { format!("0{}", v) } else { v };
- // for char in v.chars() {
- // image2.push(char as u8);
- // }
- image2.push(bit);
+ let v = format!("{:x?}", bit);
+ let v = if v.len() == 1 { format!("0{}", v) } else { v };
+ for char in v.chars() {
+ image2.push(char as u8);
+ }
+ // image2.push(if bit < 80 {' ' as u8} else if bit < 150 {'-' as u8} else {'#' as u8})
}
}
image2