From 7d856a5c79571288ea7880b93f43b427c1d422ca Mon Sep 17 00:00:00 2001 From: hyzboy Date: Mon, 19 Oct 2020 22:24:25 +0800 Subject: [PATCH] use new struct at CreateShaderModule --- src/RenderDevice/Vulkan/VKShaderModule.cpp | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/src/RenderDevice/Vulkan/VKShaderModule.cpp b/src/RenderDevice/Vulkan/VKShaderModule.cpp index 2d7db7b9..ef1a31d4 100644 --- a/src/RenderDevice/Vulkan/VKShaderModule.cpp +++ b/src/RenderDevice/Vulkan/VKShaderModule.cpp @@ -7,20 +7,9 @@ ShaderModule *Device::CreateShaderModule(ShaderResource *sr) { if(!sr)return(nullptr); - VkPipelineShaderStageCreateInfo *shader_stage=new VkPipelineShaderStageCreateInfo; - shader_stage->sType =VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO; - shader_stage->pNext =nullptr; - shader_stage->pSpecializationInfo =nullptr; - shader_stage->flags =0; - shader_stage->stage =sr->GetStage(); - shader_stage->pName ="main"; + PipelineShaderStageCreateInfo *shader_stage=new PipelineShaderStageCreateInfo(sr->GetStage()); - VkShaderModuleCreateInfo moduleCreateInfo; - moduleCreateInfo.sType =VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO; - moduleCreateInfo.pNext =nullptr; - moduleCreateInfo.flags =0; - moduleCreateInfo.codeSize =sr->GetCodeSize(); - moduleCreateInfo.pCode =sr->GetCode(); + ShaderModuleCreateInfo moduleCreateInfo(sr); if(vkCreateShaderModule(attr->device,&moduleCreateInfo,nullptr,&(shader_stage->module))!=VK_SUCCESS) return(nullptr); @@ -48,7 +37,7 @@ ShaderModule::ShaderModule(VkDevice dev,VkPipelineShaderStageCreateInfo *sci,Sha ShaderModule::~ShaderModule() { vkDestroyShaderModule(device,stage_create_info->module,nullptr); - delete stage_create_info; + //这里不用删除stage_create_info,材质中会删除的 } VertexShaderModule::VertexShaderModule(VkDevice dev,VkPipelineShaderStageCreateInfo *pssci,ShaderResource *sr):ShaderModule(dev,pssci,sr)