2021-09-14 20:31:15 +08:00
|
|
|
#include<hgl/graph/VKDevice.h>
|
2021-06-16 21:03:52 +08:00
|
|
|
#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-06-16 21:03:52 +08:00
|
|
|
{
|
2021-09-14 20:31:15 +08:00
|
|
|
if(!mtl)return(nullptr);
|
2021-06-16 21:03:52 +08:00
|
|
|
|
2021-09-27 21:20:22 +08:00
|
|
|
MaterialParameters *mp=CreateMP(mtl,DescriptorSetsType::Value);
|
2021-09-14 20:31:15 +08:00
|
|
|
|
|
|
|
return(new MaterialInstance(mtl,mp));
|
2021-06-16 21:03:52 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
MaterialInstance::MaterialInstance(Material *mtl,MaterialParameters *p)
|
|
|
|
{
|
|
|
|
material=mtl;
|
|
|
|
|
|
|
|
mp_value=p;
|
|
|
|
}
|
|
|
|
|
|
|
|
MaterialInstance::~MaterialInstance()
|
|
|
|
{
|
|
|
|
SAFE_CLEAR(mp_value);
|
|
|
|
}
|
|
|
|
|
2021-09-27 21:20:22 +08:00
|
|
|
MaterialParameters *MaterialInstance::GetMP(const DescriptorSetsType &type)
|
2021-06-16 21:03:52 +08:00
|
|
|
{
|
2021-09-27 21:20:22 +08:00
|
|
|
//if(type==DescriptorSetsType::Texture
|
2021-06-16 21:03:52 +08:00
|
|
|
// return mp_texture;
|
|
|
|
|
2021-09-27 21:20:22 +08:00
|
|
|
if(type==DescriptorSetsType::Value)
|
2021-06-16 21:03:52 +08:00
|
|
|
return mp_value;
|
|
|
|
|
|
|
|
return material->GetMP(type);
|
|
|
|
}
|
|
|
|
VK_NAMESPACE_END
|