所有PipelineCreater定义改用智能指针
This commit is contained in:
@@ -87,7 +87,8 @@ private:
|
||||
|
||||
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->SetDepthWrite(true);
|
||||
pipeline_creater->SetCullMode(VK_CULL_MODE_NONE);
|
||||
@@ -98,8 +99,6 @@ private:
|
||||
return(false);
|
||||
|
||||
db->Add(pipeline_solid);
|
||||
|
||||
delete pipeline_creater;
|
||||
return(true);
|
||||
}
|
||||
|
||||
|
@@ -49,7 +49,7 @@ private:
|
||||
Texture2DPointer texture_list[4];
|
||||
};
|
||||
|
||||
List<VkFormat> color_format_list;
|
||||
List<VkFormat> gbuffer_format_list;
|
||||
List<vulkan::ImageView *> image_view_list;
|
||||
|
||||
struct
|
||||
@@ -91,13 +91,13 @@ private:
|
||||
|
||||
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());
|
||||
}
|
||||
|
||||
if(!device->CreateAttachment( gbuffer.attachment.ref_list,
|
||||
gbuffer.attachment.desc_list,
|
||||
gbuffer.color_format_list,
|
||||
gbuffer.gbuffer_format_list,
|
||||
gbuffer.depth->GetFormat()))
|
||||
return(false);
|
||||
|
||||
@@ -112,7 +112,7 @@ private:
|
||||
gbuffer.renderpass=device->CreateRenderPass(gbuffer.attachment.desc_list,
|
||||
gbuffer.subpass.desc,
|
||||
gbuffer.subpass.dependency,
|
||||
gbuffer.color_format_list,
|
||||
gbuffer.gbuffer_format_list,
|
||||
gbuffer.depth->GetFormat());
|
||||
|
||||
if(!gbuffer.renderpass)
|
||||
@@ -131,7 +131,7 @@ private:
|
||||
sp->material=shader_manage->CreateMaterial(vs,fs);
|
||||
|
||||
if(!sp->material)
|
||||
return(false);
|
||||
return(false);
|
||||
|
||||
sp->desc_sets=sp->material->CreateDescriptorSets();
|
||||
|
||||
@@ -142,25 +142,24 @@ private:
|
||||
|
||||
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->SetDepthWrite(true);
|
||||
pipeline_creater->SetCullMode(VK_CULL_MODE_BACK_BIT);
|
||||
pipeline_creater->Set(PRIM_TRIANGLES);
|
||||
|
||||
sp->pipeline=pipeline_creater->Create();
|
||||
|
||||
if(!sp->pipeline)
|
||||
return(false);
|
||||
|
||||
db->Add(sp->pipeline);
|
||||
|
||||
delete pipeline_creater;
|
||||
return(true);
|
||||
}
|
||||
|
||||
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->SetDepthWrite(false);
|
||||
pipeline_creater->SetCullMode(VK_CULL_MODE_NONE);
|
||||
@@ -171,8 +170,6 @@ private:
|
||||
return(false);
|
||||
|
||||
db->Add(sp->pipeline);
|
||||
|
||||
delete pipeline_creater;
|
||||
return(true);
|
||||
}
|
||||
|
||||
|
@@ -114,21 +114,18 @@ private:
|
||||
|
||||
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);
|
||||
|
||||
{
|
||||
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();
|
||||
if(!pipeline)return(false);
|
||||
|
||||
pipeline=pipeline_creater->Create();
|
||||
db->Add(pipeline);
|
||||
delete pipeline_creater;
|
||||
}
|
||||
|
||||
return pipeline;
|
||||
db->Add(pipeline);
|
||||
return(true);
|
||||
}
|
||||
|
||||
bool InitScene()
|
||||
|
@@ -84,23 +84,19 @@ private:
|
||||
|
||||
bool InitPipeline()
|
||||
{
|
||||
{
|
||||
vulkan::PipelineCreater *pipeline_creater=new vulkan::PipelineCreater(device,material,device->GetMainRenderPass(),device->GetExtent());
|
||||
pipeline_creater->SetDepthTest(true);
|
||||
pipeline_creater->SetDepthWrite(true);
|
||||
pipeline_creater->CloseCullFace();
|
||||
pipeline_creater->Set(PRIM_LINES);
|
||||
SharedPtr<vulkan::PipelineCreater>
|
||||
pipeline_creater=new vulkan::PipelineCreater(device,material,device->GetMainRenderPass(),device->GetExtent());
|
||||
pipeline_creater->SetDepthTest(true);
|
||||
pipeline_creater->SetDepthWrite(true);
|
||||
pipeline_creater->CloseCullFace();
|
||||
pipeline_creater->Set(PRIM_LINES);
|
||||
|
||||
pipeline_line=pipeline_creater->Create();
|
||||
if(!pipeline_line)
|
||||
return(false);
|
||||
pipeline_line=pipeline_creater->Create();
|
||||
if(!pipeline_line)
|
||||
return(false);
|
||||
|
||||
db->Add(pipeline_line);
|
||||
|
||||
delete pipeline_creater;
|
||||
}
|
||||
|
||||
return pipeline_line;
|
||||
db->Add(pipeline_line);
|
||||
return(true);
|
||||
}
|
||||
|
||||
bool InitScene()
|
||||
|
@@ -137,31 +137,35 @@ private:
|
||||
|
||||
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->SetDepthWrite(true);
|
||||
pipeline_creater->Set(PRIM_LINES);
|
||||
|
||||
pipeline_line=pipeline_creater->Create();
|
||||
|
||||
if(!pipeline_line)
|
||||
return(false);
|
||||
|
||||
db->Add(pipeline_line);
|
||||
|
||||
pipeline_creater->Set(PRIM_TRIANGLES);
|
||||
pipeline_creater->SetPolygonMode(VK_POLYGON_MODE_LINE);
|
||||
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)
|
||||
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);
|
||||
}
|
||||
|
||||
|
@@ -162,33 +162,31 @@ private:
|
||||
|
||||
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);
|
||||
|
||||
{
|
||||
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();
|
||||
|
||||
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->Set(PRIM_LINES);
|
||||
pipeline_creater->SetPolygonMode(VK_POLYGON_MODE_FILL);
|
||||
pipeline_creater->Set(PRIM_LINES);
|
||||
|
||||
pipeline_lines=pipeline_creater->Create();
|
||||
pipeline_lines=pipeline_creater->Create();
|
||||
|
||||
if(pipeline_lines)
|
||||
db->Add(pipeline_lines);
|
||||
if(!pipeline_lines)
|
||||
return(false);
|
||||
|
||||
delete pipeline_creater;
|
||||
}
|
||||
|
||||
return pipeline_wireframe;
|
||||
db->Add(pipeline_lines);
|
||||
return(true);
|
||||
}
|
||||
|
||||
void CreateSceneNode(SceneNode *scene_node,ModelSceneNode *model_node)
|
||||
|
@@ -73,25 +73,21 @@ private:
|
||||
}
|
||||
|
||||
bool InitPipeline()
|
||||
{
|
||||
{
|
||||
vulkan::PipelineCreater *pipeline_creater=new vulkan::PipelineCreater(device,material,device->GetMainRenderPass(),device->GetExtent());
|
||||
pipeline_creater->SetDepthTest(true);
|
||||
pipeline_creater->SetDepthWrite(true);
|
||||
pipeline_creater->CloseCullFace();
|
||||
pipeline_creater->SetPolygonMode(VK_POLYGON_MODE_LINE);
|
||||
pipeline_creater->Set(PRIM_TRIANGLES);
|
||||
{
|
||||
SharedPtr<vulkan::PipelineCreater>
|
||||
pipeline_creater=new vulkan::PipelineCreater(device,material,device->GetMainRenderPass(),device->GetExtent());
|
||||
pipeline_creater->SetDepthTest(true);
|
||||
pipeline_creater->SetDepthWrite(true);
|
||||
pipeline_creater->CloseCullFace();
|
||||
pipeline_creater->SetPolygonMode(VK_POLYGON_MODE_LINE);
|
||||
pipeline_creater->Set(PRIM_TRIANGLES);
|
||||
|
||||
pipeline_line=pipeline_creater->Create();
|
||||
if(!pipeline_line)
|
||||
return(false);
|
||||
pipeline_line=pipeline_creater->Create();
|
||||
if(!pipeline_line)
|
||||
return(false);
|
||||
|
||||
db->Add(pipeline_line);
|
||||
|
||||
delete pipeline_creater;
|
||||
}
|
||||
|
||||
return pipeline_line;
|
||||
db->Add(pipeline_line);
|
||||
return(true);
|
||||
}
|
||||
|
||||
bool InitScene()
|
||||
|
@@ -103,7 +103,7 @@ private:
|
||||
|
||||
bool InitPipeline()
|
||||
{
|
||||
vulkan::PipelineCreater *
|
||||
SharedPtr<vulkan::PipelineCreater>
|
||||
pipeline_creater=new vulkan::PipelineCreater(device,material,device->GetMainRenderPass(),device->GetExtent());
|
||||
pipeline_creater->SetDepthTest(false);
|
||||
pipeline_creater->SetDepthWrite(false);
|
||||
@@ -112,9 +112,6 @@ private:
|
||||
|
||||
pipeline=pipeline_creater->Create();
|
||||
|
||||
delete pipeline_creater;
|
||||
pipeline_creater=nullptr;
|
||||
|
||||
return pipeline;
|
||||
}
|
||||
|
||||
|
@@ -107,26 +107,23 @@ private:
|
||||
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->SetDepthWrite(false);
|
||||
pipeline_creater->CloseCullFace();
|
||||
pipeline_creater->Set(PRIM_TRIANGLES);
|
||||
|
||||
SaveToFile(PIPELINE_FILENAME,pipeline_creater);
|
||||
|
||||
delete pipeline_creater;
|
||||
}
|
||||
|
||||
{
|
||||
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();
|
||||
|
||||
delete pipeline_creater;
|
||||
}
|
||||
|
||||
return pipeline;
|
||||
|
@@ -148,8 +148,8 @@ private:
|
||||
|
||||
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(false);
|
||||
pipeline_creater->SetDepthWrite(false);
|
||||
pipeline_creater->CloseCullFace();
|
||||
@@ -157,9 +157,6 @@ private:
|
||||
|
||||
pipeline=pipeline_creater->Create();
|
||||
|
||||
delete pipeline_creater;
|
||||
pipeline_creater=nullptr;
|
||||
|
||||
return pipeline;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user