Refactor UI code into an immediate mode style #1

Merged
abdelrahman merged 10 commits from immediate-mode-ui into main 2024-01-20 22:22:17 +00:00
Showing only changes of commit aac10f24d1 - Show all commits

View File

@ -19,6 +19,7 @@
typedef struct compositor compositor_t; typedef struct compositor compositor_t;
struct compositor { struct compositor {
window_t windows[MAX_WINDOWS]; window_t windows[MAX_WINDOWS];
u32 active_window;
SDL_Event event; SDL_Event event;
bool running; bool running;
u64 mouse_x; u64 mouse_x;
@ -77,9 +78,8 @@ i32 run_main_loop(void) {
while (comp.running) { while (comp.running) {
while (SDL_PollEvent(&(comp.event))) { while (SDL_PollEvent(&(comp.event))) {
for (u64 i = 0; i < MAX_WINDOWS; ++i) { handle_ui_events(&(comp.windows[comp.active_window - 1]), &(comp.ctx),
handle_ui_events(&(comp.windows[i]), &(comp.ctx), &(comp.event)); &(comp.event));
}
switch (comp.event.type) { switch (comp.event.type) {
case SDL_QUIT: case SDL_QUIT:
@ -98,6 +98,7 @@ i32 run_main_loop(void) {
window_t *window = &(comp.windows[i]); window_t *window = &(comp.windows[i]);
if (id == window->id) { if (id == window->id) {
comp.active_window = id;
wnd = window; wnd = window;
break; break;
} }