#include "input.hpp"
#include "main.hpp"

[[noreturn]] void input_thread_main() {

  euler::syscall::set_thread_name("input thread");

  while (true) {

    auto result = euler::syscall::get_input_packet();
    if (std::holds_alternative<euler::syscall::mouse_packet>(result)) {
      auto packet = std::get<euler::syscall::mouse_packet>(result);
      r->lock();
      r->bump_cursor(packet.x_changed, packet.y_changed);
      r->unlock();
      r->dispatch_render();
    }

  }

}