Files
Seele/src/Engine/Asset/MaterialLoader.cpp
T

42 lines
1.1 KiB
C++
Raw Normal View History

2020-06-02 11:46:18 +02:00
#include "MaterialLoader.h"
#include "Graphics/Graphics.h"
2021-10-19 23:04:38 +02:00
#include "Material/MaterialAsset.h"
2020-10-03 11:00:10 +02:00
#include "AssetRegistry.h"
2020-06-02 11:46:18 +02:00
using namespace Seele;
MaterialLoader::MaterialLoader(Gfx::PGraphics graphics)
2020-09-19 14:36:50 +02:00
: graphics(graphics)
2020-06-02 11:46:18 +02:00
{
2021-10-19 23:04:38 +02:00
placeholderMaterial = new MaterialAsset(std::filesystem::absolute("./shaders/Placeholder.asset"));
placeholderMaterial->load();
2020-09-19 14:36:50 +02:00
graphics->getShaderCompiler()->registerMaterial(placeholderMaterial);
2020-06-02 11:46:18 +02:00
}
MaterialLoader::~MaterialLoader()
{
}
2021-11-11 20:12:50 +01:00
void MaterialLoader::importAsset(const std::filesystem::path& name)
2020-06-02 11:46:18 +02:00
{
2021-11-11 20:12:50 +01:00
std::filesystem::path assetPath = name.filename();
assetPath.replace_extension("asset");
PMaterialAsset asset = new MaterialAsset(assetPath.generic_string());
asset->setStatus(Asset::Status::Loading);
AssetRegistry::get().registerMaterial(asset);
import(name, asset);
}
Job MaterialLoader::import(std::filesystem::path, PMaterialAsset asset)
{
asset->load();
graphics->getShaderCompiler()->registerMaterial(asset);
AssetRegistry::get().registerMaterial(asset);
co_return;
2020-06-02 11:46:18 +02:00
}
2020-10-03 11:00:10 +02:00
2021-10-19 23:04:38 +02:00
PMaterialAsset MaterialLoader::getPlaceHolderMaterial()
2020-10-03 11:00:10 +02:00
{
return placeholderMaterial;
}