Engine
Raylib based game framework
Loading...
Searching...
No Matches
ResourceManager Class Reference

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

Detailed Description

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.

Member Function Documentation

◆ AddCache()

template<typename Resource, typename... Args>
std::shared_ptr< ResourceCache< Resource > > ResourceManager::AddCache ( Args &&... args)
inline

Creates and registers a cache for a resource type.

If a cache for this type already exists it is returned without modification.

Template Parameters
ResourceResource type to cache
ArgsResourceCache constructor argument types
Parameters
argsLoad and unload functions forwarded to ResourceCache
Returns
Shared pointer to the cache

◆ ClearCaches()

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.

◆ GetCache()

template<typename Resource>
std::shared_ptr< ResourceCache< Resource > > ResourceManager::GetCache ( )
inline

Returns the cache for the given resource type.

Asserts if no cache has been registered for this type.

Template Parameters
ResourceResource type
Returns
Shared pointer to the ResourceCache

◆ RemoveCache()

template<typename Resource>
void ResourceManager::RemoveCache ( )
inline

Removes the cache for the given resource type.

Any resources still referenced by shared_ptrs remain alive until those pointers are released.

Template Parameters
ResourceResource type whose cache should be removed

The documentation for this class was generated from the following files: