diff --git a/example/Basic/draw_triangle_in_NDC.cpp b/example/Basic/draw_triangle_in_NDC.cpp index 4039ae19..f29a2a4d 100644 --- a/example/Basic/draw_triangle_in_NDC.cpp +++ b/example/Basic/draw_triangle_in_NDC.cpp @@ -1,6 +1,6 @@ // 该范例主要演示使用NDC坐标系直接绘制一个渐变色的三角形 -#include"VulkanAppFramework.h" +#include #include #include #include @@ -39,7 +39,8 @@ constexpr VkFormat PositionFormat=VF_V2F; #ifdef USE_UNORM8_COLOR constexpr uint8 color_data[VERTEX_COUNT*4]= -{ 255,0,0,255, +{ + 255,0,0,255, 0,255,0,255, 0,0,255,255 }; @@ -47,7 +48,8 @@ constexpr uint8 color_data[VERTEX_COUNT*4]= constexpr VkFormat ColorFormat=VF_V4UN8; #else constexpr float color_data[VERTEX_COUNT*4]= -{ 1,0,0,1, +{ + 1,0,0,1, 0,1,0,1, 0,0,1,1 }; @@ -55,10 +57,12 @@ constexpr float color_data[VERTEX_COUNT*4]= constexpr VkFormat ColorFormat=VF_V4F; #endif//USE_UNORM8_COLOR -class TestApp:public VulkanApplicationFramework +class TestApp:public WorkObject { private: + Color4f clear_color=Color4f(0.2f,0.2f,0.2f,1.0f); + #if defined(USE_HALF_FLOAT_POSITION)||defined(USE_UNORM8_COLOR) VILConfig vil_config; #endif @@ -83,7 +87,7 @@ private: bool InitAutoMaterial() { - mtl::Material2DCreateConfig cfg(device->GetDeviceAttribute(),"VertexColor2d",Prim::Triangles); + mtl::Material2DCreateConfig cfg(GetDeviceAttribute(),"VertexColor2d",Prim::Triangles); cfg.coordinate_system=CoordinateSystem2D::NDC; cfg.local_to_world=false; @@ -105,54 +109,47 @@ private: bool InitVBO() { - PrimitiveCreater rpc(device,material_instance->GetVIL()); - - rpc.Init("Triangle",VERTEX_COUNT); - #ifdef USE_HALF_FLOAT_POSITION Float32toFloat16(position_data_hf,position_data_float,VERTEX_COUNT*2); #endif//USE_HALF_FLOAT_POSITION - if(!rpc.WriteVAB(VAN::Position, PositionFormat, position_data))return(false); - if(!rpc.WriteVAB(VAN::Color, ColorFormat, color_data ))return(false); - - render_obj=db->CreateRenderable(&rpc,material_instance,pipeline); + render_obj=CreateRenderable("Triangle",VERTEX_COUNT,material_instance,pipeline, + { + {VAN::Position,PositionFormat,position_data}, + {VAN::Color, ColorFormat, color_data} + }); return(render_obj); } public: - - bool Init(uint w,uint h) + + TestApp(RenderFramework *rf):WorkObject(rf,rf->GetSwapchainRenderTarget()) { - if(!VulkanApplicationFramework::Init(w,h)) - return(false); - InitVIL(); if(!InitAutoMaterial()) - return(false); + return; if(!InitPipeline()) - return(false); + return; if(!InitVBO()) - return(false); - - if(!BuildCommandBuffer(render_obj)) - return(false); - - return(true); + return; } - void Resize(uint w,uint h)override + void Tick(double)override{} + + void Render(double delta_time,graph::RenderCmdBuffer *cmd) { - VulkanApplicationFramework::Resize(w,h); + cmd->SetClearColor(0,clear_color); - BuildCommandBuffer(render_obj); + cmd->BeginRenderPass(); + cmd->Render(render_obj); + cmd->EndRenderPass(); } -};//class TestApp:public VulkanApplicationFramework +};//class TestApp:public WorkObject -int main(int,char **) +int os_main(int,os_char **) { - return RunApp(SCREEN_WIDTH,SCREEN_HEIGHT); + return RunFramework(OS_TEXT("RenderFramework Test")); } diff --git a/example/Basic/rf_test.cpp b/example/Basic/rf_test.cpp index 9b67121e..4704a041 100644 --- a/example/Basic/rf_test.cpp +++ b/example/Basic/rf_test.cpp @@ -1,5 +1,4 @@ -// 该范例主要演示使用NDC坐标系直接绘制一个渐变色的三角形 -#include +#include #include #include #include @@ -21,7 +20,8 @@ constexpr float position_data[VERTEX_COUNT*2]= }; constexpr float color_data[VERTEX_COUNT*4]= -{ 1,0,0,1, +{ + 1,0,0,1, 0,1,0,1, 0,0,1,1 }; diff --git a/inc/hgl/shadergen/MaterialCreateInfo.h b/inc/hgl/shadergen/MaterialCreateInfo.h index cbcaa1ed..15a70b91 100644 --- a/inc/hgl/shadergen/MaterialCreateInfo.h +++ b/inc/hgl/shadergen/MaterialCreateInfo.h @@ -10,7 +10,7 @@ #include #include -namespace hgl{namespace graph +namespace hgl::graph { struct GPUDeviceAttribute; struct UBODescriptor; @@ -92,5 +92,4 @@ namespace hgl{namespace graph bool CreateShader(); };//class MaterialCreateInfo }//namespace mtl -}//namespace graph -}//namespace hgl +}//namespace hgl::graph