Removing big memory hog from renderer
This commit is contained in:
@ -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 ;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user