Существует ли альтернатива escape-последовательности ANSI для повышения производительности?Linux

Anonymous
Существует ли альтернатива escape-последовательности ANSI для повышения производительности?

Сообщение Anonymous »

В настоящее время я переношу средство рендеринга графического терминала с Windows на Linux. Версия для Windows использует консольный API Win32 для рендеринга цвета и работает довольно гладко. В Linux я пытаюсь использовать escape-коды ANSI для установки цвета, но производительность низкая. Код ниже представляет собой образец средства рендеринга:

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

  for(int row = 0; row < height; row++)
{
for(int col = 0; col < width; col++)
{
struct term_color pix =  display[row*width+col];
printf("\x1b[48;2;%d;%d;%dm  ", pix.r, pix.g, pix.b);
}
}
Примечание:
  • Я расширил его функциональность с 16 цветов до истинного цвета (что может способствовать увеличению времени рендеринга)
  • Прочитав StackOverflow, я знаю, что другие люди пытались сделать то же самое с такими же результатами, как у меня. Я также читал, что другие советуют этого не делать, поэтому не знаю, как лучше поступить.
Попытка:
  • Я знаю, что функция printf работает в соответствии с форматом и типами данных, указанными в формате. Я изменил способ преобразования цвета в int и максимально оптимизировал его, но заметной разницы это не дало.
Итак, существует ли консольный API в Linux, который работает лучше, чем последовательности ANSI?

Подробнее здесь: https://stackoverflow.com/questions/793 ... erformance

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