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:
parent
60d0154182
commit
3ecfa15e4a
@ -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"
|
@ -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();
|
||||
|
@ -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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user