Compositor
Design
Our compositor will handle window management internally, keeping track of the active windows inside a stack to know which windows
are on top of which.
The server (compositor) will own the hardware framebuffer, and the clients will request their canvas from the server (shared memory).
The clients update the content of their canvas themselves, and notify the compositor when the screen should be refreshed via a custom
IPC mechanism. The client may also specify which regions of the canvas have been modified since the last refresh (damage) so that the
server does not have to refresh the whole screen each time.
The server will also be listening for input events (mouse, keyboard) and will dispatch those to the current active window.
Optimizations
The idea is to get a simple working version first, so only the following basic optimizations may be added:
References
Compositor
Design
Our compositor will handle window management internally, keeping track of the active windows inside a stack to know which windows
are on top of which.
The server (compositor) will own the hardware framebuffer, and the clients will request their canvas from the server (shared memory).
The clients update the content of their canvas themselves, and notify the compositor when the screen should be refreshed via a custom
IPC mechanism. The client may also specify which regions of the canvas have been modified since the last refresh (damage) so that the
server does not have to refresh the whole screen each time.
The server will also be listening for input events (mouse, keyboard) and will dispatch those to the current active window.
Optimizations
The idea is to get a simple working version first, so only the following basic optimizations may be added:
References