mirror of
https://github.com/RetroDECK/Duckstation.git
synced 2024-11-22 22:05:38 +00:00
Qt: Split GPU options into display and enhancements
This commit is contained in:
parent
14778b5d24
commit
330722eb5f
|
@ -20,6 +20,12 @@ set(SRCS
|
|||
consolesettingswidget.ui
|
||||
controllersettingswidget.cpp
|
||||
controllersettingswidget.h
|
||||
displaysettingswidget.cpp
|
||||
displaysettingswidget.h
|
||||
displaysettingswidget.ui
|
||||
enhancementsettingswidget.cpp
|
||||
enhancementsettingswidget.h
|
||||
enhancementsettingswidget.ui
|
||||
gamelistmodel.cpp
|
||||
gamelistmodel.h
|
||||
gamelistsearchdirectoriesmodel.cpp
|
||||
|
@ -35,9 +41,6 @@ set(SRCS
|
|||
generalsettingswidget.cpp
|
||||
generalsettingswidget.h
|
||||
generalsettingswidget.ui
|
||||
gpusettingswidget.cpp
|
||||
gpusettingswidget.h
|
||||
gpusettingswidget.ui
|
||||
hotkeysettingswidget.cpp
|
||||
hotkeysettingswidget.h
|
||||
inputbindingdialog.cpp
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#include "gpusettingswidget.h"
|
||||
#include "displaysettingswidget.h"
|
||||
#include "core/gpu.h"
|
||||
#include "core/settings.h"
|
||||
#include "qtutils.h"
|
||||
|
@ -11,7 +11,7 @@
|
|||
#include "frontend-common/d3d11_host_display.h"
|
||||
#endif
|
||||
|
||||
GPUSettingsWidget::GPUSettingsWidget(QtHostInterface* host_interface, QWidget* parent, SettingsDialog* dialog)
|
||||
DisplaySettingsWidget::DisplaySettingsWidget(QtHostInterface* host_interface, QWidget* parent, SettingsDialog* dialog)
|
||||
: QWidget(parent), m_host_interface(host_interface)
|
||||
{
|
||||
m_ui.setupUi(this);
|
||||
|
@ -31,32 +31,18 @@ GPUSettingsWidget::GPUSettingsWidget(QtHostInterface* host_interface, QWidget* p
|
|||
SettingWidgetBinder::BindWidgetToBoolSetting(m_host_interface, m_ui.displayIntegerScaling, "Display",
|
||||
"IntegerScaling");
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(m_host_interface, m_ui.vsync, "Display", "VSync");
|
||||
SettingWidgetBinder::BindWidgetToIntSetting(m_host_interface, m_ui.resolutionScale, "GPU", "ResolutionScale");
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(m_host_interface, m_ui.trueColor, "GPU", "TrueColor");
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(m_host_interface, m_ui.scaledDithering, "GPU", "ScaledDithering");
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(m_host_interface, m_ui.disableInterlacing, "GPU", "DisableInterlacing");
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(m_host_interface, m_ui.forceNTSCTimings, "GPU", "ForceNTSCTimings");
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(m_host_interface, m_ui.linearTextureFiltering, "GPU",
|
||||
"TextureFiltering");
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(m_host_interface, m_ui.widescreenHack, "GPU", "WidescreenHack");
|
||||
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(m_host_interface, m_ui.pgxpEnable, "GPU", "PGXPEnable", false);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(m_host_interface, m_ui.pgxpCulling, "GPU", "PGXPCulling", true);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(m_host_interface, m_ui.pgxpTextureCorrection, "GPU",
|
||||
"PGXPTextureCorrection", true);
|
||||
|
||||
connect(m_ui.resolutionScale, QOverload<int>::of(&QComboBox::currentIndexChanged), this,
|
||||
&GPUSettingsWidget::updateScaledDitheringEnabled);
|
||||
connect(m_ui.trueColor, &QCheckBox::stateChanged, this, &GPUSettingsWidget::updateScaledDitheringEnabled);
|
||||
updateScaledDitheringEnabled();
|
||||
|
||||
connect(m_ui.pgxpEnable, &QCheckBox::stateChanged, this, &GPUSettingsWidget::updatePGXPSettingsEnabled);
|
||||
updatePGXPSettingsEnabled();
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(m_host_interface, m_ui.showOSDMessages, "Display", "ShowOSDMessages",
|
||||
true);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(m_host_interface, m_ui.showFPS, "Display", "ShowFPS", false);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(m_host_interface, m_ui.showVPS, "Display", "ShowVPS", false);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(m_host_interface, m_ui.showSpeed, "Display", "ShowSpeed", false);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(m_host_interface, m_ui.showResolution, "Display", "ShowResolution",
|
||||
false);
|
||||
|
||||
connect(m_ui.renderer, QOverload<int>::of(&QComboBox::currentIndexChanged), this,
|
||||
&GPUSettingsWidget::populateGPUAdapters);
|
||||
&DisplaySettingsWidget::populateGPUAdapters);
|
||||
connect(m_ui.adapter, QOverload<int>::of(&QComboBox::currentIndexChanged), this,
|
||||
&GPUSettingsWidget::onGPUAdapterIndexChanged);
|
||||
&DisplaySettingsWidget::onGPUAdapterIndexChanged);
|
||||
populateGPUAdapters();
|
||||
|
||||
dialog->registerWidgetHelp(
|
||||
|
@ -80,12 +66,6 @@ GPUSettingsWidget::GPUSettingsWidget(QtHostInterface* host_interface, QWidget* p
|
|||
"Some games display content in the overscan area, or use it for screen effects. <br>May "
|
||||
"not display correctly with the \"All Borders\" setting. \"Only Overscan\" offers a good "
|
||||
"compromise between stability and hiding black borders."));
|
||||
dialog->registerWidgetHelp(
|
||||
m_ui.disableInterlacing, tr("Disable Interlacing (force progressive render/scan)"), tr("Unchecked"),
|
||||
tr(
|
||||
"Forces the rendering and display of frames to progressive mode. <br>This removes the \"combing\" effect seen in "
|
||||
"480i games by rendering them in 480p. Usually safe to enable.<br> "
|
||||
"<b><u>May not be compatible with all games.</u></b>"));
|
||||
dialog->registerWidgetHelp(m_ui.displayLinearFiltering, tr("Linear Upscaling"), tr("Checked"),
|
||||
tr("Uses bilinear texture filtering when displaying the console's framebuffer to the "
|
||||
"screen. <br>Disabling filtering "
|
||||
|
@ -100,61 +80,22 @@ GPUSettingsWidget::GPUSettingsWidget(QtHostInterface* host_interface, QWidget* p
|
|||
m_ui.vsync, tr("VSync"), tr("Checked"),
|
||||
tr("Enable this option to match DuckStation's refresh rate with your current monitor or screen. "
|
||||
"VSync is automatically disabled when it is not possible (e.g. running at non-100% speed)."));
|
||||
dialog->registerWidgetHelp(m_ui.showOSDMessages, tr("Show OSD Messages"), tr("Checked"),
|
||||
tr("Shows on-screen-display messages when events occur such as save states being "
|
||||
"created/loaded, screenshots being taken, etc."));
|
||||
dialog->registerWidgetHelp(m_ui.showFPS, tr("Show FPS"), tr("Unchecked"),
|
||||
tr("Shows the internal frame rate of the game in the top-right corner of the display."));
|
||||
dialog->registerWidgetHelp(m_ui.showVPS, tr("Show VPS"), tr("Unchecked"),
|
||||
tr("Shows the number of frames (or v-syncs) displayed per second by the system in the "
|
||||
"top-right corner of the display."));
|
||||
dialog->registerWidgetHelp(
|
||||
m_ui.resolutionScale, tr("Resolution Scale"), "1x",
|
||||
tr("Setting this beyond 1x will enhance the resolution of rendered 3D polygons and lines. Only applies "
|
||||
"to the hardware backends. <br>This option is usually safe, with most games looking fine at "
|
||||
"higher resolutions. Higher resolutions require a more powerful GPU."));
|
||||
dialog->registerWidgetHelp(
|
||||
m_ui.trueColor, tr("True Color Rendering (24-bit, disables dithering)"), tr("Unchecked"),
|
||||
tr("Forces the precision of colours output to the console's framebuffer to use the full 8 bits of precision per "
|
||||
"channel. This produces nicer looking gradients at the cost of making some colours look slightly different. "
|
||||
"Disabling the option also enables dithering, which makes the transition between colours less sharp by applying "
|
||||
"a pattern around those pixels. Most games are compatible with this option, but there is a number which aren't "
|
||||
"and will have broken effects with it enabled. Only applies to the hardware renderers."));
|
||||
dialog->registerWidgetHelp(
|
||||
m_ui.scaledDithering, tr("Scaled Dithering (scale dither pattern to resolution)"), tr("Checked"),
|
||||
tr("Scales the dither pattern to the resolution scale of the emulated GPU. This makes the dither pattern much less "
|
||||
"obvious at higher resolutions. <br>Usually safe to enable, and only supported by the hardware renderers."));
|
||||
dialog->registerWidgetHelp(m_ui.forceNTSCTimings, tr("Force NTSC Timings (60hz-on-PAL)"), tr("Unchecked"),
|
||||
tr("Uses NTSC frame timings when the console is in PAL mode, forcing PAL games to run at "
|
||||
"60hz. <br>For most games which "
|
||||
"have a speed tied to the framerate, this will result in the game running "
|
||||
"approximately 17% faster. <br>For variable "
|
||||
"frame rate games, it may not affect the speed."));
|
||||
dialog->registerWidgetHelp(
|
||||
m_ui.linearTextureFiltering, tr("Bilinear Texture Filtering"), tr("Unchecked"),
|
||||
tr("Smooths out the blockyness of magnified textures on 3D object by using bilinear filtering. <br>Will have a "
|
||||
"greater effect on higher resolution scales. Only applies to the hardware renderers."));
|
||||
dialog->registerWidgetHelp(
|
||||
m_ui.widescreenHack, tr("Widescreen Hack"), tr("Unchecked"),
|
||||
tr("Scales vertex positions in screen-space to a widescreen aspect ratio, essentially "
|
||||
"increasing the field of view from 4:3 to 16:9 in 3D games. <br>For 2D games, or games which "
|
||||
"use pre-rendered backgrounds, this enhancement will not work as expected. <br><b><u>May not be compatible with "
|
||||
"all games.</u></b>"));
|
||||
dialog->registerWidgetHelp(
|
||||
m_ui.pgxpEnable, tr("Geometry Correction"), tr("Unchecked"),
|
||||
tr("Reduces \"wobbly\" polygons and \"warping\" textures that are common in PS1 games. <br>Only "
|
||||
"works with the hardware renderers. <b><u>May not be compatible with all games.</u></b>"));
|
||||
dialog->registerWidgetHelp(m_ui.pgxpCulling, tr("Culling Correction"), tr("Checked"),
|
||||
tr("Increases the precision of polygon culling, reducing the number of holes in geometry. "
|
||||
"Requires geometry correction enabled."));
|
||||
dialog->registerWidgetHelp(m_ui.pgxpTextureCorrection, tr("Texture Correction"), tr("Checked"),
|
||||
tr("Uses perspective-correct interpolation for texture coordinates and colors, "
|
||||
"straightening out warped textures. Requires geometry correction enabled."));
|
||||
m_ui.showSpeed, tr("Show Speed"), tr("Unchecked"),
|
||||
tr("Shows the current emulation speed of the system in the top-right corner of the display as a percentage."));
|
||||
}
|
||||
|
||||
GPUSettingsWidget::~GPUSettingsWidget() = default;
|
||||
DisplaySettingsWidget::~DisplaySettingsWidget() = default;
|
||||
|
||||
void GPUSettingsWidget::updateScaledDitheringEnabled()
|
||||
{
|
||||
const int resolution_scale = m_ui.resolutionScale->currentIndex();
|
||||
const bool true_color = m_ui.trueColor->isChecked();
|
||||
const bool allow_scaled_dithering = (resolution_scale != 1 && !true_color);
|
||||
m_ui.scaledDithering->setEnabled(allow_scaled_dithering);
|
||||
}
|
||||
|
||||
void GPUSettingsWidget::setupAdditionalUi()
|
||||
void DisplaySettingsWidget::setupAdditionalUi()
|
||||
{
|
||||
for (u32 i = 0; i < static_cast<u32>(GPURenderer::Count); i++)
|
||||
{
|
||||
|
@ -173,11 +114,9 @@ void GPUSettingsWidget::setupAdditionalUi()
|
|||
m_ui.displayCropMode->addItem(
|
||||
qApp->translate("DisplayCropMode", Settings::GetDisplayCropModeDisplayName(static_cast<DisplayCropMode>(i))));
|
||||
}
|
||||
|
||||
QtUtils::FillComboBoxWithResolutionScales(m_ui.resolutionScale);
|
||||
}
|
||||
|
||||
void GPUSettingsWidget::populateGPUAdapters()
|
||||
void DisplaySettingsWidget::populateGPUAdapters()
|
||||
{
|
||||
std::vector<std::string> adapter_names;
|
||||
switch (static_cast<GPURenderer>(m_ui.renderer->currentIndex()))
|
||||
|
@ -218,7 +157,7 @@ void GPUSettingsWidget::populateGPUAdapters()
|
|||
m_ui.adapter->setEnabled(!adapter_names.empty());
|
||||
}
|
||||
|
||||
void GPUSettingsWidget::onGPUAdapterIndexChanged()
|
||||
void DisplaySettingsWidget::onGPUAdapterIndexChanged()
|
||||
{
|
||||
if (m_ui.adapter->currentIndex() == 0)
|
||||
{
|
||||
|
@ -229,10 +168,3 @@ void GPUSettingsWidget::onGPUAdapterIndexChanged()
|
|||
|
||||
m_host_interface->SetStringSettingValue("GPU", "Adapter", m_ui.adapter->currentText().toUtf8().constData());
|
||||
}
|
||||
|
||||
void GPUSettingsWidget::updatePGXPSettingsEnabled()
|
||||
{
|
||||
const bool enabled = m_ui.pgxpEnable->isChecked();
|
||||
m_ui.pgxpCulling->setEnabled(enabled);
|
||||
m_ui.pgxpTextureCorrection->setEnabled(enabled);
|
||||
}
|
28
src/duckstation-qt/displaysettingswidget.h
Normal file
28
src/duckstation-qt/displaysettingswidget.h
Normal file
|
@ -0,0 +1,28 @@
|
|||
#pragma once
|
||||
|
||||
#include <QtWidgets/QWidget>
|
||||
|
||||
#include "ui_displaysettingswidget.h"
|
||||
|
||||
class QtHostInterface;
|
||||
class SettingsDialog;
|
||||
|
||||
class DisplaySettingsWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
DisplaySettingsWidget(QtHostInterface* host_interface, QWidget* parent, SettingsDialog* dialog);
|
||||
~DisplaySettingsWidget();
|
||||
|
||||
private Q_SLOTS:
|
||||
void populateGPUAdapters();
|
||||
void onGPUAdapterIndexChanged();
|
||||
|
||||
private:
|
||||
void setupAdditionalUi();
|
||||
|
||||
Ui::DisplaySettingsWidget m_ui;
|
||||
|
||||
QtHostInterface* m_host_interface;
|
||||
};
|
169
src/duckstation-qt/displaysettingswidget.ui
Normal file
169
src/duckstation-qt/displaysettingswidget.ui
Normal file
|
@ -0,0 +1,169 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>DisplaySettingsWidget</class>
|
||||
<widget class="QWidget" name="DisplaySettingsWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>448</width>
|
||||
<height>720</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="title">
|
||||
<string>Basic</string>
|
||||
</property>
|
||||
<layout class="QFormLayout" name="formLayout_3">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>Renderer:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QComboBox" name="renderer"/>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="text">
|
||||
<string>Adapter:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QComboBox" name="adapter"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_3">
|
||||
<property name="title">
|
||||
<string>Screen Display</string>
|
||||
</property>
|
||||
<layout class="QFormLayout" name="formLayout_4">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="text">
|
||||
<string>Aspect Ratio:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QComboBox" name="displayAspectRatio"/>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>Crop:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QComboBox" name="displayCropMode"/>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="2">
|
||||
<widget class="QCheckBox" name="displayLinearFiltering">
|
||||
<property name="text">
|
||||
<string>Linear Upscaling</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0" colspan="2">
|
||||
<widget class="QCheckBox" name="displayIntegerScaling">
|
||||
<property name="text">
|
||||
<string>Integer Upscaling</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0" colspan="2">
|
||||
<widget class="QCheckBox" name="vsync">
|
||||
<property name="text">
|
||||
<string>VSync</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_5">
|
||||
<property name="title">
|
||||
<string>On-Screen Display</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="formLayout_5">
|
||||
<item row="2" column="0">
|
||||
<widget class="QCheckBox" name="showOSDMessages">
|
||||
<property name="text">
|
||||
<string>Show Messages</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QCheckBox" name="showFPS">
|
||||
<property name="text">
|
||||
<string>Show FPS</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QCheckBox" name="showSpeed">
|
||||
<property name="text">
|
||||
<string>Show Emulation Speed</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QCheckBox" name="showVPS">
|
||||
<property name="text">
|
||||
<string>Show VPS</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QCheckBox" name="showResolution">
|
||||
<property name="text">
|
||||
<string>Show Resolution</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</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>
|
|
@ -40,10 +40,11 @@
|
|||
<ClCompile Include="audiosettingswidget.cpp" />
|
||||
<ClCompile Include="autoupdaterdialog.cpp" />
|
||||
<ClCompile Include="consolesettingswidget.cpp" />
|
||||
<ClCompile Include="enhancementsettingswidget.cpp" />
|
||||
<ClCompile Include="gamelistmodel.cpp" />
|
||||
<ClCompile Include="gamelistsearchdirectoriesmodel.cpp" />
|
||||
<ClCompile Include="generalsettingswidget.cpp" />
|
||||
<ClCompile Include="gpusettingswidget.cpp" />
|
||||
<ClCompile Include="displaysettingswidget.cpp" />
|
||||
<ClCompile Include="hotkeysettingswidget.cpp" />
|
||||
<ClCompile Include="inputbindingdialog.cpp" />
|
||||
<ClCompile Include="inputbindingwidgets.cpp" />
|
||||
|
@ -64,10 +65,11 @@
|
|||
<QtMoc Include="aboutdialog.h" />
|
||||
<QtMoc Include="audiosettingswidget.h" />
|
||||
<QtMoc Include="controllersettingswidget.h" />
|
||||
<QtMoc Include="enhancementsettingswidget.h" />
|
||||
<QtMoc Include="memorycardsettingswidget.h" />
|
||||
<QtMoc Include="qtdisplaywidget.h" />
|
||||
<QtMoc Include="generalsettingswidget.h" />
|
||||
<QtMoc Include="gpusettingswidget.h" />
|
||||
<QtMoc Include="displaysettingswidget.h" />
|
||||
<QtMoc Include="hotkeysettingswidget.h" />
|
||||
<QtMoc Include="inputbindingwidgets.h" />
|
||||
<QtMoc Include="advancedsettingswidget.h" />
|
||||
|
@ -117,6 +119,9 @@
|
|||
<QtUi Include="consolesettingswidget.ui">
|
||||
<FileType>Document</FileType>
|
||||
</QtUi>
|
||||
<QtUi Include="enhancementsettingswidget.ui">
|
||||
<FileType>Document</FileType>
|
||||
</QtUi>
|
||||
<QtUi Include="gamelistsettingswidget.ui">
|
||||
<FileType>Document</FileType>
|
||||
</QtUi>
|
||||
|
@ -129,7 +134,7 @@
|
|||
<QtUi Include="settingsdialog.ui">
|
||||
<FileType>Document</FileType>
|
||||
</QtUi>
|
||||
<QtUi Include="gpusettingswidget.ui">
|
||||
<QtUi Include="displaysettingswidget.ui">
|
||||
<FileType>Document</FileType>
|
||||
</QtUi>
|
||||
<QtUi Include="advancedsettingswidget.ui">
|
||||
|
@ -151,13 +156,14 @@
|
|||
<ClCompile Include="$(IntDir)moc_advancedsettingswidget.cpp" />
|
||||
<ClCompile Include="$(IntDir)moc_consolesettingswidget.cpp" />
|
||||
<ClCompile Include="$(IntDir)moc_controllersettingswidget.cpp" />
|
||||
<ClCompile Include="$(IntDir)moc_enhancementsettingswidget.cpp" />
|
||||
<ClCompile Include="$(IntDir)moc_gamelistmodel.cpp" />
|
||||
<ClCompile Include="$(IntDir)moc_gamelistsearchdirectoriesmodel.cpp" />
|
||||
<ClCompile Include="$(IntDir)moc_gamelistsettingswidget.cpp" />
|
||||
<ClCompile Include="$(IntDir)moc_gamelistwidget.cpp" />
|
||||
<ClCompile Include="$(IntDir)moc_gamepropertiesdialog.cpp" />
|
||||
<ClCompile Include="$(IntDir)moc_generalsettingswidget.cpp" />
|
||||
<ClCompile Include="$(IntDir)moc_gpusettingswidget.cpp" />
|
||||
<ClCompile Include="$(IntDir)moc_displaysettingswidget.cpp" />
|
||||
<ClCompile Include="$(IntDir)moc_hotkeysettingswidget.cpp" />
|
||||
<ClCompile Include="$(IntDir)moc_inputbindingdialog.cpp" />
|
||||
<ClCompile Include="$(IntDir)moc_inputbindingwidgets.cpp" />
|
||||
|
|
106
src/duckstation-qt/enhancementsettingswidget.cpp
Normal file
106
src/duckstation-qt/enhancementsettingswidget.cpp
Normal file
|
@ -0,0 +1,106 @@
|
|||
#include "enhancementsettingswidget.h"
|
||||
#include "core/gpu.h"
|
||||
#include "core/settings.h"
|
||||
#include "qtutils.h"
|
||||
#include "settingsdialog.h"
|
||||
#include "settingwidgetbinder.h"
|
||||
|
||||
EnhancementSettingsWidget::EnhancementSettingsWidget(QtHostInterface* host_interface, QWidget* parent, SettingsDialog* dialog)
|
||||
: QWidget(parent), m_host_interface(host_interface)
|
||||
{
|
||||
m_ui.setupUi(this);
|
||||
setupAdditionalUi();
|
||||
|
||||
SettingWidgetBinder::BindWidgetToIntSetting(m_host_interface, m_ui.resolutionScale, "GPU", "ResolutionScale");
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(m_host_interface, m_ui.trueColor, "GPU", "TrueColor");
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(m_host_interface, m_ui.scaledDithering, "GPU", "ScaledDithering");
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(m_host_interface, m_ui.disableInterlacing, "GPU", "DisableInterlacing");
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(m_host_interface, m_ui.forceNTSCTimings, "GPU", "ForceNTSCTimings");
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(m_host_interface, m_ui.linearTextureFiltering, "GPU",
|
||||
"TextureFiltering");
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(m_host_interface, m_ui.widescreenHack, "GPU", "WidescreenHack");
|
||||
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(m_host_interface, m_ui.pgxpEnable, "GPU", "PGXPEnable", false);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(m_host_interface, m_ui.pgxpCulling, "GPU", "PGXPCulling", true);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(m_host_interface, m_ui.pgxpTextureCorrection, "GPU",
|
||||
"PGXPTextureCorrection", true);
|
||||
|
||||
connect(m_ui.resolutionScale, QOverload<int>::of(&QComboBox::currentIndexChanged), this,
|
||||
&EnhancementSettingsWidget::updateScaledDitheringEnabled);
|
||||
connect(m_ui.trueColor, &QCheckBox::stateChanged, this, &EnhancementSettingsWidget::updateScaledDitheringEnabled);
|
||||
updateScaledDitheringEnabled();
|
||||
|
||||
connect(m_ui.pgxpEnable, &QCheckBox::stateChanged, this, &EnhancementSettingsWidget::updatePGXPSettingsEnabled);
|
||||
updatePGXPSettingsEnabled();
|
||||
|
||||
dialog->registerWidgetHelp(
|
||||
m_ui.disableInterlacing, tr("Disable Interlacing (force progressive render/scan)"), tr("Unchecked"),
|
||||
tr(
|
||||
"Forces the rendering and display of frames to progressive mode. <br>This removes the \"combing\" effect seen in "
|
||||
"480i games by rendering them in 480p. Usually safe to enable.<br> "
|
||||
"<b><u>May not be compatible with all games.</u></b>"));
|
||||
dialog->registerWidgetHelp(
|
||||
m_ui.resolutionScale, tr("Resolution Scale"), "1x",
|
||||
tr("Setting this beyond 1x will enhance the resolution of rendered 3D polygons and lines. Only applies "
|
||||
"to the hardware backends. <br>This option is usually safe, with most games looking fine at "
|
||||
"higher resolutions. Higher resolutions require a more powerful GPU."));
|
||||
dialog->registerWidgetHelp(
|
||||
m_ui.trueColor, tr("True Color Rendering (24-bit, disables dithering)"), tr("Unchecked"),
|
||||
tr("Forces the precision of colours output to the console's framebuffer to use the full 8 bits of precision per "
|
||||
"channel. This produces nicer looking gradients at the cost of making some colours look slightly different. "
|
||||
"Disabling the option also enables dithering, which makes the transition between colours less sharp by applying "
|
||||
"a pattern around those pixels. Most games are compatible with this option, but there is a number which aren't "
|
||||
"and will have broken effects with it enabled. Only applies to the hardware renderers."));
|
||||
dialog->registerWidgetHelp(
|
||||
m_ui.scaledDithering, tr("Scaled Dithering (scale dither pattern to resolution)"), tr("Checked"),
|
||||
tr("Scales the dither pattern to the resolution scale of the emulated GPU. This makes the dither pattern much less "
|
||||
"obvious at higher resolutions. <br>Usually safe to enable, and only supported by the hardware renderers."));
|
||||
dialog->registerWidgetHelp(m_ui.forceNTSCTimings, tr("Force NTSC Timings (60hz-on-PAL)"), tr("Unchecked"),
|
||||
tr("Uses NTSC frame timings when the console is in PAL mode, forcing PAL games to run at "
|
||||
"60hz. <br>For most games which "
|
||||
"have a speed tied to the framerate, this will result in the game running "
|
||||
"approximately 17% faster. <br>For variable "
|
||||
"frame rate games, it may not affect the speed."));
|
||||
dialog->registerWidgetHelp(
|
||||
m_ui.linearTextureFiltering, tr("Bilinear Texture Filtering"), tr("Unchecked"),
|
||||
tr("Smooths out the blockyness of magnified textures on 3D object by using bilinear filtering. <br>Will have a "
|
||||
"greater effect on higher resolution scales. Only applies to the hardware renderers."));
|
||||
dialog->registerWidgetHelp(
|
||||
m_ui.widescreenHack, tr("Widescreen Hack"), tr("Unchecked"),
|
||||
tr("Scales vertex positions in screen-space to a widescreen aspect ratio, essentially "
|
||||
"increasing the field of view from 4:3 to 16:9 in 3D games. <br>For 2D games, or games which "
|
||||
"use pre-rendered backgrounds, this enhancement will not work as expected. <br><b><u>May not be compatible with "
|
||||
"all games.</u></b>"));
|
||||
dialog->registerWidgetHelp(
|
||||
m_ui.pgxpEnable, tr("Geometry Correction"), tr("Unchecked"),
|
||||
tr("Reduces \"wobbly\" polygons and \"warping\" textures that are common in PS1 games. <br>Only "
|
||||
"works with the hardware renderers. <b><u>May not be compatible with all games.</u></b>"));
|
||||
dialog->registerWidgetHelp(m_ui.pgxpCulling, tr("Culling Correction"), tr("Checked"),
|
||||
tr("Increases the precision of polygon culling, reducing the number of holes in geometry. "
|
||||
"Requires geometry correction enabled."));
|
||||
dialog->registerWidgetHelp(m_ui.pgxpTextureCorrection, tr("Texture Correction"), tr("Checked"),
|
||||
tr("Uses perspective-correct interpolation for texture coordinates and colors, "
|
||||
"straightening out warped textures. Requires geometry correction enabled."));
|
||||
}
|
||||
|
||||
EnhancementSettingsWidget::~EnhancementSettingsWidget() = default;
|
||||
|
||||
void EnhancementSettingsWidget::updateScaledDitheringEnabled()
|
||||
{
|
||||
const int resolution_scale = m_ui.resolutionScale->currentIndex();
|
||||
const bool true_color = m_ui.trueColor->isChecked();
|
||||
const bool allow_scaled_dithering = (resolution_scale != 1 && !true_color);
|
||||
m_ui.scaledDithering->setEnabled(allow_scaled_dithering);
|
||||
}
|
||||
|
||||
void EnhancementSettingsWidget::setupAdditionalUi()
|
||||
{
|
||||
QtUtils::FillComboBoxWithResolutionScales(m_ui.resolutionScale);
|
||||
}
|
||||
|
||||
void EnhancementSettingsWidget::updatePGXPSettingsEnabled()
|
||||
{
|
||||
const bool enabled = m_ui.pgxpEnable->isChecked();
|
||||
m_ui.pgxpCulling->setEnabled(enabled);
|
||||
m_ui.pgxpTextureCorrection->setEnabled(enabled);
|
||||
}
|
28
src/duckstation-qt/enhancementsettingswidget.h
Normal file
28
src/duckstation-qt/enhancementsettingswidget.h
Normal file
|
@ -0,0 +1,28 @@
|
|||
#pragma once
|
||||
|
||||
#include <QtWidgets/QWidget>
|
||||
|
||||
#include "ui_enhancementsettingswidget.h"
|
||||
|
||||
class QtHostInterface;
|
||||
class SettingsDialog;
|
||||
|
||||
class EnhancementSettingsWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
EnhancementSettingsWidget(QtHostInterface* host_interface, QWidget* parent, SettingsDialog* dialog);
|
||||
~EnhancementSettingsWidget();
|
||||
|
||||
private Q_SLOTS:
|
||||
void updateScaledDitheringEnabled();
|
||||
void updatePGXPSettingsEnabled();
|
||||
|
||||
private:
|
||||
void setupAdditionalUi();
|
||||
|
||||
Ui::EnhancementSettingsWidget m_ui;
|
||||
|
||||
QtHostInterface* m_host_interface;
|
||||
};
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>GPUSettingsWidget</class>
|
||||
<widget class="QWidget" name="GPUSettingsWidget">
|
||||
<class>EnhancementSettingsWidget</class>
|
||||
<widget class="QWidget" name="EnhancementSettingsWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
|
@ -26,110 +26,16 @@
|
|||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QScrollArea" name="scrollArea">
|
||||
<property name="widgetResizable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<widget class="QWidget" name="scrollAreaWidgetContents">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>423</width>
|
||||
<height>756</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="title">
|
||||
<string>Basic</string>
|
||||
</property>
|
||||
<layout class="QFormLayout" name="formLayout_3">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>Renderer:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QComboBox" name="renderer"/>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="text">
|
||||
<string>Adapter:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QComboBox" name="adapter"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_3">
|
||||
<property name="title">
|
||||
<string>Screen Display</string>
|
||||
</property>
|
||||
<layout class="QFormLayout" name="formLayout_4">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="text">
|
||||
<string>Aspect Ratio:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QComboBox" name="displayAspectRatio"/>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>Crop:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QComboBox" name="displayCropMode"/>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="2">
|
||||
<widget class="QCheckBox" name="displayLinearFiltering">
|
||||
<property name="text">
|
||||
<string>Linear Upscaling</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0" colspan="2">
|
||||
<widget class="QCheckBox" name="displayIntegerScaling">
|
||||
<property name="text">
|
||||
<string>Integer Upscaling</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0" colspan="2">
|
||||
<widget class="QCheckBox" name="vsync">
|
||||
<property name="text">
|
||||
<string>VSync</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_2">
|
||||
<property name="title">
|
||||
<string>Enhancements</string>
|
||||
<string>Rendering Enhancements</string>
|
||||
</property>
|
||||
<layout class="QFormLayout" name="formLayout_2">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>Resolution Scale:</string>
|
||||
<string>Internal Resolution Scale:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -151,27 +57,36 @@
|
|||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0" colspan="2">
|
||||
<widget class="QCheckBox" name="disableInterlacing">
|
||||
<property name="text">
|
||||
<string>Disable Interlacing (force progressive render/scan)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0" colspan="2">
|
||||
<widget class="QCheckBox" name="forceNTSCTimings">
|
||||
<property name="text">
|
||||
<string>Force NTSC Timings (60hz-on-PAL)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0" colspan="2">
|
||||
<widget class="QCheckBox" name="linearTextureFiltering">
|
||||
<property name="text">
|
||||
<string>Bilinear Texture Filtering</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="0" colspan="2">
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_3">
|
||||
<property name="title">
|
||||
<string>Display Enhancements</string>
|
||||
</property>
|
||||
<layout class="QFormLayout" name="formLayout_3">
|
||||
<item row="0" column="0" colspan="2">
|
||||
<widget class="QCheckBox" name="disableInterlacing">
|
||||
<property name="text">
|
||||
<string>Disable Interlacing (force progressive render/scan)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2">
|
||||
<widget class="QCheckBox" name="forceNTSCTimings">
|
||||
<property name="text">
|
||||
<string>Force NTSC Timings (60hz-on-PAL)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="2">
|
||||
<widget class="QCheckBox" name="widescreenHack">
|
||||
<property name="text">
|
||||
<string>Widescreen Hack</string>
|
||||
|
@ -184,7 +99,7 @@
|
|||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_4">
|
||||
<property name="title">
|
||||
<string>PGXP</string>
|
||||
<string>PGXP (Precision Geometry Transform Pipeline)</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
|
@ -224,10 +139,6 @@
|
|||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
|
@ -25,15 +25,7 @@ GeneralSettingsWidget::GeneralSettingsWidget(QtHostInterface* host_interface, QW
|
|||
"LoadDevicesFromSaveStates", false);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(m_host_interface, m_ui.applyGameSettings, "Main", "ApplyGameSettings",
|
||||
true);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(m_host_interface, m_ui.autoLoadCheats, "Main", "AutoLoadCheats",
|
||||
false);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(m_host_interface, m_ui.showOSDMessages, "Display", "ShowOSDMessages",
|
||||
true);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(m_host_interface, m_ui.showFPS, "Display", "ShowFPS", false);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(m_host_interface, m_ui.showVPS, "Display", "ShowVPS", false);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(m_host_interface, m_ui.showSpeed, "Display", "ShowSpeed", false);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(m_host_interface, m_ui.showResolution, "Display", "ShowResolution",
|
||||
false);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(m_host_interface, m_ui.autoLoadCheats, "Main", "AutoLoadCheats", false);
|
||||
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(m_host_interface, m_ui.enableSpeedLimiter, "Main", "SpeedLimiterEnabled",
|
||||
true);
|
||||
|
@ -88,17 +80,6 @@ GeneralSettingsWidget::GeneralSettingsWidget(QtHostInterface* host_interface, QW
|
|||
m_ui.emulationSpeed, tr("Emulation Speed"), "100%",
|
||||
tr("Sets the target emulation speed. It is not guaranteed that this speed will be reached, "
|
||||
"and if not, the emulator will run as fast as it can manage."));
|
||||
dialog->registerWidgetHelp(m_ui.showOSDMessages, tr("Show OSD Messages"), tr("Checked"),
|
||||
tr("Shows on-screen-display messages when events occur such as save states being "
|
||||
"created/loaded, screenshots being taken, etc."));
|
||||
dialog->registerWidgetHelp(m_ui.showFPS, tr("Show FPS"), tr("Unchecked"),
|
||||
tr("Shows the internal frame rate of the game in the top-right corner of the display."));
|
||||
dialog->registerWidgetHelp(m_ui.showVPS, tr("Show VPS"), tr("Unchecked"),
|
||||
tr("Shows the number of frames (or v-syncs) displayed per second by the system in the "
|
||||
"top-right corner of the display."));
|
||||
dialog->registerWidgetHelp(
|
||||
m_ui.showSpeed, tr("Show Speed"), tr("Unchecked"),
|
||||
tr("Shows the current emulation speed of the system in the top-right corner of the display as a percentage."));
|
||||
dialog->registerWidgetHelp(m_ui.controllerBackend, tr("Controller Backend"),
|
||||
qApp->translate("ControllerInterface", ControllerInterface::GetBackendName(
|
||||
ControllerInterface::GetDefaultBackend())),
|
||||
|
|
|
@ -153,50 +153,6 @@
|
|||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_5">
|
||||
<property name="title">
|
||||
<string>On-Screen Display</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="formLayout_5">
|
||||
<item row="2" column="0">
|
||||
<widget class="QCheckBox" name="showOSDMessages">
|
||||
<property name="text">
|
||||
<string>Show Messages</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QCheckBox" name="showFPS">
|
||||
<property name="text">
|
||||
<string>Show FPS</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QCheckBox" name="showSpeed">
|
||||
<property name="text">
|
||||
<string>Show Emulation Speed</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QCheckBox" name="showVPS">
|
||||
<property name="text">
|
||||
<string>Show VPS</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QCheckBox" name="showResolution">
|
||||
<property name="text">
|
||||
<string>Show Resolution</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="title">
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
#pragma once
|
||||
|
||||
#include <QtWidgets/QWidget>
|
||||
|
||||
#include "ui_gpusettingswidget.h"
|
||||
|
||||
class QtHostInterface;
|
||||
class SettingsDialog;
|
||||
|
||||
class GPUSettingsWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
GPUSettingsWidget(QtHostInterface* host_interface, QWidget* parent, SettingsDialog* dialog);
|
||||
~GPUSettingsWidget();
|
||||
|
||||
private Q_SLOTS:
|
||||
void updateScaledDitheringEnabled();
|
||||
void populateGPUAdapters();
|
||||
void onGPUAdapterIndexChanged();
|
||||
void updatePGXPSettingsEnabled();
|
||||
|
||||
private:
|
||||
void setupAdditionalUi();
|
||||
|
||||
Ui::GPUSettingsWidget m_ui;
|
||||
|
||||
QtHostInterface* m_host_interface;
|
||||
};
|
|
@ -660,7 +660,10 @@ void MainWindow::connectSignals()
|
|||
[this]() { doSettings(SettingsDialog::Category::ControllerSettings); });
|
||||
connect(m_ui.actionMemoryCardSettings, &QAction::triggered,
|
||||
[this]() { doSettings(SettingsDialog::Category::MemoryCardSettings); });
|
||||
connect(m_ui.actionGPUSettings, &QAction::triggered, [this]() { doSettings(SettingsDialog::Category::GPUSettings); });
|
||||
connect(m_ui.actionDisplaySettings, &QAction::triggered,
|
||||
[this]() { doSettings(SettingsDialog::Category::DisplaySettings); });
|
||||
connect(m_ui.actionEnhancementSettings, &QAction::triggered,
|
||||
[this]() { doSettings(SettingsDialog::Category::EnhancementSettings); });
|
||||
connect(m_ui.actionAudioSettings, &QAction::triggered,
|
||||
[this]() { doSettings(SettingsDialog::Category::AudioSettings); });
|
||||
connect(m_ui.actionAdvancedSettings, &QAction::triggered,
|
||||
|
|
|
@ -120,7 +120,8 @@
|
|||
<addaction name="actionHotkeySettings"/>
|
||||
<addaction name="actionControllerSettings"/>
|
||||
<addaction name="actionMemoryCardSettings"/>
|
||||
<addaction name="actionGPUSettings"/>
|
||||
<addaction name="actionDisplaySettings"/>
|
||||
<addaction name="actionEnhancementSettings"/>
|
||||
<addaction name="actionAudioSettings"/>
|
||||
<addaction name="actionAdvancedSettings"/>
|
||||
<addaction name="separator"/>
|
||||
|
@ -340,13 +341,22 @@
|
|||
<string>&Hotkey Settings...</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionGPUSettings">
|
||||
<action name="actionDisplaySettings">
|
||||
<property name="icon">
|
||||
<iconset resource="resources/icons.qrc">
|
||||
<normaloff>:/icons/video-display.png</normaloff>:/icons/video-display.png</iconset>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&GPU Settings...</string>
|
||||
<string>&Display Settings...</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionEnhancementSettings">
|
||||
<property name="icon">
|
||||
<iconset resource="resources/icons.qrc">
|
||||
<normaloff>:/icons/antialias-icon.png</normaloff>:/icons/antialias-icon.png</iconset>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&Enhancement Settings...</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionFullscreen">
|
||||
|
|
|
@ -3,9 +3,10 @@
|
|||
#include "audiosettingswidget.h"
|
||||
#include "consolesettingswidget.h"
|
||||
#include "controllersettingswidget.h"
|
||||
#include "displaysettingswidget.h"
|
||||
#include "enhancementsettingswidget.h"
|
||||
#include "gamelistsettingswidget.h"
|
||||
#include "generalsettingswidget.h"
|
||||
#include "gpusettingswidget.h"
|
||||
#include "hotkeysettingswidget.h"
|
||||
#include "memorycardsettingswidget.h"
|
||||
#include "qthostinterface.h"
|
||||
|
@ -27,7 +28,8 @@ SettingsDialog::SettingsDialog(QtHostInterface* host_interface, QWidget* parent
|
|||
m_hotkey_settings = new HotkeySettingsWidget(host_interface, m_ui.settingsContainer);
|
||||
m_controller_settings = new ControllerSettingsWidget(host_interface, m_ui.settingsContainer);
|
||||
m_memory_card_settings = new MemoryCardSettingsWidget(host_interface, m_ui.settingsContainer, this);
|
||||
m_gpu_settings = new GPUSettingsWidget(host_interface, m_ui.settingsContainer, this);
|
||||
m_display_settings = new DisplaySettingsWidget(host_interface, m_ui.settingsContainer, this);
|
||||
m_enhancement_settings = new EnhancementSettingsWidget(host_interface, m_ui.settingsContainer, this);
|
||||
m_audio_settings = new AudioSettingsWidget(host_interface, m_ui.settingsContainer, this);
|
||||
m_advanced_settings = new AdvancedSettingsWidget(host_interface, m_ui.settingsContainer, this);
|
||||
|
||||
|
@ -37,7 +39,8 @@ SettingsDialog::SettingsDialog(QtHostInterface* host_interface, QWidget* parent
|
|||
m_ui.settingsContainer->insertWidget(static_cast<int>(Category::HotkeySettings), m_hotkey_settings);
|
||||
m_ui.settingsContainer->insertWidget(static_cast<int>(Category::ControllerSettings), m_controller_settings);
|
||||
m_ui.settingsContainer->insertWidget(static_cast<int>(Category::MemoryCardSettings), m_memory_card_settings);
|
||||
m_ui.settingsContainer->insertWidget(static_cast<int>(Category::GPUSettings), m_gpu_settings);
|
||||
m_ui.settingsContainer->insertWidget(static_cast<int>(Category::DisplaySettings), m_display_settings);
|
||||
m_ui.settingsContainer->insertWidget(static_cast<int>(Category::EnhancementSettings), m_enhancement_settings);
|
||||
m_ui.settingsContainer->insertWidget(static_cast<int>(Category::AudioSettings), m_audio_settings);
|
||||
m_ui.settingsContainer->insertWidget(static_cast<int>(Category::AdvancedSettings), m_advanced_settings);
|
||||
|
||||
|
@ -79,9 +82,12 @@ void SettingsDialog::setCategoryHelpTexts()
|
|||
m_category_help_text[static_cast<int>(Category::MemoryCardSettings)] =
|
||||
tr("<strong>Memory Card Settings</strong><hr>This page lets you control what mode the memory card emulation will "
|
||||
"function in, and where the images for these cards will be stored on disk.");
|
||||
m_category_help_text[static_cast<int>(Category::GPUSettings)] =
|
||||
tr("<strong>GPU Settings</strong><hr>These options control the simulation of the GPU in the console. Various "
|
||||
"enhancements are available, mouse over each for additional information.");
|
||||
m_category_help_text[static_cast<int>(Category::DisplaySettings)] =
|
||||
tr("<strong>Display Settings</strong><hr>These options control the how the frames generated by the console are "
|
||||
"displayed on the screen.");
|
||||
m_category_help_text[static_cast<int>(Category::EnhancementSettings)] =
|
||||
tr("<strong>Enhancement Settings</strong><hr>These options control enhancements which can improve visuals compared "
|
||||
"to the original console. Mouse over each option for additional information.");
|
||||
m_category_help_text[static_cast<int>(Category::AudioSettings)] =
|
||||
tr("<strong>Audio Settings</strong><hr>These options control the audio output of the console. Mouse over an option "
|
||||
"for additional information.");
|
||||
|
|
|
@ -13,7 +13,8 @@ class HotkeySettingsWidget;
|
|||
class ConsoleSettingsWidget;
|
||||
class ControllerSettingsWidget;
|
||||
class MemoryCardSettingsWidget;
|
||||
class GPUSettingsWidget;
|
||||
class DisplaySettingsWidget;
|
||||
class EnhancementSettingsWidget;
|
||||
class AudioSettingsWidget;
|
||||
class AdvancedSettingsWidget;
|
||||
|
||||
|
@ -30,7 +31,8 @@ public:
|
|||
HotkeySettings,
|
||||
ControllerSettings,
|
||||
MemoryCardSettings,
|
||||
GPUSettings,
|
||||
DisplaySettings,
|
||||
EnhancementSettings,
|
||||
AudioSettings,
|
||||
AdvancedSettings,
|
||||
Count
|
||||
|
@ -45,7 +47,8 @@ public:
|
|||
HotkeySettingsWidget* getHotkeySettingsWidget() const { return m_hotkey_settings; }
|
||||
ControllerSettingsWidget* getControllerSettingsWidget() const { return m_controller_settings; }
|
||||
MemoryCardSettingsWidget* getMemoryCardSettingsWidget() const { return m_memory_card_settings; }
|
||||
GPUSettingsWidget* getGPUSettingsWidget() const { return m_gpu_settings; }
|
||||
DisplaySettingsWidget* getDisplaySettingsWidget() const { return m_display_settings; }
|
||||
EnhancementSettingsWidget* getEnhancementSettingsWidget() const { return m_enhancement_settings; }
|
||||
AudioSettingsWidget* getAudioSettingsWidget() const { return m_audio_settings; }
|
||||
AdvancedSettingsWidget* getAdvancedSettingsWidget() const { return m_advanced_settings; }
|
||||
|
||||
|
@ -71,7 +74,8 @@ private:
|
|||
HotkeySettingsWidget* m_hotkey_settings = nullptr;
|
||||
ControllerSettingsWidget* m_controller_settings = nullptr;
|
||||
MemoryCardSettingsWidget* m_memory_card_settings = nullptr;
|
||||
GPUSettingsWidget* m_gpu_settings = nullptr;
|
||||
DisplaySettingsWidget* m_display_settings = nullptr;
|
||||
EnhancementSettingsWidget* m_enhancement_settings = nullptr;
|
||||
AudioSettingsWidget* m_audio_settings = nullptr;
|
||||
AdvancedSettingsWidget* m_advanced_settings = nullptr;
|
||||
|
||||
|
|
|
@ -114,13 +114,22 @@
|
|||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>GPU Settings</string>
|
||||
<string>Display Settings</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="resources/resources.qrc">
|
||||
<normaloff>:/icons/video-display.png</normaloff>:/icons/video-display.png</iconset>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Enhancement Settings</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="resources/resources.qrc">
|
||||
<normaloff>:/icons/antialias-icon.png</normaloff>:/icons/antialias-icon.png</iconset>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Audio Settings</string>
|
||||
|
|
Loading…
Reference in a new issue