GSDump: very early draft of the UI

This commit is contained in:
Gauvain 'GovanifY' Roussel-Tarbouriech 2021-01-29 17:17:58 +01:00 committed by Kojin
parent 0dffc13e49
commit 794ef66392
7 changed files with 152 additions and 24 deletions

View File

@ -600,6 +600,7 @@ set(pcsx2GuiSources
gui/ConsoleLogger.cpp
gui/CpuUsageProvider.cpp
gui/Dialogs/AboutBoxDialog.cpp
gui/Dialogs/GSDumpDialog.cpp
gui/Dialogs/AssertionDialog.cpp
gui/Dialogs/BaseConfigurationDialog.cpp
gui/Dialogs/ConfirmationDialogs.cpp

View File

@ -122,6 +122,7 @@ enum MenuIdentifiers
MenuId_GameSettingsSubMenu,
MenuId_EnablePatches,
MenuId_EnableCheats,
MenuId_GSDump,
MenuId_EnableWideScreenPatches,
MenuId_EnableInputRecording,
MenuId_EnableLuaTools,

View File

@ -0,0 +1,108 @@
/* PCSX2 - PS2 Emulator for PCs
* Copyright (C) 2002-2010 PCSX2 Dev Team
*
* PCSX2 is free software: you can redistribute it and/or modify it under the terms
* of the GNU Lesser General Public License as published by the Free Software Found-
* ation, either version 3 of the License, or (at your option) any later version.
*
* PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with PCSX2.
* If not, see <http://www.gnu.org/licenses/>.
*/
#include "PrecompiledHeader.h"
#include "App.h"
#include "AppCommon.h"
#include "MSWstuff.h"
#include "Dialogs/ModalPopups.h"
#include <wx/mstream.h>
#include <wx/listctrl.h>
#include <wx/filepicker.h>
#include <wx/radiobut.h>
#include <wx/button.h>
#include <wx/treectrl.h>
#include <wx/checkbox.h>
using namespace pxSizerFlags;
// --------------------------------------------------------------------------------------
// GSDumpDialog Implementation
// --------------------------------------------------------------------------------------
Dialogs::GSDumpDialog::GSDumpDialog(wxWindow* parent)
: wxDialogWithHelpers(parent, _("GSDumpGov"), pxDialogFlags())
{
const float scale = MSW_GetDPIScale();
SetMinWidth(scale * 460);
#ifdef _WIN32
const int padding = 15;
#else
const int padding = 8;
#endif
wxFlexGridSizer& general(*new wxFlexGridSizer(2, StdPadding, StdPadding));
wxBoxSizer& dump_info(*new wxBoxSizer(wxVERTICAL));
wxFlexGridSizer& debugger(*new wxFlexGridSizer(2, StdPadding, StdPadding));
wxBoxSizer& dbg_tree(*new wxBoxSizer(wxVERTICAL));
wxBoxSizer& dbg_actions(*new wxBoxSizer(wxVERTICAL));
wxBoxSizer& gif(*new wxBoxSizer(wxVERTICAL));
// dump list
//general += new wxListView(this, wxID_ANY);
// dump directory
//general += new wxDirPickerCtrl(this, wxID_ANY);
//general += padding;
// renderer override
dump_info += new wxRadioButton(this, wxID_ANY, _("None"));
dump_info += new wxRadioButton(this, wxID_ANY, _("D3D11 HW"));
dump_info += new wxRadioButton(this, wxID_ANY, _("OGL HW"));
dump_info += new wxRadioButton(this, wxID_ANY, _("OGL SW"));
dump_info += padding;
// dump screenshot
//
// wxImage img = EmbeddedImage<res_Logo>().Get();
// img.Rescale(img.GetWidth() * scale, img.GetHeight() * scale, wxIMAGE_QUALITY_HIGH);
// auto bitmap_logo = new wxStaticBitmap(this, wxID_ANY, wxBitmap(img));
// launch dump
dump_info += new wxButton(this, wxID_ANY, _("Run"));
dump_info += padding;
// debugger
dbg_tree += new wxStaticText(this, wxID_ANY, _("GIF Packets"));
dbg_tree += new wxTreeCtrl(this, wxID_ANY, wxDefaultPosition, wxSize(250, 200));
dbg_actions += new wxCheckBox(this, wxID_ANY, _("Debug Mode"));
dbg_actions += new wxButton(this, wxID_ANY, _("Go to Start"));
dbg_actions += new wxButton(this, wxID_ANY, _("Step"));
dbg_actions += new wxButton(this, wxID_ANY, _("Run to Selection"));
dbg_actions += new wxButton(this, wxID_ANY, _("Go to next VSync"));
// gif
gif += new wxStaticText(this, wxID_ANY, _("Packet Content"));
gif += new wxTreeCtrl(this, wxID_ANY, wxDefaultPosition, wxSize(250, 200));
debugger += dbg_tree;
debugger += dbg_actions;
general += new wxListView(this, wxID_ANY);
general += dump_info;
general += debugger;
general += gif;
*this += general;
SetSizerAndFit(GetSizer());
}

View File

@ -26,48 +26,58 @@ class FirstTimeWizard : public wxWizard
typedef wxWizard _parent;
protected:
wxWizardPageSimple& m_page_intro;
wxWizardPageSimple& m_page_plugins;
wxWizardPageSimple& m_page_bios;
wxWizardPageSimple& m_page_intro;
wxWizardPageSimple& m_page_plugins;
wxWizardPageSimple& m_page_bios;
wxPanelWithHelpers& m_panel_Intro;
Panels::PluginSelectorPanel& m_panel_PluginSel;
Panels::BiosSelectorPanel& m_panel_BiosSel;
wxPanelWithHelpers& m_panel_Intro;
Panels::PluginSelectorPanel& m_panel_PluginSel;
Panels::BiosSelectorPanel& m_panel_BiosSel;
public:
FirstTimeWizard( wxWindow* parent );
FirstTimeWizard(wxWindow* parent);
virtual ~FirstTimeWizard() = default;
wxWizardPage *GetFirstPage() const { return &m_page_intro; }
wxWizardPage* GetFirstPage() const { return &m_page_intro; }
void ForceEnumPlugins()
{
m_panel_PluginSel.OnShown();
}
int ShowModal();
protected:
virtual void OnPageChanging( wxWizardEvent& evt );
virtual void OnPageChanged( wxWizardEvent& evt );
virtual void OnDoubleClicked( wxCommandEvent& evt );
virtual void OnPageChanging(wxWizardEvent& evt);
virtual void OnPageChanged(wxWizardEvent& evt);
virtual void OnDoubleClicked(wxCommandEvent& evt);
void OnRestartWizard( wxCommandEvent& evt );
void OnRestartWizard(wxCommandEvent& evt);
};
namespace Dialogs
{
class AboutBoxDialog: public wxDialogWithHelpers
class AboutBoxDialog : public wxDialogWithHelpers
{
public:
AboutBoxDialog( wxWindow* parent=NULL );
AboutBoxDialog(wxWindow* parent = NULL);
virtual ~AboutBoxDialog() = default;
static wxString GetNameStatic() { return L"AboutBox"; }
wxString GetDialogName() const { return GetNameStatic(); }
};
class GSDumpDialog : public wxDialogWithHelpers
{
public:
GSDumpDialog(wxWindow* parent = NULL);
virtual ~GSDumpDialog() = default;
static wxString GetNameStatic() { return L"AboutBox"; }
wxString GetDialogName() const { return GetNameStatic(); }
};
class PickUserModeDialog : public BaseApplicableDialog
{
@ -76,29 +86,29 @@ namespace Dialogs
Panels::LanguageSelectionPanel* m_panel_langsel;
public:
PickUserModeDialog( wxWindow* parent );
PickUserModeDialog(wxWindow* parent);
virtual ~PickUserModeDialog() = default;
protected:
void OnOk_Click( wxCommandEvent& evt );
void OnOk_Click(wxCommandEvent& evt);
};
class ImportSettingsDialog : public wxDialogWithHelpers
{
public:
ImportSettingsDialog( wxWindow* parent );
ImportSettingsDialog(wxWindow* parent);
virtual ~ImportSettingsDialog() = default;
protected:
void OnImport_Click( wxCommandEvent& evt );
void OnOverwrite_Click( wxCommandEvent& evt );
void OnImport_Click(wxCommandEvent& evt);
void OnOverwrite_Click(wxCommandEvent& evt);
};
class AssertionDialog : public wxDialogWithHelpers
{
public:
AssertionDialog( const wxString& text, const wxString& stacktrace );
AssertionDialog(const wxString& text, const wxString& stacktrace);
virtual ~AssertionDialog() = default;
};
@ -112,7 +122,7 @@ namespace Dialogs
static wxString GetNameStatic() { return L"IPCSettings"; }
wxString GetDialogName() const { return GetNameStatic(); }
};
}
} // namespace Dialogs
wxWindowID pxIssueConfirmation( wxDialogWithHelpers& confirmDlg, const MsgButtons& buttons );
wxWindowID pxIssueConfirmation( wxDialogWithHelpers& confirmDlg, const MsgButtons& buttons, const wxString& disablerKey );
wxWindowID pxIssueConfirmation(wxDialogWithHelpers& confirmDlg, const MsgButtons& buttons);
wxWindowID pxIssueConfirmation(wxDialogWithHelpers& confirmDlg, const MsgButtons& buttons, const wxString& disablerKey);

