1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 04:17:35 +00:00

WindowServer+LibGUI: Coalesce multiple client paints into GMultiPaintEvents.

This allows GWindow to paint up to 32 separate rects before telling the
WindowServer to flip the buffers. Quite a bit smoother. :^)
This commit is contained in:
Andreas Kling 2019-04-20 17:37:28 +02:00
parent 7efd61fcf5
commit 7234900f61
6 changed files with 54 additions and 18 deletions

View file

@ -595,19 +595,19 @@ private:
class WSAPIDidFinishPaintingNotification final : public WSAPIClientRequest {
public:
explicit WSAPIDidFinishPaintingNotification(int client_id, int window_id, const Rect& rect)
explicit WSAPIDidFinishPaintingNotification(int client_id, int window_id, const Vector<Rect, 32>& rects)
: WSAPIClientRequest(WSEvent::APIDidFinishPaintingNotification, client_id)
, m_window_id(window_id)
, m_rect(rect)
, m_rects(rects)
{
}
int window_id() const { return m_window_id; }
Rect rect() const { return m_rect; }
const Vector<Rect, 32>& rects() const { return m_rects; }
private:
int m_window_id { 0 };
Rect m_rect;
Vector<Rect, 32> m_rects;
};
enum class MouseButton : byte {