Removing big memory hog from renderer
This commit is contained in:
		| @ -125,25 +125,11 @@ public: | ||||
|  | ||||
| class Viewport : EditorWindow { | ||||
| public: | ||||
|     Viewport (Scene& scene) : EditorWindow("SceneView") { | ||||
|        Framebuffer framebuffer = Framebuffer((int)ImGui::GetWindowWidth(),(int)ImGui::GetWindowHeight()); | ||||
|  | ||||
|        | ||||
|        Renderer renderer = Renderer(); | ||||
|        renderer.Prepare(scene); | ||||
|        renderer.Render(&framebuffer, scene); | ||||
|  | ||||
|        | ||||
|         | ||||
|     | ||||
|     | ||||
|     Viewport (Framebuffer& fb) : EditorWindow("SceneView") { | ||||
|       ImGui::Image( | ||||
|             (void*)(intptr_t)framebuffer.GetColourAttachment(), | ||||
|             (void*)(intptr_t)fb.GetColourAttachment(), | ||||
|             ImVec2{ (float)ImGui::GetWindowWidth(),(float)ImGui::GetWindowHeight() } | ||||
|         ); | ||||
|         | ||||
|  | ||||
|          | ||||
|          | ||||
|         //ImGuizmo::SetDrawlist(); | ||||
|         //ImGuizmo::SetRect(ImGui::GetWindowPos().x, ImGui::GetWindowPos().y, ImGui::GetWindowWidth(), ImGui::GetWindowHeight()); | ||||
|  | ||||
| @ -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