#pragma once #include #include #include #include #include #include "core/corefactory.h" class CoreFactorySFML : public kku::CoreFactory { public: explicit CoreFactorySFML(sf::RenderTarget * const render_target); virtual std::shared_ptr getMusic() const override; virtual std::shared_ptr getText(kku::Font::Id id) const override; virtual std::shared_ptr getRectangle() const override; virtual std::shared_ptr getLine() const override; virtual std::shared_ptr getSprite(kku::GUISprite::Id id) const override; virtual kku::Vector2 getRenderSize() const override; private: sf::RenderTarget * const _render_target; kku::ResourceHolder _font_holder; kku::ResourceHolder _texture_holder; };