Fix DestroyPlatformWindow crashing when called in Shutdown of the application
This commit is contained in:
@@ -53,7 +53,10 @@ namespace Juliet
|
||||
}
|
||||
|
||||
// Destroy all Windows that are still alive
|
||||
DestroyPlatformWindow(CurrentDisplayDevice->MainWindow);
|
||||
if (CurrentDisplayDevice->MainWindow)
|
||||
{
|
||||
DestroyPlatformWindow(CurrentDisplayDevice->MainWindow);
|
||||
}
|
||||
|
||||
CurrentDisplayDevice->Shutdown(CurrentDisplayDevice);
|
||||
// Free anything that was freed by the shutdown and then free the display
|
||||
@@ -89,11 +92,14 @@ namespace Juliet
|
||||
|
||||
void DestroyPlatformWindow(NonNullPtr<Window> window)
|
||||
{
|
||||
Assert(CurrentDisplayDevice->MainWindow == window.Get());
|
||||
|
||||
HideWindow(window);
|
||||
|
||||
CurrentDisplayDevice->DestroyPlatformWindow(CurrentDisplayDevice, window);
|
||||
|
||||
Free(window.Get());
|
||||
CurrentDisplayDevice->MainWindow = nullptr;
|
||||
}
|
||||
|
||||
void ShowWindow(NonNullPtr<Window> window)
|
||||
|
||||
@@ -31,12 +31,14 @@ namespace Juliet
|
||||
{
|
||||
Log(LogLevel::Message, LogCategory::Editor, "Shutdown Editor Application...");
|
||||
|
||||
// DestroyOSWindow(MainWindow);
|
||||
if (MainWindow )
|
||||
{
|
||||
DestroyPlatformWindow(MainWindow);
|
||||
}
|
||||
}
|
||||
|
||||
void Win32EditorApplication::Update()
|
||||
{
|
||||
// UpdateOSWindowState(MainWindow);
|
||||
SystemEvent evt;
|
||||
while (GetEvent(evt))
|
||||
{
|
||||
@@ -47,20 +49,6 @@ namespace Juliet
|
||||
Running = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (evt.Type == EventType::Key_Down)
|
||||
{
|
||||
if (evt.Data.Keyboard.Key.ScanCode == ScanCode::Escape)
|
||||
{
|
||||
Running = false;
|
||||
}
|
||||
}
|
||||
|
||||
// Other way to do it
|
||||
if (IsKeyDown(ScanCode::Q))
|
||||
{
|
||||
Running = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user