mirror of
https://github.com/yuzu-mirror/yuzu.git
synced 2024-09-07 19:29:08 +01:00
yuzu: Resolve C++20 deprecation warnings related to lambda captures
C++20 deprecates capturing the this pointer via the '=' capture. Instead, we replace it or extend the capture specification.
This commit is contained in:
parent
9b75481755
commit
b249e4e0ce
9 changed files with 88 additions and 81 deletions
|
@ -71,7 +71,7 @@ public:
|
||||||
|
|
||||||
stream = audio_core.OpenStream(system.CoreTiming(), audio_params.sample_rate,
|
stream = audio_core.OpenStream(system.CoreTiming(), audio_params.sample_rate,
|
||||||
audio_params.channel_count, std::move(unique_name),
|
audio_params.channel_count, std::move(unique_name),
|
||||||
[=]() { buffer_event.writable->Signal(); });
|
[this] { buffer_event.writable->Signal(); });
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
@ -60,24 +60,24 @@ void NVDRV::IoctlBase(Kernel::HLERequestContext& ctx, IoctlVersion version) {
|
||||||
|
|
||||||
if (ctrl.must_delay) {
|
if (ctrl.must_delay) {
|
||||||
ctrl.fresh_call = false;
|
ctrl.fresh_call = false;
|
||||||
ctx.SleepClientThread("NVServices::DelayedResponse", ctrl.timeout,
|
ctx.SleepClientThread(
|
||||||
[=](std::shared_ptr<Kernel::Thread> thread,
|
"NVServices::DelayedResponse", ctrl.timeout,
|
||||||
Kernel::HLERequestContext& ctx,
|
[=, this](std::shared_ptr<Kernel::Thread> thread, Kernel::HLERequestContext& ctx_,
|
||||||
Kernel::ThreadWakeupReason reason) {
|
Kernel::ThreadWakeupReason reason) {
|
||||||
IoctlCtrl ctrl2{ctrl};
|
IoctlCtrl ctrl2{ctrl};
|
||||||
std::vector<u8> tmp_output = output;
|
std::vector<u8> tmp_output = output;
|
||||||
std::vector<u8> tmp_output2 = output2;
|
std::vector<u8> tmp_output2 = output2;
|
||||||
u32 result = nvdrv->Ioctl(fd, command, input, input2, tmp_output,
|
const u32 ioctl_result = nvdrv->Ioctl(fd, command, input, input2, tmp_output,
|
||||||
tmp_output2, ctrl2, version);
|
tmp_output2, ctrl2, version);
|
||||||
ctx.WriteBuffer(tmp_output, 0);
|
ctx_.WriteBuffer(tmp_output, 0);
|
||||||
if (version == IoctlVersion::Version3) {
|
if (version == IoctlVersion::Version3) {
|
||||||
ctx.WriteBuffer(tmp_output2, 1);
|
ctx_.WriteBuffer(tmp_output2, 1);
|
||||||
}
|
}
|
||||||
IPC::ResponseBuilder rb{ctx, 3};
|
IPC::ResponseBuilder rb{ctx_, 3};
|
||||||
rb.Push(RESULT_SUCCESS);
|
rb.Push(RESULT_SUCCESS);
|
||||||
rb.Push(result);
|
rb.Push(ioctl_result);
|
||||||
},
|
},
|
||||||
nvdrv->GetEventWriteable(ctrl.event_id));
|
nvdrv->GetEventWriteable(ctrl.event_id));
|
||||||
} else {
|
} else {
|
||||||
ctx.WriteBuffer(output);
|
ctx.WriteBuffer(output);
|
||||||
if (version == IoctlVersion::Version3) {
|
if (version == IoctlVersion::Version3) {
|
||||||
|
|
|
@ -548,8 +548,8 @@ private:
|
||||||
// Wait the current thread until a buffer becomes available
|
// Wait the current thread until a buffer becomes available
|
||||||
ctx.SleepClientThread(
|
ctx.SleepClientThread(
|
||||||
"IHOSBinderDriver::DequeueBuffer", UINT64_MAX,
|
"IHOSBinderDriver::DequeueBuffer", UINT64_MAX,
|
||||||
[=](std::shared_ptr<Kernel::Thread> thread, Kernel::HLERequestContext& ctx,
|
[=, this](std::shared_ptr<Kernel::Thread> thread,
|
||||||
Kernel::ThreadWakeupReason reason) {
|
Kernel::HLERequestContext& ctx, Kernel::ThreadWakeupReason reason) {
|
||||||
// Repeat TransactParcel DequeueBuffer when a buffer is available
|
// Repeat TransactParcel DequeueBuffer when a buffer is available
|
||||||
const auto guard = nv_flinger->Lock();
|
const auto guard = nv_flinger->Lock();
|
||||||
auto& buffer_queue = nv_flinger->FindBufferQueue(id);
|
auto& buffer_queue = nv_flinger->FindBufferQueue(id);
|
||||||
|
|
|
@ -81,7 +81,7 @@ void GPU::WaitFence(u32 syncpoint_id, u32 value) {
|
||||||
}
|
}
|
||||||
MICROPROFILE_SCOPE(GPU_wait);
|
MICROPROFILE_SCOPE(GPU_wait);
|
||||||
std::unique_lock lock{sync_mutex};
|
std::unique_lock lock{sync_mutex};
|
||||||
sync_cv.wait(lock, [=]() { return syncpoints[syncpoint_id].load() >= value; });
|
sync_cv.wait(lock, [=, this] { return syncpoints[syncpoint_id].load() >= value; });
|
||||||
}
|
}
|
||||||
|
|
||||||
void GPU::IncrementSyncPoint(const u32 syncpoint_id) {
|
void GPU::IncrementSyncPoint(const u32 syncpoint_id) {
|
||||||
|
|
|
@ -567,7 +567,7 @@ void GRenderWindow::CaptureScreenshot(u32 res_scale, const QString& screenshot_p
|
||||||
screenshot_image = QImage(QSize(layout.width, layout.height), QImage::Format_RGB32);
|
screenshot_image = QImage(QSize(layout.width, layout.height), QImage::Format_RGB32);
|
||||||
renderer.RequestScreenshot(
|
renderer.RequestScreenshot(
|
||||||
screenshot_image.bits(),
|
screenshot_image.bits(),
|
||||||
[=] {
|
[=, this] {
|
||||||
const std::string std_screenshot_path = screenshot_path.toStdString();
|
const std::string std_screenshot_path = screenshot_path.toStdString();
|
||||||
if (screenshot_image.mirrored(false, true).save(screenshot_path)) {
|
if (screenshot_image.mirrored(false, true).save(screenshot_path)) {
|
||||||
LOG_INFO(Frontend, "Screenshot saved to \"{}\"", std_screenshot_path);
|
LOG_INFO(Frontend, "Screenshot saved to \"{}\"", std_screenshot_path);
|
||||||
|
|
|
@ -280,9 +280,9 @@ ConfigureInputPlayer::ConfigureInputPlayer(QWidget* parent, std::size_t player_i
|
||||||
}
|
}
|
||||||
|
|
||||||
button->setContextMenuPolicy(Qt::CustomContextMenu);
|
button->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||||
connect(button, &QPushButton::clicked, [=] {
|
connect(button, &QPushButton::clicked, [=, this] {
|
||||||
HandleClick(button_map[button_id],
|
HandleClick(button_map[button_id],
|
||||||
[=](Common::ParamPackage params) {
|
[=, this](Common::ParamPackage params) {
|
||||||
// Workaround for ZL & ZR for analog triggers like on XBOX controllors.
|
// Workaround for ZL & ZR for analog triggers like on XBOX controllors.
|
||||||
// Analog triggers (from controllers like the XBOX controller) would not
|
// Analog triggers (from controllers like the XBOX controller) would not
|
||||||
// work due to a different range of their signals (from 0 to 255 on
|
// 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
|
||||||
},
|
},
|
||||||
InputCommon::Polling::DeviceType::Button);
|
InputCommon::Polling::DeviceType::Button);
|
||||||
});
|
});
|
||||||
connect(button, &QPushButton::customContextMenuRequested, [=](const QPoint& menu_location) {
|
connect(button, &QPushButton::customContextMenuRequested,
|
||||||
QMenu context_menu;
|
[=, this](const QPoint& menu_location) {
|
||||||
context_menu.addAction(tr("Clear"), [&] {
|
QMenu context_menu;
|
||||||
buttons_param[button_id].Clear();
|
context_menu.addAction(tr("Clear"), [&] {
|
||||||
button_map[button_id]->setText(tr("[not set]"));
|
buttons_param[button_id].Clear();
|
||||||
});
|
button_map[button_id]->setText(tr("[not set]"));
|
||||||
context_menu.addAction(tr("Restore Default"), [&] {
|
});
|
||||||
buttons_param[button_id] = Common::ParamPackage{
|
context_menu.addAction(tr("Restore Default"), [&] {
|
||||||
InputCommon::GenerateKeyboardParam(Config::default_buttons[button_id])};
|
buttons_param[button_id] = Common::ParamPackage{
|
||||||
button_map[button_id]->setText(ButtonToText(buttons_param[button_id]));
|
InputCommon::GenerateKeyboardParam(Config::default_buttons[button_id])};
|
||||||
});
|
button_map[button_id]->setText(ButtonToText(buttons_param[button_id]));
|
||||||
context_menu.exec(button_map[button_id]->mapToGlobal(menu_location));
|
});
|
||||||
});
|
context_menu.exec(button_map[button_id]->mapToGlobal(menu_location));
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int analog_id = 0; analog_id < Settings::NativeAnalog::NumAnalogs; analog_id++) {
|
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
|
||||||
}
|
}
|
||||||
|
|
||||||
analog_button->setContextMenuPolicy(Qt::CustomContextMenu);
|
analog_button->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||||
connect(analog_button, &QPushButton::clicked, [=]() {
|
connect(analog_button, &QPushButton::clicked, [=, this] {
|
||||||
HandleClick(analog_map_buttons[analog_id][sub_button_id],
|
HandleClick(analog_map_buttons[analog_id][sub_button_id],
|
||||||
[=](const Common::ParamPackage& params) {
|
[=, this](const Common::ParamPackage& params) {
|
||||||
SetAnalogButton(params, analogs_param[analog_id],
|
SetAnalogButton(params, analogs_param[analog_id],
|
||||||
analog_sub_buttons[sub_button_id]);
|
analog_sub_buttons[sub_button_id]);
|
||||||
},
|
},
|
||||||
InputCommon::Polling::DeviceType::Button);
|
InputCommon::Polling::DeviceType::Button);
|
||||||
});
|
});
|
||||||
connect(analog_button, &QPushButton::customContextMenuRequested,
|
connect(analog_button, &QPushButton::customContextMenuRequested,
|
||||||
[=](const QPoint& menu_location) {
|
[=, this](const QPoint& menu_location) {
|
||||||
QMenu context_menu;
|
QMenu context_menu;
|
||||||
context_menu.addAction(tr("Clear"), [&] {
|
context_menu.addAction(tr("Clear"), [&] {
|
||||||
analogs_param[analog_id].Erase(analog_sub_buttons[sub_button_id]);
|
analogs_param[analog_id].Erase(analog_sub_buttons[sub_button_id]);
|
||||||
|
@ -350,32 +351,35 @@ ConfigureInputPlayer::ConfigureInputPlayer(QWidget* parent, std::size_t player_i
|
||||||
menu_location));
|
menu_location));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
connect(analog_map_stick[analog_id], &QPushButton::clicked, [=] {
|
connect(analog_map_stick[analog_id], &QPushButton::clicked, [=, this] {
|
||||||
if (QMessageBox::information(
|
if (QMessageBox::information(
|
||||||
this, tr("Information"),
|
this, tr("Information"),
|
||||||
tr("After pressing OK, first move your joystick horizontally, "
|
tr("After pressing OK, first move your joystick horizontally, "
|
||||||
"and then vertically."),
|
"and then vertically."),
|
||||||
QMessageBox::Ok | QMessageBox::Cancel) == QMessageBox::Ok) {
|
QMessageBox::Ok | QMessageBox::Cancel) == QMessageBox::Ok) {
|
||||||
HandleClick(
|
HandleClick(analog_map_stick[analog_id],
|
||||||
analog_map_stick[analog_id],
|
[=, this](const Common::ParamPackage& params) {
|
||||||
[=](const Common::ParamPackage& params) { analogs_param[analog_id] = params; },
|
analogs_param[analog_id] = params;
|
||||||
InputCommon::Polling::DeviceType::Analog);
|
},
|
||||||
|
InputCommon::Polling::DeviceType::Analog);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
connect(analog_map_deadzone_and_modifier_slider[analog_id], &QSlider::valueChanged, [=] {
|
connect(analog_map_deadzone_and_modifier_slider[analog_id], &QSlider::valueChanged,
|
||||||
const float slider_value = analog_map_deadzone_and_modifier_slider[analog_id]->value();
|
[=, this] {
|
||||||
if (analogs_param[analog_id].Get("engine", "") == "sdl" ||
|
const float slider_value =
|
||||||
analogs_param[analog_id].Get("engine", "") == "gcpad") {
|
analog_map_deadzone_and_modifier_slider[analog_id]->value();
|
||||||
analog_map_deadzone_and_modifier_slider_label[analog_id]->setText(
|
if (analogs_param[analog_id].Get("engine", "") == "sdl" ||
|
||||||
tr("Deadzone: %1%").arg(slider_value));
|
analogs_param[analog_id].Get("engine", "") == "gcpad") {
|
||||||
analogs_param[analog_id].Set("deadzone", slider_value / 100.0f);
|
analog_map_deadzone_and_modifier_slider_label[analog_id]->setText(
|
||||||
} else {
|
tr("Deadzone: %1%").arg(slider_value));
|
||||||
analog_map_deadzone_and_modifier_slider_label[analog_id]->setText(
|
analogs_param[analog_id].Set("deadzone", slider_value / 100.0f);
|
||||||
tr("Modifier Scale: %1%").arg(slider_value));
|
} else {
|
||||||
analogs_param[analog_id].Set("modifier_scale", slider_value / 100.0f);
|
analog_map_deadzone_and_modifier_slider_label[analog_id]->setText(
|
||||||
}
|
tr("Modifier Scale: %1%").arg(slider_value));
|
||||||
});
|
analogs_param[analog_id].Set("modifier_scale", slider_value / 100.0f);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
connect(ui->buttonClearAll, &QPushButton::clicked, [this] { ClearAll(); });
|
connect(ui->buttonClearAll, &QPushButton::clicked, [this] { ClearAll(); });
|
||||||
|
|
|
@ -83,25 +83,28 @@ ConfigureMouseAdvanced::ConfigureMouseAdvanced(QWidget* parent)
|
||||||
}
|
}
|
||||||
|
|
||||||
button->setContextMenuPolicy(Qt::CustomContextMenu);
|
button->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||||
connect(button, &QPushButton::clicked, [=] {
|
connect(button, &QPushButton::clicked, [=, this] {
|
||||||
HandleClick(
|
HandleClick(button_map[button_id],
|
||||||
button_map[button_id],
|
[=, this](const Common::ParamPackage& params) {
|
||||||
[=](const Common::ParamPackage& params) { buttons_param[button_id] = params; },
|
buttons_param[button_id] = params;
|
||||||
InputCommon::Polling::DeviceType::Button);
|
},
|
||||||
});
|
InputCommon::Polling::DeviceType::Button);
|
||||||
connect(button, &QPushButton::customContextMenuRequested, [=](const QPoint& menu_location) {
|
|
||||||
QMenu context_menu;
|
|
||||||
context_menu.addAction(tr("Clear"), [&] {
|
|
||||||
buttons_param[button_id].Clear();
|
|
||||||
button_map[button_id]->setText(tr("[not set]"));
|
|
||||||
});
|
|
||||||
context_menu.addAction(tr("Restore Default"), [&] {
|
|
||||||
buttons_param[button_id] = Common::ParamPackage{
|
|
||||||
InputCommon::GenerateKeyboardParam(Config::default_mouse_buttons[button_id])};
|
|
||||||
button_map[button_id]->setText(ButtonToText(buttons_param[button_id]));
|
|
||||||
});
|
|
||||||
context_menu.exec(button_map[button_id]->mapToGlobal(menu_location));
|
|
||||||
});
|
});
|
||||||
|
connect(button, &QPushButton::customContextMenuRequested,
|
||||||
|
[=, this](const QPoint& menu_location) {
|
||||||
|
QMenu context_menu;
|
||||||
|
context_menu.addAction(tr("Clear"), [&] {
|
||||||
|
buttons_param[button_id].Clear();
|
||||||
|
button_map[button_id]->setText(tr("[not set]"));
|
||||||
|
});
|
||||||
|
context_menu.addAction(tr("Restore Default"), [&] {
|
||||||
|
buttons_param[button_id] =
|
||||||
|
Common::ParamPackage{InputCommon::GenerateKeyboardParam(
|
||||||
|
Config::default_mouse_buttons[button_id])};
|
||||||
|
button_map[button_id]->setText(ButtonToText(buttons_param[button_id]));
|
||||||
|
});
|
||||||
|
context_menu.exec(button_map[button_id]->mapToGlobal(menu_location));
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
connect(ui->buttonClearAll, &QPushButton::clicked, [this] { ClearAll(); });
|
connect(ui->buttonClearAll, &QPushButton::clicked, [this] { ClearAll(); });
|
||||||
|
|
|
@ -54,9 +54,9 @@ ConfigureUi::ConfigureUi(QWidget* parent) : QWidget(parent), ui(new Ui::Configur
|
||||||
|
|
||||||
// Update text ComboBoxes after user interaction.
|
// Update text ComboBoxes after user interaction.
|
||||||
connect(ui->row_1_text_combobox, QOverload<int>::of(&QComboBox::activated),
|
connect(ui->row_1_text_combobox, QOverload<int>::of(&QComboBox::activated),
|
||||||
[=]() { ConfigureUi::UpdateSecondRowComboBox(); });
|
[this] { ConfigureUi::UpdateSecondRowComboBox(); });
|
||||||
connect(ui->row_2_text_combobox, QOverload<int>::of(&QComboBox::activated),
|
connect(ui->row_2_text_combobox, QOverload<int>::of(&QComboBox::activated),
|
||||||
[=]() { ConfigureUi::UpdateFirstRowComboBox(); });
|
[this] { ConfigureUi::UpdateFirstRowComboBox(); });
|
||||||
|
|
||||||
// Set screenshot path to user specification.
|
// Set screenshot path to user specification.
|
||||||
connect(ui->screenshot_path_button, &QToolButton::pressed, this, [this] {
|
connect(ui->screenshot_path_button, &QToolButton::pressed, this, [this] {
|
||||||
|
|
|
@ -583,7 +583,7 @@ void GMainWindow::InitializeWidgets() {
|
||||||
renderer_status_button->setObjectName(QStringLiteral("RendererStatusBarButton"));
|
renderer_status_button->setObjectName(QStringLiteral("RendererStatusBarButton"));
|
||||||
renderer_status_button->setCheckable(true);
|
renderer_status_button->setCheckable(true);
|
||||||
renderer_status_button->setFocusPolicy(Qt::NoFocus);
|
renderer_status_button->setFocusPolicy(Qt::NoFocus);
|
||||||
connect(renderer_status_button, &QPushButton::toggled, [=](bool checked) {
|
connect(renderer_status_button, &QPushButton::toggled, [this](bool checked) {
|
||||||
renderer_status_button->setText(checked ? tr("VULKAN") : tr("OPENGL"));
|
renderer_status_button->setText(checked ? tr("VULKAN") : tr("OPENGL"));
|
||||||
});
|
});
|
||||||
renderer_status_button->toggle();
|
renderer_status_button->toggle();
|
||||||
|
@ -595,7 +595,7 @@ void GMainWindow::InitializeWidgets() {
|
||||||
#else
|
#else
|
||||||
renderer_status_button->setChecked(Settings::values.renderer_backend.GetValue() ==
|
renderer_status_button->setChecked(Settings::values.renderer_backend.GetValue() ==
|
||||||
Settings::RendererBackend::Vulkan);
|
Settings::RendererBackend::Vulkan);
|
||||||
connect(renderer_status_button, &QPushButton::clicked, [=] {
|
connect(renderer_status_button, &QPushButton::clicked, [this] {
|
||||||
if (emulation_running) {
|
if (emulation_running) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue