Add some manual cleanup (experiemental)
This commit is contained in:
@@ -157,7 +157,8 @@ void Controller::DoRender() const {
|
||||
SDL_RenderPresent(renderer_.get());
|
||||
}
|
||||
|
||||
void Controller::OnExit() const {
|
||||
void Controller::OnExit() {
|
||||
master_editor_.Shutdown();
|
||||
Mix_CloseAudio();
|
||||
ImGui_ImplSDLRenderer2_Shutdown();
|
||||
ImGui_ImplSDL2_Shutdown();
|
||||
|
||||
@@ -27,7 +27,7 @@ class Controller {
|
||||
void OnInput();
|
||||
void OnLoad();
|
||||
void DoRender() const;
|
||||
void OnExit() const;
|
||||
void OnExit();
|
||||
|
||||
private:
|
||||
struct sdl_deleter {
|
||||
|
||||
@@ -34,6 +34,9 @@ class MasterEditor : public SharedROM {
|
||||
public:
|
||||
void SetupScreen(std::shared_ptr<SDL_Renderer> renderer);
|
||||
void UpdateScreen();
|
||||
void Shutdown() {
|
||||
overworld_editor_.Shutdown();
|
||||
}
|
||||
|
||||
private:
|
||||
void DrawFileDialog();
|
||||
|
||||
@@ -46,6 +46,32 @@ class Bitmap {
|
||||
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 height() const { return height_; }
|
||||
auto size() const { return data_size_; }
|
||||
|
||||
Reference in New Issue
Block a user