diff --git a/inc/hgl/graph/MaterialRenderList.h b/inc/hgl/graph/MaterialRenderList.h index 5dbbf549..9214e27a 100644 --- a/inc/hgl/graph/MaterialRenderList.h +++ b/inc/hgl/graph/MaterialRenderList.h @@ -102,7 +102,7 @@ protected: bool BindVAB(const MeshDataBuffer *,const uint); void ProcIndirectRender(); - void Render(RenderItem *); + bool Render(RenderItem *); public: diff --git a/inc/hgl/graph/RenderTask.h b/inc/hgl/graph/RenderTask.h index ebcf6404..911f0629 100644 --- a/inc/hgl/graph/RenderTask.h +++ b/inc/hgl/graph/RenderTask.h @@ -41,8 +41,6 @@ namespace hgl::graph bool Set(IRenderTarget *rt); void Set(Camera *c){camera=c;} - void Restart(); ///<复位数据,清空渲染列表 - bool RebuildRenderList(SceneNode *); bool IsEmpty()const; ///<是否是空的,不可渲染或是没啥可渲染的 diff --git a/src/SceneGraph/render/RenderTask.cpp b/src/SceneGraph/render/RenderTask.cpp index c1f90211..05ec6548 100644 --- a/src/SceneGraph/render/RenderTask.cpp +++ b/src/SceneGraph/render/RenderTask.cpp @@ -42,14 +42,6 @@ namespace hgl::graph return(true); } - void RenderTask::Restart() - { - if(!render_list) - return; - - render_list->Clear(); - } - bool RenderTask::RebuildRenderList(SceneNode *root) { if(!root) @@ -58,7 +50,8 @@ namespace hgl::graph if(!render_list) return(false); - render_list->Clear(); + //记往不需要也千万不要手动render_list->Clear,因为那会完全释放掉所有数据 + //render_list->Expend会自己复位所有数据,但并不释放内存 render_list->Expend(root); return(true);