Stop and cleanup properly when closing application (to fix crash)
This commit is contained in:
parent
e257db4def
commit
691175aaaa
5 changed files with 24 additions and 3 deletions
|
@ -21,6 +21,19 @@ void Console::Initialize()
|
|||
_videoRenderer->StartThread();
|
||||
}
|
||||
|
||||
void Console::Release()
|
||||
{
|
||||
Stop();
|
||||
|
||||
_videoDecoder->StopThread();
|
||||
_videoRenderer->StopThread();
|
||||
|
||||
_videoDecoder.reset();
|
||||
_videoRenderer.reset();
|
||||
_debugHud.reset();
|
||||
_notificationManager.reset();
|
||||
}
|
||||
|
||||
void Console::Run()
|
||||
{
|
||||
if(!_cpu) {
|
||||
|
|
|
@ -34,6 +34,7 @@ private:
|
|||
|
||||
public:
|
||||
void Initialize();
|
||||
void Release();
|
||||
|
||||
void Run();
|
||||
void Stop();
|
||||
|
|
|
@ -154,15 +154,13 @@ namespace InteropEmu {
|
|||
|
||||
DllExport void __stdcall Release()
|
||||
{
|
||||
//_shortcutKeyHandler.reset();
|
||||
|
||||
_console->Stop();
|
||||
|
||||
_renderer.reset();
|
||||
_soundManager.reset();
|
||||
_keyManager.reset();
|
||||
|
||||
//_console->Release(true);
|
||||
_console->Release();
|
||||
_console.reset();
|
||||
|
||||
//_shortcutKeyHandler.reset();
|
||||
|
|
|
@ -29,6 +29,14 @@ namespace Mesen.GUI.Forms
|
|||
EmuApi.InitializeEmu(ConfigManager.HomeFolder, Handle, ctrlRenderer.Handle, false, false, false);
|
||||
}
|
||||
|
||||
protected override void OnFormClosing(FormClosingEventArgs e)
|
||||
{
|
||||
base.OnFormClosing(e);
|
||||
|
||||
EmuApi.Stop();
|
||||
EmuApi.Release();
|
||||
}
|
||||
|
||||
private void mnuTraceLogger_Click(object sender, EventArgs e)
|
||||
{
|
||||
frmTraceLogger frm = new frmTraceLogger();
|
||||
|
|
|
@ -27,6 +27,7 @@ namespace Mesen.GUI
|
|||
[DllImport(DllPath)] public static extern void Release();
|
||||
|
||||
[DllImport(DllPath)] public static extern void Run();
|
||||
[DllImport(DllPath)] public static extern void Stop();
|
||||
|
||||
[DllImport(DllPath)] public static extern void LoadRom(
|
||||
[MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Utf8Marshaler))]string filepath,
|
||||
|
|
Loading…
Add table
Reference in a new issue