mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 01:37:36 +00:00
Refactor GUI rendering model to be two-phased.
Instead of clients painting whenever they feel like it, we now ask that they paint in response to a paint message. After finishing painting, clients notify the WindowServer about the rect(s) they painted into and then flush eventually happens, etc. This stuff leaves us with a lot of badly named things. Need to fix that.
This commit is contained in:
parent
3a401d5249
commit
7cf3c7461c
16 changed files with 117 additions and 40 deletions
|
@ -18,6 +18,7 @@ public:
|
|||
void on_char(byte);
|
||||
|
||||
void set_in_active_window(bool);
|
||||
void update();
|
||||
|
||||
private:
|
||||
Font& font() { return *m_font; }
|
||||
|
@ -25,6 +26,7 @@ private:
|
|||
void set_cursor(unsigned row, unsigned column);
|
||||
void put_character_at(unsigned row, unsigned column, byte ch);
|
||||
void invalidate_cursor();
|
||||
void did_paint(const Rect& = Rect());
|
||||
void invalidate_window(const Rect& = Rect());
|
||||
void set_window_title(const String&);
|
||||
|
||||
|
@ -67,7 +69,7 @@ private:
|
|||
bool has_only_one_background_color() const;
|
||||
byte* characters { nullptr };
|
||||
Attribute* attributes { nullptr };
|
||||
bool needs_invalidation { false };
|
||||
bool did_paint { false };
|
||||
bool dirty { false };
|
||||
word length { 0 };
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue