#include #include "events.h" #include "graphics.h" #include "utils.h" #include "window.h" #define WAYC_APP_NAME "Wayclock" #define WAYC_APP_WIDTH 1280 #define WAYC_APP_HEIGHT 1080 void frame(struct window_s* window, struct eventloop_s* loop) { wayc_notnull(window); wayc_notnull(loop); wayc_window_redraw(window, loop); } void handle(struct eventloop_s* loop, struct event_s* event) { wayc_notnull(loop); wayc_notnull(event); struct window_s* window = event->window; union event_data_u data = event->data; switch (event->kind) { case EVENT_KIND_CLOSE: wayc_eventloop_unregister(loop, window->id); break; case EVENT_KIND_RESIZE: { struct event_resize_s resize = data.resize; fprintf(stderr, "Window resized: %d x %d\n", resize.width, resize.height); } break; case EVENT_KIND_FRAME: frame(window, loop); break; default: break; } } int main() { struct eventloop_s loop; if (wayc_eventloop_init(&loop, handle) != EVENTLOOP_ERROR_NONE) wayc_panic("Failed to initialize event loop"); struct graphics_s graphics; if (wayc_graphics_init(&graphics, &loop.state) != GRAPHICS_ERROR_NONE) wayc_panic("Failed to initialize graphics"); struct window_s window; if (wayc_window_init(&window, WAYC_APP_NAME, &loop) != WINDOW_ERROR_NONE) { wayc_graphics_deinit(&graphics); wayc_eventloop_deinit(&loop); wayc_panic("Failed to initialize window"); } window_id_t winid = wayc_eventloop_register(&loop, &window); window.id = winid; while (wayc_eventloop_running(&loop)) wayc_eventloop_update(&loop); wayc_window_deinit(&window); wayc_graphics_deinit(&graphics); wayc_eventloop_deinit(&loop); return 0; }