mirror of
				https://git.suyu.dev/suyu/suyu.git
				synced 2025-11-04 12:34:39 +08:00 
			
		
		
		
	Init window size from VideoCore. Start changing the default window behavior...
This commit is contained in:
		
							parent
							
								
									0ecb0365e4
								
							
						
					
					
						commit
						68a8594d04
					
				@ -6,6 +6,7 @@
 | 
			
		||||
 | 
			
		||||
#include "core/core.h"
 | 
			
		||||
#include "core/loader.h"
 | 
			
		||||
#include "video_core/video_core.h"
 | 
			
		||||
 | 
			
		||||
#include "version.h"
 | 
			
		||||
 | 
			
		||||
@ -35,7 +36,8 @@ void EmuThread::run()
 | 
			
		||||
                    exec_cpu_step = false;
 | 
			
		||||
 | 
			
		||||
                Core::SingleStep();
 | 
			
		||||
                emit CPUStepped();
 | 
			
		||||
                if (!cpu_running)
 | 
			
		||||
                    emit CPUStepped();
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
@ -103,9 +105,8 @@ GRenderWindow::GRenderWindow(QWidget* parent) : QWidget(parent), emu_thread(this
 | 
			
		||||
    // TODO: One of these flags might be interesting: WA_OpaquePaintEvent, WA_NoBackground, WA_DontShowOnScreen, WA_DeleteOnClose
 | 
			
		||||
 | 
			
		||||
    child = new GGLWidgetInternal(this);
 | 
			
		||||
 | 
			
		||||
    QBoxLayout* layout = new QHBoxLayout(this);
 | 
			
		||||
    resize(640, 480); // TODO: Load size from config instead
 | 
			
		||||
    resize(VideoCore::kScreenTopWidth, VideoCore::kScreenTopHeight + VideoCore::kScreenBottomHeight);
 | 
			
		||||
    layout->addWidget(child);
 | 
			
		||||
    layout->setMargin(0);
 | 
			
		||||
    setLayout(layout);
 | 
			
		||||
 | 
			
		||||
@ -6,6 +6,7 @@
 | 
			
		||||
 | 
			
		||||
#include "common/common.h"
 | 
			
		||||
#include "common/platform.h"
 | 
			
		||||
#include "common/log_manager.h"
 | 
			
		||||
#if EMU_PLATFORM == PLATFORM_LINUX
 | 
			
		||||
#include <unistd.h>
 | 
			
		||||
#endif
 | 
			
		||||
@ -31,7 +32,9 @@ GMainWindow::GMainWindow()
 | 
			
		||||
    statusBar()->hide();
 | 
			
		||||
 | 
			
		||||
    render_window = new GRenderWindow;
 | 
			
		||||
    render_window->hide();
 | 
			
		||||
    //render_window->setStyleSheet("background-color:black;");
 | 
			
		||||
    ui.horizontalLayout->addWidget(render_window); 
 | 
			
		||||
    //render_window->hide();
 | 
			
		||||
 | 
			
		||||
    disasm = new GDisAsmView(this, render_window->GetEmuThread());
 | 
			
		||||
    addDockWidget(Qt::BottomDockWidgetArea, disasm);
 | 
			
		||||
@ -63,15 +66,15 @@ GMainWindow::GMainWindow()
 | 
			
		||||
    restoreState(settings.value("state").toByteArray());
 | 
			
		||||
    render_window->restoreGeometry(settings.value("geometryRenderWindow").toByteArray());
 | 
			
		||||
 | 
			
		||||
    ui.action_Single_Window_Mode->setChecked(settings.value("singleWindowMode", false).toBool());
 | 
			
		||||
    SetupEmuWindowMode();
 | 
			
		||||
    //ui.action_Popout_Window_Mode->setChecked(settings.value("popupWindowMode", false).toBool());
 | 
			
		||||
    //ToggleWindowMode();
 | 
			
		||||
 | 
			
		||||
    // Setup connections
 | 
			
		||||
    connect(ui.action_load_elf, SIGNAL(triggered()), this, SLOT(OnMenuLoadELF()));
 | 
			
		||||
	connect(ui.action_Start, SIGNAL(triggered()), this, SLOT(OnStartGame()));
 | 
			
		||||
	connect(ui.action_Pause, SIGNAL(triggered()), this, SLOT(OnPauseGame()));
 | 
			
		||||
	connect(ui.action_Stop, SIGNAL(triggered()), this, SLOT(OnStopGame()));
 | 
			
		||||
	connect(ui.action_Single_Window_Mode, SIGNAL(triggered(bool)), this, SLOT(SetupEmuWindowMode()));
 | 
			
		||||
	//connect(ui.action_Single_Window_Mode, SIGNAL(triggered(bool)), this, SLOT(SetupEmuWindowMode()));
 | 
			
		||||
    connect(ui.action_Hotkeys, SIGNAL(triggered()), this, SLOT(OnOpenHotkeysDialog()));
 | 
			
		||||
 | 
			
		||||
    // BlockingQueuedConnection is important here, it makes sure we've finished refreshing our views before the CPU continues
 | 
			
		||||
@ -89,6 +92,7 @@ GMainWindow::GMainWindow()
 | 
			
		||||
    show();
 | 
			
		||||
 | 
			
		||||
    System::Init(render_window);
 | 
			
		||||
    LogManager::Init();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
GMainWindow::~GMainWindow()
 | 
			
		||||
@ -124,9 +128,6 @@ void GMainWindow::BootGame(const char* filename)
 | 
			
		||||
    arm_regs->OnCPUStepped();
 | 
			
		||||
 | 
			
		||||
    render_window->GetEmuThread().start();
 | 
			
		||||
 | 
			
		||||
    SetupEmuWindowMode();
 | 
			
		||||
    render_window->show();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void GMainWindow::OnMenuLoadELF()
 | 
			
		||||
@ -171,11 +172,11 @@ void GMainWindow::OnOpenHotkeysDialog()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void GMainWindow::SetupEmuWindowMode()
 | 
			
		||||
void GMainWindow::ToggleWindowMode()
 | 
			
		||||
{
 | 
			
		||||
    //if (!render_window->GetEmuThread().isRunning())
 | 
			
		||||
    //    return;
 | 
			
		||||
 | 
			
		||||
    /*
 | 
			
		||||
    bool enable = ui.action_Single_Window_Mode->isChecked();
 | 
			
		||||
    if (enable && render_window->parent() == NULL) // switch to single window mode
 | 
			
		||||
    {
 | 
			
		||||
@ -192,6 +193,7 @@ void GMainWindow::SetupEmuWindowMode()
 | 
			
		||||
        render_window->DoneCurrent();
 | 
			
		||||
        render_window->RestoreGeometry();
 | 
			
		||||
    }
 | 
			
		||||
    */
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void GMainWindow::OnConfigure()
 | 
			
		||||
@ -206,7 +208,7 @@ void GMainWindow::closeEvent(QCloseEvent* event)
 | 
			
		||||
    settings.setValue("geometry", saveGeometry());
 | 
			
		||||
    settings.setValue("state", saveState());
 | 
			
		||||
    settings.setValue("geometryRenderWindow", render_window->saveGeometry());
 | 
			
		||||
    settings.setValue("singleWindowMode", ui.action_Single_Window_Mode->isChecked());
 | 
			
		||||
    //settings.setValue("singleWindowMode", ui.action_Single_Window_Mode->isChecked());
 | 
			
		||||
    settings.setValue("firstStart", false);
 | 
			
		||||
    SaveHotkeys(settings);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -37,8 +37,8 @@ private slots:
 | 
			
		||||
	void OnStopGame();
 | 
			
		||||
	void OnMenuLoadELF();
 | 
			
		||||
    void OnOpenHotkeysDialog();
 | 
			
		||||
    void SetupEmuWindowMode();
 | 
			
		||||
    void OnConfigure();
 | 
			
		||||
    void ToggleWindowMode();
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    Ui::MainWindow ui;
 | 
			
		||||
 | 
			
		||||
@ -57,7 +57,6 @@
 | 
			
		||||
    <property name="title">
 | 
			
		||||
     <string>&View</string>
 | 
			
		||||
    </property>
 | 
			
		||||
    <addaction name="action_Single_Window_Mode"/>
 | 
			
		||||
    <addaction name="action_Hotkeys"/>
 | 
			
		||||
   </widget>
 | 
			
		||||
   <widget class="QMenu" name="menu_Help">
 | 
			
		||||
@ -108,14 +107,6 @@
 | 
			
		||||
    <string>About Citra</string>
 | 
			
		||||
   </property>
 | 
			
		||||
  </action>
 | 
			
		||||
  <action name="action_Single_Window_Mode">
 | 
			
		||||
   <property name="checkable">
 | 
			
		||||
    <bool>true</bool>
 | 
			
		||||
   </property>
 | 
			
		||||
   <property name="text">
 | 
			
		||||
    <string>Single Window Mode</string>
 | 
			
		||||
   </property>
 | 
			
		||||
  </action>
 | 
			
		||||
  <action name="action_Hotkeys">
 | 
			
		||||
   <property name="text">
 | 
			
		||||
    <string>Configure &Hotkeys ...</string>
 | 
			
		||||
 | 
			
		||||
@ -32,7 +32,6 @@ public:
 | 
			
		||||
    QAction *action_Pause;
 | 
			
		||||
    QAction *action_Stop;
 | 
			
		||||
    QAction *action_About;
 | 
			
		||||
    QAction *action_Single_Window_Mode;
 | 
			
		||||
    QAction *action_Hotkeys;
 | 
			
		||||
    QAction *action_Configure;
 | 
			
		||||
    QWidget *centralwidget;
 | 
			
		||||
@ -68,9 +67,6 @@ public:
 | 
			
		||||
        action_Stop->setEnabled(false);
 | 
			
		||||
        action_About = new QAction(MainWindow);
 | 
			
		||||
        action_About->setObjectName(QString::fromUtf8("action_About"));
 | 
			
		||||
        action_Single_Window_Mode = new QAction(MainWindow);
 | 
			
		||||
        action_Single_Window_Mode->setObjectName(QString::fromUtf8("action_Single_Window_Mode"));
 | 
			
		||||
        action_Single_Window_Mode->setCheckable(true);
 | 
			
		||||
        action_Hotkeys = new QAction(MainWindow);
 | 
			
		||||
        action_Hotkeys->setObjectName(QString::fromUtf8("action_Hotkeys"));
 | 
			
		||||
        action_Configure = new QAction(MainWindow);
 | 
			
		||||
@ -108,7 +104,6 @@ public:
 | 
			
		||||
        menu_Emulation->addAction(action_Stop);
 | 
			
		||||
        menu_Emulation->addSeparator();
 | 
			
		||||
        menu_Emulation->addAction(action_Configure);
 | 
			
		||||
        menu_View->addAction(action_Single_Window_Mode);
 | 
			
		||||
        menu_View->addAction(action_Hotkeys);
 | 
			
		||||
        menu_Help->addAction(action_About);
 | 
			
		||||
 | 
			
		||||
@ -128,7 +123,6 @@ public:
 | 
			
		||||
        action_Pause->setText(QApplication::translate("MainWindow", "&Pause", 0, QApplication::UnicodeUTF8));
 | 
			
		||||
        action_Stop->setText(QApplication::translate("MainWindow", "&Stop", 0, QApplication::UnicodeUTF8));
 | 
			
		||||
        action_About->setText(QApplication::translate("MainWindow", "About Citra", 0, QApplication::UnicodeUTF8));
 | 
			
		||||
        action_Single_Window_Mode->setText(QApplication::translate("MainWindow", "Single Window Mode", 0, QApplication::UnicodeUTF8));
 | 
			
		||||
        action_Hotkeys->setText(QApplication::translate("MainWindow", "Configure &Hotkeys ...", 0, QApplication::UnicodeUTF8));
 | 
			
		||||
        action_Configure->setText(QApplication::translate("MainWindow", "Configure ...", 0, QApplication::UnicodeUTF8));
 | 
			
		||||
        menu_File->setTitle(QApplication::translate("MainWindow", "&File", 0, QApplication::UnicodeUTF8));
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user