2019-04-25 10:09:56 +08:00
|
|
|
|
#include"VKMaterial.h"
|
2019-04-25 21:57:37 +08:00
|
|
|
|
#include"VKDescriptorSets.h"
|
|
|
|
|
#include"VKShader.h"
|
2019-04-27 01:09:27 +08:00
|
|
|
|
#include"VKVertexAttributeBinding.h"
|
2019-04-25 10:09:56 +08:00
|
|
|
|
VK_NAMESPACE_BEGIN
|
2019-04-27 02:07:06 +08:00
|
|
|
|
Material::Material(Device *dev,Shader *s)
|
|
|
|
|
{
|
|
|
|
|
device=dev;
|
|
|
|
|
shader=s;
|
|
|
|
|
dsl_creater=new DescriptorSetLayoutCreater(dev);
|
|
|
|
|
}
|
|
|
|
|
|
2019-04-25 10:09:56 +08:00
|
|
|
|
Material::~Material()
|
|
|
|
|
{
|
2019-04-27 02:07:06 +08:00
|
|
|
|
delete dsl_creater;
|
2019-04-25 10:09:56 +08:00
|
|
|
|
delete shader;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MaterialInstance *Material::CreateInstance()
|
|
|
|
|
{
|
2019-04-27 01:36:58 +08:00
|
|
|
|
return(new MaterialInstance(this));
|
|
|
|
|
}
|
2019-04-26 21:43:22 +08:00
|
|
|
|
|
2019-04-27 01:36:58 +08:00
|
|
|
|
MaterialInstance::MaterialInstance(Material *m)
|
|
|
|
|
{
|
|
|
|
|
mat=m;
|
|
|
|
|
vab=->CreateVertexAttributeBinding();
|
2019-04-26 21:43:22 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MaterialInstance::~MaterialInstance()
|
|
|
|
|
{
|
2019-04-27 01:09:27 +08:00
|
|
|
|
delete vab;
|
2019-04-27 01:36:58 +08:00
|
|
|
|
delete dsl_creater;
|
2019-04-25 10:09:56 +08:00
|
|
|
|
}
|
|
|
|
|
VK_NAMESPACE_END
|