Removing big memory hog from renderer

This commit is contained in:
2022-12-21 19:11:27 +01:00
parent a1ec94e983
commit e7f1bd7d52
5 changed files with 142 additions and 82 deletions

View File

@ -14,17 +14,28 @@
#include "AssetManagement/AssetManager.h"
#include "UI/MainMenuBar.h"
const unsigned int MS_PER_UPDATE = 2;
void CreateTestProject(std::unique_ptr<Project>& project, Scene& scene);
class Editor : public Application {
public:
Editor() : Application("Editor") {}
Editor() : Application("Editor"){
}
void Run() override
{
auto NativeEditorWindow = NativeWindow(1200, 700);
//auto renderer = Renderer();
framebuffer = new Framebuffer(800, 600);
auto renderer = Renderer(RendererConfig{
1200, // Screen Width
700, // Screen Height
glm::vec3{0,0,0}, // Clear Color
true // Depth testing
});
auto GuiRenderer = GUIRenderer(NativeEditorWindow);
Selected = (entt::entity)-1;
@ -33,10 +44,11 @@ public:
ActiveScene.Start();
renderer.setCurrentFrameBuffer(*framebuffer);
double previous = glfwGetTime();
double lag = 0.0;
while (!NativeEditorWindow.WindowShouldClose())
{
@ -53,8 +65,13 @@ public:
lag -= MS_PER_UPDATE;
}
// renderer.Render(framebuffer, ActiveScene);
// submit DrawCommands for all render3DComponents
auto group = ActiveScene.getReg().view<TransformComponent, Render3DComponent>();
group.each([&renderer](auto enity, TransformComponent& t, Render3DComponent& renderComponent) {
renderer.Submit(renderComponent, t);
});
renderer.Render();
GuiRenderer.Begin();
RenderGUI();
@ -66,6 +83,8 @@ public:
}
delete framebuffer;
ActiveScene.Stop();
}
@ -86,7 +105,7 @@ public:
}
{
Viewport sceneview = Viewport(ActiveScene);
Viewport sceneview = Viewport(*framebuffer);
}
{
@ -108,7 +127,7 @@ public:
}
{
AssetFinder assetsView = AssetFinder();
// AssetFinder assetsView = AssetFinder();
}
@ -127,6 +146,8 @@ private:
std::unique_ptr<Project> CurrentProject;
Scene ActiveScene;
entt::entity Selected;
Framebuffer* framebuffer ;
};