From b6b40837a43662ed2135d64a32036e6e91743342 Mon Sep 17 00:00:00 2001 From: admin Date: Wed, 5 Nov 2025 11:50:57 +0100 Subject: [PATCH] feat: prepare each mesh entt for rendering --- engine/src/renderer/renderer.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/engine/src/renderer/renderer.cpp b/engine/src/renderer/renderer.cpp index d0f4114..7a226bf 100644 --- a/engine/src/renderer/renderer.cpp +++ b/engine/src/renderer/renderer.cpp @@ -57,6 +57,10 @@ Renderer::Renderer(std::shared_ptr scene) void Renderer::Init() { GenerateShadowMaps(); + + for (auto [entt, mesh] : m_scene->m_registry.view().each()) { + mesh.mesh->Prepare(); + } } void Renderer::OnWindowResized(int w, int h) { @@ -170,14 +174,15 @@ void Renderer::RenderScene(Shader &shader) { b.prepare(models.data(), models.size()); if (!prevState) { std::cout << "[DEBUG] enabling batch" << std::endl; - m.object->EnableBatch(b.m_instanceBuffer); + // TODO: + // m.object->EnableBatch(b.m_instanceBuffer); } - m.object->Render(shader, batchItems.size()); + m.mesh->Render(shader); } shader.setBool("u_isInstanced", false); for (auto [entity, transf, mesh] : m_scene->m_registry.view(entt::exclude).each()) { - if (mesh.object == nullptr) { + if (mesh.mesh == nullptr) { std::cerr << "WARN: Entity doesn't have a mesh to render" << std::endl; return; } @@ -196,7 +201,7 @@ void Renderer::RenderScene(Shader &shader) { shader.setMat4("u_model", m_model); - mesh.object->Render(shader, 1); + mesh.mesh->Render(shader); } }