Uses smart pointers for editor windows

Replaces raw pointers with smart pointers for managing editor windows.

This change improves memory management by ensuring proper deallocation of the Viewport and FileBrowser objects when the Editor shuts down, preventing potential memory leaks.
This commit is contained in:
OusmBlueNinja 2025-05-22 10:14:46 -05:00
parent 60d0154182
commit 3ecfa15e4a
3 changed files with 9 additions and 9 deletions

View File

@ -8,4 +8,4 @@ static constexpr float PI = 3.14159265358979323846f;
#include "vec2.h"
#include "vec3.h"
#include "vec4.h"
#include "mat4.h"
#include "mat4.h"

View File

@ -11,6 +11,8 @@
#include "Windows/LoggerWindow.h"
#include "Windows/Viewport.h"
#include "Windows/FileBrowser.h"
#include "types/all.h"
namespace OX
{
@ -40,8 +42,9 @@ namespace OX
ImGui_ImplGlfw_InitForOpenGL(core.GetWindow().GetHandle(), true);
ImGui_ImplOpenGL3_Init("#version 330 core");
primaryViewport = new Viewport(); // The first time ive ever use the new keyword...
fileBrowser = new FileBrowser();
fileBrowser = std::make_shared<FileBrowser>();
primaryViewport = std::make_shared<Viewport>();
}
void Editor::Update(Core &core)
@ -161,11 +164,7 @@ namespace OX
void Editor::Shutdown(Core &core)
{
delete primaryViewport;
primaryViewport = nullptr;
delete fileBrowser;
fileBrowser = nullptr;
ImGui_ImplOpenGL3_Shutdown();
ImGui_ImplGlfw_Shutdown();

View File

@ -7,6 +7,7 @@
#define OX_EDITOR_VERSION "Obsidian Editor (0.2.6)"
#include "Layer.h"
#include "Core.h"
#include "types/all.h"
namespace OX
@ -28,8 +29,8 @@ namespace OX
void Shutdown(Core &core) override;
private:
Viewport* primaryViewport;
FileBrowser* fileBrowser;
std::shared_ptr<Viewport> primaryViewport;
std::shared_ptr<FileBrowser> fileBrowser;
};
} // OX