Start building main compositor application

This commit is contained in:
Abdelrahman Said 2024-01-14 19:30:21 +00:00
parent ea3aceeaf8
commit 150ada41b2
2 changed files with 67 additions and 0 deletions

8
include/compositor.h Normal file
View File

@ -0,0 +1,8 @@
#ifndef COMPOSITOR_H
#define COMPOSITOR_H
#include "aliases/aliases.h"
i32 run_main_loop(void);
#endif // !COMPOSITOR_H

59
src/compositor.c Normal file
View File

@ -0,0 +1,59 @@
#include "aliases/aliases.h"
#include "window.h"
#include <SDL2/SDL.h>
#include <SDL2/SDL_events.h>
#include <SDL2/SDL_render.h>
#include <SDL2/SDL_video.h>
#include <stdbool.h>
#include <stdlib.h>
#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;
}