1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 20:37:35 +00:00

Rework the rendering model so that clients instantiate backing stores.

This makes interactive resizing work a lot better, althought it's still not
perfect. There are still glitches and unpleasant flashes of zeroed memory.
This commit is contained in:
Andreas Kling 2019-02-20 21:59:13 +01:00
parent e0b81ee4c9
commit fa02d2a39b
17 changed files with 185 additions and 46 deletions

View file

@ -84,6 +84,7 @@ struct WSAPI_ServerMessage {
DidGetWindowTitle,
DidGetWindowRect,
DidGetWindowBackingStore,
Greeting,
};
Type type { Invalid };
int window_id { -1 };
@ -91,6 +92,9 @@ struct WSAPI_ServerMessage {
char text[256];
union {
struct {
int server_pid;
} greeting;
struct {
WSAPI_Rect rect;
WSAPI_Rect old_rect;
@ -148,6 +152,7 @@ struct WSAPI_ClientMessage {
GetWindowBackingStore,
SetGlobalCursorTracking,
SetWindowOpacity,
SetWindowBackingStore,
};
Type type { Invalid };
int window_id { -1 };
@ -166,6 +171,13 @@ struct WSAPI_ClientMessage {
bool has_alpha_channel;
float opacity;
} window;
struct {
WSAPI_Size size;
size_t bpp;
size_t pitch;
int shared_buffer_id;
bool has_alpha_channel;
} backing;
};
};