Skip to content
Snippets Groups Projects
Select Git revision
  • 3f5fae36beefdc29de7d1fe814d18f4adc584340
  • master default protected
2 results

DebuggerTutorial.java

Blame
  • 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);
            }
        }
    }