3#include <Infinity/api.h>
4#include <Infinity/Assets/AssetPlugin.hpp>
8#include <unordered_map>
63 setDefaultLoader(std::type_index(
typeid(T)));
93 setSecondaryLoader(std::type_index(
typeid(T)));
115 static void addPlugin(
const std::filesystem::path& path);
126 static void addPlugin(CreateAssetPluginFunction* factory);
180 return getLoader(std::type_index(
typeid(T)));
201 static void setDefaultLoader(std::type_index type);
208 static void setSecondaryLoader(std::type_index type);
216 static AssetPlugin& getLoader(std::type_index type);
Central registry and management system for source-specific AssetPlugin instances.
Definition AssetPluginStore.hpp:33
static AssetPlugin & getFallbackLoader()
Gets the fallback loader.
static void addPlugin(const std::filesystem::path &path)
Loads and registers a plugin from a shared library file.
static AssetPlugin & getLoader()
Gets a loader by its C++ type.
Definition AssetPluginStore.hpp:178
static AssetPlugin & getDefaultLoader()
Gets the currently configured default loader.
static void resetDefaults()
Resets all loader preferences to their default state.
static void setDefaultLoader(const std::string &name)
Sets the default asset loader by plugin name.
static void addPlugin(CreateAssetPluginFunction *factory)
Registers a plugin using a factory function.
static void setSecondaryLoader()
Sets the secondary asset loader by plugin type.
Definition AssetPluginStore.hpp:91
static void setSecondaryLoader(const std::string &name)
Sets the secondary asset loader by plugin name.
static void setDefaultLoader()
Sets the default asset loader by plugin type.
Definition AssetPluginStore.hpp:61
static AssetPlugin & getLoader(const std::string &name)
Gets a loader by its plugin name.
static AssetPlugin & getSecondaryLoader()
Gets the currently configured secondary loader.
Abstract base class for source-specific asset loading plugins.
Definition AssetPlugin.hpp:52