feat(resources): add LoadGroup and UnloadGroup for batch resource loading

This commit is contained in:
2026-03-18 03:20:18 +08:00
parent 87835c5f7a
commit 8344057886
3 changed files with 40 additions and 0 deletions

View File

@@ -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;

View File

@@ -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 {