| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- #include <cstdio>
- #include <source_location>
- #include <GLFW/glfw3.h>
- #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();
- }
|