diff options
Diffstat (limited to 'src/citra_qt')
| -rw-r--r-- | src/citra_qt/config.cpp | 5 | ||||
| -rw-r--r-- | src/citra_qt/configure_graphics.cpp | 76 | ||||
| -rw-r--r-- | src/citra_qt/configure_graphics.ui | 86 | 
3 files changed, 154 insertions, 13 deletions
| diff --git a/src/citra_qt/config.cpp b/src/citra_qt/config.cpp index c904c4b00..8021667d0 100644 --- a/src/citra_qt/config.cpp +++ b/src/citra_qt/config.cpp @@ -44,8 +44,7 @@ void Config::ReadValues() {      qt_config->beginGroup("Renderer");      Settings::values.use_hw_renderer = qt_config->value("use_hw_renderer", true).toBool();      Settings::values.use_shader_jit = qt_config->value("use_shader_jit", true).toBool(); -    Settings::values.use_scaled_resolution = -        qt_config->value("use_scaled_resolution", false).toBool(); +    Settings::values.resolution_factor = qt_config->value("resolution_factor", 1.0).toFloat();      Settings::values.use_vsync = qt_config->value("use_vsync", false).toBool();      Settings::values.toggle_framelimit = qt_config->value("toggle_framelimit", true).toBool(); @@ -152,7 +151,7 @@ void Config::SaveValues() {      qt_config->beginGroup("Renderer");      qt_config->setValue("use_hw_renderer", Settings::values.use_hw_renderer);      qt_config->setValue("use_shader_jit", Settings::values.use_shader_jit); -    qt_config->setValue("use_scaled_resolution", Settings::values.use_scaled_resolution); +    qt_config->setValue("resolution_factor", (double)Settings::values.resolution_factor);      qt_config->setValue("use_vsync", Settings::values.use_vsync);      qt_config->setValue("toggle_framelimit", Settings::values.toggle_framelimit); diff --git a/src/citra_qt/configure_graphics.cpp b/src/citra_qt/configure_graphics.cpp index cea7db388..54f799b47 100644 --- a/src/citra_qt/configure_graphics.cpp +++ b/src/citra_qt/configure_graphics.cpp @@ -18,10 +18,81 @@ ConfigureGraphics::ConfigureGraphics(QWidget* parent)  ConfigureGraphics::~ConfigureGraphics() {} +enum class Resolution : int { +    Auto, +    Scale1x, +    Scale2x, +    Scale3x, +    Scale4x, +    Scale5x, +    Scale6x, +    Scale7x, +    Scale8x, +    Scale9x, +    Scale10x, +}; + +float ToResolutionFactor(Resolution option) { +    switch (option) { +    case Resolution::Auto: +        return 0.f; +    case Resolution::Scale1x: +        return 1.f; +    case Resolution::Scale2x: +        return 2.f; +    case Resolution::Scale3x: +        return 3.f; +    case Resolution::Scale4x: +        return 4.f; +    case Resolution::Scale5x: +        return 5.f; +    case Resolution::Scale6x: +        return 6.f; +    case Resolution::Scale7x: +        return 7.f; +    case Resolution::Scale8x: +        return 8.f; +    case Resolution::Scale9x: +        return 9.f; +    case Resolution::Scale10x: +        return 10.f; +    } +    return 0.f; +} + +Resolution FromResolutionFactor(float factor) { +    if (factor == 0.f) { +        return Resolution::Auto; +    } else if (factor == 1.f) { +        return Resolution::Scale1x; +    } else if (factor == 2.f) { +        return Resolution::Scale2x; +    } else if (factor == 3.f) { +        return Resolution::Scale3x; +    } else if (factor == 4.f) { +        return Resolution::Scale4x; +    } else if (factor == 5.f) { +        return Resolution::Scale5x; +    } else if (factor == 6.f) { +        return Resolution::Scale6x; +    } else if (factor == 7.f) { +        return Resolution::Scale7x; +    } else if (factor == 8.f) { +        return Resolution::Scale8x; +    } else if (factor == 9.f) { +        return Resolution::Scale9x; +    } else if (factor == 10.f) { +        return Resolution::Scale10x; +    } +    return Resolution::Auto; +} +  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_shader_jit->setChecked(Settings::values.use_shader_jit); -    ui->toggle_scaled_resolution->setChecked(Settings::values.use_scaled_resolution); +    ui->resolution_factor_combobox->setCurrentIndex( +        static_cast<int>(FromResolutionFactor(Settings::values.resolution_factor)));      ui->toggle_vsync->setChecked(Settings::values.use_vsync);      ui->toggle_framelimit->setChecked(Settings::values.toggle_framelimit);      ui->layout_combobox->setCurrentIndex(static_cast<int>(Settings::values.layout_option)); @@ -31,7 +102,8 @@ void ConfigureGraphics::setConfiguration() {  void ConfigureGraphics::applyConfiguration() {      Settings::values.use_hw_renderer = ui->toggle_hw_renderer->isChecked();      Settings::values.use_shader_jit = ui->toggle_shader_jit->isChecked(); -    Settings::values.use_scaled_resolution = ui->toggle_scaled_resolution->isChecked(); +    Settings::values.resolution_factor = +        ToResolutionFactor(static_cast<Resolution>(ui->resolution_factor_combobox->currentIndex()));      Settings::values.use_vsync = ui->toggle_vsync->isChecked();      Settings::values.toggle_framelimit = ui->toggle_framelimit->isChecked();      Settings::values.layout_option = diff --git a/src/citra_qt/configure_graphics.ui b/src/citra_qt/configure_graphics.ui index 964aa0bbd..62021fe22 100644 --- a/src/citra_qt/configure_graphics.ui +++ b/src/citra_qt/configure_graphics.ui @@ -37,13 +37,6 @@           </widget>          </item>          <item> -         <widget class="QCheckBox" name="toggle_scaled_resolution"> -          <property name="text"> -           <string>Enable scaled resolution</string> -          </property> -         </widget> -        </item> -        <item>           <widget class="QCheckBox" name="toggle_vsync">            <property name="text">             <string>Enable V-Sync</string> @@ -57,6 +50,76 @@            </property>           </widget>          </item> +        <item> +          <layout class="QHBoxLayout" name="horizontalLayout"> +            <item> +              <widget class="QLabel" name="label"> +                <property name="text"> +                  <string>Internal Resolution:</string> +                </property> +              </widget> +            </item> +            <item> +              <widget class="QComboBox" name="resolution_factor_combobox"> +                <item> +                  <property name="text"> +                    <string notr="true">Auto (Window Size)</string> +                  </property> +                </item> +                <item> +                  <property name="text"> +                    <string notr="true">Native (400x240)</string> +                  </property> +                </item> +                <item> +                  <property name="text"> +                    <string notr="true">2x Native (800x480)</string> +                  </property> +                </item> +                <item> +                  <property name="text"> +                    <string notr="true">3x Native (1200x720)</string> +                  </property> +                </item> +                <item> +                  <property name="text"> +                    <string notr="true">4x Native (1600x960)</string> +                  </property> +                </item> +                <item> +                  <property name="text"> +                    <string notr="true">5x Native (2000x1200)</string> +                  </property> +                </item> +                <item> +                  <property name="text"> +                    <string notr="true">6x Native (2400x1440)</string> +                  </property> +                </item> +                <item> +                  <property name="text"> +                    <string notr="true">7x Native (2800x1680)</string> +                  </property> +                </item> +                <item> +                  <property name="text"> +                    <string notr="true">8x Native (3200x1920)</string> +                  </property> +                </item> +                <item> +                  <property name="text"> +                    <string notr="true">9x Native (3600x2160)</string> +                  </property> +                </item> +                <item> +                  <property name="text"> +                    <string notr="true">10x Native (4000x2400)</string> +                  </property> +                </item> +              </widget> +            </item> +          </layout> +        </item>         </layout>        </widget>       </item> @@ -128,5 +191,12 @@    </layout>   </widget>   <resources/> - <connections/> + <connections> +  <connection> +   <sender>toggle_hw_renderer</sender> +   <signal>toggled(bool)</signal> +   <receiver>resolution_factor_combobox</receiver> +   <slot>setEnabled(bool)</slot> +  </connection> + </connections>  </ui> | 
