Files
asteroids/main.c
Camden Dixie O'Brien 7b31fcfac5 Create RNG module
2025-10-14 12:06:06 +01:00

53 lines
840 B
C

#include "game.h"
#include "input.h"
#include "renderer.h"
#include "rng.h"
#include <stdio.h>
#include <sys/select.h>
#define MAX(a, b) ((a) < (b) ? (b) : (a))
int main()
{
rng_init();
const int input_fd = input_init();
const renderer_params_t renderer_params = renderer_init();
const int drm_fd = renderer_params.drm_fd;
renderer_clear();
renderer_swap();
game_init(renderer_params.aspect);
const int max_fd = MAX(input_fd, drm_fd);
fd_set set;
while (1) {
FD_ZERO(&set);
FD_SET(input_fd, &set);
FD_SET(drm_fd, &set);
select(max_fd + 1, &set, nullptr, nullptr, nullptr);
if (FD_ISSET(input_fd, &set))
input_handle();
if (FD_ISSET(drm_fd, &set)) {
renderer_handle();
if (!game_update())
break;
game_draw();
renderer_swap();
}
}
renderer_cleanup();
input_cleanup();
return 0;
}