|
Engine
Raylib based game framework
|
Owns a collection of typed resource caches. More...
#include <ResourceManager.hpp>
Public Member Functions | |
| template<typename Resource, typename... Args> | |
| std::shared_ptr< ResourceCache< Resource > > | AddCache (Args &&... args) |
| Creates and registers a cache for a resource type. | |
| template<typename Resource> | |
| std::shared_ptr< ResourceCache< Resource > > | GetCache () |
| Returns the cache for the given resource type. | |
| template<typename Resource> | |
| void | RemoveCache () |
| Removes the cache for the given resource type. | |
| void | ClearCaches () |
| Removes all registered caches. | |
Friends | |
| class | Engine |
Owns a collection of typed resource caches.
Each resource type gets its own ResourceCache. Caches are added once at startup and then accessed by type anywhere in the engine.
All public methods are safe to call from multiple threads concurrently.
|
inline |
Creates and registers a cache for a resource type.
If a cache for this type already exists it is returned without modification.
| Resource | Resource type to cache |
| Args | ResourceCache constructor argument types |
| args | Load and unload functions forwarded to ResourceCache |
| void ResourceManager::ClearCaches | ( | ) |
Removes all registered caches.
Called by the Engine destructor. Resources still held by shared_ptrs remain alive until those pointers are released.
|
inline |
Returns the cache for the given resource type.
Asserts if no cache has been registered for this type.
| Resource | Resource type |
|
inline |
Removes the cache for the given resource type.
Any resources still referenced by shared_ptrs remain alive until those pointers are released.
| Resource | Resource type whose cache should be removed |