From f64ee43576a649f53bd998cbaaa0cd31a18194fb Mon Sep 17 00:00:00 2001 From: HuYingzhuo Date: Tue, 23 Apr 2019 22:07:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9A=E4=B9=89=E4=B8=80=E4=BA=9B=E8=AF=B4?= =?UTF-8?q?=E6=98=8E=E6=9C=AA=E6=9D=A5=E8=A6=81=E5=81=9A=E7=9A=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- example/Vulkan/FlatColor.vert | 2 +- example/Vulkan/VKDescriptorSets.cpp | 6 +----- example/Vulkan/VKDescriptorSets.h | 2 +- example/Vulkan/main.cpp | 6 ++++-- 4 files changed, 7 insertions(+), 9 deletions(-) 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);