#ifndef PKE_GAME_SETTINGS_HPP #define PKE_GAME_SETTINGS_HPP #include "memory-type-defs.hpp" #include #include struct GameSettings { bool isGameRunning = true; bool isGamePaused = false; bool isShowingEditor = true; bool isRenderingDebug = false; bool isSimulationPaused = false; std::chrono::steady_clock steadyClock; int64_t targetFPS = 144; int64_t minFPS = 20; double deltaPerFrame = 1.0 / double(targetFPS); double minimumDeltaPerFrame = 1.0 / double(minFPS); struct { bool isUsingDebugCamera = false; bool isShowingConsole = true; bool isShowingEntityList = true; bool isShowingSceneEditor = true; bool isShowingUBO = true; } editorSettings; struct { bool isFramerateUnlocked = false; bool isWaitingForVsync = true; } graphicsSettings; struct { MemBucket *bkt = nullptr; } mem; }; struct PKEGameCallbacks { void (*OnInit)() = nullptr; void (*OnTick)(double delta) = nullptr; void (*OnTeardown)() = nullptr; void (*OnImGuiRender)() = nullptr; }; extern GameSettings pkeSettings; extern PKEGameCallbacks pkeGameCallbacks; #endif /* PKE_GAME_SETTINGS_HPP */