diff --git a/src/launcher/forms/configuration_edit_dialog.ui b/src/launcher/forms/configuration_edit_dialog.ui index 18d220947..eb08ec0f7 100644 --- a/src/launcher/forms/configuration_edit_dialog.ui +++ b/src/launcher/forms/configuration_edit_dialog.ui @@ -133,6 +133,12 @@ Fullscreen + + + Read back writable linear images + Enable readback + + diff --git a/src/launcher/include/configuration.h b/src/launcher/include/configuration.h index 7f5e667fb..8dd41c2d8 100644 --- a/src/launcher/include/configuration.h +++ b/src/launcher/include/configuration.h @@ -95,6 +95,7 @@ public: int user_id = Config::DEFAULT_USER_ID; PresentMode present_mode = PresentMode::Fifo; bool fullscreen_enabled = false; + bool readback_linear_images = false; int vblank_frequency = 60; int console_language = DEFAULT_CONSOLE_LANGUAGE; bool vulkan_validation_enabled = false; @@ -121,6 +122,7 @@ public: user_id = other.user_id; present_mode = other.present_mode; fullscreen_enabled = other.fullscreen_enabled; + readback_linear_images = other.readback_linear_images; vblank_frequency = other.vblank_frequency; console_language = other.console_language; vulkan_validation_enabled = other.vulkan_validation_enabled; @@ -164,6 +166,7 @@ public: KYTY_CFG_SET(user_id); KYTY_CFG_SET(present_mode); KYTY_CFG_SET(fullscreen_enabled); + KYTY_CFG_SET(readback_linear_images); KYTY_CFG_SET(vblank_frequency); KYTY_CFG_SET(console_language); KYTY_CFG_SET(vulkan_validation_enabled); @@ -201,6 +204,7 @@ public: present_mode = PresentMode::Fifo; } KYTY_CFG_GET(fullscreen_enabled); + KYTY_CFG_GET(readback_linear_images); vblank_frequency = s->value("vblank_frequency", vblank_frequency).toInt(); console_language = s->value("console_language", console_language).toInt(); if (console_language < 0 || console_language > MAX_CONSOLE_LANGUAGE) { diff --git a/src/launcher/src/configurationEditDialog.cpp b/src/launcher/src/configurationEditDialog.cpp index 43e2dcc44..6258f8b7d 100644 --- a/src/launcher/src/configurationEditDialog.cpp +++ b/src/launcher/src/configurationEditDialog.cpp @@ -164,6 +164,7 @@ void ConfigurationEditDialog::Init(const Configuration& info) { ListInit(m_ui->comboBox_screen_resolution, info.screen_resolution); ListInit(m_ui->comboBox_present_mode, info.present_mode); m_ui->checkBox_fullscreen->setChecked(info.fullscreen_enabled); + m_ui->checkBox_readback->setChecked(info.readback_linear_images); m_ui->spinBox_vblank_frequency->setValue(info.vblank_frequency); m_ui->comboBox_console_language->clear(); m_ui->comboBox_console_language->addItems(CONSOLE_LANGUAGE_NAMES); @@ -306,6 +307,7 @@ static void UpdateInfo(Configuration& info, Ui::ConfigurationEditDialog& ui) { info.present_mode = TextToEnum(ui.comboBox_present_mode->currentText()); info.fullscreen_enabled = ui.checkBox_fullscreen->isChecked(); + info.readback_linear_images = ui.checkBox_readback->isChecked(); info.vblank_frequency = ui.spinBox_vblank_frequency->value(); info.console_language = ui.comboBox_console_language->currentIndex(); info.vulkan_validation_enabled = ui.checkBox_vulkan_validation->isChecked(); diff --git a/src/launcher/src/mainDialog.cpp b/src/launcher/src/mainDialog.cpp index e8e151cac..44cc9ac38 100644 --- a/src/launcher/src/mainDialog.cpp +++ b/src/launcher/src/mainDialog.cpp @@ -232,6 +232,7 @@ static QStringList CreateEmulatorArgs(const Configuration& info) { if (info.fullscreen_enabled) { args << "--fullscreen"; } + args << "--readback-linear-images" << BoolArg(info.readback_linear_images); args << "--vblank-frequency" << QString::number(info.vblank_frequency); args << "--console-language" << QString::number(info.console_language); args << "--vulkan-validation" << BoolArg(info.vulkan_validation_enabled);