diff --git a/CMCore b/CMCore index 2aadf900..3e9b703e 160000 --- a/CMCore +++ b/CMCore @@ -1 +1 @@ -Subproject commit 2aadf9005ca099d8c72f745c547d610022a79d0b +Subproject commit 3e9b703ebcdf4167707d76b6bbdb752eb63de437 diff --git a/CMSceneGraph b/CMSceneGraph index 86b12454..51d8086c 160000 --- a/CMSceneGraph +++ b/CMSceneGraph @@ -1 +1 @@ -Subproject commit 86b124547d03bc221c3f87f7af66794da42fec15 +Subproject commit 51d8086c98b5efeacdf07b3e2f1b5097bc401150 diff --git a/example/Vulkan/Atomsphere.cpp b/example/Vulkan/Atomsphere.cpp index 5ff25cbd..8462bec2 100644 --- a/example/Vulkan/Atomsphere.cpp +++ b/example/Vulkan/Atomsphere.cpp @@ -86,7 +86,7 @@ private: bool InitPipeline() { - vulkan::VKPipelineData pd; + vulkan::PipelineData pd; if(!vulkan::LoadFromFile(OS_TEXT("res/pipeline/sky.pipeline"),&pd)) return(false); diff --git a/inc/hgl/graph/vulkan/VKPipeline.h b/inc/hgl/graph/vulkan/VKPipeline.h index 15c9ae11..7b4718c8 100644 --- a/inc/hgl/graph/vulkan/VKPipeline.h +++ b/inc/hgl/graph/vulkan/VKPipeline.h @@ -9,21 +9,24 @@ class Pipeline { VkDevice device; VkPipeline pipeline; + PipelineData *data; bool alpha_test; bool alpha_blend; public: - Pipeline(VkDevice dev,VkPipeline p,bool at,bool ab):device(dev),pipeline(p),alpha_test(at),alpha_blend(ab){} + Pipeline(VkDevice dev,VkPipeline p,PipelineData *pd):device(dev),pipeline(p),data(pd){} virtual ~Pipeline(); operator VkPipeline(){return pipeline;} - const bool IsAlphaTest()const{return alpha_test;} - const bool IsAlphaBlend()const{return alpha_blend;} + const PipelineData *GetData()const{return data;} + + const bool IsAlphaTest()const{return data->alpha_test>0;} + const bool IsAlphaBlend()const{return data->alpha_blend;} };//class GraphicsPipeline -Pipeline *CreatePipeline(Device *dev,VKPipelineData *,const Material *material,const RenderTarget *); +Pipeline *CreatePipeline(Device *dev,PipelineData *,const Material *material,const RenderTarget *); VK_NAMESPACE_END #endif//HGL_GRAPH_VULKAN_PIPELINE_INCLUDE diff --git a/src/RenderDevice/Vulkan/VKPipeline.cpp b/src/RenderDevice/Vulkan/VKPipeline.cpp index 7564b33b..11220f6e 100644 --- a/src/RenderDevice/Vulkan/VKPipeline.cpp +++ b/src/RenderDevice/Vulkan/VKPipeline.cpp @@ -11,7 +11,7 @@ Pipeline::~Pipeline() vkDestroyPipeline(device,pipeline,nullptr); } -Pipeline *CreatePipeline(Device *dev,VKPipelineData *data,const Material *material,const RenderTarget *rt) +Pipeline *CreatePipeline(Device *dev,PipelineData *data,const Material *material,const RenderTarget *rt) { VkPipeline graphicsPipeline; @@ -21,20 +21,20 @@ Pipeline *CreatePipeline(Device *dev,VKPipelineData *data,const Material *materi data->InitViewportState(rt->GetExtent()); - data->pipelineInfo.layout = material->GetPipelineLayout(); + data->pipeline_info.layout = material->GetPipelineLayout(); { - data->pipelineInfo.renderPass = rt->GetRenderPass(); - data->pipelineInfo.subpass = 0; //subpass由于还不知道有什么用,所以暂时写0,待知道功用后,需改进 + data->pipeline_info.renderPass = rt->GetRenderPass(); + data->pipeline_info.subpass = 0; //subpass由于还不知道有什么用,所以暂时写0,待知道功用后,需改进 } if (vkCreateGraphicsPipelines( dev->GetDevice(), dev->GetPipelineCache(), - 1,&data->pipelineInfo, + 1,&data->pipeline_info, nullptr, &graphicsPipeline) != VK_SUCCESS) return(nullptr); - return(new Pipeline(dev->GetDevice(),graphicsPipeline,data->alpha_test>0,data->alpha_blend)); + return(new Pipeline(dev->GetDevice(),graphicsPipeline,data)); } VK_NAMESPACE_END