Select Git revision
VertexArray.cpp
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
Kernel.hpp 1.09 KiB
#pragma once
#include <map>
#include <engine/io/Window.hpp>
#include <kernel/front/props/Props.hpp>
#include "resolver/GraphicResolver.hpp"
#include "resolver/PhysicResolver.hpp"
namespace megu::kernel {
class PhysicResolver;
class GraphicResolver;
class Kernel {
public:
Kernel(Window &);
~Kernel();
void step();
void add(Prop *);
void remove(Prop *);
inline Identifiable_Map<Prop> & props() {return this->_props;}
inline PhysicEngine & getPhysicEngine() {return this->_pEngine;}
inline GraphicEngine & getGraphicEngine() {return this->_gEngine;}
inline Window & window() {return this->_window;}
Prop * get(const Prop::Physical_Component &);
Prop * get(const Prop::Graphical_Component &);
private:
Window & _window;
PhysicEngine _pEngine;
GraphicEngine _gEngine;
Identifiable_Map<Prop> _props;
PhysicResolver _pResolver;
GraphicResolver _gResolver;
};
}