#include #include #include #include "../Tests.hpp" import Core.Logger; import Core.Terminal; import Core.TerminalConstants; import Core.Vector; import Core.WindowManager; namespace W = Core::Window; static W::Button closeButton = 0; static W::Button testButton = 0; static W::Button textButton = 0; static bool isRunning(void*) { return !W::shouldClose() && !W::isButtonDown(closeButton); } static void tick(void*) { if(!W::isInputEnabled()) { Core::logInfo( "TPS: {}\nFPS: {}\n", W::getTicksPerSecond(), W::getFramesPerSecond()); Core::print( "{12} | Down: {} | DownTime: {3} | Released: {}\n", W::getButtonName(closeButton), W::isButtonDown(closeButton), W::getButtonDownTime(closeButton), W::wasButtonReleased(closeButton)); Core::print( "{12} | Down: {} | DownTime: {3} | Released: {}\n", W::getButtonName(testButton), W::isButtonDown(testButton), W::getButtonDownTime(testButton), W::wasButtonReleased(testButton)); Core::Vector2 mouse = W::getLastMousePosition(); Core::logInfo("Mouse: {} {}\n", mouse[0], mouse[1]); } if(W::getButtonDownTime(textButton) == 1) { if(W::isInputEnabled()) { W::disableInput(); } else { W::enableInput(); } } if(W::isInputEnabled()) { Core::print("Input: '{}'\n", W::getInputString()); Core::print("Cursor: {}\n", W::getInputCursor()); } } static void render(void*, float) { } static void printReport( Core::LogLevel l, const std::source_location& sl, void*, const char* message) { Core::log( l, Core::Terminal::FG_RED, Core::FormatLocation("{}", sl), message); } void testWindow() { setReportHandler(printReport, nullptr); W::Options options = {{800, 480}, false, "Test"}; if(W::open(options)) { return; } closeButton = W::addButton("Close Button"); W::bindKeyToButton(closeButton, GLFW_KEY_Q); testButton = W::addButton("Test Button"); W::bindKeyToButton(testButton, GLFW_KEY_T); textButton = W::addButton("Text Button"); W::bindKeyToButton(textButton, GLFW_KEY_C); W::show(); W::setRunHandler(isRunning, nullptr); W::setTickHandler(tick, nullptr); W::setRenderHandler(render, nullptr); W::setNanosPerTick(50'000'000); W::run(); W::close(); }