From 150ada41b24254024bdcb97d0716b5415ab1731c Mon Sep 17 00:00:00 2001 From: Abdelrahman Date: Sun, 14 Jan 2024 19:30:21 +0000 Subject: [PATCH] Start building main compositor application --- include/compositor.h | 8 ++++++ src/compositor.c | 59 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 include/compositor.h create mode 100644 src/compositor.c diff --git a/include/compositor.h b/include/compositor.h new file mode 100644 index 0000000..133e0e9 --- /dev/null +++ b/include/compositor.h @@ -0,0 +1,8 @@ +#ifndef COMPOSITOR_H +#define COMPOSITOR_H + +#include "aliases/aliases.h" + +i32 run_main_loop(void); + +#endif // !COMPOSITOR_H diff --git a/src/compositor.c b/src/compositor.c new file mode 100644 index 0000000..3ba23fa --- /dev/null +++ b/src/compositor.c @@ -0,0 +1,59 @@ +#include "aliases/aliases.h" +#include "window.h" +#include +#include +#include +#include +#include +#include + +#define MAX_WINDOWS 2 + +#define WINDOW_WIDTH 800 +#define WINDOW_HEIGHT 600 + +typedef struct compositor compositor_t; +struct compositor { + window_t windows[MAX_WINDOWS]; + bool running; + SDL_Event event; +}; + +i32 run_main_loop(void) { + if (SDL_Init(SDL_INIT_EVERYTHING) != 0) { + return EXIT_FAILURE; + } + + compositor_t comp = {0}; + + window_t *main_window = &(comp.windows[0]); + + if (!init_window(main_window, "Compositor", WINDOW_WIDTH, WINDOW_HEIGHT)) { + SDL_Quit(); + + return EXIT_FAILURE; + } + + comp.running = true; + + colour_t bg_colour = {.abgr = 0xffffffff}; + colour_t fg_colour = {.abgr = 0xff000000}; + + while (comp.running) { + while (SDL_PollEvent(&(comp.event))) { + switch (comp.event.type) { + case SDL_QUIT: + comp.running = false; + break; + } + } + + clear_window(main_window, bg_colour); + + swap_buffers(main_window); + } + + SDL_Quit(); + + return EXIT_SUCCESS; +}