standalone GPUDevice::CreateMP
This commit is contained in:
parent
1a8bd0a607
commit
de2926a6d5
@ -209,8 +209,6 @@ public: //
|
|||||||
|
|
||||||
public: //shader & material
|
public: //shader & material
|
||||||
|
|
||||||
MaterialParameters *CreateMP(const MaterialDescriptorManager *,const PipelineLayoutData *,const DescriptorSetType &);
|
|
||||||
|
|
||||||
ShaderModule *CreateShaderModule(VkShaderStageFlagBits,const uint32_t *,const size_t);
|
ShaderModule *CreateShaderModule(VkShaderStageFlagBits,const uint32_t *,const size_t);
|
||||||
|
|
||||||
Material *CreateMaterial(const UTF8String &mtl_name,ShaderModuleMap *shader_maps,MaterialDescriptorManager *,VertexInput *);
|
Material *CreateMaterial(const UTF8String &mtl_name,ShaderModuleMap *shader_maps,MaterialDescriptorManager *,VertexInput *);
|
||||||
|
@ -18,12 +18,6 @@ protected:
|
|||||||
|
|
||||||
DescriptorSet *descriptor_set;
|
DescriptorSet *descriptor_set;
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
friend class GPUDevice;
|
|
||||||
|
|
||||||
MaterialParameters(const MaterialDescriptorManager *,const DescriptorSetType &type,DescriptorSet *);
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
const DescriptorSetType GetType (){return set_type;}
|
const DescriptorSetType GetType (){return set_type;}
|
||||||
@ -47,6 +41,7 @@ public:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
MaterialParameters(const MaterialDescriptorManager *,const DescriptorSetType &type,DescriptorSet *);
|
||||||
virtual ~MaterialParameters();
|
virtual ~MaterialParameters();
|
||||||
|
|
||||||
bool BindUBO(const int &index,DeviceBuffer *ubo,bool dynamic=false);
|
bool BindUBO(const int &index,DeviceBuffer *ubo,bool dynamic=false);
|
||||||
|
@ -55,14 +55,13 @@ namespace
|
|||||||
++itp;
|
++itp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}//namespace
|
|
||||||
|
|
||||||
MaterialParameters *GPUDevice::CreateMP(const MaterialDescriptorManager *desc_manager,const PipelineLayoutData *pld,const DescriptorSetType &desc_set_type)
|
MaterialParameters *CreateMP(VkDevice device,VkDescriptorPool desc_pool,const MaterialDescriptorManager *desc_manager,const PipelineLayoutData *pld,const DescriptorSetType &desc_set_type)
|
||||||
{
|
{
|
||||||
if(!desc_manager||!pld)return(nullptr);
|
if(!desc_manager||!pld)return(nullptr);
|
||||||
RANGE_CHECK_RETURN_NULLPTR(desc_set_type)
|
RANGE_CHECK_RETURN_NULLPTR(desc_set_type)
|
||||||
|
|
||||||
DescriptorSet *ds=CreateDS(attr->device,attr->desc_pool,pld,desc_set_type);
|
DescriptorSet *ds=CreateDS(device,desc_pool,pld,desc_set_type);
|
||||||
|
|
||||||
if(!ds)return(nullptr);
|
if(!ds)return(nullptr);
|
||||||
|
|
||||||
@ -74,6 +73,7 @@ MaterialParameters *GPUDevice::CreateMP(const MaterialDescriptorManager *desc_ma
|
|||||||
|
|
||||||
return(new MaterialParameters(desc_manager,desc_set_type,ds));
|
return(new MaterialParameters(desc_manager,desc_set_type,ds));
|
||||||
}
|
}
|
||||||
|
}//namespace
|
||||||
|
|
||||||
Material *GPUDevice::CreateMaterial(const UTF8String &mtl_name,ShaderModuleMap *shader_maps,MaterialDescriptorManager *desc_manager,VertexInput *vi)
|
Material *GPUDevice::CreateMaterial(const UTF8String &mtl_name,ShaderModuleMap *shader_maps,MaterialDescriptorManager *desc_manager,VertexInput *vi)
|
||||||
{
|
{
|
||||||
@ -107,7 +107,7 @@ Material *GPUDevice::CreateMaterial(const UTF8String &mtl_name,ShaderModuleMap *
|
|||||||
ENUM_CLASS_FOR(DescriptorSetType,int,dst)
|
ENUM_CLASS_FOR(DescriptorSetType,int,dst)
|
||||||
{
|
{
|
||||||
if(desc_manager->hasSet((DescriptorSetType)dst))
|
if(desc_manager->hasSet((DescriptorSetType)dst))
|
||||||
data->mp_array[dst]=CreateMP(desc_manager,pld,(DescriptorSetType)dst);
|
data->mp_array[dst]=CreateMP(attr->device,attr->desc_pool,desc_manager,pld,(DescriptorSetType)dst);
|
||||||
else
|
else
|
||||||
data->mp_array[dst]=nullptr;
|
data->mp_array[dst]=nullptr;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user