// font class library
#pragma once
class font_t
{
public:
font_t (int const height, int const width, char const * data) :
m_height (height), m_width (width), m_data(data)
{
}
virtual char
get_pixel (char c, int x, int y) =0 ;
// character width
int
width ()
{
return m_width;
}
// character height
int
height ()
{
return m_height;
}
protected:
int const m_height;
int const m_width;
char const *m_data;
};
class font5x7_t : public font_t
{
public:
font5x7_t (char const *data) :
font_t (7, 5, data)
{
}
;
char
get_pixel (char c, int x, int y) override;
};
class font10x18_t : public font_t
{
public:
font10x18_t (char const *data) :
font_t (18, 10,data)
{
}
;
char
get_pixel (char c, int x, int y) override;
};
// defined fonts
// original 5x7
extern font5x7_t small_font;
// lucida font
// in 10x18
extern font10x18_t large_font;