#include "input.h" #include "renderer.h" #include #include #define MAX(a, b) ((a) < (b) ? (b) : (a)) #define NELEMS(arr) (sizeof(arr) / sizeof(arr[0])) static bool quit = false; static const vec2_t ship[] = { { 0.0, 0.1 }, { 0.05, -0.1 }, { 0.0, -0.05 }, { -0.05, -0.1 }, }; static void key_press_callback(int key) { switch (key) { case KEY_Q: quit = true; break; default: break; } } int main() { const int input_fd = input_init(); input_on_press(key_press_callback); const renderer_params_t renderer_params = renderer_init(); const int drm_fd = renderer_params.drm_fd; renderer_clear(); renderer_swap(); const int max_fd = MAX(input_fd, drm_fd); fd_set set; while (!quit) { 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(); renderer_clear(); renderer_draw(ship, NELEMS(ship)); renderer_swap(); } } renderer_cleanup(); input_cleanup(); return 0; }