#include "App.hpp" #include #include #include #include #include #include auto App::tick() -> void { if (!m_visible || m_gl.edpy == EGL_NO_DISPLAY || m_gl.esurf == EGL_NO_SURFACE) return; glViewport(0, 0, m_win_w, m_win_h); for (auto const cp : m_kbd.typing) { std::println("Char typed: {} ({}) shift={} ctrl={}", rune_to_string(cp), cp, m_kbd.shift() ? 'y' : 'n', m_kbd.ctrl() ? 'y' : 'n'); } if (m_kbd.is_sym_pressed(XKB_KEY_Escape)) { set_visible(!visible()); if (m_kbd.ctrl() && m_kbd.shift()) { m_running = false; } } BeginDrawing(); ClearBackground(theme().window.background); DrawFPS(10, 10); if (m_tr) { Color const fg = theme().foreground; Vector2 const pos { 40.0f, 60.0f }; auto text = std::string_view("Hello from Waylight! 日本人ですか?"); auto size = sin(GetTime()) * 12 + 32; m_tr->draw_text(m_font, text, pos, size, fg); } EndDrawing(); eglSwapBuffers(m_gl.edpy, m_gl.esurf); m_kbd.typing.clear(); m_kbd.clear_transients(); }