1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 13:37:44 +00:00

Terminal: optimize repaints a bunch.

We track dirty character cells + pending whole-terminal scrolls.
This drastically reduces the number of pixels pushed.
This commit is contained in:
Andreas Kling 2019-01-15 10:20:20 +01:00
parent e452303c66
commit d0137f0e96
3 changed files with 35 additions and 7 deletions

View file

@ -41,10 +41,12 @@ private:
foreground_color = 7;
background_color = 0;
bold = false;
dirty = true;
}
unsigned foreground_color : 4;
unsigned background_color : 4;
bool bold : 1;
bool dirty : 1;
};
byte* m_buffer { nullptr };
@ -80,6 +82,7 @@ private:
int m_pixel_width { 0 };
int m_pixel_height { 0 };
int m_rows_to_scroll_backing_store { 0 };
int m_inset { 2 };
int m_line_spacing { 4 };