View File

@ -299,6 +299,7 @@ void MainEmuFrame::ConnectMenus()
Bind(wxEVT_MENU, &MainEmuFrame::Menu_Github, this, MenuId_Help_Github);
Bind(wxEVT_MENU, &MainEmuFrame::Menu_Wiki, this, MenuId_Help_Wiki);
Bind(wxEVT_MENU, &MainEmuFrame::Menu_ShowAboutBox, this, MenuId_About);
Bind(wxEVT_MENU, &MainEmuFrame::Menu_ShowGSDump, this, MenuId_GSDump);
Bind(wxEVT_MENU, &MainEmuFrame::Menu_ChangeLang, this, MenuId_ChangeLang);
// Debug
@ -478,6 +479,7 @@ void MainEmuFrame::CreateConfigMenu()
m_menuConfig.Append(MenuId_Config_DEV9, _("&Network and HDD Settings..."));
m_menuConfig.Append(MenuId_Config_USB, _("&USB Settings..."));
m_menuConfig.Append(MenuId_Config_PAD, _("&GamePad Settings..."));
m_menuConfig.Append(MenuId_GSDump, _("&GS Dump"));
m_menuConfig.AppendSeparator();

View File

@ -256,6 +256,7 @@ protected:
void Menu_Github(wxCommandEvent& event);
void Menu_Wiki(wxCommandEvent& event);
void Menu_ShowAboutBox(wxCommandEvent& event);
void Menu_ShowGSDump(wxCommandEvent& event);
void Menu_Capture_Video_ToggleCapture_Click(wxCommandEvent& event);
void Menu_Capture_Video_IncludeAudio_Click(wxCommandEvent& event);

View File

@ -906,6 +906,11 @@ void MainEmuFrame::Menu_ShowAboutBox(wxCommandEvent& event)
AppOpenDialog<AboutBoxDialog>(this);
}
void MainEmuFrame::Menu_ShowGSDump(wxCommandEvent& event)
{
AppOpenDialog<GSDumpDialog>(this);
}
void MainEmuFrame::Menu_Capture_Video_ToggleCapture_Click(wxCommandEvent& event)
{
ScopedCoreThreadPause paused_core;