ULRE/src/SceneGraph/Vulkan/VKMaterialInstance.cpp

39 lines
818 B
C++
Raw Normal View History

2021-09-14 20:31:15 +08:00
#include<hgl/graph/VKDevice.h>
#include<hgl/graph/VKMaterialInstance.h>
#include<hgl/graph/VKMaterial.h>
#include<hgl/graph/VKMaterialParameters.h>
VK_NAMESPACE_BEGIN
2021-09-14 20:31:15 +08:00
MaterialInstance *GPUDevice::CreateMI(Material *mtl)
{
2021-09-14 20:31:15 +08:00
if(!mtl)return(nullptr);
MaterialParameters *mp=CreateMP(mtl,DescriptorSetsType::Value);
2021-09-14 20:31:15 +08:00
return(new MaterialInstance(mtl,mp));
}
MaterialInstance::MaterialInstance(Material *mtl,MaterialParameters *p)
{
material=mtl;
mp_value=p;
}
MaterialInstance::~MaterialInstance()
{
SAFE_CLEAR(mp_value);
}
MaterialParameters *MaterialInstance::GetMP(const DescriptorSetsType &type)
{
//if(type==DescriptorSetsType::Texture
// return mp_texture;
if(type==DescriptorSetsType::Value)
return mp_value;
return material->GetMP(type);
}
VK_NAMESPACE_END