所有PipelineCreater定义改用智能指针
This commit is contained in:
parent
8c1de18045
commit
1e8eb7d6bf
@ -87,7 +87,8 @@ private:
|
|||||||
|
|
||||||
bool InitPipeline()
|
bool InitPipeline()
|
||||||
{
|
{
|
||||||
vulkan::PipelineCreater *pipeline_creater=new vulkan::PipelineCreater(device,material,device->GetMainRenderPass(),device->GetExtent());
|
SharedPtr<vulkan::PipelineCreater>
|
||||||
|
pipeline_creater=new vulkan::PipelineCreater(device,material,device->GetMainRenderPass(),device->GetExtent());
|
||||||
pipeline_creater->SetDepthTest(true);
|
pipeline_creater->SetDepthTest(true);
|
||||||
pipeline_creater->SetDepthWrite(true);
|
pipeline_creater->SetDepthWrite(true);
|
||||||
pipeline_creater->SetCullMode(VK_CULL_MODE_NONE);
|
pipeline_creater->SetCullMode(VK_CULL_MODE_NONE);
|
||||||
@ -98,8 +99,6 @@ private:
|
|||||||
return(false);
|
return(false);
|
||||||
|
|
||||||
db->Add(pipeline_solid);
|
db->Add(pipeline_solid);
|
||||||
|
|
||||||
delete pipeline_creater;
|
|
||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@ private:
|
|||||||
Texture2DPointer texture_list[4];
|
Texture2DPointer texture_list[4];
|
||||||
};
|
};
|
||||||
|
|
||||||
List<VkFormat> color_format_list;
|
List<VkFormat> gbuffer_format_list;
|
||||||
List<vulkan::ImageView *> image_view_list;
|
List<vulkan::ImageView *> image_view_list;
|
||||||
|
|
||||||
struct
|
struct
|
||||||
@ -91,13 +91,13 @@ private:
|
|||||||
|
|
||||||
for(uint i=0;i<3;i++)
|
for(uint i=0;i<3;i++)
|
||||||
{
|
{
|
||||||
gbuffer.color_format_list.Add(gbuffer.texture_list[i]->GetFormat());
|
gbuffer.gbuffer_format_list.Add(gbuffer.texture_list[i]->GetFormat());
|
||||||
gbuffer.image_view_list.Add(gbuffer.texture_list[i]->GetImageView());
|
gbuffer.image_view_list.Add(gbuffer.texture_list[i]->GetImageView());
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!device->CreateAttachment( gbuffer.attachment.ref_list,
|
if(!device->CreateAttachment( gbuffer.attachment.ref_list,
|
||||||
gbuffer.attachment.desc_list,
|
gbuffer.attachment.desc_list,
|
||||||
gbuffer.color_format_list,
|
gbuffer.gbuffer_format_list,
|
||||||
gbuffer.depth->GetFormat()))
|
gbuffer.depth->GetFormat()))
|
||||||
return(false);
|
return(false);
|
||||||
|
|
||||||
@ -112,7 +112,7 @@ private:
|
|||||||
gbuffer.renderpass=device->CreateRenderPass(gbuffer.attachment.desc_list,
|
gbuffer.renderpass=device->CreateRenderPass(gbuffer.attachment.desc_list,
|
||||||
gbuffer.subpass.desc,
|
gbuffer.subpass.desc,
|
||||||
gbuffer.subpass.dependency,
|
gbuffer.subpass.dependency,
|
||||||
gbuffer.color_format_list,
|
gbuffer.gbuffer_format_list,
|
||||||
gbuffer.depth->GetFormat());
|
gbuffer.depth->GetFormat());
|
||||||
|
|
||||||
if(!gbuffer.renderpass)
|
if(!gbuffer.renderpass)
|
||||||
@ -142,25 +142,24 @@ private:
|
|||||||
|
|
||||||
bool InitGBufferPipeline(SubpassParam *sp)
|
bool InitGBufferPipeline(SubpassParam *sp)
|
||||||
{
|
{
|
||||||
vulkan::PipelineCreater *pipeline_creater=new vulkan::PipelineCreater(device,sp->material,gbuffer.renderpass,device->GetExtent());
|
SharedPtr<vulkan::PipelineCreater> pipeline_creater=new vulkan::PipelineCreater(device,sp->material,gbuffer.renderpass,device->GetExtent());
|
||||||
pipeline_creater->SetDepthTest(true);
|
pipeline_creater->SetDepthTest(true);
|
||||||
pipeline_creater->SetDepthWrite(true);
|
pipeline_creater->SetDepthWrite(true);
|
||||||
pipeline_creater->SetCullMode(VK_CULL_MODE_BACK_BIT);
|
pipeline_creater->SetCullMode(VK_CULL_MODE_BACK_BIT);
|
||||||
pipeline_creater->Set(PRIM_TRIANGLES);
|
pipeline_creater->Set(PRIM_TRIANGLES);
|
||||||
|
|
||||||
sp->pipeline=pipeline_creater->Create();
|
sp->pipeline=pipeline_creater->Create();
|
||||||
|
|
||||||
if(!sp->pipeline)
|
if(!sp->pipeline)
|
||||||
return(false);
|
return(false);
|
||||||
|
|
||||||
db->Add(sp->pipeline);
|
db->Add(sp->pipeline);
|
||||||
|
|
||||||
delete pipeline_creater;
|
|
||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool InitCompositionPipeline(SubpassParam *sp)
|
bool InitCompositionPipeline(SubpassParam *sp)
|
||||||
{
|
{
|
||||||
vulkan::PipelineCreater *pipeline_creater=new vulkan::PipelineCreater(device,sp->material,device->GetMainRenderPass(),device->GetExtent());
|
SharedPtr<vulkan::PipelineCreater> pipeline_creater=new vulkan::PipelineCreater(device,sp->material,device->GetMainRenderPass(),device->GetExtent());
|
||||||
pipeline_creater->SetDepthTest(false);
|
pipeline_creater->SetDepthTest(false);
|
||||||
pipeline_creater->SetDepthWrite(false);
|
pipeline_creater->SetDepthWrite(false);
|
||||||
pipeline_creater->SetCullMode(VK_CULL_MODE_NONE);
|
pipeline_creater->SetCullMode(VK_CULL_MODE_NONE);
|
||||||
@ -171,8 +170,6 @@ private:
|
|||||||
return(false);
|
return(false);
|
||||||
|
|
||||||
db->Add(sp->pipeline);
|
db->Add(sp->pipeline);
|
||||||
|
|
||||||
delete pipeline_creater;
|
|
||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -114,21 +114,18 @@ private:
|
|||||||
|
|
||||||
bool InitPipeline()
|
bool InitPipeline()
|
||||||
{
|
{
|
||||||
constexpr os_char PIPELINE_FILENAME[]=OS_TEXT("2DSolid.pipeline");
|
SharedPtr<vulkan::PipelineCreater>
|
||||||
|
pipeline_creater=new vulkan::PipelineCreater(device,material,device->GetMainRenderPass(),device->GetExtent());
|
||||||
|
pipeline_creater->SetDepthTest(false);
|
||||||
|
pipeline_creater->SetDepthWrite(false);
|
||||||
|
pipeline_creater->CloseCullFace();
|
||||||
|
pipeline_creater->Set(PRIM_TRIANGLE_FAN);
|
||||||
|
|
||||||
{
|
pipeline=pipeline_creater->Create();
|
||||||
vulkan::PipelineCreater *pipeline_creater=new vulkan::PipelineCreater(device,material,device->GetMainRenderPass(),device->GetExtent());
|
if(!pipeline)return(false);
|
||||||
pipeline_creater->SetDepthTest(false);
|
|
||||||
pipeline_creater->SetDepthWrite(false);
|
|
||||||
pipeline_creater->CloseCullFace();
|
|
||||||
pipeline_creater->Set(PRIM_TRIANGLE_FAN);
|
|
||||||
|
|
||||||
pipeline=pipeline_creater->Create();
|
db->Add(pipeline);
|
||||||
db->Add(pipeline);
|
return(true);
|
||||||
delete pipeline_creater;
|
|
||||||
}
|
|
||||||
|
|
||||||
return pipeline;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool InitScene()
|
bool InitScene()
|
||||||
|
@ -84,23 +84,19 @@ private:
|
|||||||
|
|
||||||
bool InitPipeline()
|
bool InitPipeline()
|
||||||
{
|
{
|
||||||
{
|
SharedPtr<vulkan::PipelineCreater>
|
||||||
vulkan::PipelineCreater *pipeline_creater=new vulkan::PipelineCreater(device,material,device->GetMainRenderPass(),device->GetExtent());
|
pipeline_creater=new vulkan::PipelineCreater(device,material,device->GetMainRenderPass(),device->GetExtent());
|
||||||
pipeline_creater->SetDepthTest(true);
|
pipeline_creater->SetDepthTest(true);
|
||||||
pipeline_creater->SetDepthWrite(true);
|
pipeline_creater->SetDepthWrite(true);
|
||||||
pipeline_creater->CloseCullFace();
|
pipeline_creater->CloseCullFace();
|
||||||
pipeline_creater->Set(PRIM_LINES);
|
pipeline_creater->Set(PRIM_LINES);
|
||||||
|
|
||||||
pipeline_line=pipeline_creater->Create();
|
pipeline_line=pipeline_creater->Create();
|
||||||
if(!pipeline_line)
|
if(!pipeline_line)
|
||||||
return(false);
|
return(false);
|
||||||
|
|
||||||
db->Add(pipeline_line);
|
db->Add(pipeline_line);
|
||||||
|
return(true);
|
||||||
delete pipeline_creater;
|
|
||||||
}
|
|
||||||
|
|
||||||
return pipeline_line;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool InitScene()
|
bool InitScene()
|
||||||
|
@ -137,31 +137,35 @@ private:
|
|||||||
|
|
||||||
bool InitPipeline()
|
bool InitPipeline()
|
||||||
{
|
{
|
||||||
vulkan::PipelineCreater *pipeline_creater=new vulkan::PipelineCreater(device,material,device->GetMainRenderPass(),device->GetExtent());
|
SharedPtr<vulkan::PipelineCreater>
|
||||||
|
pipeline_creater=new vulkan::PipelineCreater(device,material,device->GetMainRenderPass(),device->GetExtent());
|
||||||
pipeline_creater->SetDepthTest(true);
|
pipeline_creater->SetDepthTest(true);
|
||||||
pipeline_creater->SetDepthWrite(true);
|
pipeline_creater->SetDepthWrite(true);
|
||||||
pipeline_creater->Set(PRIM_LINES);
|
pipeline_creater->Set(PRIM_LINES);
|
||||||
|
|
||||||
pipeline_line=pipeline_creater->Create();
|
pipeline_line=pipeline_creater->Create();
|
||||||
|
|
||||||
|
if(!pipeline_line)
|
||||||
|
return(false);
|
||||||
|
|
||||||
db->Add(pipeline_line);
|
db->Add(pipeline_line);
|
||||||
|
|
||||||
pipeline_creater->Set(PRIM_TRIANGLES);
|
pipeline_creater->Set(PRIM_TRIANGLES);
|
||||||
pipeline_creater->SetPolygonMode(VK_POLYGON_MODE_LINE);
|
pipeline_creater->SetPolygonMode(VK_POLYGON_MODE_LINE);
|
||||||
pipeline_solid=pipeline_creater->Create();
|
pipeline_solid=pipeline_creater->Create();
|
||||||
db->Add(pipeline_solid);
|
|
||||||
|
|
||||||
pipeline_creater->SetCullMode(VK_CULL_MODE_NONE);
|
|
||||||
pipeline_twoside=pipeline_creater->Create();
|
|
||||||
db->Add(pipeline_twoside);
|
|
||||||
|
|
||||||
delete pipeline_creater;
|
|
||||||
|
|
||||||
if(!pipeline_line)
|
|
||||||
return(false);
|
|
||||||
|
|
||||||
if(!pipeline_solid)
|
if(!pipeline_solid)
|
||||||
return(false);
|
return(false);
|
||||||
|
|
||||||
|
db->Add(pipeline_solid);
|
||||||
|
|
||||||
|
pipeline_creater->SetCullMode(VK_CULL_MODE_NONE);
|
||||||
|
pipeline_twoside=pipeline_creater->Create();
|
||||||
|
|
||||||
|
if(!pipeline_twoside)
|
||||||
|
return(false);
|
||||||
|
|
||||||
|
db->Add(pipeline_twoside);
|
||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -162,33 +162,31 @@ private:
|
|||||||
|
|
||||||
bool InitPipeline()
|
bool InitPipeline()
|
||||||
{
|
{
|
||||||
constexpr os_char PIPELINE_FILENAME[]=OS_TEXT("2DSolid.pipeline");
|
SharedPtr<vulkan::PipelineCreater>
|
||||||
|
pipeline_creater=new vulkan::PipelineCreater(device,material,device->GetMainRenderPass(),device->GetExtent());
|
||||||
|
pipeline_creater->SetDepthTest(false);
|
||||||
|
pipeline_creater->SetDepthWrite(false);
|
||||||
|
pipeline_creater->SetPolygonMode(VK_POLYGON_MODE_LINE);
|
||||||
|
pipeline_creater->CloseCullFace();
|
||||||
|
pipeline_creater->Set(PRIM_TRIANGLES);
|
||||||
|
|
||||||
{
|
pipeline_wireframe=pipeline_creater->Create();
|
||||||
vulkan::PipelineCreater *pipeline_creater=new vulkan::PipelineCreater(device,material,device->GetMainRenderPass(),device->GetExtent());
|
|
||||||
pipeline_creater->SetDepthTest(false);
|
|
||||||
pipeline_creater->SetDepthWrite(false);
|
|
||||||
pipeline_creater->SetPolygonMode(VK_POLYGON_MODE_LINE);
|
|
||||||
pipeline_creater->CloseCullFace();
|
|
||||||
pipeline_creater->Set(PRIM_TRIANGLES);
|
|
||||||
|
|
||||||
pipeline_wireframe=pipeline_creater->Create();
|
if(!pipeline_wireframe)
|
||||||
|
return(false);
|
||||||
|
|
||||||
if(pipeline_wireframe)
|
db->Add(pipeline_wireframe);
|
||||||
db->Add(pipeline_wireframe);
|
|
||||||
|
|
||||||
pipeline_creater->SetPolygonMode(VK_POLYGON_MODE_FILL);
|
pipeline_creater->SetPolygonMode(VK_POLYGON_MODE_FILL);
|
||||||
pipeline_creater->Set(PRIM_LINES);
|
pipeline_creater->Set(PRIM_LINES);
|
||||||
|
|
||||||
pipeline_lines=pipeline_creater->Create();
|
pipeline_lines=pipeline_creater->Create();
|
||||||
|
|
||||||
if(pipeline_lines)
|
if(!pipeline_lines)
|
||||||
db->Add(pipeline_lines);
|
return(false);
|
||||||
|
|
||||||
delete pipeline_creater;
|
db->Add(pipeline_lines);
|
||||||
}
|
return(true);
|
||||||
|
|
||||||
return pipeline_wireframe;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CreateSceneNode(SceneNode *scene_node,ModelSceneNode *model_node)
|
void CreateSceneNode(SceneNode *scene_node,ModelSceneNode *model_node)
|
||||||
|
@ -74,24 +74,20 @@ private:
|
|||||||
|
|
||||||
bool InitPipeline()
|
bool InitPipeline()
|
||||||
{
|
{
|
||||||
{
|
SharedPtr<vulkan::PipelineCreater>
|
||||||
vulkan::PipelineCreater *pipeline_creater=new vulkan::PipelineCreater(device,material,device->GetMainRenderPass(),device->GetExtent());
|
pipeline_creater=new vulkan::PipelineCreater(device,material,device->GetMainRenderPass(),device->GetExtent());
|
||||||
pipeline_creater->SetDepthTest(true);
|
pipeline_creater->SetDepthTest(true);
|
||||||
pipeline_creater->SetDepthWrite(true);
|
pipeline_creater->SetDepthWrite(true);
|
||||||
pipeline_creater->CloseCullFace();
|
pipeline_creater->CloseCullFace();
|
||||||
pipeline_creater->SetPolygonMode(VK_POLYGON_MODE_LINE);
|
pipeline_creater->SetPolygonMode(VK_POLYGON_MODE_LINE);
|
||||||
pipeline_creater->Set(PRIM_TRIANGLES);
|
pipeline_creater->Set(PRIM_TRIANGLES);
|
||||||
|
|
||||||
pipeline_line=pipeline_creater->Create();
|
pipeline_line=pipeline_creater->Create();
|
||||||
if(!pipeline_line)
|
if(!pipeline_line)
|
||||||
return(false);
|
return(false);
|
||||||
|
|
||||||
db->Add(pipeline_line);
|
db->Add(pipeline_line);
|
||||||
|
return(true);
|
||||||
delete pipeline_creater;
|
|
||||||
}
|
|
||||||
|
|
||||||
return pipeline_line;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool InitScene()
|
bool InitScene()
|
||||||
|
@ -103,7 +103,7 @@ private:
|
|||||||
|
|
||||||
bool InitPipeline()
|
bool InitPipeline()
|
||||||
{
|
{
|
||||||
vulkan::PipelineCreater *
|
SharedPtr<vulkan::PipelineCreater>
|
||||||
pipeline_creater=new vulkan::PipelineCreater(device,material,device->GetMainRenderPass(),device->GetExtent());
|
pipeline_creater=new vulkan::PipelineCreater(device,material,device->GetMainRenderPass(),device->GetExtent());
|
||||||
pipeline_creater->SetDepthTest(false);
|
pipeline_creater->SetDepthTest(false);
|
||||||
pipeline_creater->SetDepthWrite(false);
|
pipeline_creater->SetDepthWrite(false);
|
||||||
@ -112,9 +112,6 @@ private:
|
|||||||
|
|
||||||
pipeline=pipeline_creater->Create();
|
pipeline=pipeline_creater->Create();
|
||||||
|
|
||||||
delete pipeline_creater;
|
|
||||||
pipeline_creater=nullptr;
|
|
||||||
|
|
||||||
return pipeline;
|
return pipeline;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -107,26 +107,23 @@ private:
|
|||||||
constexpr os_char PIPELINE_FILENAME[]=OS_TEXT("2DSolid.pipeline");
|
constexpr os_char PIPELINE_FILENAME[]=OS_TEXT("2DSolid.pipeline");
|
||||||
|
|
||||||
{
|
{
|
||||||
vulkan::PipelineCreater *pipeline_creater=new vulkan::PipelineCreater(device,material,device->GetMainRenderPass(),device->GetExtent());
|
SharedPtr<vulkan::PipelineCreater>
|
||||||
|
pipeline_creater=new vulkan::PipelineCreater(device,material,device->GetMainRenderPass(),device->GetExtent());
|
||||||
pipeline_creater->SetDepthTest(false);
|
pipeline_creater->SetDepthTest(false);
|
||||||
pipeline_creater->SetDepthWrite(false);
|
pipeline_creater->SetDepthWrite(false);
|
||||||
pipeline_creater->CloseCullFace();
|
pipeline_creater->CloseCullFace();
|
||||||
pipeline_creater->Set(PRIM_TRIANGLES);
|
pipeline_creater->Set(PRIM_TRIANGLES);
|
||||||
|
|
||||||
SaveToFile(PIPELINE_FILENAME,pipeline_creater);
|
SaveToFile(PIPELINE_FILENAME,pipeline_creater);
|
||||||
|
|
||||||
delete pipeline_creater;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
void *data;
|
void *data;
|
||||||
uint size=filesystem::LoadFileToMemory(PIPELINE_FILENAME,(void **)&data);
|
uint size=filesystem::LoadFileToMemory(PIPELINE_FILENAME,(void **)&data);
|
||||||
|
|
||||||
vulkan::PipelineCreater *pipeline_creater=new vulkan::PipelineCreater(device,material,device->GetMainRenderPass(),device->GetExtent(),(uchar *)data,size);
|
SharedPtr<vulkan::PipelineCreater> pipeline_creater=new vulkan::PipelineCreater(device,material,device->GetMainRenderPass(),device->GetExtent(),(uchar *)data,size);
|
||||||
|
|
||||||
pipeline=pipeline_creater->Create();
|
pipeline=pipeline_creater->Create();
|
||||||
|
|
||||||
delete pipeline_creater;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return pipeline;
|
return pipeline;
|
||||||
|
@ -148,8 +148,8 @@ private:
|
|||||||
|
|
||||||
bool InitPipeline()
|
bool InitPipeline()
|
||||||
{
|
{
|
||||||
vulkan::PipelineCreater *
|
SharedPtr<vulkan::PipelineCreater>
|
||||||
pipeline_creater=new vulkan::PipelineCreater(device,material,device->GetMainRenderPass(),device->GetExtent());
|
pipeline_creater=new vulkan::PipelineCreater(device,material,device->GetMainRenderPass(),device->GetExtent());
|
||||||
pipeline_creater->SetDepthTest(false);
|
pipeline_creater->SetDepthTest(false);
|
||||||
pipeline_creater->SetDepthWrite(false);
|
pipeline_creater->SetDepthWrite(false);
|
||||||
pipeline_creater->CloseCullFace();
|
pipeline_creater->CloseCullFace();
|
||||||
@ -157,9 +157,6 @@ private:
|
|||||||
|
|
||||||
pipeline=pipeline_creater->Create();
|
pipeline=pipeline_creater->Create();
|
||||||
|
|
||||||
delete pipeline_creater;
|
|
||||||
pipeline_creater=nullptr;
|
|
||||||
|
|
||||||
return pipeline;
|
return pipeline;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -52,22 +52,22 @@ bool CommandBuffer::BeginRenderPass(RenderPass *rp,Framebuffer *fb)
|
|||||||
{
|
{
|
||||||
VkRenderPassBeginInfo rp_begin;
|
VkRenderPassBeginInfo rp_begin;
|
||||||
|
|
||||||
rp_begin.sType = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO;
|
rp_begin.sType = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO;
|
||||||
rp_begin.pNext = nullptr;
|
rp_begin.pNext = nullptr;
|
||||||
rp_begin.renderPass = *rp;
|
rp_begin.renderPass = *rp;
|
||||||
rp_begin.framebuffer = *fb;
|
rp_begin.framebuffer = *fb;
|
||||||
rp_begin.renderArea = render_area;
|
rp_begin.renderArea = render_area;
|
||||||
rp_begin.clearValueCount = 2;
|
rp_begin.clearValueCount = 2;
|
||||||
rp_begin.pClearValues = clear_values;
|
rp_begin.pClearValues = clear_values;
|
||||||
|
|
||||||
vkCmdBeginRenderPass(cmd_buf, &rp_begin, VK_SUBPASS_CONTENTS_INLINE);
|
vkCmdBeginRenderPass(cmd_buf, &rp_begin, VK_SUBPASS_CONTENTS_INLINE);
|
||||||
|
|
||||||
viewport.x=0;
|
viewport.x = 0;
|
||||||
viewport.y=0;
|
viewport.y = 0;
|
||||||
viewport.minDepth=0.0f;
|
viewport.minDepth = 0.0f;
|
||||||
viewport.maxDepth=1.0f;
|
viewport.maxDepth = 1.0f;
|
||||||
viewport.width=render_area.extent.width;
|
viewport.width = render_area.extent.width;
|
||||||
viewport.height=render_area.extent.height;
|
viewport.height = render_area.extent.height;
|
||||||
|
|
||||||
vkCmdSetViewport(cmd_buf,0,1,&viewport);
|
vkCmdSetViewport(cmd_buf,0,1,&viewport);
|
||||||
vkCmdSetScissor(cmd_buf,0,1,&render_area);
|
vkCmdSetScissor(cmd_buf,0,1,&render_area);
|
||||||
|
@ -31,19 +31,19 @@ const ShaderModule *ShaderModuleManage::CreateShader(const VkShaderStageFlagBits
|
|||||||
return(nullptr);
|
return(nullptr);
|
||||||
|
|
||||||
VkPipelineShaderStageCreateInfo *shader_stage=new VkPipelineShaderStageCreateInfo;
|
VkPipelineShaderStageCreateInfo *shader_stage=new VkPipelineShaderStageCreateInfo;
|
||||||
shader_stage->sType=VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO;
|
shader_stage->sType =VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO;
|
||||||
shader_stage->pNext=nullptr;
|
shader_stage->pNext =nullptr;
|
||||||
shader_stage->pSpecializationInfo=nullptr;
|
shader_stage->pSpecializationInfo =nullptr;
|
||||||
shader_stage->flags=0;
|
shader_stage->flags =0;
|
||||||
shader_stage->stage=shader_stage_bit;
|
shader_stage->stage =shader_stage_bit;
|
||||||
shader_stage->pName="main";
|
shader_stage->pName ="main";
|
||||||
|
|
||||||
VkShaderModuleCreateInfo moduleCreateInfo;
|
VkShaderModuleCreateInfo moduleCreateInfo;
|
||||||
moduleCreateInfo.sType=VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO;
|
moduleCreateInfo.sType =VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO;
|
||||||
moduleCreateInfo.pNext=nullptr;
|
moduleCreateInfo.pNext =nullptr;
|
||||||
moduleCreateInfo.flags=0;
|
moduleCreateInfo.flags =0;
|
||||||
moduleCreateInfo.codeSize=spv_size;
|
moduleCreateInfo.codeSize =spv_size;
|
||||||
moduleCreateInfo.pCode=(const uint32_t *)spv_data;
|
moduleCreateInfo.pCode =(const uint32_t *)spv_data;
|
||||||
|
|
||||||
if(vkCreateShaderModule(*device,&moduleCreateInfo,nullptr,&(shader_stage->module))!=VK_SUCCESS)
|
if(vkCreateShaderModule(*device,&moduleCreateInfo,nullptr,&(shader_stage->module))!=VK_SUCCESS)
|
||||||
return(nullptr);
|
return(nullptr);
|
||||||
|
@ -32,8 +32,8 @@ public:
|
|||||||
SHADER_PARSE_GET_RESOURCE(StageInputs, stage_inputs)
|
SHADER_PARSE_GET_RESOURCE(StageInputs, stage_inputs)
|
||||||
SHADER_PARSE_GET_RESOURCE(StageOutputs, stage_outputs)
|
SHADER_PARSE_GET_RESOURCE(StageOutputs, stage_outputs)
|
||||||
SHADER_PARSE_GET_RESOURCE(Sampler, sampled_images)
|
SHADER_PARSE_GET_RESOURCE(Sampler, sampled_images)
|
||||||
|
SHADER_PARSE_GET_RESOURCE(Subpass, subpass_inputs)
|
||||||
|
|
||||||
//SmallVector<Resource> subpass_inputs;
|
|
||||||
//SmallVector<Resource> storage_images;
|
//SmallVector<Resource> storage_images;
|
||||||
//SmallVector<Resource> atomic_counters;
|
//SmallVector<Resource> atomic_counters;
|
||||||
//SmallVector<Resource> acceleration_structures;
|
//SmallVector<Resource> acceleration_structures;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user