优化SceneNode/RenderList,不再使用new
This commit is contained in:
parent
dad5724874
commit
e7dcc6b60b
@ -1,7 +1,8 @@
|
|||||||
// 3.Geometry2D
|
// 3.Geometry2D
|
||||||
// 该范例有两个作用:
|
// 该范例有两个作用:
|
||||||
// 一、测试绘制2D几何体
|
// 一、测试绘制2D几何体
|
||||||
// 二、试验动态合并材质渲染机制、包括普通合并与Instance
|
// 二、试验动态合并材质渲染机制
|
||||||
|
// 三、试验SceneDB/SceneGraph
|
||||||
|
|
||||||
#include"VulkanAppFramework.h"
|
#include"VulkanAppFramework.h"
|
||||||
#include<hgl/filesystem/FileSystem.h>
|
#include<hgl/filesystem/FileSystem.h>
|
||||||
@ -31,8 +32,8 @@ private:
|
|||||||
uint swap_chain_count=0;
|
uint swap_chain_count=0;
|
||||||
|
|
||||||
SceneDB * db =nullptr;
|
SceneDB * db =nullptr;
|
||||||
SceneNode * render_root =nullptr;
|
SceneNode render_root;
|
||||||
RenderList * render_list =nullptr;
|
RenderList render_list;
|
||||||
|
|
||||||
vulkan::Material * material =nullptr;
|
vulkan::Material * material =nullptr;
|
||||||
vulkan::DescriptorSets * descriptor_sets =nullptr;
|
vulkan::DescriptorSets * descriptor_sets =nullptr;
|
||||||
@ -50,8 +51,6 @@ public:
|
|||||||
|
|
||||||
~TestApp()
|
~TestApp()
|
||||||
{
|
{
|
||||||
SAFE_CLEAR(render_list);
|
|
||||||
SAFE_CLEAR(render_root);
|
|
||||||
SAFE_CLEAR(db);
|
SAFE_CLEAR(db);
|
||||||
|
|
||||||
SAFE_CLEAR_OBJECT_ARRAY(cmd_buf,swap_chain_count);
|
SAFE_CLEAR_OBJECT_ARRAY(cmd_buf,swap_chain_count);
|
||||||
@ -147,14 +146,11 @@ private:
|
|||||||
|
|
||||||
bool InitScene()
|
bool InitScene()
|
||||||
{
|
{
|
||||||
render_root=new SceneNode();
|
render_root.Add(db->CreateRenderableInstance(pipeline,descriptor_sets,ro_rectangle));
|
||||||
render_list=new RenderList();
|
render_root.Add(db->CreateRenderableInstance(pipeline,descriptor_sets,ro_round_rectangle));
|
||||||
|
render_root.Add(db->CreateRenderableInstance(pipeline,descriptor_sets,ro_circle));
|
||||||
|
|
||||||
render_root->Add(db->CreateRenderableInstance(pipeline,descriptor_sets,ro_rectangle));
|
render_root.ExpendToList(&render_list);
|
||||||
render_root->Add(db->CreateRenderableInstance(pipeline,descriptor_sets,ro_round_rectangle));
|
|
||||||
render_root->Add(db->CreateRenderableInstance(pipeline,descriptor_sets,ro_circle));
|
|
||||||
|
|
||||||
render_root->ExpendToList(render_list);
|
|
||||||
|
|
||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
@ -172,7 +168,7 @@ private:
|
|||||||
|
|
||||||
cmd_buf[i]->Begin();
|
cmd_buf[i]->Begin();
|
||||||
cmd_buf[i]->BeginRenderPass(device->GetRenderPass(),device->GetFramebuffer(i));
|
cmd_buf[i]->BeginRenderPass(device->GetRenderPass(),device->GetFramebuffer(i));
|
||||||
render_list->Render(cmd_buf[i]);
|
render_list.Render(cmd_buf[i]);
|
||||||
cmd_buf[i]->EndRenderPass();
|
cmd_buf[i]->EndRenderPass();
|
||||||
cmd_buf[i]->End();
|
cmd_buf[i]->End();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user