Fix a bunch of the letters. Add a dot.
This commit is contained in:
parent
aea858dd17
commit
132c85e99d
@ -8,7 +8,7 @@
|
|||||||
// e c
|
// e c
|
||||||
// d d d
|
// d d d
|
||||||
|
|
||||||
use alloc::{boxed::Box, vec::Vec};
|
use alloc::collections::btree_map::BTreeMap;
|
||||||
|
|
||||||
static mut BUF: [u8; 163200] = [0; 163200];
|
static mut BUF: [u8; 163200] = [0; 163200];
|
||||||
|
|
||||||
@ -32,7 +32,6 @@ impl Canvas {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
pub const DIGIT_WIDTH: usize = 5;
|
pub const DIGIT_WIDTH: usize = 5;
|
||||||
pub const DIGIT_HEIGHT: usize = 9;
|
pub const DIGIT_HEIGHT: usize = 9;
|
||||||
|
|
||||||
@ -68,17 +67,13 @@ pub const SEVEN_SEGMENT_FONT: [[bool; 7]; 10] = [
|
|||||||
EIGHT_SEVEN_SEGMENT,
|
EIGHT_SEVEN_SEGMENT,
|
||||||
NINE_SEVEN_SEGMENT,
|
NINE_SEVEN_SEGMENT,
|
||||||
];
|
];
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
pub fn write_pixel(framebuf: &mut [u8], width: usize, x: usize, y: usize, color: (u8, u8, u8)) {
|
||||||
pub fn draw_pixel(frame: &mut Canvas, x: usize, y: usize, color: (u8, u8, u8)) {
|
framebuf[(y * width + x) * 3 + 0] = color.0 << 2;
|
||||||
frame.buf[(y * frame.width + x) * 3 + 0] = color.0 << 2;
|
framebuf[(y * width + x) * 3 + 1] = color.1 << 2;
|
||||||
frame.buf[(y * frame.width + x) * 3 + 1] = color.1 << 2;
|
framebuf[(y * width + x) * 3 + 2] = color.2 << 2;
|
||||||
frame.buf[(y * frame.width + x) * 3 + 2] = color.2 << 2;
|
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
pub fn draw_seven_segment(
|
pub fn draw_seven_segment(
|
||||||
digit: u8,
|
digit: u8,
|
||||||
frame: &mut [u8],
|
frame: &mut [u8],
|
||||||
@ -89,39 +84,275 @@ pub fn draw_seven_segment(
|
|||||||
) {
|
) {
|
||||||
let segments = SEVEN_SEGMENT_FONT[digit as usize];
|
let segments = SEVEN_SEGMENT_FONT[digit as usize];
|
||||||
if segments[0] {
|
if segments[0] {
|
||||||
write_pixel(frame, x + 1, y, color);
|
write_pixel(frame, width, x + 1, y, color);
|
||||||
write_pixel(frame, x + 2, y, color);
|
write_pixel(frame, width, x + 2, y, color);
|
||||||
write_pixel(frame, x + 3, y, color);
|
write_pixel(frame, width, x + 3, y, color);
|
||||||
}
|
}
|
||||||
if segments[1] {
|
if segments[1] {
|
||||||
write_pixel(frame, x + 4, y + 1, color);
|
write_pixel(frame, width, x + 4, y + 1, color);
|
||||||
write_pixel(frame, x + 4, y + 2, color);
|
write_pixel(frame, width, x + 4, y + 2, color);
|
||||||
write_pixel(frame, x + 4, y + 3, color);
|
write_pixel(frame, width, x + 4, y + 3, color);
|
||||||
}
|
}
|
||||||
if segments[2] {
|
if segments[2] {
|
||||||
write_pixel(frame, x + 4, y + 5, color);
|
write_pixel(frame, width, x + 4, y + 5, color);
|
||||||
write_pixel(frame, x + 4, y + 6, color);
|
write_pixel(frame, width, x + 4, y + 6, color);
|
||||||
write_pixel(frame, x + 4, y + 7, color);
|
write_pixel(frame, width, x + 4, y + 7, color);
|
||||||
}
|
}
|
||||||
if segments[3] {
|
if segments[3] {
|
||||||
write_pixel(frame, x + 1, y + 8, color);
|
write_pixel(frame, width, x + 1, y + 8, color);
|
||||||
write_pixel(frame, x + 2, y + 8, color);
|
write_pixel(frame, width, x + 2, y + 8, color);
|
||||||
write_pixel(frame, x + 3, y + 8, color);
|
write_pixel(frame, width, x + 3, y + 8, color);
|
||||||
}
|
}
|
||||||
if segments[4] {
|
if segments[4] {
|
||||||
write_pixel(frame, x, y + 5, color);
|
write_pixel(frame, width, x, y + 5, color);
|
||||||
write_pixel(frame, x, y + 6, color);
|
write_pixel(frame, width, x, y + 6, color);
|
||||||
write_pixel(frame, x, y + 7, color);
|
write_pixel(frame, width, x, y + 7, color);
|
||||||
}
|
}
|
||||||
if segments[5] {
|
if segments[5] {
|
||||||
write_pixel(frame, x, y + 1, color);
|
write_pixel(frame, width, x, y + 1, color);
|
||||||
write_pixel(frame, x, y + 2, color);
|
write_pixel(frame, width, x, y + 2, color);
|
||||||
write_pixel(frame, x, y + 3, color);
|
write_pixel(frame, width, x, y + 3, color);
|
||||||
}
|
}
|
||||||
if segments[6] {
|
if segments[6] {
|
||||||
write_pixel(frame, x + 1, y + 4, color);
|
write_pixel(frame, width, x + 1, y + 4, color);
|
||||||
write_pixel(frame, x + 2, y + 4, color);
|
write_pixel(frame, width, x + 2, y + 4, color);
|
||||||
write_pixel(frame, x + 3, 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,
|
k: bool,
|
||||||
l: bool,
|
l: bool,
|
||||||
m: bool,
|
m: bool,
|
||||||
|
dot: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub struct SixteenSegmentFont(BTreeMap<char, SixteenSegmentGlyph>);
|
pub struct SixteenSegmentFont(BTreeMap<char, SixteenSegmentGlyph>);
|
||||||
@ -47,24 +48,69 @@ impl SixteenSegmentFont {
|
|||||||
pub fn new() -> Self {
|
pub fn new() -> Self {
|
||||||
let mut font = BTreeMap::new();
|
let mut font = BTreeMap::new();
|
||||||
font.insert(
|
font.insert(
|
||||||
'*',
|
' ',
|
||||||
SixteenSegmentGlyph {
|
SixteenSegmentGlyph {
|
||||||
a1: true,
|
a1: false,
|
||||||
a2: true,
|
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,
|
b: true,
|
||||||
c: true,
|
c: true,
|
||||||
d1: true,
|
d1: false,
|
||||||
d2: true,
|
d2: false,
|
||||||
e: true,
|
e: false,
|
||||||
f: true,
|
f: false,
|
||||||
g1: true,
|
g1: false,
|
||||||
g2: true,
|
g2: false,
|
||||||
h: true,
|
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,
|
i: true,
|
||||||
j: true,
|
j: false,
|
||||||
k: true,
|
k: false,
|
||||||
l: true,
|
l: false,
|
||||||
m: true,
|
m: false,
|
||||||
|
dot: false,
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
font.insert(
|
font.insert(
|
||||||
@ -86,6 +132,7 @@ impl SixteenSegmentFont {
|
|||||||
k: true,
|
k: true,
|
||||||
l: false,
|
l: false,
|
||||||
m: false,
|
m: false,
|
||||||
|
dot: false,
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
font.insert(
|
font.insert(
|
||||||
@ -107,6 +154,7 @@ impl SixteenSegmentFont {
|
|||||||
k: false,
|
k: false,
|
||||||
l: false,
|
l: false,
|
||||||
m: false,
|
m: false,
|
||||||
|
dot: false,
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
font.insert(
|
font.insert(
|
||||||
@ -128,6 +176,7 @@ impl SixteenSegmentFont {
|
|||||||
k: false,
|
k: false,
|
||||||
l: false,
|
l: false,
|
||||||
m: false,
|
m: false,
|
||||||
|
dot: false,
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
font.insert(
|
font.insert(
|
||||||
@ -149,6 +198,7 @@ impl SixteenSegmentFont {
|
|||||||
k: false,
|
k: false,
|
||||||
l: false,
|
l: false,
|
||||||
m: false,
|
m: false,
|
||||||
|
dot: false,
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
font.insert(
|
font.insert(
|
||||||
@ -170,6 +220,7 @@ impl SixteenSegmentFont {
|
|||||||
k: false,
|
k: false,
|
||||||
l: false,
|
l: false,
|
||||||
m: false,
|
m: false,
|
||||||
|
dot: false,
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
font.insert(
|
font.insert(
|
||||||
@ -191,6 +242,7 @@ impl SixteenSegmentFont {
|
|||||||
k: false,
|
k: false,
|
||||||
l: false,
|
l: false,
|
||||||
m: true,
|
m: true,
|
||||||
|
dot: false,
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
font.insert(
|
font.insert(
|
||||||
@ -212,6 +264,7 @@ impl SixteenSegmentFont {
|
|||||||
k: false,
|
k: false,
|
||||||
l: false,
|
l: false,
|
||||||
m: false,
|
m: false,
|
||||||
|
dot: false,
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
font.insert(
|
font.insert(
|
||||||
@ -233,6 +286,7 @@ impl SixteenSegmentFont {
|
|||||||
k: false,
|
k: false,
|
||||||
l: false,
|
l: false,
|
||||||
m: false,
|
m: false,
|
||||||
|
dot: false,
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
font.insert(
|
font.insert(
|
||||||
@ -254,6 +308,7 @@ impl SixteenSegmentFont {
|
|||||||
k: false,
|
k: false,
|
||||||
l: false,
|
l: false,
|
||||||
m: false,
|
m: false,
|
||||||
|
dot: false,
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
font.insert(
|
font.insert(
|
||||||
@ -275,9 +330,581 @@ impl SixteenSegmentFont {
|
|||||||
k: false,
|
k: false,
|
||||||
l: false,
|
l: false,
|
||||||
m: 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)
|
Self(font)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -36,7 +36,7 @@ static HEAP: Heap = Heap::empty();
|
|||||||
unsafe fn main() -> ! {
|
unsafe fn main() -> ! {
|
||||||
{
|
{
|
||||||
use core::mem::MaybeUninit;
|
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];
|
static mut HEAP_MEM: [MaybeUninit<u8>; HEAP_SIZE] = [MaybeUninit::uninit(); HEAP_SIZE];
|
||||||
unsafe { HEAP.init(HEAP_MEM.as_ptr() as usize, 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));
|
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(' ').draw(&mut canvas, 0, 0, (255, 255, 255));
|
||||||
font_sixteen.glyph('0').draw(&mut canvas, 11, 10, (255, 255, 255));
|
font_sixteen.glyph('0').draw(&mut canvas, 11, 0, (255, 255, 255));
|
||||||
font_sixteen.glyph('1').draw(&mut canvas, 22, 10, (255, 255, 255));
|
font_sixteen.glyph('1').draw(&mut canvas, 22, 0, (255, 255, 255));
|
||||||
font_sixteen.glyph('2').draw(&mut canvas, 33, 10, (255, 255, 255));
|
font_sixteen.glyph('2').draw(&mut canvas, 33, 0, (255, 255, 255));
|
||||||
font_sixteen.glyph('3').draw(&mut canvas, 44, 10, (255, 255, 255));
|
font_sixteen.glyph('3').draw(&mut canvas, 44, 0, (255, 255, 255));
|
||||||
font_sixteen.glyph('4').draw(&mut canvas, 55, 10, (255, 255, 255));
|
font_sixteen.glyph('4').draw(&mut canvas, 55, 0, (255, 255, 255));
|
||||||
font_sixteen.glyph('5').draw(&mut canvas, 66, 10, (255, 255, 255));
|
font_sixteen.glyph('5').draw(&mut canvas, 66, 0, (255, 255, 255));
|
||||||
font_sixteen.glyph('6').draw(&mut canvas, 77, 10, (255, 255, 255));
|
font_sixteen.glyph('6').draw(&mut canvas, 77, 0, (255, 255, 255));
|
||||||
font_sixteen.glyph('7').draw(&mut canvas, 88, 10, (255, 255, 255));
|
font_sixteen.glyph('7').draw(&mut canvas, 88, 0, (255, 255, 255));
|
||||||
font_sixteen.glyph('8').draw(&mut canvas, 99, 10, (255, 255, 255));
|
font_sixteen.glyph('8').draw(&mut canvas, 99, 0, (255, 255, 255));
|
||||||
font_sixteen.glyph('9').draw(&mut canvas, 110, 10, (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 x in 80..90 {
|
||||||
for y in 155..165 {
|
for y in 155..165 {
|
||||||
|
Loading…
Reference in New Issue
Block a user