refactor: 主渲染改为框架固定行为,派生类渲染扩展走 OnRenderOverlay

原设计 OnRender() 既承载默认渲染又是虚钩子,派生类一 override
主渲染就丢失(钩子语义与框架行为耦合)。现在 Run() 固定调
Renderer.Render(scene),OnRenderOverlay() 只做叠加层(ImGui/
调试视图/编辑器 UI),不覆写则无叠加层——runtime 零渲染代码,
editor 扩展不破坏主渲染。
This commit is contained in:
2026-09-22 16:44:39 +08:00
parent 07a3b87001
commit bc63f76fc1
2 changed files with 11 additions and 10 deletions
+3 -6
View File
@@ -73,7 +73,9 @@ namespace Engine {
// 延迟销毁在渲染前统一 flush,保证渲染遍历时池结构不变
m_Scene->FlushDestroyQueue();
OnRender();
// 主渲染是框架行为(不可覆盖);叠加层钩子在提交前执行
m_Renderer->Render(*m_Scene, *m_Assets);
OnRenderOverlay();
++m_FrameCount;
}
@@ -82,11 +84,6 @@ namespace Engine {
ENGINE_INFO("Application stopped ({} frames)", m_FrameCount);
}
void Application::OnRender()
{
m_Renderer->Render(*m_Scene, *m_Assets);
}
void Application::DispatchEvent(const Event& event)
{
OnEvent(event);