From ab34c29a093e566fab7b4efc28561aa7dcdc789e Mon Sep 17 00:00:00 2001 From: Fabrice Date: Tue, 10 Feb 2026 17:26:32 +0100 Subject: fixing types --- src/events.cc | 4 ++-- src/events.h | 4 ++-- src/wayclock.cc | 30 +++++++++++++++++++++++------- 3 files changed, 27 insertions(+), 11 deletions(-) diff --git a/src/events.cc b/src/events.cc index 06fc68f..5b4da55 100644 --- a/src/events.cc +++ b/src/events.cc @@ -56,12 +56,12 @@ bool wayc_eventloop_running(struct eventloop_s* loop) { return loop->running; } -void wayc_eventloop_update(struct eventloop_s* loop) { +void wayc_eventloop_update(struct eventloop_s* loop, u8* user) { wayc_notnull(loop); if (wayc_hashmap_count(&loop->windows) == 0) loop->running = false; wayc_wlstate_update(&loop->state); struct event_s event; - while (wayc_vec_pop(&loop->events, &event)) loop->handler(loop, &event); + while (wayc_vec_pop(&loop->events, &event)) loop->handler(user, loop, &event); } diff --git a/src/events.h b/src/events.h index 3e7be19..9dff1de 100644 --- a/src/events.h +++ b/src/events.h @@ -40,7 +40,7 @@ struct event_s { struct eventloop_s; -typedef void (*event_handler_t)(struct eventloop_s* loop, +typedef void (*event_handler_t)(u8* user, struct eventloop_s* loop, struct event_s* event); enum eventloop_error_e { @@ -64,4 +64,4 @@ window_id_t wayc_eventloop_register(struct eventloop_s* loop, struct window_s* window); void wayc_eventloop_unregister(struct eventloop_s* loop, window_id_t winid); bool wayc_eventloop_running(struct eventloop_s* loop); -void wayc_eventloop_update(struct eventloop_s* loop); +void wayc_eventloop_update(struct eventloop_s* loop, u8* user); diff --git a/src/wayclock.cc b/src/wayclock.cc index ac6a796..889faef 100644 --- a/src/wayclock.cc +++ b/src/wayclock.cc @@ -1,5 +1,4 @@ -#include #include "events.h" #include "graphics.h" @@ -10,17 +9,22 @@ #define WAYC_APP_WIDTH 1280 #define WAYC_APP_HEIGHT 1080 -void frame(struct window_s* window, struct eventloop_s* loop) { +void wayc_frame(struct renderer_s* renderer, struct window_s* window, + struct eventloop_s* loop) { wayc_notnull(window); wayc_notnull(loop); + wayc_notnull(renderer); + wayc_renderer_swap(renderer); wayc_window_redraw(window, loop); } -void handle(struct eventloop_s* loop, struct event_s* event) { +void wayc_handle(u8* user, struct eventloop_s* loop, struct event_s* event) { wayc_notnull(loop); wayc_notnull(event); + struct renderer_s* renderer = (struct renderer_s*)user; + struct window_s* window = event->window; union event_data_u data = event->data; @@ -30,10 +34,10 @@ void handle(struct eventloop_s* loop, struct event_s* event) { break; case EVENT_KIND_RESIZE: { struct event_resize_s resize = data.resize; - fprintf(stderr, "Window resized: %d x %d\n", resize.width, resize.height); + wayc_renderer_resize(renderer, resize.width, resize.height); } break; case EVENT_KIND_FRAME: - frame(window, loop); + wayc_frame(renderer, window, loop); break; default: break; @@ -42,7 +46,7 @@ void handle(struct eventloop_s* loop, struct event_s* event) { int main() { struct eventloop_s loop; - if (wayc_eventloop_init(&loop, handle) != EVENTLOOP_ERROR_NONE) + if (wayc_eventloop_init(&loop, wayc_handle) != EVENTLOOP_ERROR_NONE) wayc_panic("Failed to initialize event loop"); struct graphics_s graphics; @@ -59,8 +63,20 @@ int main() { window_id_t winid = wayc_eventloop_register(&loop, &window); window.id = winid; - while (wayc_eventloop_running(&loop)) wayc_eventloop_update(&loop); + struct renderer_s renderer; + if (wayc_renderer_init(&renderer, &window, &graphics, WAYC_APP_WIDTH, + WAYC_APP_HEIGHT) != RENDERER_ERROR_NONE) { + wayc_window_deinit(&window); + wayc_graphics_deinit(&graphics); + wayc_eventloop_deinit(&loop); + wayc_panic("Failed to initialize renderer"); + } + + wayc_renderer_use(&renderer); + while (wayc_eventloop_running(&loop)) + wayc_eventloop_update(&loop, (u8*)&renderer); + wayc_renderer_deinit(&renderer); wayc_window_deinit(&window); wayc_graphics_deinit(&graphics); wayc_eventloop_deinit(&loop); -- cgit v1.2.3