diff options
| -rw-r--r-- | src/core/hle/service/audio/audout_u.cpp | 2 | ||||
| -rw-r--r-- | src/core/hle/service/nvdrv/interface.cpp | 36 | ||||
| -rw-r--r-- | src/core/hle/service/vi/vi.cpp | 4 | ||||
| -rw-r--r-- | src/video_core/gpu.cpp | 2 | ||||
| -rw-r--r-- | src/yuzu/bootmanager.cpp | 2 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_input_player.cpp | 76 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_mouse_advanced.cpp | 39 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_ui.cpp | 4 | ||||
| -rw-r--r-- | src/yuzu/main.cpp | 4 |
9 files changed, 88 insertions, 81 deletions
diff --git a/src/core/hle/service/audio/audout_u.cpp b/src/core/hle/service/audio/audout_u.cpp index 106e89743..dd80dd1dc 100644 --- a/src/core/hle/service/audio/audout_u.cpp +++ b/src/core/hle/service/audio/audout_u.cpp | |||
| @@ -71,7 +71,7 @@ public: | |||
| 71 | 71 | ||
| 72 | stream = audio_core.OpenStream(system.CoreTiming(), audio_params.sample_rate, | 72 | stream = audio_core.OpenStream(system.CoreTiming(), audio_params.sample_rate, |
| 73 | audio_params.channel_count, std::move(unique_name), | 73 | audio_params.channel_count, std::move(unique_name), |
| 74 | [=]() { buffer_event.writable->Signal(); }); | 74 | [this] { buffer_event.writable->Signal(); }); |
| 75 | } | 75 | } |
| 76 | 76 | ||
| 77 | private: | 77 | private: |
diff --git a/src/core/hle/service/nvdrv/interface.cpp b/src/core/hle/service/nvdrv/interface.cpp index deaf0808b..88fbfa9b0 100644 --- a/src/core/hle/service/nvdrv/interface.cpp +++ b/src/core/hle/service/nvdrv/interface.cpp | |||
| @@ -60,24 +60,24 @@ void NVDRV::IoctlBase(Kernel::HLERequestContext& ctx, IoctlVersion version) { | |||
| 60 | 60 | ||
| 61 | if (ctrl.must_delay) { | 61 | if (ctrl.must_delay) { |
| 62 | ctrl.fresh_call = false; | 62 | ctrl.fresh_call = false; |
| 63 | ctx.SleepClientThread("NVServices::DelayedResponse", ctrl.timeout, | 63 | ctx.SleepClientThread( |
| 64 | [=](std::shared_ptr<Kernel::Thread> thread, | 64 | "NVServices::DelayedResponse", ctrl.timeout, |
| 65 | Kernel::HLERequestContext& ctx, | 65 | [=, this](std::shared_ptr<Kernel::Thread> thread, Kernel::HLERequestContext& ctx_, |
| 66 | Kernel::ThreadWakeupReason reason) { | 66 | Kernel::ThreadWakeupReason reason) { |
| 67 | IoctlCtrl ctrl2{ctrl}; | 67 | IoctlCtrl ctrl2{ctrl}; |
| 68 | std::vector<u8> tmp_output = output; | 68 | std::vector<u8> tmp_output = output; |
| 69 | std::vector<u8> tmp_output2 = output2; | 69 | std::vector<u8> tmp_output2 = output2; |
| 70 | u32 result = nvdrv->Ioctl(fd, command, input, input2, tmp_output, | 70 | const u32 ioctl_result = nvdrv->Ioctl(fd, command, input, input2, tmp_output, |
| 71 | tmp_output2, ctrl2, version); | 71 | tmp_output2, ctrl2, version); |
| 72 | ctx.WriteBuffer(tmp_output, 0); | 72 | ctx_.WriteBuffer(tmp_output, 0); |
| 73 | if (version == IoctlVersion::Version3) { | 73 | if (version == IoctlVersion::Version3) { |
| 74 | ctx.WriteBuffer(tmp_output2, 1); | 74 | ctx_.WriteBuffer(tmp_output2, 1); |
| 75 | } | 75 | } |
| 76 | IPC::ResponseBuilder rb{ctx, 3}; | 76 | IPC::ResponseBuilder rb{ctx_, 3}; |
| 77 | rb.Push(RESULT_SUCCESS); | 77 | rb.Push(RESULT_SUCCESS); |
| 78 | rb.Push(result); | 78 | rb.Push(ioctl_result); |
| 79 | }, | 79 | }, |
| 80 | nvdrv->GetEventWriteable(ctrl.event_id)); | 80 | nvdrv->GetEventWriteable(ctrl.event_id)); |
| 81 | } else { | 81 | } else { |
| 82 | ctx.WriteBuffer(output); | 82 | ctx.WriteBuffer(output); |
| 83 | if (version == IoctlVersion::Version3) { | 83 | if (version == IoctlVersion::Version3) { |
diff --git a/src/core/hle/service/vi/vi.cpp b/src/core/hle/service/vi/vi.cpp index 825d11a3f..988d253f9 100644 --- a/src/core/hle/service/vi/vi.cpp +++ b/src/core/hle/service/vi/vi.cpp | |||
| @@ -548,8 +548,8 @@ private: | |||
| 548 | // Wait the current thread until a buffer becomes available | 548 | // Wait the current thread until a buffer becomes available |
| 549 | ctx.SleepClientThread( | 549 | ctx.SleepClientThread( |
| 550 | "IHOSBinderDriver::DequeueBuffer", UINT64_MAX, | 550 | "IHOSBinderDriver::DequeueBuffer", UINT64_MAX, |
| 551 | [=](std::shared_ptr<Kernel::Thread> thread, Kernel::HLERequestContext& ctx, | 551 | [=, this](std::shared_ptr<Kernel::Thread> thread, |
| 552 | Kernel::ThreadWakeupReason reason) { | 552 | Kernel::HLERequestContext& ctx, Kernel::ThreadWakeupReason reason) { |
| 553 | // Repeat TransactParcel DequeueBuffer when a buffer is available | 553 | // Repeat TransactParcel DequeueBuffer when a buffer is available |
| 554 | const auto guard = nv_flinger->Lock(); | 554 | const auto guard = nv_flinger->Lock(); |
| 555 | auto& buffer_queue = nv_flinger->FindBufferQueue(id); | 555 | auto& buffer_queue = nv_flinger->FindBufferQueue(id); |
diff --git a/src/video_core/gpu.cpp b/src/video_core/gpu.cpp index 8e19c3373..512578c8b 100644 --- a/src/video_core/gpu.cpp +++ b/src/video_core/gpu.cpp | |||
| @@ -81,7 +81,7 @@ void GPU::WaitFence(u32 syncpoint_id, u32 value) { | |||
| 81 | } | 81 | } |
| 82 | MICROPROFILE_SCOPE(GPU_wait); | 82 | MICROPROFILE_SCOPE(GPU_wait); |
| 83 | std::unique_lock lock{sync_mutex}; | 83 | std::unique_lock lock{sync_mutex}; |
| 84 | sync_cv.wait(lock, [=]() { return syncpoints[syncpoint_id].load() >= value; }); | 84 | sync_cv.wait(lock, [=, this] { return syncpoints[syncpoint_id].load() >= value; }); |
| 85 | } | 85 | } |
| 86 | 86 | ||
| 87 | void GPU::IncrementSyncPoint(const u32 syncpoint_id) { | 87 | void GPU::IncrementSyncPoint(const u32 syncpoint_id) { |
diff --git a/src/yuzu/bootmanager.cpp b/src/yuzu/bootmanager.cpp index 5738787ac..8fc322b30 100644 --- a/src/yuzu/bootmanager.cpp +++ b/src/yuzu/bootmanager.cpp | |||
| @@ -567,7 +567,7 @@ void GRenderWindow::CaptureScreenshot(u32 res_scale, const QString& screenshot_p | |||
| 567 | screenshot_image = QImage(QSize(layout.width, layout.height), QImage::Format_RGB32); | 567 | screenshot_image = QImage(QSize(layout.width, layout.height), QImage::Format_RGB32); |
| 568 | renderer.RequestScreenshot( | 568 | renderer.RequestScreenshot( |
| 569 | screenshot_image.bits(), | 569 | screenshot_image.bits(), |
| 570 | [=] { | 570 | [=, this] { |
| 571 | const std::string std_screenshot_path = screenshot_path.toStdString(); | 571 | const std::string std_screenshot_path = screenshot_path.toStdString(); |
| 572 | if (screenshot_image.mirrored(false, true).save(screenshot_path)) { | 572 | if (screenshot_image.mirrored(false, true).save(screenshot_path)) { |
| 573 | LOG_INFO(Frontend, "Screenshot saved to \"{}\"", std_screenshot_path); | 573 | LOG_INFO(Frontend, "Screenshot saved to \"{}\"", std_screenshot_path); |
diff --git a/src/yuzu/configuration/configure_input_player.cpp b/src/yuzu/configuration/configure_input_player.cpp index 00433926d..b1850bc95 100644 --- a/src/yuzu/configuration/configure_input_player.cpp +++ b/src/yuzu/configuration/configure_input_player.cpp | |||
| @@ -280,9 +280,9 @@ ConfigureInputPlayer::ConfigureInputPlayer(QWidget* parent, std::size_t player_i | |||
| 280 | } | 280 | } |
| 281 | 281 | ||
| 282 | button->setContextMenuPolicy(Qt::CustomContextMenu); | 282 | button->setContextMenuPolicy(Qt::CustomContextMenu); |
| 283 | connect(button, &QPushButton::clicked, [=] { | 283 | connect(button, &QPushButton::clicked, [=, this] { |
| 284 | HandleClick(button_map[button_id], | 284 | HandleClick(button_map[button_id], |
| 285 | [=](Common::ParamPackage params) { | 285 | [=, this](Common::ParamPackage params) { |
| 286 | // Workaround for ZL & ZR for analog triggers like on XBOX controllors. | 286 | // Workaround for ZL & ZR for analog triggers like on XBOX controllors. |
| 287 | // Analog triggers (from controllers like the XBOX controller) would not | 287 | // Analog triggers (from controllers like the XBOX controller) would not |
| 288 | // work due to a different range of their signals (from 0 to 255 on | 288 | // work due to a different range of their signals (from 0 to 255 on |
| @@ -300,19 +300,20 @@ ConfigureInputPlayer::ConfigureInputPlayer(QWidget* parent, std::size_t player_i | |||
| 300 | }, | 300 | }, |
| 301 | InputCommon::Polling::DeviceType::Button); | 301 | InputCommon::Polling::DeviceType::Button); |
| 302 | }); | 302 | }); |
| 303 | connect(button, &QPushButton::customContextMenuRequested, [=](const QPoint& menu_location) { | 303 | connect(button, &QPushButton::customContextMenuRequested, |
| 304 | QMenu context_menu; | 304 | [=, this](const QPoint& menu_location) { |
| 305 | context_menu.addAction(tr("Clear"), [&] { | 305 | QMenu context_menu; |
| 306 | buttons_param[button_id].Clear(); | 306 | context_menu.addAction(tr("Clear"), [&] { |
| 307 | button_map[button_id]->setText(tr("[not set]")); | 307 | buttons_param[button_id].Clear(); |
| 308 | }); | 308 | button_map[button_id]->setText(tr("[not set]")); |
| 309 | context_menu.addAction(tr("Restore Default"), [&] { | 309 | }); |
| 310 | buttons_param[button_id] = Common::ParamPackage{ | 310 | context_menu.addAction(tr("Restore Default"), [&] { |
| 311 | InputCommon::GenerateKeyboardParam(Config::default_buttons[button_id])}; | 311 | buttons_param[button_id] = Common::ParamPackage{ |
| 312 | button_map[button_id]->setText(ButtonToText(buttons_param[button_id])); | 312 | InputCommon::GenerateKeyboardParam(Config::default_buttons[button_id])}; |
| 313 | }); | 313 | button_map[button_id]->setText(ButtonToText(buttons_param[button_id])); |
| 314 | context_menu.exec(button_map[button_id]->mapToGlobal(menu_location)); | 314 | }); |
| 315 | }); | 315 | context_menu.exec(button_map[button_id]->mapToGlobal(menu_location)); |
| 316 | }); | ||
| 316 | } | 317 | } |
| 317 | 318 | ||
| 318 | for (int analog_id = 0; analog_id < Settings::NativeAnalog::NumAnalogs; analog_id++) { | 319 | for (int analog_id = 0; analog_id < Settings::NativeAnalog::NumAnalogs; analog_id++) { |
| @@ -323,16 +324,16 @@ ConfigureInputPlayer::ConfigureInputPlayer(QWidget* parent, std::size_t player_i | |||
| 323 | } | 324 | } |
| 324 | 325 | ||
| 325 | analog_button->setContextMenuPolicy(Qt::CustomContextMenu); | 326 | analog_button->setContextMenuPolicy(Qt::CustomContextMenu); |
| 326 | connect(analog_button, &QPushButton::clicked, [=]() { | 327 | connect(analog_button, &QPushButton::clicked, [=, this] { |
| 327 | HandleClick(analog_map_buttons[analog_id][sub_button_id], | 328 | HandleClick(analog_map_buttons[analog_id][sub_button_id], |
| 328 | [=](const Common::ParamPackage& params) { | 329 | [=, this](const Common::ParamPackage& params) { |
| 329 | SetAnalogButton(params, analogs_param[analog_id], | 330 | SetAnalogButton(params, analogs_param[analog_id], |
| 330 | analog_sub_buttons[sub_button_id]); | 331 | analog_sub_buttons[sub_button_id]); |
| 331 | }, | 332 | }, |
| 332 | InputCommon::Polling::DeviceType::Button); | 333 | InputCommon::Polling::DeviceType::Button); |
| 333 | }); | 334 | }); |
| 334 | connect(analog_button, &QPushButton::customContextMenuRequested, | 335 | connect(analog_button, &QPushButton::customContextMenuRequested, |
| 335 | [=](const QPoint& menu_location) { | 336 | [=, this](const QPoint& menu_location) { |
| 336 | QMenu context_menu; | 337 | QMenu context_menu; |
| 337 | context_menu.addAction(tr("Clear"), [&] { | 338 | context_menu.addAction(tr("Clear"), [&] { |
| 338 | analogs_param[analog_id].Erase(analog_sub_buttons[sub_button_id]); | 339 | analogs_param[analog_id].Erase(analog_sub_buttons[sub_button_id]); |
| @@ -350,32 +351,35 @@ ConfigureInputPlayer::ConfigureInputPlayer(QWidget* parent, std::size_t player_i | |||
| 350 | menu_location)); | 351 | menu_location)); |
| 351 | }); | 352 | }); |
| 352 | } | 353 | } |
| 353 | connect(analog_map_stick[analog_id], &QPushButton::clicked, [=] { | 354 | connect(analog_map_stick[analog_id], &QPushButton::clicked, [=, this] { |
| 354 | if (QMessageBox::information( | 355 | if (QMessageBox::information( |
| 355 | this, tr("Information"), | 356 | this, tr("Information"), |
| 356 | tr("After pressing OK, first move your joystick horizontally, " | 357 | tr("After pressing OK, first move your joystick horizontally, " |
| 357 | "and then vertically."), | 358 | "and then vertically."), |
| 358 | QMessageBox::Ok | QMessageBox::Cancel) == QMessageBox::Ok) { | 359 | QMessageBox::Ok | QMessageBox::Cancel) == QMessageBox::Ok) { |
| 359 | HandleClick( | 360 | HandleClick(analog_map_stick[analog_id], |
| 360 | analog_map_stick[analog_id], | 361 | [=, this](const Common::ParamPackage& params) { |
| 361 | [=](const Common::ParamPackage& params) { analogs_param[analog_id] = params; }, | 362 | analogs_param[analog_id] = params; |
| 362 | InputCommon::Polling::DeviceType::Analog); | 363 | }, |
| 364 | InputCommon::Polling::DeviceType::Analog); | ||
| 363 | } | 365 | } |
| 364 | }); | 366 | }); |
| 365 | 367 | ||
| 366 | connect(analog_map_deadzone_and_modifier_slider[analog_id], &QSlider::valueChanged, [=] { | 368 | connect(analog_map_deadzone_and_modifier_slider[analog_id], &QSlider::valueChanged, |
| 367 | const float slider_value = analog_map_deadzone_and_modifier_slider[analog_id]->value(); | 369 | [=, this] { |
| 368 | if (analogs_param[analog_id].Get("engine", "") == "sdl" || | 370 | const float slider_value = |
| 369 | analogs_param[analog_id].Get("engine", "") == "gcpad") { | 371 | analog_map_deadzone_and_modifier_slider[analog_id]->value(); |
| 370 | analog_map_deadzone_and_modifier_slider_label[analog_id]->setText( | 372 | if (analogs_param[analog_id].Get("engine", "") == "sdl" || |
| 371 | tr("Deadzone: %1%").arg(slider_value)); | 373 | analogs_param[analog_id].Get("engine", "") == "gcpad") { |
| 372 | analogs_param[analog_id].Set("deadzone", slider_value / 100.0f); | 374 | analog_map_deadzone_and_modifier_slider_label[analog_id]->setText( |
| 373 | } else { | 375 | tr("Deadzone: %1%").arg(slider_value)); |
| 374 | analog_map_deadzone_and_modifier_slider_label[analog_id]->setText( | 376 | analogs_param[analog_id].Set("deadzone", slider_value / 100.0f); |
| 375 | tr("Modifier Scale: %1%").arg(slider_value)); | 377 | } else { |
| 376 | analogs_param[analog_id].Set("modifier_scale", slider_value / 100.0f); | 378 | analog_map_deadzone_and_modifier_slider_label[analog_id]->setText( |
| 377 | } | 379 | tr("Modifier Scale: %1%").arg(slider_value)); |
| 378 | }); | 380 | analogs_param[analog_id].Set("modifier_scale", slider_value / 100.0f); |
| 381 | } | ||
| 382 | }); | ||
| 379 | } | 383 | } |
| 380 | 384 | ||
| 381 | connect(ui->buttonClearAll, &QPushButton::clicked, [this] { ClearAll(); }); | 385 | connect(ui->buttonClearAll, &QPushButton::clicked, [this] { ClearAll(); }); |
diff --git a/src/yuzu/configuration/configure_mouse_advanced.cpp b/src/yuzu/configuration/configure_mouse_advanced.cpp index e0647ea5b..ea2549363 100644 --- a/src/yuzu/configuration/configure_mouse_advanced.cpp +++ b/src/yuzu/configuration/configure_mouse_advanced.cpp | |||
| @@ -83,25 +83,28 @@ ConfigureMouseAdvanced::ConfigureMouseAdvanced(QWidget* parent) | |||
| 83 | } | 83 | } |
| 84 | 84 | ||
| 85 | button->setContextMenuPolicy(Qt::CustomContextMenu); | 85 | button->setContextMenuPolicy(Qt::CustomContextMenu); |
| 86 | connect(button, &QPushButton::clicked, [=] { | 86 | connect(button, &QPushButton::clicked, [=, this] { |
| 87 | HandleClick( | 87 | HandleClick(button_map[button_id], |
| 88 | button_map[button_id], | 88 | [=, this](const Common::ParamPackage& params) { |
| 89 | [=](const Common::ParamPackage& params) { buttons_param[button_id] = params; }, | 89 | buttons_param[button_id] = params; |
| 90 | InputCommon::Polling::DeviceType::Button); | 90 | }, |
| 91 | }); | 91 | InputCommon::Polling::DeviceType::Button); |
| 92 | connect(button, &QPushButton::customContextMenuRequested, [=](const QPoint& menu_location) { | ||
| 93 | QMenu context_menu; | ||
| 94 | context_menu.addAction(tr("Clear"), [&] { | ||
| 95 | buttons_param[button_id].Clear(); | ||
| 96 | button_map[button_id]->setText(tr("[not set]")); | ||
| 97 | }); | ||
| 98 | context_menu.addAction(tr("Restore Default"), [&] { | ||
| 99 | buttons_param[button_id] = Common::ParamPackage{ | ||
| 100 | InputCommon::GenerateKeyboardParam(Config::default_mouse_buttons[button_id])}; | ||
| 101 | button_map[button_id]->setText(ButtonToText(buttons_param[button_id])); | ||
| 102 | }); | ||
| 103 | context_menu.exec(button_map[button_id]->mapToGlobal(menu_location)); | ||
| 104 | }); | 92 | }); |
| 93 | connect(button, &QPushButton::customContextMenuRequested, | ||
| 94 | [=, this](const QPoint& menu_location) { | ||
| 95 | QMenu context_menu; | ||
| 96 | context_menu.addAction(tr("Clear"), [&] { | ||
| 97 | buttons_param[button_id].Clear(); | ||
| 98 | button_map[button_id]->setText(tr("[not set]")); | ||
| 99 | }); | ||
| 100 | context_menu.addAction(tr("Restore Default"), [&] { | ||
| 101 | buttons_param[button_id] = | ||
| 102 | Common::ParamPackage{InputCommon::GenerateKeyboardParam( | ||
| 103 | Config::default_mouse_buttons[button_id])}; | ||
| 104 | button_map[button_id]->setText(ButtonToText(buttons_param[button_id])); | ||
| 105 | }); | ||
| 106 | context_menu.exec(button_map[button_id]->mapToGlobal(menu_location)); | ||
| 107 | }); | ||
| 105 | } | 108 | } |
| 106 | 109 | ||
| 107 | connect(ui->buttonClearAll, &QPushButton::clicked, [this] { ClearAll(); }); | 110 | connect(ui->buttonClearAll, &QPushButton::clicked, [this] { ClearAll(); }); |
diff --git a/src/yuzu/configuration/configure_ui.cpp b/src/yuzu/configuration/configure_ui.cpp index 91c21c572..2c20b68d0 100644 --- a/src/yuzu/configuration/configure_ui.cpp +++ b/src/yuzu/configuration/configure_ui.cpp | |||
| @@ -54,9 +54,9 @@ ConfigureUi::ConfigureUi(QWidget* parent) : QWidget(parent), ui(new Ui::Configur | |||
| 54 | 54 | ||
| 55 | // Update text ComboBoxes after user interaction. | 55 | // Update text ComboBoxes after user interaction. |
| 56 | connect(ui->row_1_text_combobox, QOverload<int>::of(&QComboBox::activated), | 56 | connect(ui->row_1_text_combobox, QOverload<int>::of(&QComboBox::activated), |
| 57 | [=]() { ConfigureUi::UpdateSecondRowComboBox(); }); | 57 | [this] { ConfigureUi::UpdateSecondRowComboBox(); }); |
| 58 | connect(ui->row_2_text_combobox, QOverload<int>::of(&QComboBox::activated), | 58 | connect(ui->row_2_text_combobox, QOverload<int>::of(&QComboBox::activated), |
| 59 | [=]() { ConfigureUi::UpdateFirstRowComboBox(); }); | 59 | [this] { ConfigureUi::UpdateFirstRowComboBox(); }); |
| 60 | 60 | ||
| 61 | // Set screenshot path to user specification. | 61 | // Set screenshot path to user specification. |
| 62 | connect(ui->screenshot_path_button, &QToolButton::pressed, this, [this] { | 62 | connect(ui->screenshot_path_button, &QToolButton::pressed, this, [this] { |
diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp index e26cec78c..592993c36 100644 --- a/src/yuzu/main.cpp +++ b/src/yuzu/main.cpp | |||
| @@ -583,7 +583,7 @@ void GMainWindow::InitializeWidgets() { | |||
| 583 | renderer_status_button->setObjectName(QStringLiteral("RendererStatusBarButton")); | 583 | renderer_status_button->setObjectName(QStringLiteral("RendererStatusBarButton")); |
| 584 | renderer_status_button->setCheckable(true); | 584 | renderer_status_button->setCheckable(true); |
| 585 | renderer_status_button->setFocusPolicy(Qt::NoFocus); | 585 | renderer_status_button->setFocusPolicy(Qt::NoFocus); |
| 586 | connect(renderer_status_button, &QPushButton::toggled, [=](bool checked) { | 586 | connect(renderer_status_button, &QPushButton::toggled, [this](bool checked) { |
| 587 | renderer_status_button->setText(checked ? tr("VULKAN") : tr("OPENGL")); | 587 | renderer_status_button->setText(checked ? tr("VULKAN") : tr("OPENGL")); |
| 588 | }); | 588 | }); |
| 589 | renderer_status_button->toggle(); | 589 | renderer_status_button->toggle(); |
| @@ -595,7 +595,7 @@ void GMainWindow::InitializeWidgets() { | |||
| 595 | #else | 595 | #else |
| 596 | renderer_status_button->setChecked(Settings::values.renderer_backend.GetValue() == | 596 | renderer_status_button->setChecked(Settings::values.renderer_backend.GetValue() == |
| 597 | Settings::RendererBackend::Vulkan); | 597 | Settings::RendererBackend::Vulkan); |
| 598 | connect(renderer_status_button, &QPushButton::clicked, [=] { | 598 | connect(renderer_status_button, &QPushButton::clicked, [this] { |
| 599 | if (emulation_running) { | 599 | if (emulation_running) { |
| 600 | return; | 600 | return; |
| 601 | } | 601 | } |