feat(resources): add LoadGroup and UnloadGroup for batch resource loading
This commit is contained in:
@@ -85,6 +85,23 @@ public:
|
||||
|
||||
Containers::String ResolvePath(const Containers::String& relativePath) const;
|
||||
|
||||
template<typename T>
|
||||
void LoadGroup(const Containers::Array<Containers::String>& paths,
|
||||
std::function<void(ResourceHandle<T>)> callback) {
|
||||
for (const auto& path : paths) {
|
||||
LoadAsync(path, GetResourceType<T>(), [callback](LoadResult result) {
|
||||
if (result && result.resource) {
|
||||
callback(ResourceHandle<T>(static_cast<T*>(result.resource)));
|
||||
} else {
|
||||
callback(ResourceHandle<T>());
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Containers::Array<Containers::String> GetResourcePaths() const;
|
||||
void UnloadGroup(const Containers::Array<ResourceGUID>& guids);
|
||||
|
||||
private:
|
||||
ResourceManager() = default;
|
||||
~ResourceManager() = default;
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#include "IResourceLoader.h"
|
||||
#include "ResourceCache.h"
|
||||
#include "AsyncLoader.h"
|
||||
#include "ResourceDependencyGraph.h"
|
||||
|
||||
#include "Texture.h"
|
||||
#include "TextureLoader.h"
|
||||
@@ -22,6 +23,7 @@
|
||||
|
||||
#include "ResourceFileSystem.h"
|
||||
#include "FileArchive.h"
|
||||
#include "ResourcePackage.h"
|
||||
|
||||
// Forward declarations for concrete resource types
|
||||
namespace XCEngine {
|
||||
|
||||
Reference in New Issue
Block a user