diff --git a/dist/qt_themes/qdarkstyle/style.qss b/dist/qt_themes/qdarkstyle/style.qss index 33f0de4693..8385de0c7c 100644 --- a/dist/qt_themes/qdarkstyle/style.qss +++ b/dist/qt_themes/qdarkstyle/style.qss @@ -1234,24 +1234,18 @@ QDateEdit::down-arrow:focus { image: url(:/qss_icons/rc/down_arrow.png); } -QPushButton#StatusButton, -QPushButton#StatusButton:disabled { - border: 1px solid; - color: #FFFFFF; - border-color: #FF6666; +QPushButton#StatusButton { + color: #656565; + border: 1px solid transparent; background-color: transparent; padding: 0px 3px 0px 3px; text-align: center; } -QPushButton#StatusButton:hover { - border-color: #0000FF -} - QPushButton#StatusButton:checked { - border-color: #00FF00; + color: #ffffff; } -QPushButton#StatusButton:hover:checked { - border-color: #0000FF; +QPushButton#StatusButton:hover { + border: 1px solid #76797C; } diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp index b5b0d952ff..2af3d3718c 100644 --- a/src/yuzu/main.cpp +++ b/src/yuzu/main.cpp @@ -490,26 +490,27 @@ void GMainWindow::InitializeWidgets() { async_status_button->setChecked(Settings::values.use_asynchronous_gpu_emulation); 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->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->setObjectName(tr("StatusButton")); + renderer_status_button->setChecked(false); renderer_status_button->setDisabled(true); - renderer_status_button->setStyleSheet( - QStringLiteral("QPushButton:disabled{border-color: #0000FF;}")); +#endif // HAS_VULKAN + 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()->setVisible(true); @@ -749,8 +750,7 @@ void GMainWindow::ConnectWidgetEvents() { connect(&status_bar_update_timer, &QTimer::timeout, this, &GMainWindow::UpdateStatusBar); connect(async_status_button, &QPushButton::clicked, this, &GMainWindow::OnToggleASyncGPU); - connect(accurate_status_button, &QPushButton::clicked, this, &GMainWindow::OnToggleAccurateGPU); - connect(fps30_status_button, &QPushButton::clicked, this, &GMainWindow::OnToggle30FPSGPU); + connect(renderer_status_button, &QPushButton::clicked, this, &GMainWindow::OnToggleRendererAPI); } void GMainWindow::ConnectMenuEvents() { @@ -1030,8 +1030,6 @@ void GMainWindow::BootGame(const QString& filename) { } status_bar_update_timer.start(2000); async_status_button->setDisabled(true); - accurate_status_button->setDisabled(true); - fps30_status_button->setDisabled(true); renderer_status_button->setDisabled(true); const u64 title_id = Core::System::GetInstance().CurrentProcess()->GetTitleID(); @@ -1103,8 +1101,9 @@ void GMainWindow::ShutdownGame() { game_fps_label->setVisible(false); emu_frametime_label->setVisible(false); async_status_button->setEnabled(true); - accurate_status_button->setEnabled(true); - fps30_status_button->setEnabled(true); +#ifdef HAS_VULKAN + renderer_status_button->setEnabled(true); +#endif emulation_running = false; @@ -1874,8 +1873,18 @@ void GMainWindow::OnConfigure() { config->Save(); async_status_button->setChecked(Settings::values.use_asynchronous_gpu_emulation); - accurate_status_button->setChecked(Settings::values.use_accurate_gpu_emulation); - fps30_status_button->setChecked(Settings::values.force_30fps_mode); +#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; + } +#endif } void GMainWindow::OnLoadAmiibo() { @@ -2164,24 +2173,26 @@ void GMainWindow::OnToggleASyncGPU() { Settings::Apply(); } -void GMainWindow::OnToggleAccurateGPU() { +void GMainWindow::OnToggleRendererAPI() { if (emulation_running) return; - Settings::values.use_accurate_gpu_emulation = !Settings::values.use_accurate_gpu_emulation; - accurate_status_button->setChecked(Settings::values.use_accurate_gpu_emulation); - - Settings::Apply(); -} - -void GMainWindow::OnToggle30FPSGPU() { - if (emulation_running) - return; - - Settings::values.force_30fps_mode = !Settings::values.force_30fps_mode; - fps30_status_button->setChecked(Settings::values.force_30fps_mode); +#ifdef HAS_VULKAN + switch (Settings::values.renderer_backend) { + case Settings::RendererBackend::OpenGL: + Settings::values.renderer_backend = Settings::RendererBackend::OpenGL; + renderer_status_button->setText(tr("OPENGL")); + renderer_status_button->setChecked(false); + break; + case Settings::RendererBackend::Vulkan: + Settings::values.renderer_backend = Settings::RendererBackend::Vulkan; + renderer_status_button->setText(tr("VULKAN")); + renderer_status_button->setChecked(true); + break; + } Settings::Apply(); +#endif // HAS_VULKAN } std::optional GMainWindow::SelectRomFSDumpTarget(const FileSys::ContentProvider& installed, diff --git a/src/yuzu/main.h b/src/yuzu/main.h index cd621a3739..776d1d93c1 100644 --- a/src/yuzu/main.h +++ b/src/yuzu/main.h @@ -217,8 +217,7 @@ private slots: void OnCoreError(Core::System::ResultStatus, std::string); void OnReinitializeKeys(ReinitializeKeyBehavior behavior); void OnToggleASyncGPU(); - void OnToggleAccurateGPU(); - void OnToggle30FPSGPU(); + void OnToggleRendererAPI(); private: std::optional SelectRomFSDumpTarget(const FileSys::ContentProvider&, u64 program_id); @@ -241,8 +240,6 @@ private: QLabel* game_fps_label = nullptr; QLabel* emu_frametime_label = nullptr; QPushButton* async_status_button = nullptr; - QPushButton* accurate_status_button = nullptr; - QPushButton* fps30_status_button = nullptr; QPushButton* renderer_status_button = nullptr; QTimer status_bar_update_timer;