Gibt es eine Alternative zur ANSI-Escape-Sequenz für eine bessere Leistung?Linux

Linux verstehen
Guest
 Gibt es eine Alternative zur ANSI-Escape-Sequenz für eine bessere Leistung?

Post by Guest »

Ich portiere derzeit einen Grafikterminal-Renderer von Windows nach Linux. Die Windows-Version verwendet die Win32-Konsolen-API zum Rendern von Farben und läuft ziemlich reibungslos. Unter Linux versuche ich, ANSI-Escape-Codes zum Festlegen der Farbe zu verwenden, aber die Leistung ist schlecht. Der folgende Code ist ein Beispiel vom Renderer:

Code: Select all

  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);
}
}
Hinweis:
  • Ich habe die Funktionalität von 16 Farben auf Truecolor erweitert (was kann dazu beitragen, dass sich die Renderzeit erhöht.)
  • Durch die Lektüre von StackOverflow weiß ich, dass andere Leute versucht haben, dasselbe zu tun, mit Ergebnissen wie meinem. Ich habe auch gelesen, dass andere davon abraten, daher bin ich unsicher, wie ich am besten vorgehen soll.
Versuch:
  • Ich weiß, dass die printf-Funktion nach einem Format und in Bezug auf die Datentypen arbeitet, die das Format angibt. Ich habe die Art und Weise, wie ich Farbe in int konvertiere, geändert und sie so gut wie möglich optimiert, aber es hat keinen spürbaren Unterschied gemacht.
Gibt es also eine Konsolen-API unter Linux, die eine bessere Leistung als ANSI-Sequenzen bietet?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post