8#ifndef MALENA_ASSETSMANAGER_H
9#define MALENA_ASSETSMANAGER_H
22 template<
typename T,
typename =
void>
23 struct has_Image : std::false_type {};
25 struct has_Image<T, std::void_t<typename T::Images>> : std::true_type {};
28 template<
typename T,
typename =
void>
29 struct has_Font : std::false_type {};
31 struct has_Font<T, std::void_t<typename T::Fonts>> : std::true_type {};
34 template<
typename T,
typename =
void>
35 struct has_Sound : std::false_type {};
37 struct has_Sound<T, std::void_t<typename T::Sounds>> : std::true_type {};
92 template<
typename Manifest>
109 template<
typename M = Manifest>
110 static std::enable_if_t<has_Image<M>::value,
const sf::Texture&>
111 get(
typename M::Images image);
121 template<
typename M = Manifest>
122 static std::enable_if_t<has_Font<M>::value,
const sf::Font&>
123 get(
typename M::Fonts font);
133 template<
typename M = Manifest>
135 get(
typename M::Sounds sound);
145 template<
typename M = Manifest>
146 static std::enable_if_t<has_Font<M>::value,
const sf::Font&>
152#include "../../../src/Resources/AssetsManager.tpp"
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.
Manifest-driven cache for sf::SoundBuffer resources.
Manifest-driven cache for sf::Texture resources.