Add material render metadata and loader parsing

This commit is contained in:
2026-03-27 00:30:49 +08:00
parent c97510ed5b
commit f68da2e3f9
6 changed files with 586 additions and 26 deletions

View File

@@ -1,10 +1,26 @@
#include <XCEngine/Core/Asset/ResourceManager.h>
#include <XCEngine/Core/Asset/ResourceHandle.h>
#include <XCEngine/Core/Asset/ResourceTypes.h>
#include <XCEngine/Resources/Material/MaterialLoader.h>
#include <XCEngine/Resources/Shader/ShaderLoader.h>
namespace XCEngine {
namespace Resources {
namespace {
template<typename TLoader>
void RegisterBuiltinLoader(ResourceManager& manager, TLoader& loader) {
if (manager.GetLoader(loader.GetResourceType()) == nullptr) {
manager.RegisterLoader(&loader);
}
}
MaterialLoader g_materialLoader;
ShaderLoader g_shaderLoader;
} // namespace
ResourceManager& ResourceManager::Get() {
static ResourceManager instance;
return instance;
@@ -13,6 +29,9 @@ ResourceManager& ResourceManager::Get() {
void ResourceManager::Initialize() {
m_asyncLoader = Core::MakeUnique<AsyncLoader>();
m_asyncLoader->Initialize(2);
RegisterBuiltinLoader(*this, g_materialLoader);
RegisterBuiltinLoader(*this, g_shaderLoader);
}
void ResourceManager::Shutdown() {