Я второкурсник в колледже, работающий над личным проектом, включающим встроенный RPI и HDMI. Когда я рисую 32 или более из определенных символов, вывод видео выводит для всех пикселей после символов. Шрифт, который я использую, представляет собой шрифт с фиксированной шириной (2-байтовой) растровой картой с каждым символом, представленным в виде персонажей рядов U16, наиболее значимым битом в первую очередь. Персонажи, которые вызывают сбой, представляются (я не проверял каждого символа, но проверял диапазоны символов): все числа,?, @, Все заглавные буквы и строчные буквы a. Я проверил символы между этими диапазонами (например,: и `), и эти символы не вызывают сбой.void drawChar(MemoryBuffer& buffer, const Font& font, char character, u32 posX, u32 posY, u32 color)
{
// y represents position in character
for(u32 y = 0; y < font.characterHeight; ++y)
{
// Current line is character * characterHeight + y because char*charHeight gets you to the correct array and + y gets you to the correct line in the array
u16 currLine = font.font[character * font.characterHeight + y];
// x represents position in character
for(u32 x = 0; x < font.characterWidth; ++x)
{
// currLine anded with 1 shifted over characterWidth - 1 - x bits because 1
void MemoryBuffer::DrawPixel(u32 x, u32 y, u32 color)
{
m_BufferPointer[y * (m_Pitch / 4) + x] = color;
}
< /code>
Мне не ясно, что вызывает этот сбой, поэтому помощи с причиной или возможным исправлением было бы очень оценено! (Я прикрепил изображение глюка)>
Подробнее здесь: https://stackoverflow.com/questions/796 ... mework-for