hibiscus/core/engine/engine.hpp

36 lines
718 B
C++

#pragma once
#include <vector>
#include <chrono>
#include <freetype/freetype.h>
#include "../renderer/renderer.hpp"
#include "../callback.hpp"
#include "../node/node.hpp"
namespace hibis {
class Engine {
public:
Engine(Renderer* renderer, LoggerCallback logger);
~Engine();
void runNodeProcesses();
void runNodePhysicsProcesses();
void drawNodes();
const char* getEngineVersion();
FT_Library mFreeTypeLibrary;
private:
Renderer* mRenderer;
//StopWatch watch;
std::chrono::time_point<std::chrono::steady_clock> mPreviousProcessTick;
std::chrono::time_point<std::chrono::steady_clock> mPreviousPhysicsProcessTick;
std::vector<Node*> mNodeList;
LoggerCallback mLoggerCallback;
};
}