Есть ли лучший способ использовать 24 -битный цвет в терминале с помощью C ++?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Есть ли лучший способ использовать 24 -битный цвет в терминале с помощью C ++?

Сообщение Anonymous »

Я создавал цветные анимации в терминале, используя C ++, но начал сталкиваться с снижением производительности, которое приносит ANSI. Я хочу иметь полный цвет в терминале, сохраняя при этом приличную скорость. В настоящее время я использую _write для записи на терминал. Я подозреваю, что ANSI увеличивает время ожидания из -за увеличения использования места: \ x1b [48; 2; 000; 000; 000м для одной буквы с полностью независимым RGB. Это в 20 раз дороже, чем просто написание одной буквы на терминал.

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

#include 
#include 
#include 
#include 

int main()
{
HANDLE consoleIn = GetStdHandle(STD_INPUT_HANDLE);
DWORD dwMode;
GetConsoleMode(consoleIn, &dwMode);
dwMode |= ENABLE_VIRTUAL_TERMINAL_PROCESSING;
SetConsoleMode(consoleIn, dwMode);
HANDLE console = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO screen;
GetConsoleScreenBufferInfo(console, &screen);
short columns = screen.srWindow.Right - screen.srWindow.Left + 1;
short rows = screen.srWindow.Bottom - screen.srWindow.Top + 1;
int newfd = dup(STDOUT_FILENO);
char buffer[columns * rows];
int i;
for (i = 0; i < columns * rows; i++)
{
buffer[i] = ' ';
}
int fileHandle = 0;
auto start = std::chrono::high_resolution_clock::now();
for (i = 0; i < 500; i++)
{
_write(newfd, buffer, sizeof(buffer));
}
auto finish = std::chrono::high_resolution_clock::now();
std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/79495412/is-there-a-better-way-to-use-24-bit-color-in-the-terminal-using-c[/url]
Ответить

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

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

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

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

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