project-kyoku/include/core/corefactory.h

34 lines
817 B
C
Raw Normal View History

2021-12-29 15:59:18 +01:00
#pragma once
#include <memory>
#include "core/line.h"
2021-12-29 15:59:18 +01:00
#include "core/music.h"
#include "core/rectangle.h"
#include "core/resourceholder.h"
#include "core/sprite.h"
#include "core/text.h"
#include "core/vector.h"
2021-12-29 15:59:18 +01:00
namespace kku
{
2022-05-08 05:43:12 +02:00
/// CoreFactory
///
/// Provides basic
/// multimedia elements and data
2021-12-29 15:59:18 +01:00
class CoreFactory
{
public:
2021-12-29 15:59:18 +01: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;
virtual std::shared_ptr<kku::Sprite>
getSprite(kku::GUISprite::Id id) const = 0;
2021-12-29 15:59:18 +01:00
virtual kku::Vector2<std::size_t> getRenderSize() const = 0;
};
} // namespace kku