- Removed Accurate and 30FPS buttons

- Cleaner UI changes
- Added Vulkan preperations
This commit is contained in:
CJBok
2019-12-28 15:36:18 +01:00
parent 5720eb6704
commit 9c477adb15
3 changed files with 56 additions and 54 deletions

View File

@@ -1234,24 +1234,18 @@ QDateEdit::down-arrow:focus {
image: url(:/qss_icons/rc/down_arrow.png); image: url(:/qss_icons/rc/down_arrow.png);
} }
QPushButton#StatusButton, QPushButton#StatusButton {
QPushButton#StatusButton:disabled { color: #656565;
border: 1px solid; border: 1px solid transparent;
color: #FFFFFF;
border-color: #FF6666;
background-color: transparent; background-color: transparent;
padding: 0px 3px 0px 3px; padding: 0px 3px 0px 3px;
text-align: center; text-align: center;
} }
QPushButton#StatusButton:hover {
border-color: #0000FF
}
QPushButton#StatusButton:checked { QPushButton#StatusButton:checked {
border-color: #00FF00; color: #ffffff;
} }
QPushButton#StatusButton:hover:checked { QPushButton#StatusButton:hover {
border-color: #0000FF; border: 1px solid #76797C;
} }

View File

@@ -490,26 +490,27 @@ void GMainWindow::InitializeWidgets() {
async_status_button->setChecked(Settings::values.use_asynchronous_gpu_emulation); async_status_button->setChecked(Settings::values.use_asynchronous_gpu_emulation);
statusBar()->addPermanentWidget(async_status_button, 0); statusBar()->addPermanentWidget(async_status_button, 0);
accurate_status_button = new QPushButton();
accurate_status_button->setText(tr("ACCUR"));
accurate_status_button->setObjectName(tr("StatusButton"));
accurate_status_button->setCheckable(true);
accurate_status_button->setChecked(Settings::values.use_accurate_gpu_emulation);
statusBar()->addPermanentWidget(accurate_status_button, 0);
fps30_status_button = new QPushButton();
fps30_status_button->setText(tr("30FPS"));
fps30_status_button->setObjectName(tr("StatusButton"));
fps30_status_button->setCheckable(true);
fps30_status_button->setChecked(Settings::values.force_30fps_mode);
statusBar()->addPermanentWidget(fps30_status_button, 0);
renderer_status_button = new QPushButton(); renderer_status_button = new QPushButton();
renderer_status_button->setCheckable(true);
#ifdef HAS_VULKAN
switch (Settings::values.renderer_backend) {
case Settings::RendererBackend::OpenGL:
renderer_status_button->setText(tr("OPENGL"));
renderer_status_button->setChecked(false);
break;
case Settings::RendererBackend::Vulkan:
renderer_status_button->setText(tr("VULKAN"));
renderer_status_button->setChecked(true);
break;
}
#else
renderer_status_button->setText(tr("OPENGL")); renderer_status_button->setText(tr("OPENGL"));
renderer_status_button->setObjectName(tr("StatusButton")); renderer_status_button->setChecked(false);
renderer_status_button->setDisabled(true); renderer_status_button->setDisabled(true);
renderer_status_button->setStyleSheet( #endif // HAS_VULKAN
QStringLiteral("QPushButton:disabled{border-color: #0000FF;}")); renderer_status_button->setObjectName(tr("StatusButton"));
renderer_status_button->setStyleSheet(QStringLiteral("QPushButton:checked{color: #e85c00;}"
"QPushButton:!checked{color: #00ccdd;}"));
statusBar()->addPermanentWidget(renderer_status_button, 0); statusBar()->addPermanentWidget(renderer_status_button, 0);
statusBar()->setVisible(true); statusBar()->setVisible(true);
@@ -749,8 +750,7 @@ void GMainWindow::ConnectWidgetEvents() {
connect(&status_bar_update_timer, &QTimer::timeout, this, &GMainWindow::UpdateStatusBar); connect(&status_bar_update_timer, &QTimer::timeout, this, &GMainWindow::UpdateStatusBar);
connect(async_status_button, &QPushButton::clicked, this, &GMainWindow::OnToggleASyncGPU); connect(async_status_button, &QPushButton::clicked, this, &GMainWindow::OnToggleASyncGPU);
connect(accurate_status_button, &QPushButton::clicked, this, &GMainWindow::OnToggleAccurateGPU); connect(renderer_status_button, &QPushButton::clicked, this, &GMainWindow::OnToggleRendererAPI);
connect(fps30_status_button, &QPushButton::clicked, this, &GMainWindow::OnToggle30FPSGPU);
} }
void GMainWindow::ConnectMenuEvents() { void GMainWindow::ConnectMenuEvents() {
@@ -1030,8 +1030,6 @@ void GMainWindow::BootGame(const QString& filename) {
} }
status_bar_update_timer.start(2000); status_bar_update_timer.start(2000);
async_status_button->setDisabled(true); async_status_button->setDisabled(true);
accurate_status_button->setDisabled(true);
fps30_status_button->setDisabled(true);
renderer_status_button->setDisabled(true); renderer_status_button->setDisabled(true);
const u64 title_id = Core::System::GetInstance().CurrentProcess()->GetTitleID(); const u64 title_id = Core::System::GetInstance().CurrentProcess()->GetTitleID();
@@ -1103,8 +1101,9 @@ void GMainWindow::ShutdownGame() {
game_fps_label->setVisible(false); game_fps_label->setVisible(false);
emu_frametime_label->setVisible(false); emu_frametime_label->setVisible(false);
async_status_button->setEnabled(true); async_status_button->setEnabled(true);
accurate_status_button->setEnabled(true); #ifdef HAS_VULKAN
fps30_status_button->setEnabled(true); renderer_status_button->setEnabled(true);
#endif
emulation_running = false; emulation_running = false;
@@ -1874,8 +1873,18 @@ void GMainWindow::OnConfigure() {
config->Save(); config->Save();
async_status_button->setChecked(Settings::values.use_asynchronous_gpu_emulation); async_status_button->setChecked(Settings::values.use_asynchronous_gpu_emulation);
accurate_status_button->setChecked(Settings::values.use_accurate_gpu_emulation); #ifdef HAS_VULKAN
fps30_status_button->setChecked(Settings::values.force_30fps_mode); switch (Settings::values.renderer_backend) {
case Settings::RendererBackend::OpenGL:
renderer_status_button->setText(tr("OPENGL"));
renderer_status_button->setChecked(false);
break;
case Settings::RendererBackend::Vulkan:
renderer_status_button->setText(tr("VULKAN"));
renderer_status_button->setChecked(true);
break;
}
#endif
} }
void GMainWindow::OnLoadAmiibo() { void GMainWindow::OnLoadAmiibo() {
@@ -2164,24 +2173,26 @@ void GMainWindow::OnToggleASyncGPU() {
Settings::Apply(); Settings::Apply();
} }
void GMainWindow::OnToggleAccurateGPU() { void GMainWindow::OnToggleRendererAPI() {
if (emulation_running) if (emulation_running)
return; return;
Settings::values.use_accurate_gpu_emulation = !Settings::values.use_accurate_gpu_emulation; #ifdef HAS_VULKAN
accurate_status_button->setChecked(Settings::values.use_accurate_gpu_emulation); switch (Settings::values.renderer_backend) {
case Settings::RendererBackend::OpenGL:
Settings::Apply(); Settings::values.renderer_backend = Settings::RendererBackend::OpenGL;
} renderer_status_button->setText(tr("OPENGL"));
renderer_status_button->setChecked(false);
void GMainWindow::OnToggle30FPSGPU() { break;
if (emulation_running) case Settings::RendererBackend::Vulkan:
return; Settings::values.renderer_backend = Settings::RendererBackend::Vulkan;
renderer_status_button->setText(tr("VULKAN"));
Settings::values.force_30fps_mode = !Settings::values.force_30fps_mode; renderer_status_button->setChecked(true);
fps30_status_button->setChecked(Settings::values.force_30fps_mode); break;
}
Settings::Apply(); Settings::Apply();
#endif // HAS_VULKAN
} }
std::optional<u64> GMainWindow::SelectRomFSDumpTarget(const FileSys::ContentProvider& installed, std::optional<u64> GMainWindow::SelectRomFSDumpTarget(const FileSys::ContentProvider& installed,

View File

@@ -217,8 +217,7 @@ private slots:
void OnCoreError(Core::System::ResultStatus, std::string); void OnCoreError(Core::System::ResultStatus, std::string);
void OnReinitializeKeys(ReinitializeKeyBehavior behavior); void OnReinitializeKeys(ReinitializeKeyBehavior behavior);
void OnToggleASyncGPU(); void OnToggleASyncGPU();
void OnToggleAccurateGPU(); void OnToggleRendererAPI();
void OnToggle30FPSGPU();
private: private:
std::optional<u64> SelectRomFSDumpTarget(const FileSys::ContentProvider&, u64 program_id); std::optional<u64> SelectRomFSDumpTarget(const FileSys::ContentProvider&, u64 program_id);
@@ -241,8 +240,6 @@ private:
QLabel* game_fps_label = nullptr; QLabel* game_fps_label = nullptr;
QLabel* emu_frametime_label = nullptr; QLabel* emu_frametime_label = nullptr;
QPushButton* async_status_button = nullptr; QPushButton* async_status_button = nullptr;
QPushButton* accurate_status_button = nullptr;
QPushButton* fps30_status_button = nullptr;
QPushButton* renderer_status_button = nullptr; QPushButton* renderer_status_button = nullptr;
QTimer status_bar_update_timer; QTimer status_bar_update_timer;