Engine.cpp 855 B

1234567891011121314151617181920212223242526272829303132333435
  1. /*
  2. * author: Patrick-Christopher Mattulat
  3. * e-mail: webmaster@lynarstudios.com
  4. */
  5. #include <cycle/Engine.hpp>
  6. #include <factory/WindowApiFactory.hpp>
  7. using ls::atlantis::cycle::Engine;
  8. using ls::atlantis::cycle::EngineParameter;
  9. using ls::atlantis::cycle::EngineRuntimeData;
  10. using ls::atlantis::factory::WindowApiFactory;
  11. using ls::atlantis::interfaces::AStatusCode;
  12. using ::std::make_shared;
  13. using ::std::shared_ptr;
  14. Engine::Engine(const EngineParameter &_parameter)
  15. : data(make_shared<EngineRuntimeData>()),
  16. parameter(_parameter)
  17. {}
  18. Engine::~Engine() = default;
  19. shared_ptr<EngineRuntimeData> Engine::getData() const
  20. {
  21. return this->data;
  22. }
  23. shared_ptr<AStatusCode> Engine::init()
  24. {
  25. const auto windowApi = WindowApiFactory::build(this->parameter.getWindowApiType());
  26. this->data->setWindowApi(windowApi);
  27. return windowApi->init();
  28. }