diff --git a/CMAssetsManage b/CMAssetsManage index 74e1d564..1e14c1b0 160000 --- a/CMAssetsManage +++ b/CMAssetsManage @@ -1 +1 @@ -Subproject commit 74e1d564be1a9c2af21b3fc2e4ca319e23b6616a +Subproject commit 1e14c1b01dd9b1e6590110cdf5fb239da30d00c1 diff --git a/example/Vulkan/Atomsphere.cpp b/example/Vulkan/Atomsphere.cpp index 98e624da..7a7d583b 100644 --- a/example/Vulkan/Atomsphere.cpp +++ b/example/Vulkan/Atomsphere.cpp @@ -51,8 +51,9 @@ private: { material_instance=db->CreateMaterialInstance(OS_TEXT("res/material/Atmosphere")); //不需要优先创建Material,也不需要写扩展名 if(!material_instance)return(false); - - pipeline_solid=db->CreatePipeline(material_instance,sc_render_target,OS_TEXT("res/pipeline/sky")); + +// pipeline_solid=db->CreatePipeline(material_instance,sc_render_target,OS_TEXT("res/pipeline/sky")); + pipeline_solid=CreatePipeline(material_instance,OS_TEXT("res/pipeline/sky")); //等同上一行,为Framework重载,默认使用swapchain的render target if(!pipeline_solid)return(false); return(true); diff --git a/example/Vulkan/FragCoordTest.cpp b/example/Vulkan/FragCoordTest.cpp index 76558c9f..1eab6f01 100644 --- a/example/Vulkan/FragCoordTest.cpp +++ b/example/Vulkan/FragCoordTest.cpp @@ -32,11 +32,11 @@ private: vulkan::Material * material =nullptr; vulkan::MaterialInstance * material_instance =nullptr; vulkan::Renderable * render_obj =nullptr; - vulkan::Buffer * ubo_world_matrix =nullptr; + vulkan::Buffer * ubo_world_matrix =nullptr; vulkan::Pipeline * pipeline =nullptr; - vulkan::VAB * vertex_buffer =nullptr; + vulkan::VAB * vertex_buffer =nullptr; public: diff --git a/example/Vulkan/VulkanAppFramework.h b/example/Vulkan/VulkanAppFramework.h index 978af423..9bd6abb5 100644 --- a/example/Vulkan/VulkanAppFramework.h +++ b/example/Vulkan/VulkanAppFramework.h @@ -266,6 +266,18 @@ public: return(true); } + +public: + + vulkan::Pipeline *CreatePipeline(vulkan::Material *mtl,const OSString &pipeline_name) + { + return db->CreatePipeline(mtl,sc_render_target,pipeline_name); + } + + vulkan::Pipeline *CreatePipeline(vulkan::MaterialInstance *mi,const OSString &pipeline_name) + { + return db->CreatePipeline(mi,sc_render_target,pipeline_name); + } };//class VulkanApplicationFramework class CameraAppFramework:public VulkanApplicationFramework diff --git a/example/Vulkan/first_triangle.cpp b/example/Vulkan/first_triangle.cpp index fe36f7d3..f0581c73 100644 --- a/example/Vulkan/first_triangle.cpp +++ b/example/Vulkan/first_triangle.cpp @@ -57,8 +57,12 @@ private: if(!material_instance) return(false); + +// pipeline=db->CreatePipeline(material_instance,sc_render_target,OS_TEXT("res/pipeline/solid2d")); + pipeline=CreatePipeline(material_instance,OS_TEXT("res/pipeline/solid2d")); //等同上一行,为Framework重载,默认使用swapchain的render target - render_obj=db->CreateRenderable(material_instance,VERTEX_COUNT); + if(!pipeline) + return(false); return(true); } @@ -84,6 +88,9 @@ private: bool InitVBO() { + render_obj =db->CreateRenderable(material_instance,VERTEX_COUNT); + if(!render_obj)return(false); + vertex_buffer =device->CreateVAB(FMT_RG32F, VERTEX_COUNT,vertex_data); color_buffer =device->CreateVAB(FMT_RGB32F, VERTEX_COUNT,color_data); @@ -93,13 +100,6 @@ private: return(true); } - bool InitPipeline() - { - pipeline=db->CreatePipeline(material_instance,sc_render_target,OS_TEXT("res/pipeline/solid2d")); - - return pipeline; - } - public: bool Init() @@ -116,9 +116,6 @@ public: if(!InitVBO()) return(false); - if(!InitPipeline()) - return(false); - BuildCommandBuffer(pipeline,material_instance,render_obj); return(true);