| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- /*
- * author: Patrick-Christopher Mattulat
- * e-mail: webmaster@lynarstudios.com
- */
- #include <cycle/Engine.hpp>
- #include <factory/KeyboardFactory.hpp>
- #include <factory/WindowApiEventManagerFactory.hpp>
- #include <factory/WindowApiFactory.hpp>
- #include <messaging/StatusCodeOk.hpp>
- using ls::atlantis::cycle::Engine;
- using ls::atlantis::cycle::EngineParameter;
- using ls::atlantis::cycle::EngineRuntimeData;
- using ls::atlantis::factory::KeyboardFactory;
- using ls::atlantis::factory::WindowApiEventManagerFactory;
- using ls::atlantis::factory::WindowApiFactory;
- using ls::atlantis::interfaces::AStatusCode;
- using ls::atlantis::messaging::StatusCodeOk;
- using ::std::make_shared;
- using ::std::shared_ptr;
- Engine::Engine(const EngineParameter &_parameter)
- : data(make_shared<EngineRuntimeData>()),
- parameter(_parameter)
- {
- this->data->setIsUp(true);
- }
- Engine::~Engine() = default;
- void Engine::beginFrame() const
- {
- this->data->getWindowApiEventManager()->manage(this->data->getKeyboard());
- }
- void Engine::endFrame() const
- {
- this->data->getKeyboard()->reset();
- }
- shared_ptr<EngineRuntimeData> Engine::getData() const
- {
- return this->data;
- }
- AStatusCode Engine::init() const
- {
- AStatusCode result = _initWindowApi();
- if (result.getCode() == StatusCodeOk{}.getCode())
- {
- result = this->_initKeyboard();
- }
- if (result.getCode() == StatusCodeOk{}.getCode())
- {
- result = this->_initEventManager();
- }
- return result;
- }
- bool Engine::isRunning() const
- {
- return this->data->getIsUp();
- }
- void Engine::quit() const
- {
- this->data->setIsUp(false);
- }
- AStatusCode Engine::_initEventManager() const
- {
- const auto eventManager = WindowApiEventManagerFactory::build(this->parameter.getWindowApiType());
- this->data->setWindowApiEventManager(eventManager);
- return StatusCodeOk{};
- }
- AStatusCode Engine::_initKeyboard() const
- {
- const auto keyboard = KeyboardFactory::build(this->parameter.getWindowApiType());
- this->data->setKeyboard(keyboard);
- return StatusCodeOk{};
- }
- AStatusCode Engine::_initWindowApi() const
- {
- const auto windowApi = WindowApiFactory::build(this->parameter.getWindowApiType());
- this->data->setWindowApi(windowApi);
- return windowApi->init();
- }
|