Рисование определенных символов ASCII приводит к сбоям в работе экрана в среде Circle для Raspberry Pi.C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Рисование определенных символов ASCII приводит к сбоям в работе экрана в среде Circle для Raspberry Pi.

Сообщение Anonymous »

Я учусь на втором курсе колледжа и работаю над личным проектом, включающим встроенный Raspberry Pi и выход HDMI.
Однако я столкнулся с очень странной проблемой при отображении определенных символов на экране с помощью Circle для моего вычислительного модуля Raspberry Pi 4. Когда я рисую 32 или более определенных символов, видеовыход прерывается для всех пикселей, следующих за символами.
Я использую шрифт фиксированной ширины. (2-байтовый) растровый шрифт, в котором каждый символ представлен в виде строк символов высотой u16, начиная с самого старшего бита. Символы, вызывающие сбой, выглядят следующим образом (я не проверял каждый символ, но проверял диапазоны символов): все цифры, ?, @, все заглавные буквы и строчные буквы a. Я тестировал символы между этими диапазонами (например, : и `), и эти символы не вызывают сбоев.
Моя функция drawChar:

Код: Выделить всё

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 

Подробнее здесь: [url]https://stackoverflow.com/questions/79698935/drawing-specific-ascii-characters-causes-screen-glitches-in-circle-framework-for[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»