Loading...
Searching...
No Matches
AssetsManager.h
Go to the documentation of this file.
1//
2// Created by Dave Smith on 10/3/25.
3//
4
5#ifndef ASSETSMANAGER_H
6#define ASSETSMANAGER_H
7
12
13namespace ml
14{
16
18 template<typename T, typename = void>
19 struct has_Image : std::false_type {};
20 template<typename T>
21 struct has_Image<T, std::void_t<typename T::Images>> : std::true_type {};
22
24 template<typename T, typename = void>
25 struct has_Font : std::false_type {};
26 template<typename T>
27 struct has_Font<T, std::void_t<typename T::Fonts>> : std::true_type {};
28
30 template<typename T, typename = void>
31 struct has_Sound : std::false_type {};
32 template<typename T>
33 struct has_Sound<T, std::void_t<typename T::Sounds>> : std::true_type {};
34
36
87 template<typename Manifest>
93 {
94 private:
95 using TextureMgr = TextureManager<Manifest>;
96 using FontMgr = FontManager<Manifest>;
97 using SoundMgr = SoundManager<Manifest>;
98
99 public:
108 template<typename M = Manifest>
109 static std::enable_if_t<has_Image<M>::value, const sf::Texture&>
110 get(typename M::Images image);
111
120 template<typename M = Manifest>
121 static std::enable_if_t<has_Font<M>::value, const sf::Font&>
122 get(typename M::Fonts font);
123
132 template<typename M = Manifest>
133 static std::enable_if_t<has_Sound<M>::value, const sf::SoundBuffer&>
134 get(typename M::Sounds sound);
135
144 template<typename M = Manifest>
145 static std::enable_if_t<has_Font<M>::value, const sf::Font&>
147 };
148
149} // namespace ml
150
151#include "../../../src/Resources/AssetsManager.tpp"
152#endif // ASSETSMANAGER_H
Unified asset accessor for textures, fonts, and sound buffers.
static std::enable_if_t< has_Image< M >::value, const sf::Texture & > get(typename M::Images image)
Retrieve a cached sf::Texture by manifest enum value.
static std::enable_if_t< has_Sound< M >::value, const sf::SoundBuffer & > get(typename M::Sounds sound)
Retrieve a cached sf::SoundBuffer by manifest enum value.
static std::enable_if_t< has_Font< M >::value, const sf::Font & > getDefaultFont()
Return the built-in Arial font.
static std::enable_if_t< has_Font< M >::value, const sf::Font & > get(typename M::Fonts font)
Retrieve a cached sf::Font by manifest enum value.
Manifest-driven cache for sf::Font resources.
Definition FontManager.h:46
Manifest-driven cache for sf::SoundBuffer resources.
Manifest-driven cache for sf::Texture resources.
Definition Component.h:18