迁移Auto_merge_material_instance.cpp到新架构

This commit is contained in:
hyzboy 2025-06-06 22:20:18 +08:00
parent 2138f9046a
commit 5e541e2f46
3 changed files with 6 additions and 30 deletions

@ -1 +1 @@
Subproject commit 76aff5d55628a87baa35498520296d65ab70e995 Subproject commit e1155d0374cd187d3e4b74cfa1905c1e1df21167

View File

@ -25,20 +25,12 @@ constexpr double TRI_ROTATE_ANGLE=360.0f/DRAW_OBJECT_COUNT;
class TestApp:public WorkObject 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;
Material * material =nullptr; Material * material =nullptr;
struct struct
{ {
MaterialInstance * mi; MaterialInstance * mi;
Mesh * mesh; Mesh * mesh;
}render_obj[DRAW_OBJECT_COUNT]{}; }render_obj[DRAW_OBJECT_COUNT]{};
Pipeline * pipeline =nullptr; Pipeline * pipeline =nullptr;
@ -89,6 +81,8 @@ private:
db->Add(prim); db->Add(prim);
Matrix4f mat; Matrix4f mat;
SceneNode *scene_root=GetSceneRoot(); ///<取得场景根节点
for(uint i=0;i<DRAW_OBJECT_COUNT;i++) for(uint i=0;i<DRAW_OBJECT_COUNT;i++)
{ {
@ -99,13 +93,9 @@ private:
mat=rotate(deg2rad<double>(TRI_ROTATE_ANGLE*i),AxisVector::Z); mat=rotate(deg2rad<double>(TRI_ROTATE_ANGLE*i),AxisVector::Z);
render_root.Add(new SceneNode(mat,render_obj[i].mesh)); scene_root->Add(new SceneNode(mat,render_obj[i].mesh));
} }
render_root.RefreshMatrix();
render_list->Expend(&render_root);
return(true); return(true);
} }
@ -115,11 +105,6 @@ public:
bool Init() override bool Init() override
{ {
render_list=GetRenderFramework()->CreateRenderList();
if(!render_list)
return(false);
if(!InitMaterial()) if(!InitMaterial())
return(false); return(false);
@ -128,15 +113,6 @@ public:
return(true); 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 };//class TestApp:public WorkObject
int os_main(int,os_char **) int os_main(int,os_char **)

View File

@ -49,7 +49,7 @@ namespace hgl::graph
void SetClearColor(const Color4f &c){clear_color=c;} void SetClearColor(const Color4f &c){clear_color=c;}
bool RenderFrame(); ///<重新重成这一帧的CommandList bool RenderFrame(); ///<重新重成这一帧的CommandList
bool Submit(); ///<提交CommandList到GPU bool Submit(); ///<提交CommandList到GPU
};//class Renderer };//class Renderer
}//namespace hgl::graph }//namespace hgl::graph