diff --git a/src/SceneGraph/Vulkan/VKDescriptorBindingManage.cpp b/src/SceneGraph/Vulkan/VKDescriptorBindingManage.cpp index 6185c8d8..225a7964 100644 --- a/src/SceneGraph/Vulkan/VKDescriptorBindingManage.cpp +++ b/src/SceneGraph/Vulkan/VKDescriptorBindingManage.cpp @@ -13,39 +13,50 @@ bool DescriptorBinding::Bind(MaterialInstance *mi) if(!mp) return(false); - { - const auto *dp=ubo_map.GetDataList(); + const BindingMapArray &bma=mp->GetBindingMap(); - for(uint i=0;i0) + { + const auto *dp=ubo_bm.GetDataList(); + const uint count=ubo_bm.GetCount(); + + for(uint i=0;iBindUBO((*dp)->left,(*dp)->right); + buf=GetUBO((*dp)->left); + + if(buf) + mp->BindUBO((*dp)->right,buf,false); ++dp; } } + if(ubo_dynamic_bm.GetCount()>0) { - const auto *dp=ssbo_map.GetDataList(); + const auto *dp=ubo_dynamic_bm.GetDataList(); + const uint count=ubo_dynamic_bm.GetCount(); - for(uint i=0;iBindSSBO((*dp)->left,(*dp)->right); + buf=GetUBO((*dp)->left); + + if(buf) + mp->BindUBO((*dp)->right,buf,true); ++dp; } } - //{ - // const auto *dp=texture_map.GetDataList(); - - // for(uint i=0;iBindImageSampler((*dp)->left,(*dp)->right); - - // ++dp; - // } - //} - mp->Update(); return(true); }