diff --git a/src/app/core/controller.cc b/src/app/core/controller.cc index c4de4689..a7e2fdf7 100644 --- a/src/app/core/controller.cc +++ b/src/app/core/controller.cc @@ -358,8 +358,19 @@ void Controller::OnExit() { SDL_CloseAudioDevice(audio_device_); delete audio_buffer_; } - ImGui_ImplSDLRenderer2_Shutdown(); - ImGui_ImplSDL2_Shutdown(); + switch (platform_) { + case Platform::kMacOS: + case Platform::kWindows: + case Platform::kLinux: + ImGui_ImplSDLRenderer2_Shutdown(); + ImGui_ImplSDL2_Shutdown(); + break; + case Platform::kiOS: + // Deferred + break; + default: + break; + } ImGui::DestroyContext(); SDL_Quit(); } diff --git a/src/app/core/controller.h b/src/app/core/controller.h index 946454b1..57369b68 100644 --- a/src/app/core/controller.h +++ b/src/app/core/controller.h @@ -40,6 +40,8 @@ class Controller : public ExperimentFlags { void DoRender() const; void OnExit(); + auto master_editor() -> editor::MasterEditor & { return master_editor_; } + private: struct sdl_deleter { void operator()(SDL_Window *p) const { diff --git a/src/app/editor/master_editor.cc b/src/app/editor/master_editor.cc index ab5418fe..94bce89d 100644 --- a/src/app/editor/master_editor.cc +++ b/src/app/editor/master_editor.cc @@ -87,8 +87,6 @@ absl::Status MasterEditor::Update() { ManageActiveEditors(); - End(); - return absl::OkStatus(); } diff --git a/src/app/editor/master_editor.h b/src/app/editor/master_editor.h index 28d26fbd..cc5e495f 100644 --- a/src/app/editor/master_editor.h +++ b/src/app/editor/master_editor.h @@ -75,6 +75,7 @@ class MasterEditor : public SharedRom, auto emulator() -> emu::Emulator& { return emulator_; } auto quit() { return quit_; } + auto overworld_editor() -> OverworldEditor& { return overworld_editor_; } private: void ManageActiveEditors();