make fonts more generic
This commit is contained in:
parent
1009d689bc
commit
58f3d1f02b
9 changed files with 235 additions and 183 deletions
172
src/fonts/basic_5x4.cpp
Normal file
172
src/fonts/basic_5x4.cpp
Normal file
|
|
@ -0,0 +1,172 @@
|
|||
//
|
||||
// Created by jedi on 11/2/18.
|
||||
//
|
||||
|
||||
#include "fonts/basic_5x4.h"
|
||||
|
||||
const bool basic_5x4_raw[32][20] = {
|
||||
//0
|
||||
{0,0,0,0,
|
||||
0,0,0,0,
|
||||
0,0,0,0,
|
||||
0,0,0,0,
|
||||
0,0,0,0},
|
||||
//A
|
||||
{0,1,1,0,
|
||||
1,0,0,1,
|
||||
1,0,0,1,
|
||||
1,1,1,1,
|
||||
1,0,0,1},
|
||||
//B
|
||||
{1,1,1,0,
|
||||
1,0,0,1,
|
||||
1,1,1,0,
|
||||
1,0,0,1,
|
||||
1,1,1,0},
|
||||
//C
|
||||
{0,1,1,0,
|
||||
1,0,0,1,
|
||||
1,0,0,0,
|
||||
1,0,0,1,
|
||||
0,1,1,0},
|
||||
//D
|
||||
{1,1,1,0,
|
||||
1,0,0,1,
|
||||
1,0,0,1,
|
||||
1,0,0,1,
|
||||
1,1,1,0},
|
||||
//E
|
||||
{1,1,1,1,
|
||||
1,0,0,0,
|
||||
1,1,1,0,
|
||||
1,0,0,0,
|
||||
1,1,1,1},
|
||||
//F
|
||||
{1,1,1,1,
|
||||
1,0,0,0,
|
||||
1,1,1,0,
|
||||
1,0,0,0,
|
||||
1,0,0,0},
|
||||
//G
|
||||
{0,1,1,1,
|
||||
1,0,0,0,
|
||||
1,0,1,1,
|
||||
1,0,0,1,
|
||||
0,1,1,1},
|
||||
//H
|
||||
{1,0,0,1,
|
||||
1,0,0,1,
|
||||
1,1,1,1,
|
||||
1,0,0,1,
|
||||
1,0,0,1},
|
||||
//I
|
||||
{1,1,1,0,
|
||||
0,1,0,0,
|
||||
0,1,0,0,
|
||||
0,1,0,0,
|
||||
1,1,1,0},
|
||||
//J
|
||||
{1,1,1,1,
|
||||
0,0,0,1,
|
||||
0,0,0,1,
|
||||
0,0,0,1,
|
||||
1,1,1,0},
|
||||
//K
|
||||
{1,0,0,1,
|
||||
1,0,1,0,
|
||||
1,1,0,0,
|
||||
1,0,1,0,
|
||||
1,0,0,1},
|
||||
//L
|
||||
{1,0,0,0,
|
||||
1,0,0,0,
|
||||
1,0,0,0,
|
||||
1,0,0,0,
|
||||
1,1,1,1},
|
||||
//M
|
||||
{1,0,0,1,
|
||||
1,1,1,1,
|
||||
1,1,1,1,
|
||||
1,0,0,1,
|
||||
1,0,0,1},
|
||||
//N
|
||||
{1,0,0,1,
|
||||
1,1,0,1,
|
||||
1,0,1,1,
|
||||
1,0,0,1,
|
||||
1,0,0,1},
|
||||
//O
|
||||
{0,1,1,0,
|
||||
1,0,0,1,
|
||||
1,0,0,1,
|
||||
1,0,0,1,
|
||||
0,1,1,0},
|
||||
//P
|
||||
{1,1,1,0,
|
||||
1,0,0,1,
|
||||
1,0,0,1,
|
||||
1,1,1,0,
|
||||
1,0,0,0},
|
||||
//Q
|
||||
{0,1,1,0,
|
||||
1,0,0,1,
|
||||
1,0,0,1,
|
||||
1,0,1,1,
|
||||
0,1,1,1},
|
||||
//R
|
||||
{1,1,1,0,
|
||||
1,0,0,1,
|
||||
1,0,0,1,
|
||||
1,1,1,0,
|
||||
1,0,0,1},
|
||||
//S
|
||||
{0,1,1,1,
|
||||
1,0,0,0,
|
||||
0,1,1,0,
|
||||
0,0,0,1,
|
||||
1,1,1,0},
|
||||
//T
|
||||
{1,1,1,1,
|
||||
0,0,1,0,
|
||||
0,0,1,0,
|
||||
0,0,1,0,
|
||||
0,0,1,0},
|
||||
//U
|
||||
{1,0,0,1,
|
||||
1,0,0,1,
|
||||
1,0,0,1,
|
||||
1,0,0,1,
|
||||
0,1,1,0},
|
||||
//V
|
||||
{1,0,0,1,
|
||||
1,0,0,1,
|
||||
1,0,1,0,
|
||||
1,0,1,0,
|
||||
0,1,0,0},
|
||||
//W
|
||||
{1,0,0,1,
|
||||
1,0,0,1,
|
||||
1,1,1,1,
|
||||
1,1,1,1,
|
||||
0,1,1,0},
|
||||
//X
|
||||
{1,0,0,1,
|
||||
1,0,0,1,
|
||||
0,1,1,0,
|
||||
1,0,0,1,
|
||||
1,0,0,1},
|
||||
//Y
|
||||
{1,0,0,1,
|
||||
1,0,0,1,
|
||||
0,1,1,1,
|
||||
0,0,0,1,
|
||||
1,1,1,0},
|
||||
//Z
|
||||
{1,1,1,1,
|
||||
0,0,0,1,
|
||||
0,1,1,0,
|
||||
1,0,0,0,
|
||||
1,1,1,1},
|
||||
};
|
||||
|
||||
font basic_5x4(basic_5x4_raw);
|
||||
189
src/gfx/font.cpp
189
src/gfx/font.cpp
|
|
@ -3,168 +3,29 @@
|
|||
//
|
||||
|
||||
#include "gfx/font.h"
|
||||
#include "gfx/canvas.h"
|
||||
|
||||
bool testFont[32][20] = {
|
||||
//0
|
||||
{0,0,0,0,
|
||||
0,0,0,0,
|
||||
0,0,0,0,
|
||||
0,0,0,0,
|
||||
0,0,0,0},
|
||||
//A
|
||||
{0,1,1,0,
|
||||
1,0,0,1,
|
||||
1,0,0,1,
|
||||
1,1,1,1,
|
||||
1,0,0,1},
|
||||
//B
|
||||
{1,1,1,0,
|
||||
1,0,0,1,
|
||||
1,1,1,0,
|
||||
1,0,0,1,
|
||||
1,1,1,0},
|
||||
//C
|
||||
{0,1,1,0,
|
||||
1,0,0,1,
|
||||
1,0,0,0,
|
||||
1,0,0,1,
|
||||
0,1,1,0},
|
||||
//D
|
||||
{1,1,1,0,
|
||||
1,0,0,1,
|
||||
1,0,0,1,
|
||||
1,0,0,1,
|
||||
1,1,1,0},
|
||||
//E
|
||||
{1,1,1,1,
|
||||
1,0,0,0,
|
||||
1,1,1,0,
|
||||
1,0,0,0,
|
||||
1,1,1,1},
|
||||
//F
|
||||
{1,1,1,1,
|
||||
1,0,0,0,
|
||||
1,1,1,0,
|
||||
1,0,0,0,
|
||||
1,0,0,0},
|
||||
//G
|
||||
{0,1,1,1,
|
||||
1,0,0,0,
|
||||
1,0,1,1,
|
||||
1,0,0,1,
|
||||
0,1,1,1},
|
||||
//H
|
||||
{1,0,0,1,
|
||||
1,0,0,1,
|
||||
1,1,1,1,
|
||||
1,0,0,1,
|
||||
1,0,0,1},
|
||||
//I
|
||||
{1,1,1,0,
|
||||
0,1,0,0,
|
||||
0,1,0,0,
|
||||
0,1,0,0,
|
||||
1,1,1,0},
|
||||
//J
|
||||
{1,1,1,1,
|
||||
0,0,0,1,
|
||||
0,0,0,1,
|
||||
0,0,0,1,
|
||||
1,1,1,0},
|
||||
//K
|
||||
{1,0,0,1,
|
||||
1,0,1,0,
|
||||
1,1,0,0,
|
||||
1,0,1,0,
|
||||
1,0,0,1},
|
||||
//L
|
||||
{1,0,0,0,
|
||||
1,0,0,0,
|
||||
1,0,0,0,
|
||||
1,0,0,0,
|
||||
1,1,1,1},
|
||||
//M
|
||||
{1,0,0,1,
|
||||
1,1,1,1,
|
||||
1,1,1,1,
|
||||
1,0,0,1,
|
||||
1,0,0,1},
|
||||
//N
|
||||
{1,0,0,1,
|
||||
1,1,0,1,
|
||||
1,0,1,1,
|
||||
1,0,0,1,
|
||||
1,0,0,1},
|
||||
//O
|
||||
{0,1,1,0,
|
||||
1,0,0,1,
|
||||
1,0,0,1,
|
||||
1,0,0,1,
|
||||
0,1,1,0},
|
||||
//P
|
||||
{1,1,1,0,
|
||||
1,0,0,1,
|
||||
1,0,0,1,
|
||||
1,1,1,0,
|
||||
1,0,0,0},
|
||||
//Q
|
||||
{0,1,1,0,
|
||||
1,0,0,1,
|
||||
1,0,0,1,
|
||||
1,0,1,1,
|
||||
0,1,1,1},
|
||||
//R
|
||||
{1,1,1,0,
|
||||
1,0,0,1,
|
||||
1,0,0,1,
|
||||
1,1,1,0,
|
||||
1,0,0,1},
|
||||
//S
|
||||
{0,1,1,1,
|
||||
1,0,0,0,
|
||||
0,1,1,0,
|
||||
0,0,0,1,
|
||||
1,1,1,0},
|
||||
//T
|
||||
{1,1,1,1,
|
||||
0,0,1,0,
|
||||
0,0,1,0,
|
||||
0,0,1,0,
|
||||
0,0,1,0},
|
||||
//U
|
||||
{1,0,0,1,
|
||||
1,0,0,1,
|
||||
1,0,0,1,
|
||||
1,0,0,1,
|
||||
0,1,1,0},
|
||||
//V
|
||||
{1,0,0,1,
|
||||
1,0,0,1,
|
||||
1,0,1,0,
|
||||
1,0,1,0,
|
||||
0,1,0,0},
|
||||
//W
|
||||
{1,0,0,1,
|
||||
1,0,0,1,
|
||||
1,1,1,1,
|
||||
1,1,1,1,
|
||||
0,1,1,0},
|
||||
//X
|
||||
{1,0,0,1,
|
||||
1,0,0,1,
|
||||
0,1,1,0,
|
||||
1,0,0,1,
|
||||
1,0,0,1},
|
||||
//Y
|
||||
{1,0,0,1,
|
||||
1,0,0,1,
|
||||
0,1,1,1,
|
||||
0,0,0,1,
|
||||
1,1,1,0},
|
||||
//Z
|
||||
{1,1,1,1,
|
||||
0,0,0,1,
|
||||
0,1,1,0,
|
||||
1,0,0,0,
|
||||
1,1,1,1},
|
||||
};
|
||||
|
||||
|
||||
font::font(raw_font& raw ):raw_data_(raw){
|
||||
}
|
||||
|
||||
void font::print(int x, int y, char l, canvas& c) {
|
||||
int j = (l - ' ') % 32;
|
||||
for (int x_ = 0; x_ < 4; x_++)
|
||||
for (int y_ = 0; y_ < 5; y_++)
|
||||
if (raw_data_[j][x_ + 4 * y_])
|
||||
c.draw(x + x_, y + y_);
|
||||
}
|
||||
|
||||
void font::print(int x, int y, char* str, canvas& c) {
|
||||
for (int i = 0; str[i]; i++) {
|
||||
print(x + i * 5,y,str[i],c);
|
||||
}
|
||||
}
|
||||
|
||||
void font::print(int x, int y, const char* str, canvas& c) {
|
||||
for (int i = 0; str[i]; i++) {
|
||||
print(x + i * 5,y,str[i],c);
|
||||
}
|
||||
}
|
||||
|
|
@ -14,6 +14,7 @@ void hal_init(){
|
|||
ssd1306_fillScreen( 0x00 );
|
||||
//ssd1306_setFixedFont(ssd1306xled_font6x8);
|
||||
ssd1306_setFixedFont(ssd1306xled_font5x7);
|
||||
canvas.clear();
|
||||
}
|
||||
|
||||
void hal_draw(int x, int y){
|
||||
|
|
@ -44,6 +45,10 @@ void render(Layout& layout) {
|
|||
}
|
||||
}
|
||||
|
||||
void hal_render(){
|
||||
canvas.blt(0, 0);
|
||||
}
|
||||
|
||||
void * operator new(unsigned int size)
|
||||
{
|
||||
return malloc(size);
|
||||
|
|
|
|||
|
|
@ -83,6 +83,8 @@ int main() {
|
|||
SDL_DestroyWindow(window);
|
||||
SDL_Quit();
|
||||
|
||||
#else
|
||||
hal_render();
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue