1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
#include <goldman/protocol.hpp>
#include <daguerre/psf.hpp>
template <class color_t>
void overlay(color_t &to, const bool &from, const color_t ¶m) {
if (from)
to = param;
}
int main(int, char **) {
auto bg = euler::syscall::encode_color(0xaa, 0xaa, 0xaa);
auto fg = euler::syscall::encode_color(0x00, 0x00, 0x00);
daguerre::image<daguerre::hilbert_color> image(300, 200);
image.fill(bg);
auto font = daguerre::try_load_psf("/assets/terminus-bold-18x10.psf");
image.render_text(*font, fg, 10, 10, "Hello, world!", &overlay);
euler::syscall::stream_handle s;
euler::syscall::connect_to_socket("hilbert.compositor", s);
goldman::protocol::send_open_window(s, 300, 200);
uint8_t byte;
euler::syscall::read_from_stream(s, 1, &byte);
auto w = goldman::protocol::get_window_opened_body(s);
goldman::protocol::send_update_window_region(
s, w, 0, 0, 300, 200, image.buffer, image.buffer_pitch);
euler::syscall::read_from_stream(s, 1, &byte);
__builtin_unreachable();
}
|