From 9af5588c30c4126a2800aae1afcb0de2c373dc6c Mon Sep 17 00:00:00 2001 From: Benji Dial Date: Mon, 20 May 2024 17:40:47 -0400 Subject: rewrite application stuff in the kernel to support multitasking --- documentation/compositor.txt | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) (limited to 'documentation/compositor.txt') diff --git a/documentation/compositor.txt b/documentation/compositor.txt index 8946eff..7442d51 100644 --- a/documentation/compositor.txt +++ b/documentation/compositor.txt @@ -1,14 +1,25 @@ compositors listen on the socket id "hilbert.compositor". +when a window is opened by an application, that window can only be referred to +on that stream. the opaque value given in the "window opened" message refers to +that window in future messages on that stream. it is guaranteed to be distinct +for different windows on the same stream, and in no way guaranteed to be +distinct for different windows on different streams. the window is bound +just to the stream, not to the application. if the stream where a window +was created is gifted to a new process, the new process has complete control +over the window, and the compositor does not need to be informed. + data types: - color24: - byte: red - byte: green - byte: blue + color: + opaque dword (result of encode color system call). + from c++, use __euler_encode_color in euler/syscall.hpp. + + color rectangle: + multiple hilbert colors, top to bottom by row, left to right within row - color24 rectangle: - multiple color24's, top to bottom by row, left to right within row + window: + opaque word (given in "window opened" message after "open window" message) messages from applications to compositor: @@ -19,8 +30,15 @@ messages from applications to compositor: update window region: byte: 0x01 + window: the window dword: start x dword: start y dword: width dword: height - color24 rectangle: the data + color rectangle: the data + +messages from compositor to application: + + window opened: + byte: 0x00 + window: the window -- cgit v1.2.3