This repository has been archived on 2025-02-26. You can view files and clone it, but cannot push or open issues or pull requests.
hilbert-os/applications/goldman/source/main.cpp

37 lines
994 B
C++

#include <daguerre/framebuffer.hpp>
#include <daguerre/ppm.hpp>
#include "renderer.hpp"
#include "socket.hpp"
#include "input.hpp"
#include "main.hpp"
//TODO: handle errors
renderer *r;
int main() {
euler::syscall::listener_handle listener;
euler::syscall::create_socket_listener("hilbert.compositor", listener);
r = new renderer(
daguerre::get_hilbert_framebuffer(),
*daguerre::try_load_ppm("/assets/background.ppm"),
euler::syscall::encode_color(0x00, 0x00, 0x00),
*daguerre::try_load_ppm("/assets/pointer.ppm"),
euler::syscall::encode_color(0xff, 0x00, 0xff));
euler::syscall::start_thread([]() { r->render_thread_main(); });
euler::syscall::start_thread(input_thread_main);
r->dispatch_render();
euler::syscall::set_thread_name("socket listener thread");
while (true) {
euler::syscall::stream_handle socket;
euler::syscall::accept_socket_connection(listener, socket);
euler::syscall::start_thread(socket_thread_main, socket);
}
}