[OK] AutoInstance 范例完成迁移并测试成功。新结构下不再需要自己管理RenderList/SceneRoot。接下来请迁移其它范例。

This commit is contained in:
2025-06-04 01:09:05 +08:00
parent 118ee6e570
commit f762d77b1d
8 changed files with 113 additions and 89 deletions

View File

@@ -29,14 +29,8 @@ constexpr uint8 color_data[VERTEX_COUNT][4]=
class TestApp:public WorkObject
{
Color4f clear_color =Color4f(0.2f,0.2f,0.2f,1.0f);
private:
AutoDelete<RenderList> render_list =nullptr;
SceneNode render_root;
MaterialInstance * material_instance =nullptr;
Mesh * render_obj =nullptr;
@@ -80,19 +74,17 @@ private:
double rad;
Matrix4f mat;
SceneNode *scene_root=GetSceneRoot(); ///<取得场景根节点
for(uint i=0;i<TRIANGLE_NUMBER;i++)
{
rad=deg2rad<double>((360.0f/double(TRIANGLE_NUMBER))*i); //这里一定要加<float>或<float>否则结果用int保存会出现问题
mat=rotate(rad,Vector3f(0,0,1));
render_root.Add(new SceneNode(mat,render_obj));
scene_root->Add(new SceneNode(mat,render_obj));
}
render_root.RefreshMatrix();
render_list->Expend(&render_root);
return(true);
}
@@ -102,10 +94,7 @@ public:
bool Init() override
{
render_list=GetRenderFramework()->CreateRenderList();
if(!render_list)
return(false);
GetRenderer()->SetClearColor(Color4f(0.2f,0.2f,0.2f,1.0f));
if(!InitMaterial())
return(false);
@@ -115,15 +104,6 @@ public:
return(true);
}
void Render(double delta_time,graph::RenderCmdBuffer *cmd)override
{
cmd->SetClearColor(0,clear_color);
cmd->BeginRenderPass();
render_list->Render(cmd);
cmd->EndRenderPass();
}
};//class TestApp:public WorkObject
int os_main(int,os_char **)