diff options
Diffstat (limited to 'src/yuzu/configuration')
| -rw-r--r-- | src/yuzu/configuration/config.cpp | 2 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure.ui | 11 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_dialog.cpp | 4 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_graphics.cpp | 8 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_graphics.ui | 24 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_graphics_advanced.cpp | 48 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_graphics_advanced.h | 30 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_graphics_advanced.ui | 111 | 
8 files changed, 205 insertions, 33 deletions
| diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp index d0f574147..c38860628 100644 --- a/src/yuzu/configuration/config.cpp +++ b/src/yuzu/configuration/config.cpp @@ -631,6 +631,7 @@ void Config::ReadRendererValues() {      Settings::values.resolution_factor =          ReadSetting(QStringLiteral("resolution_factor"), 1.0).toFloat();      Settings::values.aspect_ratio = ReadSetting(QStringLiteral("aspect_ratio"), 0).toInt(); +    Settings::values.max_anisotropy = ReadSetting(QStringLiteral("max_anisotropy"), 0).toInt();      Settings::values.use_frame_limit =          ReadSetting(QStringLiteral("use_frame_limit"), true).toBool();      Settings::values.frame_limit = ReadSetting(QStringLiteral("frame_limit"), 100).toInt(); @@ -1067,6 +1068,7 @@ void Config::SaveRendererValues() {      WriteSetting(QStringLiteral("resolution_factor"),                   static_cast<double>(Settings::values.resolution_factor), 1.0);      WriteSetting(QStringLiteral("aspect_ratio"), Settings::values.aspect_ratio, 0); +    WriteSetting(QStringLiteral("max_anisotropy"), Settings::values.max_anisotropy, 0);      WriteSetting(QStringLiteral("use_frame_limit"), Settings::values.use_frame_limit, true);      WriteSetting(QStringLiteral("frame_limit"), Settings::values.frame_limit, 100);      WriteSetting(QStringLiteral("use_disk_shader_cache"), Settings::values.use_disk_shader_cache, diff --git a/src/yuzu/configuration/configure.ui b/src/yuzu/configuration/configure.ui index 67b990f1a..9aec1bd09 100644 --- a/src/yuzu/configuration/configure.ui +++ b/src/yuzu/configuration/configure.ui @@ -83,6 +83,11 @@           <string>Graphics</string>          </attribute>         </widget> +       <widget class="ConfigureGraphicsAdvanced" name="graphicsAdvancedTab"> +        <attribute name="title"> +         <string>GraphicsAdvanced</string> +        </attribute> +       </widget>         <widget class="ConfigureAudio" name="audioTab">          <attribute name="title">           <string>Audio</string> @@ -160,6 +165,12 @@     <container>1</container>    </customwidget>    <customwidget> +   <class>ConfigureGraphicsAdvanced</class> +   <extends>QWidget</extends> +   <header>configuration/configure_graphics_advanced.h</header> +   <container>1</container> +  </customwidget> +  <customwidget>     <class>ConfigureWeb</class>     <extends>QWidget</extends>     <header>configuration/configure_web.h</header> diff --git a/src/yuzu/configuration/configure_dialog.cpp b/src/yuzu/configuration/configure_dialog.cpp index db3b19352..df4473b46 100644 --- a/src/yuzu/configuration/configure_dialog.cpp +++ b/src/yuzu/configuration/configure_dialog.cpp @@ -41,6 +41,7 @@ void ConfigureDialog::ApplyConfiguration() {      ui->inputTab->ApplyConfiguration();      ui->hotkeysTab->ApplyConfiguration(registry);      ui->graphicsTab->ApplyConfiguration(); +    ui->graphicsAdvancedTab->ApplyConfiguration();      ui->audioTab->ApplyConfiguration();      ui->debugTab->ApplyConfiguration();      ui->webTab->ApplyConfiguration(); @@ -76,7 +77,7 @@ void ConfigureDialog::PopulateSelectionList() {      const std::array<std::pair<QString, QList<QWidget*>>, 5> items{          {{tr("General"), {ui->generalTab, ui->webTab, ui->debugTab, ui->uiTab}},           {tr("System"), {ui->systemTab, ui->profileManagerTab, ui->serviceTab, ui->filesystemTab}}, -         {tr("Graphics"), {ui->graphicsTab}}, +         {tr("Graphics"), {ui->graphicsTab, ui->graphicsAdvancedTab}},           {tr("Audio"), {ui->audioTab}},           {tr("Controls"), {ui->inputTab, ui->hotkeysTab}}},      }; @@ -105,6 +106,7 @@ void ConfigureDialog::UpdateVisibleTabs() {          {ui->inputTab, tr("Input")},          {ui->hotkeysTab, tr("Hotkeys")},          {ui->graphicsTab, tr("Graphics")}, +        {ui->graphicsAdvancedTab, tr("Advanced")},          {ui->audioTab, tr("Audio")},          {ui->debugTab, tr("Debug")},          {ui->webTab, tr("Web")}, diff --git a/src/yuzu/configuration/configure_graphics.cpp b/src/yuzu/configuration/configure_graphics.cpp index fe64c7d81..a821c7b3c 100644 --- a/src/yuzu/configuration/configure_graphics.cpp +++ b/src/yuzu/configuration/configure_graphics.cpp @@ -100,13 +100,8 @@ void ConfigureGraphics::SetConfiguration() {      ui->aspect_ratio_combobox->setCurrentIndex(Settings::values.aspect_ratio);      ui->use_disk_shader_cache->setEnabled(runtime_lock);      ui->use_disk_shader_cache->setChecked(Settings::values.use_disk_shader_cache); -    ui->use_accurate_gpu_emulation->setChecked(Settings::values.use_accurate_gpu_emulation);      ui->use_asynchronous_gpu_emulation->setEnabled(runtime_lock);      ui->use_asynchronous_gpu_emulation->setChecked(Settings::values.use_asynchronous_gpu_emulation); -    ui->use_vsync->setEnabled(runtime_lock); -    ui->use_vsync->setChecked(Settings::values.use_vsync); -    ui->force_30fps_mode->setEnabled(runtime_lock); -    ui->force_30fps_mode->setChecked(Settings::values.force_30fps_mode);      UpdateBackgroundColorButton(QColor::fromRgbF(Settings::values.bg_red, Settings::values.bg_green,                                                   Settings::values.bg_blue));      UpdateDeviceComboBox(); @@ -119,11 +114,8 @@ void ConfigureGraphics::ApplyConfiguration() {          ToResolutionFactor(static_cast<Resolution>(ui->resolution_factor_combobox->currentIndex()));      Settings::values.aspect_ratio = ui->aspect_ratio_combobox->currentIndex();      Settings::values.use_disk_shader_cache = ui->use_disk_shader_cache->isChecked(); -    Settings::values.use_accurate_gpu_emulation = ui->use_accurate_gpu_emulation->isChecked();      Settings::values.use_asynchronous_gpu_emulation =          ui->use_asynchronous_gpu_emulation->isChecked(); -    Settings::values.use_vsync = ui->use_vsync->isChecked(); -    Settings::values.force_30fps_mode = ui->force_30fps_mode->isChecked();      Settings::values.bg_red = static_cast<float>(bg_color.redF());      Settings::values.bg_green = static_cast<float>(bg_color.greenF());      Settings::values.bg_blue = static_cast<float>(bg_color.blueF()); diff --git a/src/yuzu/configuration/configure_graphics.ui b/src/yuzu/configuration/configure_graphics.ui index 9acc7dd93..c816d6108 100644 --- a/src/yuzu/configuration/configure_graphics.ui +++ b/src/yuzu/configuration/configure_graphics.ui @@ -85,30 +85,6 @@           </widget>          </item>          <item> -         <widget class="QCheckBox" name="use_vsync"> -          <property name="toolTip"> -           <string>VSync prevents the screen from tearing, but some graphics cards have lower performance with VSync enabled. Keep it enabled if you don't notice a performance difference.</string> -          </property> -          <property name="text"> -           <string>Use VSync (OpenGL only)</string> -          </property> -         </widget> -        </item> -        <item> -         <widget class="QCheckBox" name="use_accurate_gpu_emulation"> -          <property name="text"> -           <string>Use accurate GPU emulation (slow)</string> -          </property> -         </widget> -        </item> -        <item> -         <widget class="QCheckBox" name="force_30fps_mode"> -          <property name="text"> -           <string>Force 30 FPS mode</string> -          </property> -         </widget> -        </item> -        <item>           <layout class="QHBoxLayout" name="horizontalLayout_2">            <item>             <widget class="QLabel" name="label"> diff --git a/src/yuzu/configuration/configure_graphics_advanced.cpp b/src/yuzu/configuration/configure_graphics_advanced.cpp new file mode 100644 index 000000000..b9f429f84 --- /dev/null +++ b/src/yuzu/configuration/configure_graphics_advanced.cpp @@ -0,0 +1,48 @@ +// Copyright 2020 yuzu Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#include "core/core.h" +#include "core/settings.h" +#include "ui_configure_graphics_advanced.h" +#include "yuzu/configuration/configure_graphics_advanced.h" + +ConfigureGraphicsAdvanced::ConfigureGraphicsAdvanced(QWidget* parent) +    : QWidget(parent), ui(new Ui::ConfigureGraphicsAdvanced) { + +    ui->setupUi(this); + +    SetConfiguration(); +} + +ConfigureGraphicsAdvanced::~ConfigureGraphicsAdvanced() = default; + +void ConfigureGraphicsAdvanced::SetConfiguration() { +    const bool runtime_lock = !Core::System::GetInstance().IsPoweredOn(); +    ui->use_accurate_gpu_emulation->setChecked(Settings::values.use_accurate_gpu_emulation); +    ui->use_vsync->setEnabled(runtime_lock); +    ui->use_vsync->setChecked(Settings::values.use_vsync); +    ui->force_30fps_mode->setEnabled(runtime_lock); +    ui->force_30fps_mode->setChecked(Settings::values.force_30fps_mode); +    ui->anisotropic_filtering_combobox->setEnabled(runtime_lock); +    ui->anisotropic_filtering_combobox->setCurrentIndex(Settings::values.max_anisotropy); +} + +void ConfigureGraphicsAdvanced::ApplyConfiguration() { +    Settings::values.use_accurate_gpu_emulation = ui->use_accurate_gpu_emulation->isChecked(); +    Settings::values.use_vsync = ui->use_vsync->isChecked(); +    Settings::values.force_30fps_mode = ui->force_30fps_mode->isChecked(); +    Settings::values.max_anisotropy = ui->anisotropic_filtering_combobox->currentIndex(); +} + +void ConfigureGraphicsAdvanced::changeEvent(QEvent* event) { +    if (event->type() == QEvent::LanguageChange) { +        RetranslateUI(); +    } + +    QWidget::changeEvent(event); +} + +void ConfigureGraphicsAdvanced::RetranslateUI() { +    ui->retranslateUi(this); +} diff --git a/src/yuzu/configuration/configure_graphics_advanced.h b/src/yuzu/configuration/configure_graphics_advanced.h new file mode 100644 index 000000000..bbc9d4355 --- /dev/null +++ b/src/yuzu/configuration/configure_graphics_advanced.h @@ -0,0 +1,30 @@ +// Copyright 2020 yuzu Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +#include <memory> +#include <QWidget> + +namespace Ui { +class ConfigureGraphicsAdvanced; +} + +class ConfigureGraphicsAdvanced : public QWidget { +    Q_OBJECT + +public: +    explicit ConfigureGraphicsAdvanced(QWidget* parent = nullptr); +    ~ConfigureGraphicsAdvanced() override; + +    void ApplyConfiguration(); + +private: +    void changeEvent(QEvent* event) override; +    void RetranslateUI(); + +    void SetConfiguration(); + +    std::unique_ptr<Ui::ConfigureGraphicsAdvanced> ui; +}; diff --git a/src/yuzu/configuration/configure_graphics_advanced.ui b/src/yuzu/configuration/configure_graphics_advanced.ui new file mode 100644 index 000000000..42eec278e --- /dev/null +++ b/src/yuzu/configuration/configure_graphics_advanced.ui @@ -0,0 +1,111 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>ConfigureGraphicsAdvanced</class> + <widget class="QWidget" name="ConfigureGraphicsAdvanced"> +  <property name="geometry"> +   <rect> +    <x>0</x> +    <y>0</y> +    <width>400</width> +    <height>321</height> +   </rect> +  </property> +  <property name="windowTitle"> +   <string>Form</string> +  </property> +  <layout class="QVBoxLayout" name="verticalLayout_1"> +   <item> +    <layout class="QVBoxLayout" name="verticalLayout_2"> +     <item> +      <widget class="QGroupBox" name="groupBox_1"> +       <property name="title"> +        <string>Advanced Graphics Settings</string> +       </property> +       <layout class="QVBoxLayout" name="verticalLayout_3"> +        <item> +         <widget class="QCheckBox" name="use_accurate_gpu_emulation"> +          <property name="text"> +           <string>Use accurate GPU emulation (slow)</string> +          </property> +         </widget> +        </item> +        <item> +         <widget class="QCheckBox" name="use_vsync"> +          <property name="toolTip"> +           <string>VSync prevents the screen from tearing, but some graphics cards have lower performance with VSync enabled. Keep it enabled if you don't notice a performance difference.</string> +          </property> +          <property name="text"> +           <string>Use VSync (OpenGL only)</string> +          </property> +         </widget> +        </item> +        <item> +         <widget class="QCheckBox" name="force_30fps_mode"> +          <property name="text"> +           <string>Force 30 FPS mode</string> +          </property> +         </widget> +        </item> +        <item> +         <layout class="QHBoxLayout" name="horizontalLayout_1"> +          <item> +           <widget class="QLabel" name="af_label"> +            <property name="text"> +             <string>Anisotropic Filtering:</string> +            </property> +           </widget> +          </item> +          <item> +           <widget class="QComboBox" name="anisotropic_filtering_combobox"> +            <item> +             <property name="text"> +              <string>Default</string> +             </property> +            </item> +            <item> +             <property name="text"> +              <string>2x</string> +             </property> +            </item> +            <item> +             <property name="text"> +              <string>4x</string> +             </property> +            </item> +            <item> +             <property name="text"> +              <string>8x</string> +             </property> +            </item> +            <item> +             <property name="text"> +              <string>16x</string> +             </property> +            </item> +           </widget> +          </item> +         </layout> +        </item> +       </layout> +      </widget> +     </item> +    </layout> +   </item> +   <item> +    <spacer name="verticalSpacer"> +     <property name="orientation"> +      <enum>Qt::Vertical</enum> +     </property> +     <property name="sizeHint" stdset="0"> +      <size> +       <width>20</width> +       <height>40</height> +      </size> +     </property> +    </spacer> +   </item> +  </layout> + </widget> + <resources/> + <connections/> +</ui> | 
