Select Git revision
-
BATON Theau authoredBATON Theau authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
Kernel.cpp 1.13 KiB
#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() {
double time = Window::Time();
if(this->_window.isOpen()) {
this->_gEngine.step(*this, time);
this->_gResolver.resolve(*this, this->_gEngine, time);
}
this->_pEngine.step(*this, time);
this->_pResolver.resolve(*this, this->_pEngine, time);
}
void Kernel::add(Prop * props) {
this->_props[props->id()] = props;
auto * pComponent = props->getPhysicComponent();
if(pComponent != nullptr) {
this->_pEngine.add(*this, *pComponent);
this->_pResolver.add(*pComponent);
}
auto * gComponent = props->getGraphicComponent();
if(gComponent != nullptr) {
this->_gEngine.add(*this, *gComponent);
this->_gResolver.add(*gComponent);
}
}
}