Also delay-load the VFPU dialog, just because

This commit is contained in:
Henrik Rydgård 2021-11-13 22:24:30 +01:00
parent c004e9ca9d
commit fc26beca4b
8 changed files with 22 additions and 6 deletions

View File

@ -466,6 +466,7 @@ BOOL CDisasm::DlgProc(UINT message, WPARAM wParam, LPARAM lParam)
break;
case IDC_SHOWVFPU:
MainWindow::CreateVFPUWindow();
vfpudlg->Show(true);
break;

View File

@ -13,8 +13,6 @@
#include "Core/MIPS/MIPS.h" // BAD
CVFPUDlg *vfpudlg;
CVFPUDlg::CVFPUDlg(HINSTANCE _hInstance, HWND _hParent, DebugInterface *cpu_) : Dialog((LPCSTR)IDD_VFPU, _hInstance,_hParent)
{
cpu = cpu_;

View File

@ -20,6 +20,3 @@ private:
int mode;
BOOL DlgProc(UINT message, WPARAM wParam, LPARAM lParam);
};
extern CVFPUDlg *vfpudlg;

View File

@ -556,6 +556,13 @@ namespace MainWindow
}
}
void CreateVFPUWindow() {
if (!vfpudlg) {
vfpudlg = new CVFPUDlg(MainWindow::GetHInstance(), MainWindow::GetHWND(), currentDebugMIPS);
DialogManager::AddDlg(vfpudlg);
}
}
void DestroyDebugWindows() {
DialogManager::RemoveDlg(disasmWindow);
if (disasmWindow)
@ -573,6 +580,11 @@ namespace MainWindow
if (memoryWindow)
delete memoryWindow;
memoryWindow = nullptr;
DialogManager::RemoveDlg(vfpudlg);
if (vfpudlg)
delete vfpudlg;
vfpudlg = nullptr;
}
LRESULT CALLBACK DisplayProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {

View File

@ -64,6 +64,7 @@ namespace MainWindow
void CreateDisasmWindow();
void CreateGeDebuggerWindow();
void CreateMemoryWindow();
void CreateVFPUWindow();
void DestroyDebugWindows();
void UpdateMenus(bool isMenuSelect = false);
void UpdateCommands();

View File

@ -76,6 +76,9 @@ void DialogManager::AddDlg(Dialog *dialog)
void DialogManager::RemoveDlg(Dialog *dialog)
{
if (!dialog) {
return;
}
dialogs.erase(std::remove(dialogs.begin(), dialogs.end(), dialog), dialogs.end());
}

View File

@ -95,6 +95,7 @@ CGEDebugger* geDebuggerWindow = nullptr;
CDisasm *disasmWindow = nullptr;
CMemoryDlg *memoryWindow = nullptr;
CVFPUDlg *vfpudlg = nullptr;
static std::string langRegion;
static std::string osName;
@ -684,7 +685,6 @@ int WINAPI WinMain(HINSTANCE _hInstance, HINSTANCE hPrevInstance, LPSTR szCmdLin
#if PPSSPP_API(ANY_GL)
CGEDebugger::Init();
#endif
DialogManager::AddDlg(vfpudlg = new CVFPUDlg(_hInstance, hwndMain, currentDebugMIPS));
if (g_Config.bShowDebuggerOnLoad) {
MainWindow::CreateDisasmWindow();

View File

@ -19,12 +19,16 @@
#pragma once
#include "ppsspp_config.h"
#include "Debugger/Debugger_Disasm.h"
#include "Debugger/Debugger_MemoryDlg.h"
#include "Debugger/Debugger_VFPUDlg.h"
#include "Common/CommonWindows.h"
extern CDisasm *disasmWindow;
extern CMemoryDlg *memoryWindow;
extern CVFPUDlg *vfpudlg;
#if PPSSPP_API(ANY_GL)
#include "Windows/GEDebugger/GEDebugger.h"