citra-qt: add gpu shader emulation related configurations

This commit is contained in:
wwylele 2018-05-06 16:36:49 +03:00
parent b31ed30fb2
commit 1d5a26b1d8
2 changed files with 231 additions and 168 deletions

View file

@ -19,13 +19,22 @@ ConfigureGraphics::ConfigureGraphics(QWidget* parent)
&QSpinBox::setEnabled);
ui->layoutBox->setEnabled(!Settings::values.custom_layout);
ui->hw_renderer_group->setEnabled(ui->toggle_hw_renderer->isChecked());
connect(ui->toggle_hw_renderer, &QCheckBox::stateChanged, ui->hw_renderer_group,
&QWidget::setEnabled);
ui->hw_shader_group->setEnabled(ui->toggle_hw_shader->isChecked());
connect(ui->toggle_hw_shader, &QCheckBox::stateChanged, ui->hw_shader_group,
&QWidget::setEnabled);
}
ConfigureGraphics::~ConfigureGraphics() {}
void ConfigureGraphics::setConfiguration() {
ui->toggle_hw_renderer->setChecked(Settings::values.use_hw_renderer);
ui->resolution_factor_combobox->setEnabled(Settings::values.use_hw_renderer);
ui->toggle_hw_shader->setChecked(Settings::values.use_hw_shader);
ui->toggle_accurate_gs->setChecked(Settings::values.shaders_accurate_gs);
ui->toggle_accurate_mul->setChecked(Settings::values.shaders_accurate_mul);
ui->toggle_shader_jit->setChecked(Settings::values.use_shader_jit);
ui->resolution_factor_combobox->setCurrentIndex(Settings::values.resolution_factor);
ui->toggle_vsync->setChecked(Settings::values.use_vsync);
@ -37,6 +46,9 @@ void ConfigureGraphics::setConfiguration() {
void ConfigureGraphics::applyConfiguration() {
Settings::values.use_hw_renderer = ui->toggle_hw_renderer->isChecked();
Settings::values.use_hw_shader = ui->toggle_hw_shader->isChecked();
Settings::values.shaders_accurate_gs = ui->toggle_accurate_gs->isChecked();
Settings::values.shaders_accurate_mul = ui->toggle_accurate_mul->isChecked();
Settings::values.use_shader_jit = ui->toggle_shader_jit->isChecked();
Settings::values.resolution_factor =
static_cast<u16>(ui->resolution_factor_combobox->currentIndex());

View file

@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
<height>427</height>
</rect>
</property>
<property name="windowTitle">
@ -15,27 +15,11 @@
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QGroupBox" name="groupBox">
<widget class="QGroupBox" name="generalBox">
<property name="title">
<string>Graphics</string>
<string>General</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QCheckBox" name="toggle_hw_renderer">
<property name="text">
<string>Enable hardware renderer</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="toggle_shader_jit">
<property name="text">
<string>Enable shader JIT</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="toggle_vsync">
<property name="text">
@ -70,12 +54,43 @@
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="rendererBox">
<property name="title">
<string>Renderer</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_6">
<item>
<widget class="QCheckBox" name="toggle_hw_renderer">
<property name="text">
<string>Enable Hardware Renderer</string>
</property>
</widget>
</item>
<item>
<widget class="QWidget" name="hw_renderer_group" native="true">
<layout class="QVBoxLayout" name="verticalLayout_5">
<property name="leftMargin">
<number>16</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Internal Resolution:</string>
<string>Internal Resolution</string>
</property>
</widget>
</item>
@ -140,19 +155,64 @@
</item>
</layout>
</item>
<item>
<widget class="QCheckBox" name="toggle_hw_shader">
<property name="text">
<string>Enable Hardware Shader</string>
</property>
</widget>
</item>
<item>
<widget class="QWidget" name="hw_shader_group" native="true">
<layout class="QVBoxLayout" name="verticalLayout_7">
<property name="leftMargin">
<number>16</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="QCheckBox" name="toggle_accurate_mul">
<property name="text">
<string>Accurate Multiplication</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="toggle_accurate_gs">
<property name="text">
<string>Accurate Geometry Shader</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QCheckBox" name="toggle_shader_jit">
<property name="text">
<string>Enable Shader JIT</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="layoutBox">
<property name="title">
<string>Layout</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<layout class="QVBoxLayout" name="verticalLayout_4">
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
@ -196,8 +256,6 @@
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
@ -216,12 +274,5 @@
</layout>
</widget>
<resources/>
<connections>
<connection>
<sender>toggle_hw_renderer</sender>
<signal>toggled(bool)</signal>
<receiver>resolution_factor_combobox</receiver>
<slot>setEnabled(bool)</slot>
</connection>
</connections>
<connections/>
</ui>