Fix a bunch of the letters. Add a dot.
This commit is contained in:
parent
aea858dd17
commit
132c85e99d
@ -8,7 +8,7 @@
|
||||
// e c
|
||||
// d d d
|
||||
|
||||
use alloc::{boxed::Box, vec::Vec};
|
||||
use alloc::collections::btree_map::BTreeMap;
|
||||
|
||||
static mut BUF: [u8; 163200] = [0; 163200];
|
||||
|
||||
@ -32,7 +32,6 @@ impl Canvas {
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
pub const DIGIT_WIDTH: usize = 5;
|
||||
pub const DIGIT_HEIGHT: usize = 9;
|
||||
|
||||
@ -68,17 +67,13 @@ pub const SEVEN_SEGMENT_FONT: [[bool; 7]; 10] = [
|
||||
EIGHT_SEVEN_SEGMENT,
|
||||
NINE_SEVEN_SEGMENT,
|
||||
];
|
||||
*/
|
||||
|
||||
/*
|
||||
pub fn draw_pixel(frame: &mut Canvas, x: usize, y: usize, color: (u8, u8, u8)) {
|
||||
frame.buf[(y * frame.width + x) * 3 + 0] = color.0 << 2;
|
||||
frame.buf[(y * frame.width + x) * 3 + 1] = color.1 << 2;
|
||||
frame.buf[(y * frame.width + x) * 3 + 2] = color.2 << 2;
|
||||
pub fn write_pixel(framebuf: &mut [u8], width: usize, x: usize, y: usize, color: (u8, u8, u8)) {
|
||||
framebuf[(y * width + x) * 3 + 0] = color.0 << 2;
|
||||
framebuf[(y * width + x) * 3 + 1] = color.1 << 2;
|
||||
framebuf[(y * width + x) * 3 + 2] = color.2 << 2;
|
||||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
pub fn draw_seven_segment(
|
||||
digit: u8,
|
||||
frame: &mut [u8],
|
||||
@ -89,39 +84,275 @@ pub fn draw_seven_segment(
|
||||
) {
|
||||
let segments = SEVEN_SEGMENT_FONT[digit as usize];
|
||||
if segments[0] {
|
||||
write_pixel(frame, x + 1, y, color);
|
||||
write_pixel(frame, x + 2, y, color);
|
||||
write_pixel(frame, x + 3, y, color);
|
||||
write_pixel(frame, width, x + 1, y, color);
|
||||
write_pixel(frame, width, x + 2, y, color);
|
||||
write_pixel(frame, width, x + 3, y, color);
|
||||
}
|
||||
if segments[1] {
|
||||
write_pixel(frame, x + 4, y + 1, color);
|
||||
write_pixel(frame, x + 4, y + 2, color);
|
||||
write_pixel(frame, x + 4, y + 3, color);
|
||||
write_pixel(frame, width, x + 4, y + 1, color);
|
||||
write_pixel(frame, width, x + 4, y + 2, color);
|
||||
write_pixel(frame, width, x + 4, y + 3, color);
|
||||
}
|
||||
if segments[2] {
|
||||
write_pixel(frame, x + 4, y + 5, color);
|
||||
write_pixel(frame, x + 4, y + 6, color);
|
||||
write_pixel(frame, x + 4, y + 7, color);
|
||||
write_pixel(frame, width, x + 4, y + 5, color);
|
||||
write_pixel(frame, width, x + 4, y + 6, color);
|
||||
write_pixel(frame, width, x + 4, y + 7, color);
|
||||
}
|
||||
if segments[3] {
|
||||
write_pixel(frame, x + 1, y + 8, color);
|
||||
write_pixel(frame, x + 2, y + 8, color);
|
||||
write_pixel(frame, x + 3, y + 8, color);
|
||||
write_pixel(frame, width, x + 1, y + 8, color);
|
||||
write_pixel(frame, width, x + 2, y + 8, color);
|
||||
write_pixel(frame, width, x + 3, y + 8, color);
|
||||
}
|
||||
if segments[4] {
|
||||
write_pixel(frame, x, y + 5, color);
|
||||
write_pixel(frame, x, y + 6, color);
|
||||
write_pixel(frame, x, y + 7, color);
|
||||
write_pixel(frame, width, x, y + 5, color);
|
||||
write_pixel(frame, width, x, y + 6, color);
|
||||
write_pixel(frame, width, x, y + 7, color);
|
||||
}
|
||||
if segments[5] {
|
||||
write_pixel(frame, x, y + 1, color);
|
||||
write_pixel(frame, x, y + 2, color);
|
||||
write_pixel(frame, x, y + 3, color);
|
||||
write_pixel(frame, width, x, y + 1, color);
|
||||
write_pixel(frame, width, x, y + 2, color);
|
||||
write_pixel(frame, width, x, y + 3, color);
|
||||
}
|
||||
if segments[6] {
|
||||
write_pixel(frame, x + 1, y + 4, color);
|
||||
write_pixel(frame, x + 2, y + 4, color);
|
||||
write_pixel(frame, x + 3, y + 4, color);
|
||||
write_pixel(frame, width, x + 1, y + 4, color);
|
||||
write_pixel(frame, width, x + 2, y + 4, color);
|
||||
write_pixel(frame, width, x + 3, y + 4, color);
|
||||
}
|
||||
}
|
||||
|
||||
// Sixteen Segments
|
||||
//
|
||||
// a1 a2
|
||||
// f h i jb
|
||||
// f i j b
|
||||
// f hij b
|
||||
// g1 g2
|
||||
// e klm c
|
||||
// e k l m c
|
||||
// ek l mc
|
||||
// d1 d2
|
||||
|
||||
pub struct SixteenSegment {
|
||||
a1: bool,
|
||||
a2: bool,
|
||||
b: bool,
|
||||
c: bool,
|
||||
d1: bool,
|
||||
d2: bool,
|
||||
e: bool,
|
||||
f: bool,
|
||||
g1: bool,
|
||||
g2: bool,
|
||||
h: bool,
|
||||
i: bool,
|
||||
j: bool,
|
||||
k: bool,
|
||||
l: bool,
|
||||
m: bool,
|
||||
}
|
||||
|
||||
pub fn sixteen_segment_font() -> BTreeMap<char, SixteenSegment> {
|
||||
let mut font = BTreeMap::new();
|
||||
font.insert(
|
||||
'*',
|
||||
SixteenSegment {
|
||||
a1: true,
|
||||
a2: true,
|
||||
b: true,
|
||||
c: true,
|
||||
d1: true,
|
||||
d2: true,
|
||||
e: true,
|
||||
f: true,
|
||||
g1: true,
|
||||
g2: true,
|
||||
h: true,
|
||||
i: true,
|
||||
j: true,
|
||||
k: true,
|
||||
l: true,
|
||||
m: true,
|
||||
},
|
||||
);
|
||||
font.insert(
|
||||
'0',
|
||||
SixteenSegment {
|
||||
a1: true,
|
||||
a2: true,
|
||||
b: true,
|
||||
c: true,
|
||||
d1: true,
|
||||
d2: true,
|
||||
e: true,
|
||||
f: true,
|
||||
g1: false,
|
||||
g2: false,
|
||||
h: false,
|
||||
i: false,
|
||||
j: false,
|
||||
k: false,
|
||||
l: false,
|
||||
m: false,
|
||||
},
|
||||
);
|
||||
font.insert(
|
||||
'1',
|
||||
SixteenSegment {
|
||||
a1: false,
|
||||
a2: false,
|
||||
b: true,
|
||||
c: true,
|
||||
d1: false,
|
||||
d2: false,
|
||||
e: false,
|
||||
f: false,
|
||||
g1: false,
|
||||
g2: false,
|
||||
h: false,
|
||||
i: false,
|
||||
j: true,
|
||||
k: false,
|
||||
l: false,
|
||||
m: false,
|
||||
},
|
||||
);
|
||||
font.insert(
|
||||
'2',
|
||||
SixteenSegment {
|
||||
a1: true,
|
||||
a2: true,
|
||||
b: false,
|
||||
c: false,
|
||||
d1: false,
|
||||
d2: false,
|
||||
e: false,
|
||||
f: false,
|
||||
g1: false,
|
||||
g2: false,
|
||||
h: false,
|
||||
i: false,
|
||||
j: true,
|
||||
k: false,
|
||||
l: false,
|
||||
m: false,
|
||||
},
|
||||
);
|
||||
|
||||
font
|
||||
}
|
||||
|
||||
pub fn draw_sixteen_segment(
|
||||
c: char,
|
||||
font: &BTreeMap<char, SixteenSegment>,
|
||||
frame: &mut [u8],
|
||||
width: usize,
|
||||
x: usize,
|
||||
y: usize,
|
||||
color: (u8, u8, u8),
|
||||
) {
|
||||
let segments = font.get(&c).unwrap();
|
||||
if segments.a1 {
|
||||
write_pixel(frame, width, x + 1, y, color);
|
||||
write_pixel(frame, width, x + 2, y, color);
|
||||
write_pixel(frame, width, x + 3, y, color);
|
||||
}
|
||||
if segments.a2 {
|
||||
write_pixel(frame, width, x + 5, y, color);
|
||||
write_pixel(frame, width, x + 6, y, color);
|
||||
write_pixel(frame, width, x + 7, y, color);
|
||||
}
|
||||
if segments.b {
|
||||
write_pixel(frame, width, x + 8, y + 1, color);
|
||||
write_pixel(frame, width, x + 8, y + 2, color);
|
||||
write_pixel(frame, width, x + 8, y + 3, color);
|
||||
write_pixel(frame, width, x + 8, y + 4, color);
|
||||
write_pixel(frame, width, x + 8, y + 5, color);
|
||||
}
|
||||
if segments.c {
|
||||
write_pixel(frame, width, x + 8, y + 7, color);
|
||||
write_pixel(frame, width, x + 8, y + 8, color);
|
||||
write_pixel(frame, width, x + 8, y + 9, color);
|
||||
write_pixel(frame, width, x + 8, y + 10, color);
|
||||
write_pixel(frame, width, x + 8, y + 11, color);
|
||||
}
|
||||
|
||||
if segments.d1 {
|
||||
write_pixel(frame, width, x + 1, y + 12, color);
|
||||
write_pixel(frame, width, x + 2, y + 12, color);
|
||||
write_pixel(frame, width, x + 3, y + 12, color);
|
||||
}
|
||||
if segments.d2 {
|
||||
write_pixel(frame, width, x + 5, y + 12, color);
|
||||
write_pixel(frame, width, x + 6, y + 12, color);
|
||||
write_pixel(frame, width, x + 7, y + 12, color);
|
||||
}
|
||||
|
||||
if segments.e {
|
||||
write_pixel(frame, width, x, y + 7, color);
|
||||
write_pixel(frame, width, x, y + 8, color);
|
||||
write_pixel(frame, width, x, y + 9, color);
|
||||
write_pixel(frame, width, x, y + 10, color);
|
||||
write_pixel(frame, width, x, y + 11, color);
|
||||
}
|
||||
if segments.f {
|
||||
write_pixel(frame, width, x, y + 1, color);
|
||||
write_pixel(frame, width, x, y + 2, color);
|
||||
write_pixel(frame, width, x, y + 3, color);
|
||||
write_pixel(frame, width, x, y + 4, color);
|
||||
write_pixel(frame, width, x, y + 5, color);
|
||||
}
|
||||
|
||||
if segments.g1 {
|
||||
write_pixel(frame, width, x + 1, y + 6, color);
|
||||
write_pixel(frame, width, x + 2, y + 6, color);
|
||||
write_pixel(frame, width, x + 3, y + 6, color);
|
||||
}
|
||||
if segments.g2 {
|
||||
write_pixel(frame, width, x + 5, y + 6, color);
|
||||
write_pixel(frame, width, x + 6, y + 6, color);
|
||||
write_pixel(frame, width, x + 7, y + 6, color);
|
||||
}
|
||||
|
||||
if segments.h {
|
||||
write_pixel(frame, width, x + 1, y + 1, color);
|
||||
write_pixel(frame, width, x + 1, y + 2, color);
|
||||
write_pixel(frame, width, x + 2, y + 3, color);
|
||||
write_pixel(frame, width, x + 3, y + 4, color);
|
||||
write_pixel(frame, width, x + 3, y + 5, color);
|
||||
}
|
||||
if segments.i {
|
||||
write_pixel(frame, width, x + 4, y + 1, color);
|
||||
write_pixel(frame, width, x + 4, y + 2, color);
|
||||
write_pixel(frame, width, x + 4, y + 3, color);
|
||||
write_pixel(frame, width, x + 4, y + 4, color);
|
||||
write_pixel(frame, width, x + 4, y + 5, color);
|
||||
}
|
||||
if segments.j {
|
||||
write_pixel(frame, width, x + 7, y + 1, color);
|
||||
write_pixel(frame, width, x + 7, y + 2, color);
|
||||
write_pixel(frame, width, x + 6, y + 3, color);
|
||||
write_pixel(frame, width, x + 5, y + 4, color);
|
||||
write_pixel(frame, width, x + 5, y + 5, color);
|
||||
}
|
||||
if segments.k {
|
||||
write_pixel(frame, width, x + 3, y + 7, color);
|
||||
write_pixel(frame, width, x + 3, y + 8, color);
|
||||
write_pixel(frame, width, x + 2, y + 9, color);
|
||||
write_pixel(frame, width, x + 1, y + 10, color);
|
||||
write_pixel(frame, width, x + 1, y + 11, color);
|
||||
}
|
||||
if segments.l {
|
||||
write_pixel(frame, width, x + 4, y + 7, color);
|
||||
write_pixel(frame, width, x + 4, y + 8, color);
|
||||
write_pixel(frame, width, x + 4, y + 9, color);
|
||||
write_pixel(frame, width, x + 4, y + 10, color);
|
||||
write_pixel(frame, width, x + 4, y + 11, color);
|
||||
}
|
||||
if segments.m {
|
||||
write_pixel(frame, width, x + 5, y + 7, color);
|
||||
write_pixel(frame, width, x + 5, y + 8, color);
|
||||
write_pixel(frame, width, x + 6, y + 9, color);
|
||||
write_pixel(frame, width, x + 7, y + 10, color);
|
||||
write_pixel(frame, width, x + 7, y + 11, color);
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
@ -39,6 +39,7 @@ pub struct SixteenSegmentGlyph {
|
||||
k: bool,
|
||||
l: bool,
|
||||
m: bool,
|
||||
dot: bool,
|
||||
}
|
||||
|
||||
pub struct SixteenSegmentFont(BTreeMap<char, SixteenSegmentGlyph>);
|
||||
@ -47,24 +48,69 @@ impl SixteenSegmentFont {
|
||||
pub fn new() -> Self {
|
||||
let mut font = BTreeMap::new();
|
||||
font.insert(
|
||||
'*',
|
||||
' ',
|
||||
SixteenSegmentGlyph {
|
||||
a1: true,
|
||||
a2: true,
|
||||
a1: false,
|
||||
a2: false,
|
||||
b: false,
|
||||
c: false,
|
||||
d1: false,
|
||||
d2: false,
|
||||
e: false,
|
||||
f: false,
|
||||
g1: false,
|
||||
g2: false,
|
||||
h: false,
|
||||
i: false,
|
||||
j: false,
|
||||
k: false,
|
||||
l: false,
|
||||
m: false,
|
||||
dot: false,
|
||||
},
|
||||
);
|
||||
font.insert(
|
||||
'!',
|
||||
SixteenSegmentGlyph {
|
||||
a1: false,
|
||||
a2: false,
|
||||
b: true,
|
||||
c: true,
|
||||
d1: true,
|
||||
d2: true,
|
||||
e: true,
|
||||
f: true,
|
||||
g1: true,
|
||||
g2: true,
|
||||
h: true,
|
||||
d1: false,
|
||||
d2: false,
|
||||
e: false,
|
||||
f: false,
|
||||
g1: false,
|
||||
g2: false,
|
||||
h: false,
|
||||
i: false,
|
||||
j: false,
|
||||
k: false,
|
||||
l: false,
|
||||
m: false,
|
||||
dot: true,
|
||||
},
|
||||
);
|
||||
font.insert(
|
||||
'"',
|
||||
SixteenSegmentGlyph {
|
||||
a1: false,
|
||||
a2: false,
|
||||
b: true,
|
||||
c: false,
|
||||
d1: false,
|
||||
d2: false,
|
||||
e: false,
|
||||
f: false,
|
||||
g1: false,
|
||||
g2: false,
|
||||
h: false,
|
||||
i: true,
|
||||
j: true,
|
||||
k: true,
|
||||
l: true,
|
||||
m: true,
|
||||
j: false,
|
||||
k: false,
|
||||
l: false,
|
||||
m: false,
|
||||
dot: false,
|
||||
},
|
||||
);
|
||||
font.insert(
|
||||
@ -86,6 +132,7 @@ impl SixteenSegmentFont {
|
||||
k: true,
|
||||
l: false,
|
||||
m: false,
|
||||
dot: false,
|
||||
},
|
||||
);
|
||||
font.insert(
|
||||
@ -107,6 +154,7 @@ impl SixteenSegmentFont {
|
||||
k: false,
|
||||
l: false,
|
||||
m: false,
|
||||
dot: false,
|
||||
},
|
||||
);
|
||||
font.insert(
|
||||
@ -128,6 +176,7 @@ impl SixteenSegmentFont {
|
||||
k: false,
|
||||
l: false,
|
||||
m: false,
|
||||
dot: false,
|
||||
},
|
||||
);
|
||||
font.insert(
|
||||
@ -149,6 +198,7 @@ impl SixteenSegmentFont {
|
||||
k: false,
|
||||
l: false,
|
||||
m: false,
|
||||
dot: false,
|
||||
},
|
||||
);
|
||||
font.insert(
|
||||
@ -170,6 +220,7 @@ impl SixteenSegmentFont {
|
||||
k: false,
|
||||
l: false,
|
||||
m: false,
|
||||
dot: false,
|
||||
},
|
||||
);
|
||||
font.insert(
|
||||
@ -191,6 +242,7 @@ impl SixteenSegmentFont {
|
||||
k: false,
|
||||
l: false,
|
||||
m: true,
|
||||
dot: false,
|
||||
},
|
||||
);
|
||||
font.insert(
|
||||
@ -212,6 +264,7 @@ impl SixteenSegmentFont {
|
||||
k: false,
|
||||
l: false,
|
||||
m: false,
|
||||
dot: false,
|
||||
},
|
||||
);
|
||||
font.insert(
|
||||
@ -233,6 +286,7 @@ impl SixteenSegmentFont {
|
||||
k: false,
|
||||
l: false,
|
||||
m: false,
|
||||
dot: false,
|
||||
},
|
||||
);
|
||||
font.insert(
|
||||
@ -254,6 +308,7 @@ impl SixteenSegmentFont {
|
||||
k: false,
|
||||
l: false,
|
||||
m: false,
|
||||
dot: false,
|
||||
},
|
||||
);
|
||||
font.insert(
|
||||
@ -275,9 +330,581 @@ impl SixteenSegmentFont {
|
||||
k: false,
|
||||
l: false,
|
||||
m: false,
|
||||
dot: false,
|
||||
},
|
||||
);
|
||||
font.insert(
|
||||
'A',
|
||||
SixteenSegmentGlyph {
|
||||
a1: true,
|
||||
a2: true,
|
||||
b: true,
|
||||
c: true,
|
||||
d1: false,
|
||||
d2: false,
|
||||
e: true,
|
||||
f: true,
|
||||
g1: true,
|
||||
g2: true,
|
||||
h: false,
|
||||
i: false,
|
||||
j: false,
|
||||
k: false,
|
||||
l: false,
|
||||
m: false,
|
||||
dot: false,
|
||||
},
|
||||
);
|
||||
font.insert(
|
||||
'B',
|
||||
SixteenSegmentGlyph {
|
||||
a1: true,
|
||||
a2: true,
|
||||
b: true,
|
||||
c: true,
|
||||
d1: true,
|
||||
d2: true,
|
||||
e: false,
|
||||
f: false,
|
||||
g1: false,
|
||||
g2: true,
|
||||
h: false,
|
||||
i: true,
|
||||
j: false,
|
||||
k: false,
|
||||
l: true,
|
||||
m: false,
|
||||
dot: false,
|
||||
},
|
||||
);
|
||||
font.insert(
|
||||
'C',
|
||||
SixteenSegmentGlyph {
|
||||
a1: true,
|
||||
a2: true,
|
||||
b: false,
|
||||
c: false,
|
||||
d1: true,
|
||||
d2: true,
|
||||
e: true,
|
||||
f: true,
|
||||
g1: false,
|
||||
g2: false,
|
||||
h: false,
|
||||
i: false,
|
||||
j: false,
|
||||
k: false,
|
||||
l: false,
|
||||
m: false,
|
||||
dot: false,
|
||||
},
|
||||
);
|
||||
font.insert(
|
||||
'D',
|
||||
SixteenSegmentGlyph {
|
||||
a1: true,
|
||||
a2: true,
|
||||
b: true,
|
||||
c: true,
|
||||
d1: true,
|
||||
d2: true,
|
||||
e: false,
|
||||
f: false,
|
||||
g1: false,
|
||||
g2: false,
|
||||
h: false,
|
||||
i: true,
|
||||
j: false,
|
||||
k: false,
|
||||
l: true,
|
||||
m: false,
|
||||
dot: false,
|
||||
},
|
||||
);
|
||||
font.insert(
|
||||
'E',
|
||||
SixteenSegmentGlyph {
|
||||
a1: true,
|
||||
a2: true,
|
||||
b: false,
|
||||
c: false,
|
||||
d1: true,
|
||||
d2: true,
|
||||
e: true,
|
||||
f: true,
|
||||
g1: true,
|
||||
g2: false,
|
||||
h: false,
|
||||
i: false,
|
||||
j: false,
|
||||
k: false,
|
||||
l: false,
|
||||
m: false,
|
||||
dot: false,
|
||||
},
|
||||
);
|
||||
font.insert(
|
||||
'F',
|
||||
SixteenSegmentGlyph {
|
||||
a1: true,
|
||||
a2: true,
|
||||
b: false,
|
||||
c: false,
|
||||
d1: false,
|
||||
d2: false,
|
||||
e: true,
|
||||
f: true,
|
||||
g1: true,
|
||||
g2: false,
|
||||
h: false,
|
||||
i: false,
|
||||
j: false,
|
||||
k: false,
|
||||
l: false,
|
||||
m: false,
|
||||
dot: false,
|
||||
},
|
||||
);
|
||||
font.insert(
|
||||
'G',
|
||||
SixteenSegmentGlyph {
|
||||
a1: true,
|
||||
a2: true,
|
||||
b: false,
|
||||
c: true,
|
||||
d1: true,
|
||||
d2: true,
|
||||
e: true,
|
||||
f: true,
|
||||
g1: false,
|
||||
g2: true,
|
||||
h: false,
|
||||
i: false,
|
||||
j: false,
|
||||
k: false,
|
||||
l: false,
|
||||
m: false,
|
||||
dot: false,
|
||||
},
|
||||
);
|
||||
font.insert(
|
||||
'H',
|
||||
SixteenSegmentGlyph {
|
||||
a1: false,
|
||||
a2: false,
|
||||
b: true,
|
||||
c: true,
|
||||
d1: false,
|
||||
d2: false,
|
||||
e: true,
|
||||
f: true,
|
||||
g1: true,
|
||||
g2: true,
|
||||
h: false,
|
||||
i: false,
|
||||
j: false,
|
||||
k: false,
|
||||
l: false,
|
||||
m: false,
|
||||
dot: false,
|
||||
},
|
||||
);
|
||||
font.insert(
|
||||
'I',
|
||||
SixteenSegmentGlyph {
|
||||
a1: true,
|
||||
a2: true,
|
||||
b: false,
|
||||
c: false,
|
||||
d1: true,
|
||||
d2: true,
|
||||
e: false,
|
||||
f: false,
|
||||
g1: false,
|
||||
g2: false,
|
||||
h: false,
|
||||
i: true,
|
||||
j: false,
|
||||
k: false,
|
||||
l: true,
|
||||
m: false,
|
||||
dot: false,
|
||||
},
|
||||
);
|
||||
font.insert(
|
||||
'J',
|
||||
SixteenSegmentGlyph {
|
||||
a1: false,
|
||||
a2: false,
|
||||
b: true,
|
||||
c: true,
|
||||
d1: true,
|
||||
d2: true,
|
||||
e: true,
|
||||
f: false,
|
||||
g1: false,
|
||||
g2: false,
|
||||
h: false,
|
||||
i: false,
|
||||
j: false,
|
||||
k: false,
|
||||
l: false,
|
||||
m: false,
|
||||
dot: false,
|
||||
},
|
||||
);
|
||||
font.insert(
|
||||
'K',
|
||||
SixteenSegmentGlyph {
|
||||
a1: false,
|
||||
a2: false,
|
||||
b: false,
|
||||
c: false,
|
||||
d1: false,
|
||||
d2: false,
|
||||
e: true,
|
||||
f: true,
|
||||
g1: true,
|
||||
g2: false,
|
||||
h: false,
|
||||
i: false,
|
||||
j: true,
|
||||
k: false,
|
||||
l: false,
|
||||
m: true,
|
||||
dot: false,
|
||||
},
|
||||
);
|
||||
font.insert(
|
||||
'L',
|
||||
SixteenSegmentGlyph {
|
||||
a1: false,
|
||||
a2: false,
|
||||
b: false,
|
||||
c: false,
|
||||
d1: true,
|
||||
d2: true,
|
||||
e: true,
|
||||
f: true,
|
||||
g1: false,
|
||||
g2: false,
|
||||
h: false,
|
||||
i: false,
|
||||
j: false,
|
||||
k: false,
|
||||
l: false,
|
||||
m: false,
|
||||
dot: false,
|
||||
},
|
||||
);
|
||||
font.insert(
|
||||
'M',
|
||||
SixteenSegmentGlyph {
|
||||
a1: false,
|
||||
a2: false,
|
||||
b: true,
|
||||
c: true,
|
||||
d1: false,
|
||||
d2: false,
|
||||
e: true,
|
||||
f: true,
|
||||
g1: false,
|
||||
g2: false,
|
||||
h: true,
|
||||
i: false,
|
||||
j: true,
|
||||
k: false,
|
||||
l: false,
|
||||
m: false,
|
||||
dot: false,
|
||||
},
|
||||
);
|
||||
font.insert(
|
||||
'N',
|
||||
SixteenSegmentGlyph {
|
||||
a1: false,
|
||||
a2: false,
|
||||
b: true,
|
||||
c: true,
|
||||
d1: false,
|
||||
d2: false,
|
||||
e: true,
|
||||
f: true,
|
||||
g1: false,
|
||||
g2: false,
|
||||
h: true,
|
||||
i: false,
|
||||
j: false,
|
||||
k: false,
|
||||
l: false,
|
||||
m: true,
|
||||
dot: false,
|
||||
},
|
||||
);
|
||||
font.insert(
|
||||
'O',
|
||||
SixteenSegmentGlyph {
|
||||
a1: true,
|
||||
a2: true,
|
||||
b: true,
|
||||
c: true,
|
||||
d1: true,
|
||||
d2: true,
|
||||
e: true,
|
||||
f: true,
|
||||
g1: false,
|
||||
g2: false,
|
||||
h: false,
|
||||
i: false,
|
||||
j: false,
|
||||
k: false,
|
||||
l: false,
|
||||
m: false,
|
||||
dot: false,
|
||||
},
|
||||
);
|
||||
font.insert(
|
||||
'P',
|
||||
SixteenSegmentGlyph {
|
||||
a1: true,
|
||||
a2: true,
|
||||
b: true,
|
||||
c: false,
|
||||
d1: false,
|
||||
d2: false,
|
||||
e: true,
|
||||
f: true,
|
||||
g1: true,
|
||||
g2: true,
|
||||
h: false,
|
||||
i: false,
|
||||
j: false,
|
||||
k: false,
|
||||
l: false,
|
||||
m: false,
|
||||
dot: false,
|
||||
},
|
||||
);
|
||||
font.insert(
|
||||
'Q',
|
||||
SixteenSegmentGlyph {
|
||||
a1: true,
|
||||
a2: true,
|
||||
b: true,
|
||||
c: true,
|
||||
d1: true,
|
||||
d2: true,
|
||||
e: true,
|
||||
f: true,
|
||||
g1: false,
|
||||
g2: false,
|
||||
h: false,
|
||||
i: false,
|
||||
j: false,
|
||||
k: false,
|
||||
l: false,
|
||||
m: true,
|
||||
dot: false,
|
||||
},
|
||||
);
|
||||
font.insert(
|
||||
'R',
|
||||
SixteenSegmentGlyph {
|
||||
a1: true,
|
||||
a2: true,
|
||||
b: true,
|
||||
c: false,
|
||||
d1: false,
|
||||
d2: false,
|
||||
e: true,
|
||||
f: true,
|
||||
g1: true,
|
||||
g2: true,
|
||||
h: false,
|
||||
i: false,
|
||||
j: false,
|
||||
k: false,
|
||||
l: false,
|
||||
m: true,
|
||||
dot: false,
|
||||
},
|
||||
);
|
||||
font.insert(
|
||||
'S',
|
||||
SixteenSegmentGlyph {
|
||||
a1: true,
|
||||
a2: true,
|
||||
b: false,
|
||||
c: true,
|
||||
d1: true,
|
||||
d2: true,
|
||||
e: false,
|
||||
f: true,
|
||||
g1: true,
|
||||
g2: true,
|
||||
h: false,
|
||||
i: false,
|
||||
j: false,
|
||||
k: false,
|
||||
l: false,
|
||||
m: false,
|
||||
dot: false,
|
||||
},
|
||||
);
|
||||
font.insert(
|
||||
'T',
|
||||
SixteenSegmentGlyph {
|
||||
a1: true,
|
||||
a2: true,
|
||||
b: false,
|
||||
c: false,
|
||||
d1: false,
|
||||
d2: false,
|
||||
e: false,
|
||||
f: false,
|
||||
g1: false,
|
||||
g2: false,
|
||||
h: false,
|
||||
i: true,
|
||||
j: false,
|
||||
k: false,
|
||||
l: true,
|
||||
m: false,
|
||||
dot: false,
|
||||
},
|
||||
);
|
||||
font.insert(
|
||||
'U',
|
||||
SixteenSegmentGlyph {
|
||||
a1: false,
|
||||
a2: false,
|
||||
b: true,
|
||||
c: true,
|
||||
d1: true,
|
||||
d2: true,
|
||||
e: true,
|
||||
f: true,
|
||||
g1: false,
|
||||
g2: false,
|
||||
h: false,
|
||||
i: false,
|
||||
j: false,
|
||||
k: false,
|
||||
l: false,
|
||||
m: false,
|
||||
dot: false,
|
||||
},
|
||||
);
|
||||
font.insert(
|
||||
'V',
|
||||
SixteenSegmentGlyph {
|
||||
a1: false,
|
||||
a2: false,
|
||||
b: false,
|
||||
c: false,
|
||||
d1: false,
|
||||
d2: false,
|
||||
e: true,
|
||||
f: true,
|
||||
g1: false,
|
||||
g2: false,
|
||||
h: false,
|
||||
i: false,
|
||||
j: true,
|
||||
k: true,
|
||||
l: false,
|
||||
m: false,
|
||||
dot: false,
|
||||
},
|
||||
);
|
||||
font.insert(
|
||||
'W',
|
||||
SixteenSegmentGlyph {
|
||||
a1: false,
|
||||
a2: false,
|
||||
b: true,
|
||||
c: true,
|
||||
d1: false,
|
||||
d2: false,
|
||||
e: true,
|
||||
f: true,
|
||||
g1: false,
|
||||
g2: false,
|
||||
h: false,
|
||||
i: false,
|
||||
j: false,
|
||||
k: true,
|
||||
l: false,
|
||||
m: true,
|
||||
dot: false,
|
||||
},
|
||||
);
|
||||
font.insert(
|
||||
'X',
|
||||
SixteenSegmentGlyph {
|
||||
a1: false,
|
||||
a2: false,
|
||||
b: false,
|
||||
c: false,
|
||||
d1: false,
|
||||
d2: false,
|
||||
e: false,
|
||||
f: false,
|
||||
g1: false,
|
||||
g2: false,
|
||||
h: true,
|
||||
i: false,
|
||||
j: true,
|
||||
k: true,
|
||||
l: false,
|
||||
m: true,
|
||||
dot: false,
|
||||
},
|
||||
);
|
||||
font.insert(
|
||||
'Y',
|
||||
SixteenSegmentGlyph {
|
||||
a1: false,
|
||||
a2: false,
|
||||
b: true,
|
||||
c: true,
|
||||
d1: true,
|
||||
d2: true,
|
||||
e: false,
|
||||
f: true,
|
||||
g1: true,
|
||||
g2: true,
|
||||
h: false,
|
||||
i: false,
|
||||
j: false,
|
||||
k: false,
|
||||
l: false,
|
||||
m: false,
|
||||
dot: false,
|
||||
},
|
||||
);
|
||||
font.insert(
|
||||
'Z',
|
||||
SixteenSegmentGlyph {
|
||||
a1: true,
|
||||
a2: true,
|
||||
b: false,
|
||||
c: false,
|
||||
d1: true,
|
||||
d2: true,
|
||||
e: false,
|
||||
f: false,
|
||||
g1: false,
|
||||
g2: false,
|
||||
h: false,
|
||||
i: false,
|
||||
j: true,
|
||||
k: true,
|
||||
l: false,
|
||||
m: false,
|
||||
dot: false,
|
||||
},
|
||||
);
|
||||
|
||||
Self(font)
|
||||
}
|
||||
}
|
||||
|
@ -36,7 +36,7 @@ static HEAP: Heap = Heap::empty();
|
||||
unsafe fn main() -> ! {
|
||||
{
|
||||
use core::mem::MaybeUninit;
|
||||
const HEAP_SIZE: usize = 1024;
|
||||
const HEAP_SIZE: usize = 16 * 1024;
|
||||
static mut HEAP_MEM: [MaybeUninit<u8>; HEAP_SIZE] = [MaybeUninit::uninit(); HEAP_SIZE];
|
||||
unsafe { HEAP.init(HEAP_MEM.as_ptr() as usize, HEAP_SIZE) }
|
||||
}
|
||||
@ -147,18 +147,45 @@ unsafe fn main() -> ! {
|
||||
draw_seven_segment(9, &mut frame, 63, 0, (255, 255, 255));
|
||||
*/
|
||||
|
||||
font_sixteen.glyph('*').draw(&mut canvas, 0, 10, (255, 255, 255));
|
||||
font_sixteen.glyph('0').draw(&mut canvas, 11, 10, (255, 255, 255));
|
||||
font_sixteen.glyph('1').draw(&mut canvas, 22, 10, (255, 255, 255));
|
||||
font_sixteen.glyph('2').draw(&mut canvas, 33, 10, (255, 255, 255));
|
||||
font_sixteen.glyph('3').draw(&mut canvas, 44, 10, (255, 255, 255));
|
||||
font_sixteen.glyph('4').draw(&mut canvas, 55, 10, (255, 255, 255));
|
||||
font_sixteen.glyph('5').draw(&mut canvas, 66, 10, (255, 255, 255));
|
||||
font_sixteen.glyph('6').draw(&mut canvas, 77, 10, (255, 255, 255));
|
||||
font_sixteen.glyph('7').draw(&mut canvas, 88, 10, (255, 255, 255));
|
||||
font_sixteen.glyph('8').draw(&mut canvas, 99, 10, (255, 255, 255));
|
||||
font_sixteen.glyph('9').draw(&mut canvas, 110, 10, (255, 255, 255));
|
||||
font_sixteen.glyph(' ').draw(&mut canvas, 0, 0, (255, 255, 255));
|
||||
font_sixteen.glyph('0').draw(&mut canvas, 11, 0, (255, 255, 255));
|
||||
font_sixteen.glyph('1').draw(&mut canvas, 22, 0, (255, 255, 255));
|
||||
font_sixteen.glyph('2').draw(&mut canvas, 33, 0, (255, 255, 255));
|
||||
font_sixteen.glyph('3').draw(&mut canvas, 44, 0, (255, 255, 255));
|
||||
font_sixteen.glyph('4').draw(&mut canvas, 55, 0, (255, 255, 255));
|
||||
font_sixteen.glyph('5').draw(&mut canvas, 66, 0, (255, 255, 255));
|
||||
font_sixteen.glyph('6').draw(&mut canvas, 77, 0, (255, 255, 255));
|
||||
font_sixteen.glyph('7').draw(&mut canvas, 88, 0, (255, 255, 255));
|
||||
font_sixteen.glyph('8').draw(&mut canvas, 99, 0, (255, 255, 255));
|
||||
font_sixteen.glyph('9').draw(&mut canvas, 110, 0, (255, 255, 255));
|
||||
|
||||
font_sixteen.glyph('A').draw(&mut canvas, 0, 20, (255, 255, 255));
|
||||
font_sixteen.glyph('B').draw(&mut canvas, 11, 20, (255, 255, 255));
|
||||
font_sixteen.glyph('C').draw(&mut canvas, 22, 20, (255, 255, 255));
|
||||
font_sixteen.glyph('D').draw(&mut canvas, 33, 20, (255, 255, 255));
|
||||
font_sixteen.glyph('E').draw(&mut canvas, 44, 20, (255, 255, 255));
|
||||
font_sixteen.glyph('F').draw(&mut canvas, 55, 20, (255, 255, 255));
|
||||
font_sixteen.glyph('G').draw(&mut canvas, 66, 20, (255, 255, 255));
|
||||
font_sixteen.glyph('H').draw(&mut canvas, 77, 20, (255, 255, 255));
|
||||
font_sixteen.glyph('I').draw(&mut canvas, 88, 20, (255, 255, 255));
|
||||
font_sixteen.glyph('J').draw(&mut canvas, 99, 20, (255, 255, 255));
|
||||
font_sixteen.glyph('K').draw(&mut canvas, 110, 20, (255, 255, 255));
|
||||
font_sixteen.glyph('L').draw(&mut canvas, 121, 20, (255, 255, 255));
|
||||
font_sixteen.glyph('M').draw(&mut canvas, 132, 20, (255, 255, 255));
|
||||
font_sixteen.glyph('N').draw(&mut canvas, 143, 20, (255, 255, 255));
|
||||
font_sixteen.glyph('O').draw(&mut canvas, 154, 20, (255, 255, 255));
|
||||
|
||||
font_sixteen.glyph('P').draw(&mut canvas, 0, 40, (255, 255, 255));
|
||||
font_sixteen.glyph('Q').draw(&mut canvas, 11, 40, (255, 255, 255));
|
||||
font_sixteen.glyph('R').draw(&mut canvas, 22, 40, (255, 255, 255));
|
||||
font_sixteen.glyph('S').draw(&mut canvas, 33, 40, (255, 255, 255));
|
||||
font_sixteen.glyph('T').draw(&mut canvas, 44, 40, (255, 255, 255));
|
||||
font_sixteen.glyph('U').draw(&mut canvas, 55, 40, (255, 255, 255));
|
||||
font_sixteen.glyph('V').draw(&mut canvas, 66, 40, (255, 255, 255));
|
||||
font_sixteen.glyph('W').draw(&mut canvas, 77, 40, (255, 255, 255));
|
||||
font_sixteen.glyph('X').draw(&mut canvas, 88, 40, (255, 255, 255));
|
||||
font_sixteen.glyph('Y').draw(&mut canvas, 99, 40, (255, 255, 255));
|
||||
font_sixteen.glyph('Z').draw(&mut canvas, 110, 40, (255, 255, 255));
|
||||
/*
|
||||
for x in 80..90 {
|
||||
for y in 155..165 {
|
||||
|
Loading…
Reference in New Issue
Block a user