2021-12-29 09:59:18 -05:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <memory>
|
|
|
|
|
2022-10-17 22:59:51 -04:00
|
|
|
#include "core/line.h"
|
2021-12-29 09:59:18 -05:00
|
|
|
#include "core/music.h"
|
|
|
|
#include "core/rectangle.h"
|
2022-10-17 22:59:51 -04:00
|
|
|
#include "core/resourceholder.h"
|
2022-03-10 12:45:19 -05:00
|
|
|
#include "core/sprite.h"
|
2022-10-17 22:59:51 -04:00
|
|
|
#include "core/text.h"
|
|
|
|
#include "core/vector.h"
|
2021-12-29 09:59:18 -05:00
|
|
|
|
|
|
|
namespace kku
|
|
|
|
{
|
|
|
|
|
2022-05-07 23:43:12 -04:00
|
|
|
/// CoreFactory
|
|
|
|
///
|
|
|
|
/// Provides basic
|
|
|
|
/// multimedia elements and data
|
2021-12-29 09:59:18 -05:00
|
|
|
class CoreFactory
|
|
|
|
{
|
2022-10-17 22:59:51 -04:00
|
|
|
public:
|
2021-12-29 09:59:18 -05:00
|
|
|
virtual ~CoreFactory() = default;
|
|
|
|
virtual std::shared_ptr<kku::Music> getMusic() const = 0;
|
|
|
|
virtual std::shared_ptr<kku::Text> getText(kku::Font::Id id) const = 0;
|
|
|
|
virtual std::shared_ptr<kku::Rectangle> getRectangle() const = 0;
|
|
|
|
virtual std::shared_ptr<kku::Line> getLine() const = 0;
|
2022-10-17 22:59:51 -04:00
|
|
|
virtual std::shared_ptr<kku::Sprite>
|
|
|
|
getSprite(kku::GUISprite::Id id) const = 0;
|
2021-12-29 09:59:18 -05:00
|
|
|
virtual kku::Vector2<std::size_t> getRenderSize() const = 0;
|
|
|
|
};
|
|
|
|
|
2022-10-17 22:59:51 -04:00
|
|
|
} // namespace kku
|