2023-01-21 18:43:21 +01:00
|
|
|
#include "MaterialInstanceAsset.h"
|
|
|
|
|
#include "Material/MaterialInstance.h"
|
|
|
|
|
#include "Material/Material.h"
|
2023-01-29 18:58:59 +01:00
|
|
|
#include "Graphics/Graphics.h"
|
2023-11-05 10:36:01 +01:00
|
|
|
#include "Asset/AssetRegistry.h"
|
2023-01-21 18:43:21 +01:00
|
|
|
|
|
|
|
|
using namespace Seele;
|
|
|
|
|
|
|
|
|
|
MaterialInstanceAsset::MaterialInstanceAsset()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2023-02-13 14:56:13 +01:00
|
|
|
MaterialInstanceAsset::MaterialInstanceAsset(std::string_view folderPath, std::string_view name)
|
|
|
|
|
: Asset(folderPath, name)
|
2023-01-21 18:43:21 +01:00
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MaterialInstanceAsset::~MaterialInstanceAsset()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2023-02-13 14:56:13 +01:00
|
|
|
void MaterialInstanceAsset::save(ArchiveBuffer& buffer) const
|
2023-01-21 18:43:21 +01:00
|
|
|
{
|
2023-11-05 10:36:01 +01:00
|
|
|
Serialization::save(buffer, baseMaterial->getAssetIdentifier());
|
|
|
|
|
material->save(buffer);
|
2023-01-21 18:43:21 +01:00
|
|
|
}
|
|
|
|
|
|
2023-02-13 14:56:13 +01:00
|
|
|
void MaterialInstanceAsset::load(ArchiveBuffer& buffer)
|
2023-01-21 18:43:21 +01:00
|
|
|
{
|
2023-11-05 10:36:01 +01:00
|
|
|
std::string id;
|
|
|
|
|
Serialization::load(buffer, id);
|
2023-11-07 16:55:13 +01:00
|
|
|
material = new MaterialInstance();
|
2023-11-05 10:36:01 +01:00
|
|
|
material->load(buffer);
|
|
|
|
|
baseMaterial = AssetRegistry::findMaterial(id);
|
|
|
|
|
material->setBaseMaterial(baseMaterial);
|
2023-01-21 18:43:21 +01:00
|
|
|
}
|