make fonts more generic

This commit is contained in:
j3d1 2018-11-02 09:27:20 +01:00
parent 1009d689bc
commit 58f3d1f02b
9 changed files with 235 additions and 183 deletions

12
inc/fonts/basic_5x4.h Normal file
View file

@ -0,0 +1,12 @@
//
// Created by jedi on 11/2/18.
//
#ifndef MGL_DMXMENU_BASIC_5X4_H
#define MGL_DMXMENU_BASIC_5X4_H
#include "gfx/font.h"
extern font basic_5x4;
#endif //MGL_DMXMENU_BASIC_5X4_H

View file

@ -7,6 +7,7 @@
#include "hal.h"
#include "gfx/font.h"
#include "fonts/basic_5x4.h"
class canvas {
private:
@ -23,23 +24,11 @@ public:
}
void print(int x, int y, const char *str) {
for (int i = 0; str[i]; i++) {
int j = (str[i] - ' ') % 32;
for (int x_ = 0; x_ < 4; x_++)
for (int y_ = 0; y_ < 5; y_++)
if (testFont[j][x_ + 4 * y_])
draw(x + i * 5 + x_, y + y_);
}
basic_5x4.print(x, y, str, *this);
}
void print(int x, int y, char *str) {
for (int i = 0; str[i]; i++) {
int j = (str[i] - ' ') % 32;
for (int x_ = 0; x_ < 4; x_++)
for (int y_ = 0; y_ < 5; y_++)
if (testFont[j][x_ + 4 * y_])
draw(x + i * 5 + x_, y + y_);
}
basic_5x4.print(x, y, str, *this);
}
};

View file

@ -5,12 +5,18 @@
#ifndef MGL_DMXMENU_FONT_H
#define MGL_DMXMENU_FONT_H
class canvas;
class font {
public:
typedef const bool raw_font[32][20];
private:
raw_font& raw_data_;
public:
font(raw_font&);
void print(int x, int y, char c, canvas&);
void print(int x, int y, char* str, canvas&);
void print(int x, int y, const char* str, canvas&);
};
extern bool testFont[32][20];
#endif //MGL_DMXMENU_FONT_H

View file

@ -15,6 +15,7 @@ void hal_init();
void hal_draw(int x, int y);
void hal_print(int x, int y, const char* str);
void render(Layout&);
void hal_render();
void quit();
extern bool input[4];