存储ASCII位图字体供以后使用 - 想法

时间:2015-10-08 17:57:23

标签: c++ graphics

有一种已知的常用方法可以按照以下方式存储字体定义:

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;

0 个答案:

没有答案