有一种已知的常用方法可以按照以下方式存储字体定义:
char fontImg[][FONTW * FONTH] = {
{ // ' ' (space)
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0
},
有没有更好/更多的c ++方法来做到这一点? 我讨厌混合C / C ++代码,我尽可能避免使用它,所以有人知道还有什么可以用来存储字体的定义,而不是使用数组吗?
std::vector
std::map
其他什么?
一个简单的想法:
// Change to class later
struct tCharacter
{
uint8_t m_uiSizeX;
uint8_t m_uiSizeY;
std::string m_strData;
};
std::map<uint8_t,tCharacter> m_mFonts;
tCharacter _Char;
// 0 empty pixel, 1 filled pixel, # 'return carret'
/*
00111100#
01000010#
01000010#
01000010#
01111110#
01000010#
01000010#
01000010
*/
_Char.m_strData="00111100#01000010#01000010#01000010#01111110#01000010#01000010#01000010";
m_mFonts['a']=_Char;