le2d v0.4.6
2D game engine framework
 
Loading...
Searching...
No Matches
resource_factory.hpp
Go to the documentation of this file.
1#pragma once
6#include <memory>
7
8namespace le {
10class IResourceFactory : public klib::Polymorphic {
11 public:
12 [[nodiscard]] virtual auto create_shader() const -> std::unique_ptr<IShader> = 0;
13 [[nodiscard]] virtual auto create_texture(TextureSampler const& sampler = {}) const -> std::unique_ptr<ITexture> = 0;
14 [[nodiscard]] virtual auto create_tilesheet(TextureSampler const& sampler = {}) const -> std::unique_ptr<ITileSheet> = 0;
15 [[nodiscard]] virtual auto create_font() const -> std::unique_ptr<IFont> = 0;
16 [[nodiscard]] virtual auto create_audio_buffer() const -> std::unique_ptr<IAudioBuffer> = 0;
17};
18} // namespace le
Opaque interface for an Audio Buffer.
Definition audio_buffer.hpp:8
Opaque interface for a Font.
Definition font.hpp:23
Factory for IResource derived types.
Definition resource_factory.hpp:10
virtual auto create_audio_buffer() const -> std::unique_ptr< IAudioBuffer >=0
virtual auto create_texture(TextureSampler const &sampler={}) const -> std::unique_ptr< ITexture >=0
virtual auto create_tilesheet(TextureSampler const &sampler={}) const -> std::unique_ptr< ITileSheet >=0
virtual auto create_font() const -> std::unique_ptr< IFont >=0
virtual auto create_shader() const -> std::unique_ptr< IShader >=0
Opaque interface for a Shader program.
Definition shader.hpp:7
Definition animation.hpp:8
Texture Sampler metadata.
Definition texture.hpp:24