le2d v0.4.3
2D game engine framework
 
Loading...
Searching...
No Matches
asset_type_loaders.hpp
Go to the documentation of this file.
1#pragma once
11
12namespace le {
13template <std::derived_from<IAsset> AssetTypeT>
14class IAssetTypeLoaderCommon : public IAssetTypeLoader<AssetTypeT> {
15 public:
17
18 explicit IAssetTypeLoaderCommon(gsl::not_null<IDataLoader const*> data_loader, gsl::not_null<IResourceFactory const*> resource_factory)
19 : m_data_loader(data_loader), m_resource_factory(resource_factory) {}
20
21 protected:
22 gsl::not_null<IDataLoader const*> m_data_loader;
23 gsl::not_null<IResourceFactory const*> m_resource_factory;
24};
25
26class ShaderLoader : public IAssetTypeLoaderCommon<IShader> {
27 public:
29
30 [[nodiscard]] auto load_asset(std::string_view uri) const -> std::unique_ptr<IShader> final;
31};
32
33class FontLoader : public IAssetTypeLoaderCommon<IFont> {
34 public:
36
37 [[nodiscard]] auto load_asset(std::string_view uri) const -> std::unique_ptr<IFont> final;
38};
39
40class TextureLoader : public IAssetTypeLoaderCommon<ITexture> {
41 public:
43
44 [[nodiscard]] auto load_asset(std::string_view uri) const -> std::unique_ptr<ITexture> final;
45};
46
47class TileSetLoader : public IAssetTypeLoaderCommon<TileSet> {
48 public:
50
51 [[nodiscard]] auto load_asset(std::string_view uri) const -> std::unique_ptr<TileSet> final;
52};
53
54class TileSheetLoader : public IAssetTypeLoaderCommon<ITileSheet> {
55 public:
57
58 [[nodiscard]] auto load_asset(std::string_view uri) const -> std::unique_ptr<ITileSheet> final;
59};
60
61class AudioBufferLoader : public IAssetTypeLoaderCommon<IAudioBuffer> {
62 public:
64
65 [[nodiscard]] auto load_asset(std::string_view uri) const -> std::unique_ptr<IAudioBuffer> final;
66};
67
68class TransformAnimationLoader : public IAssetTypeLoaderCommon<TransformAnimation> {
69 public:
71
72 [[nodiscard]] auto load_asset(std::string_view uri) const -> std::unique_ptr<TransformAnimation> final;
73};
74
75class FlipbookAnimationLoader : public IAssetTypeLoaderCommon<FlipbookAnimation> {
76 public:
78
79 [[nodiscard]] auto load_asset(std::string_view uri) const -> std::unique_ptr<FlipbookAnimation> final;
80};
81} // namespace le
Definition asset_type_loaders.hpp:61
auto load_asset(std::string_view uri) const -> std::unique_ptr< IAudioBuffer > final
Primary customization point.
Definition asset_type_loaders.hpp:75
auto load_asset(std::string_view uri) const -> std::unique_ptr< FlipbookAnimation > final
Primary customization point.
Definition asset_type_loaders.hpp:33
auto load_asset(std::string_view uri) const -> std::unique_ptr< IFont > final
Primary customization point.
Definition asset_type_loaders.hpp:14
IAssetTypeLoaderCommon(gsl::not_null< IDataLoader const * > data_loader, gsl::not_null< IResourceFactory const * > resource_factory)
Definition asset_type_loaders.hpp:18
gsl::not_null< IDataLoader const * > m_data_loader
Definition asset_type_loaders.hpp:22
gsl::not_null< IResourceFactory const * > m_resource_factory
Definition asset_type_loaders.hpp:23
Interface for a particular AssetType loader.
Definition asset_type_loader.hpp:22
Definition asset_type_loaders.hpp:26
auto load_asset(std::string_view uri) const -> std::unique_ptr< IShader > final
Primary customization point.
Definition asset_type_loaders.hpp:40
auto load_asset(std::string_view uri) const -> std::unique_ptr< ITexture > final
Primary customization point.
Definition asset_type_loaders.hpp:47
auto load_asset(std::string_view uri) const -> std::unique_ptr< TileSet > final
Primary customization point.
Definition asset_type_loaders.hpp:54
auto load_asset(std::string_view uri) const -> std::unique_ptr< ITileSheet > final
Primary customization point.
Definition asset_type_loaders.hpp:68
auto load_asset(std::string_view uri) const -> std::unique_ptr< TransformAnimation > final
Primary customization point.
Definition animation.hpp:8