| 123456789101112131415161718192021222324252627282930313233343536373839 |
- /*
- * author: Patrick-Christopher Mattulat
- * e-mail: webmaster@lynarstudios.com
- */
- #include <factory/WindowApiFactory.hpp>
- #include <ls-std/core/exception/IllegalArgumentException.hpp>
- #include <window/SdlWindowApi.hpp>
- using ls::atlantis::factory::WindowApiFactory;
- using ls::atlantis::glossary::WindowApiTypes;
- using ls::atlantis::interfaces::IWindowApi;
- using ls::atlantis::window::SdlWindowApi;
- using ls::std::core::IllegalArgumentException;
- using ::std::make_shared;
- using ::std::shared_ptr;
- WindowApiFactory::WindowApiFactory() = default;
- WindowApiFactory::~WindowApiFactory() = default;
- shared_ptr<IWindowApi> WindowApiFactory::build(const WindowApiTypes &_windowApi)
- {
- shared_ptr<IWindowApi> windowApi{};
- switch (_windowApi)
- {
- case WindowApiTypes::NONE_SELECTED:
- {
- throw IllegalArgumentException{};
- }
- case WindowApiTypes::SDL_WINDOW_API:
- {
- windowApi = make_shared<SdlWindowApi>();
- } break;
- }
- return windowApi;
- }
|