fix: Update Window Event Handling and Emulator Destructor Logic
- Added handling for SDL_WINDOWEVENT_RESIZED, SDL_WINDOWEVENT_MINIMIZED, SDL_WINDOWEVENT_HIDDEN, SDL_WINDOWEVENT_RESTORED, and SDL_WINDOWEVENT_SHOWN in the window event processing to improve rendering behavior during window state changes. - Modified the Emulator destructor to stop emulation without calling Cleanup(), as the renderer is already destroyed, ensuring proper shutdown behavior.
This commit is contained in:
@@ -196,9 +196,19 @@ absl::Status HandleEvents(Window& window) {
|
||||
window.active_ = false;
|
||||
break;
|
||||
case SDL_WINDOWEVENT_SIZE_CHANGED:
|
||||
case SDL_WINDOWEVENT_RESIZED:
|
||||
// Update display size for both resize and size_changed events
|
||||
io.DisplaySize.x = static_cast<float>(event.window.data1);
|
||||
io.DisplaySize.y = static_cast<float>(event.window.data2);
|
||||
break;
|
||||
case SDL_WINDOWEVENT_MINIMIZED:
|
||||
case SDL_WINDOWEVENT_HIDDEN:
|
||||
// Window is minimized/hidden - nothing to render
|
||||
break;
|
||||
case SDL_WINDOWEVENT_RESTORED:
|
||||
case SDL_WINDOWEVENT_SHOWN:
|
||||
// Window is restored - resume normal operation
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -50,7 +50,9 @@ using ImGui::TableNextColumn;
|
||||
using ImGui::Text;
|
||||
|
||||
Emulator::~Emulator() {
|
||||
Cleanup();
|
||||
// Don't call Cleanup() in destructor - renderer is already destroyed
|
||||
// Just stop emulation
|
||||
running_ = false;
|
||||
}
|
||||
|
||||
void Emulator::Cleanup() {
|
||||
|
||||
Reference in New Issue
Block a user