Modules/Graphics/public/GraphicApplication.hpp
2024-07-17 20:04:02 +03:00

47 lines
No EOL
803 B
C++

#pragma once
#include "Window.hpp"
#include "Graphics.hpp"
#include "Timing.hpp"
namespace tp {
class Application {
public:
Application();
void run();
virtual bool forceNewFrame() { return false; }
virtual void processFrame(EventHandler* eventHandler, halnf deltaTime);
virtual void drawFrame(Canvas* canvas);
virtual ~Application();
void drawDebug();
private:
void runDefaultLoop();
void runDebugLoop();
protected:
bool mInitialized = false;
ualni mDrawPerSecond = 60;
ualni mProcPerSecond = 100;
Timer mDrawTimer;
Timer mProcTimer;
Timer mPerSecondTimer;
halnf mFramesProcessedPerSecond = 0;
halnf mFramesDrawnPerSecond = 0;
halnf mFramesProcessed = 0;
halnf mFramesDrawn = 0;
Graphics* mGraphics = nullptr;
Window* mWindow = nullptr;
};
}