![]() |
Chira Engine
A customizable MIT-licensed game engine.
|
A chunk of data, usually a file. Is typically cached and shared. More...
#include <Resource.h>
Public Member Functions | |
Resource (std::string identifier_) | |
virtual void | compile (const byte[], std::size_t)=0 |
std::string_view | getIdentifier () const |
Static Public Member Functions | |
static void | addResourceProvider (IResourceProvider *provider) |
static IResourceProvider * | getLatestResourceProvider (const std::string &provider) |
static IResourceProvider * | getResourceProviderWithResource (const std::string &identifier) |
template<typename ResourceType , typename... Params> | |
static SharedPointer< ResourceType > | getResource (const std::string &identifier, Params... params) |
template<typename ResourceType , typename... Params> | |
static void | precacheResource (const std::string &identifier, Params... params) |
template<typename ResourceType > | |
static SharedPointer< ResourceType > | getCachedResource (const std::string &identifier) |
template<typename ResourceType , typename... Params> | |
static SharedPointer< ResourceType > | getUniqueResource (const std::string &identifier, Params... params) |
template<typename ResourceType , typename... Params> | |
static SharedPointer< ResourceType > | getUniqueUncachedResource (const std::string &identifier, Params... params) |
You might want to use this sparingly as it defeats the entire point of a cached, shared resource system. | |
template<typename ResourceType , typename... Params> | |
static std::unique_ptr< ResourceType > | getUniqueUncachedPropertyResource (const std::string &identifier, const nlohmann::json &props, Params... params) |
The only way to make a PropertiesResource without a provider is to make it unique, and not to cache it. More... | |
static std::pair< std::string, std::string > | splitResourceIdentifier (const std::string &identifier) |
static const std::vector< std::unique_ptr< IResourceProvider > > & | getResourceProviders (const std::string &providerName) |
static bool | hasResource (const std::string &identifier) |
static void | removeResource (const std::string &identifier) |
If resource is present in the cache and has a reference count less than or equal to 2, mark it for removal. | |
static void | cleanup () |
Delete all resources marked for removal. | |
static void | discardAll () |
Deletes ALL resources and providers. Should only ever be called once, when the program closes. | |
template<typename ResourceType > | |
static bool | registerDefaultResource (const std::string &identifier) |
template<typename ResourceType > | |
static bool | hasDefaultResource () |
template<typename ResourceType > | |
static SharedPointer< ResourceType > | getDefaultResource () |
static void | createDefaultResources () |
Static Protected Member Functions | |
static auto | getDefaultResourceConstructors () -> std::unordered_map< std::type_index, std::function< void()>> & |
static void | logResourceError (const std::string &identifier, const std::string &resourceName) |
We do a few predeclaration workarounds. | |
Protected Attributes | |
std::string | identifier |
Static Protected Attributes | |
static std::unordered_map< std::string, std::vector< std::unique_ptr< IResourceProvider > > > | providers |
static std::unordered_map< std::string, std::unordered_map< std::string, SharedPointer< Resource > > > | resources |
static std::unordered_map< std::type_index, SharedPointer< Resource > > | defaultResources |
static std::vector< std::string > | garbageResources |
Friends | |
class | ResourceUsageTrackerPanel |
A chunk of data, usually a file. Is typically cached and shared.
Definition at line 19 of file Resource.h.
|
inlinestatic |
The only way to make a PropertiesResource without a provider is to make it unique, and not to cache it.
You might want to use this sparingly as it defeats the entire point of a cached, shared resource system.
Definition at line 129 of file Resource.h.