diff --git a/example/Vulkan/FlatColor.vert b/example/Vulkan/FlatColor.vert index 2367742d..3b5a4715 100644 --- a/example/Vulkan/FlatColor.vert +++ b/example/Vulkan/FlatColor.vert @@ -3,7 +3,7 @@ layout(location = 0) in vec2 Vertex; layout(location = 1) in vec3 Color; -layout (binding = 0) uniform UBO +layout (binding = 0) uniform MVPMatrix { mat4 MVP; } ubo; diff --git a/example/Vulkan/VKDescriptorSets.cpp b/example/Vulkan/VKDescriptorSets.cpp index e009ccd8..e1ea4200 100644 --- a/example/Vulkan/VKDescriptorSets.cpp +++ b/example/Vulkan/VKDescriptorSets.cpp @@ -36,7 +36,7 @@ DescriptorSetLayout::~DescriptorSetLayout() DestroyDescriptorSetLayout(*device,desc_set_layout_list); } -bool DescriptorSetLayout::UpdateBuffer(const uint32_t binding,const VkDescriptorBufferInfo *buf_info) +bool DescriptorSetLayout::UpdateUBO(const uint32_t binding,const VkDescriptorBufferInfo *buf_info) { int index; @@ -46,13 +46,9 @@ bool DescriptorSetLayout::UpdateBuffer(const uint32_t binding,const VkDescriptor VkDescriptorSet set; if(!desc_sets.Get(index,set)) return(false); - // Update the descriptor set determining the shader binding points - // For every binding point used in a shader there needs to be one - // descriptor set matching that binding point VkWriteDescriptorSet writeDescriptorSet = {}; - // Binding 0 : Uniform buffer writeDescriptorSet.sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET; writeDescriptorSet.dstSet = set; writeDescriptorSet.descriptorCount = 1; diff --git a/example/Vulkan/VKDescriptorSets.h b/example/Vulkan/VKDescriptorSets.h index b4d8e363..94033081 100644 --- a/example/Vulkan/VKDescriptorSets.h +++ b/example/Vulkan/VKDescriptorSets.h @@ -32,7 +32,7 @@ public: const List & GetSets ()const{return desc_sets;} - bool UpdateBuffer(const uint32_t binding,const VkDescriptorBufferInfo *buf_info); + bool UpdateUBO(const uint32_t binding,const VkDescriptorBufferInfo *buf_info); };//class DescriptorSetLayout /** diff --git a/example/Vulkan/main.cpp b/example/Vulkan/main.cpp index 73c13171..17e27e71 100644 --- a/example/Vulkan/main.cpp +++ b/example/Vulkan/main.cpp @@ -202,11 +202,13 @@ int main(int,char **) vulkan::DescriptorSetLayoutCreater dslc(device); - dslc.BindUBO(0,VK_SHADER_STAGE_VERTEX_BIT); + const int mvp_binding=0; //shader->GetBinding("MVPMatrix"); 实现从材质shader文件中根据名称获取binding的功能 + + dslc.BindUBO(mvp_binding,VK_SHADER_STAGE_VERTEX_BIT); vulkan::DescriptorSetLayout *dsl=dslc.Create(); - dsl->UpdateBuffer(0,*ubo); + dsl->UpdateUBO(mvp_binding,*ubo); vulkan::PipelineLayout *pl=CreatePipelineLayout(*device,dsl);