#include "input.h" #include "renderer.h" #include #include #define MAX(a, b) ((a) < (b) ? (b) : (a)) static bool quit = false; 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_draw(); renderer_swap(); } } renderer_cleanup(); input_cleanup(); return 0; }