Add some manual cleanup (experiemental)
This commit is contained in:
@@ -157,7 +157,8 @@ void Controller::DoRender() const {
|
|||||||
SDL_RenderPresent(renderer_.get());
|
SDL_RenderPresent(renderer_.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
void Controller::OnExit() const {
|
void Controller::OnExit() {
|
||||||
|
master_editor_.Shutdown();
|
||||||
Mix_CloseAudio();
|
Mix_CloseAudio();
|
||||||
ImGui_ImplSDLRenderer2_Shutdown();
|
ImGui_ImplSDLRenderer2_Shutdown();
|
||||||
ImGui_ImplSDL2_Shutdown();
|
ImGui_ImplSDL2_Shutdown();
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ class Controller {
|
|||||||
void OnInput();
|
void OnInput();
|
||||||
void OnLoad();
|
void OnLoad();
|
||||||
void DoRender() const;
|
void DoRender() const;
|
||||||
void OnExit() const;
|
void OnExit();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
struct sdl_deleter {
|
struct sdl_deleter {
|
||||||
|
|||||||
@@ -34,6 +34,9 @@ class MasterEditor : public SharedROM {
|
|||||||
public:
|
public:
|
||||||
void SetupScreen(std::shared_ptr<SDL_Renderer> renderer);
|
void SetupScreen(std::shared_ptr<SDL_Renderer> renderer);
|
||||||
void UpdateScreen();
|
void UpdateScreen();
|
||||||
|
void Shutdown() {
|
||||||
|
overworld_editor_.Shutdown();
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void DrawFileDialog();
|
void DrawFileDialog();
|
||||||
|
|||||||
@@ -46,6 +46,32 @@ class Bitmap {
|
|||||||
this->pixel_data_[position] = value;
|
this->pixel_data_[position] = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Cleanup() {
|
||||||
|
// Reset texture_
|
||||||
|
if (texture_) {
|
||||||
|
texture_.reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Reset surface_ and its pixel data
|
||||||
|
if (surface_) {
|
||||||
|
surface_->pixels = nullptr;
|
||||||
|
surface_.reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Reset data_
|
||||||
|
data_.clear();
|
||||||
|
|
||||||
|
// Reset other members if necessary
|
||||||
|
active_ = false;
|
||||||
|
pixel_data_ = nullptr;
|
||||||
|
width_ = 0;
|
||||||
|
height_ = 0;
|
||||||
|
depth_ = 0;
|
||||||
|
data_size_ = 0;
|
||||||
|
palette_.Clear(); // assuming there's a Clear() method or similar on
|
||||||
|
// SNESPalette
|
||||||
|
}
|
||||||
|
|
||||||
int width() const { return width_; }
|
int width() const { return width_; }
|
||||||
int height() const { return height_; }
|
int height() const { return height_; }
|
||||||
auto size() const { return data_size_; }
|
auto size() const { return data_size_; }
|
||||||
|
|||||||
Reference in New Issue
Block a user