updated DescriptorBinding::BindUBO, to support dynamic param.

This commit is contained in:
hyzboy 2024-03-06 22:40:51 +08:00
parent c355f96f9b
commit 49eb8f42f0
No known key found for this signature in database
GPG Key ID: 067EE4525D4FB6D3
2 changed files with 14 additions and 15 deletions

View File

@ -101,7 +101,7 @@ namespace hgl
private: private:
void BindUBO(MaterialParameters *,const BindingMap &); void BindUBO(MaterialParameters *,const BindingMap &,bool dynamic);
public: public:

View File

@ -3,12 +3,12 @@
#include<hgl/graph/VKMaterialInstance.h> #include<hgl/graph/VKMaterialInstance.h>
VK_NAMESPACE_BEGIN VK_NAMESPACE_BEGIN
void DescriptorBinding::BindUBO(MaterialParameters *mp,const BindingMap &binding_map) void DescriptorBinding::BindUBO(MaterialParameters *mp,const BindingMap &binding_map,bool dynamic)
{ {
if (binding_map.GetCount() <= 0)return;
DeviceBuffer* buf = nullptr; DeviceBuffer* buf = nullptr;
if (binding_map.GetCount() > 0)
{
const auto *dp =binding_map.GetDataList(); const auto *dp =binding_map.GetDataList();
const uint count =binding_map.GetCount(); const uint count =binding_map.GetCount();
@ -17,12 +17,11 @@ void DescriptorBinding::BindUBO(MaterialParameters *mp,const BindingMap &binding
buf=GetUBO((*dp)->key); buf=GetUBO((*dp)->key);
if(buf) if(buf)
mp->BindUBO((*dp)->value, buf, false); mp->BindUBO((*dp)->value,buf,dynamic);
++dp; ++dp;
} }
} }
}
bool DescriptorBinding::Bind(Material *mtl) bool DescriptorBinding::Bind(Material *mtl)
{ {
@ -41,8 +40,8 @@ bool DescriptorBinding::Bind(Material *mtl)
// const BindingMap &texture_bm=bma[VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER]; // const BindingMap &texture_bm=bma[VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER];
BindUBO(mp,bma[VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER]); BindUBO(mp,bma[VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER],false);
BindUBO(mp,bma[VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC]); BindUBO(mp,bma[VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC],true);
mp->Update(); mp->Update();
return(true); return(true);