Newer
Older
#include "Kernel.hpp"
namespace megu::kernel {
Kernel::Kernel(Window & window)
: _window(window), _pEngine(), _gEngine(window) {
this->_pEngine.boot(*this);
this->_gEngine.boot(*this);
}
Kernel::~Kernel() {
this->_pEngine.stop(*this);
this->_pEngine.stop(*this);
}
void Kernel::step() {
this->_gEngine.step(*this, time);
this->_gResolver.resolve(*this, this->_gEngine, time);
this->_pEngine.step(*this, time);
this->_pResolver.resolve(*this, this->_pEngine, time);
auto * pComponent = props->getPhysicComponent();
if(pComponent != nullptr) {
this->_pEngine.add(*this, *pComponent);
}
auto * gComponent = props->getGraphicComponent();
if(gComponent != nullptr) {
this->_gEngine.add(*this, *gComponent);