summaryrefslogtreecommitdiff
path: root/src/citra_qt/configure_graphics.cpp
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/citra_qt/configure_graphics.cpp76
1 files changed, 74 insertions, 2 deletions
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)
18 18
19ConfigureGraphics::~ConfigureGraphics() {} 19ConfigureGraphics::~ConfigureGraphics() {}
20 20
21enum class Resolution : int {
22 Auto,
23 Scale1x,
24 Scale2x,
25 Scale3x,
26 Scale4x,
27 Scale5x,
28 Scale6x,
29 Scale7x,
30 Scale8x,
31 Scale9x,
32 Scale10x,
33};
34
35float ToResolutionFactor(Resolution option) {
36 switch (option) {
37 case Resolution::Auto:
38 return 0.f;
39 case Resolution::Scale1x:
40 return 1.f;
41 case Resolution::Scale2x:
42 return 2.f;
43 case Resolution::Scale3x:
44 return 3.f;
45 case Resolution::Scale4x:
46 return 4.f;
47 case Resolution::Scale5x:
48 return 5.f;
49 case Resolution::Scale6x:
50 return 6.f;
51 case Resolution::Scale7x:
52 return 7.f;
53 case Resolution::Scale8x:
54 return 8.f;
55 case Resolution::Scale9x:
56 return 9.f;
57 case Resolution::Scale10x:
58 return 10.f;
59 }
60 return 0.f;
61}
62
63Resolution FromResolutionFactor(float factor) {
64 if (factor == 0.f) {
65 return Resolution::Auto;
66 } else if (factor == 1.f) {
67 return Resolution::Scale1x;
68 } else if (factor == 2.f) {
69 return Resolution::Scale2x;
70 } else if (factor == 3.f) {
71 return Resolution::Scale3x;
72 } else if (factor == 4.f) {
73 return Resolution::Scale4x;
74 } else if (factor == 5.f) {
75 return Resolution::Scale5x;
76 } else if (factor == 6.f) {
77 return Resolution::Scale6x;
78 } else if (factor == 7.f) {
79 return Resolution::Scale7x;
80 } else if (factor == 8.f) {
81 return Resolution::Scale8x;
82 } else if (factor == 9.f) {
83 return Resolution::Scale9x;
84 } else if (factor == 10.f) {
85 return Resolution::Scale10x;
86 }
87 return Resolution::Auto;
88}
89
21void ConfigureGraphics::setConfiguration() { 90void ConfigureGraphics::setConfiguration() {
22 ui->toggle_hw_renderer->setChecked(Settings::values.use_hw_renderer); 91 ui->toggle_hw_renderer->setChecked(Settings::values.use_hw_renderer);
92 ui->resolution_factor_combobox->setEnabled(Settings::values.use_hw_renderer);
23 ui->toggle_shader_jit->setChecked(Settings::values.use_shader_jit); 93 ui->toggle_shader_jit->setChecked(Settings::values.use_shader_jit);
24 ui->toggle_scaled_resolution->setChecked(Settings::values.use_scaled_resolution); 94 ui->resolution_factor_combobox->setCurrentIndex(
95 static_cast<int>(FromResolutionFactor(Settings::values.resolution_factor)));
25 ui->toggle_vsync->setChecked(Settings::values.use_vsync); 96 ui->toggle_vsync->setChecked(Settings::values.use_vsync);
26 ui->toggle_framelimit->setChecked(Settings::values.toggle_framelimit); 97 ui->toggle_framelimit->setChecked(Settings::values.toggle_framelimit);
27 ui->layout_combobox->setCurrentIndex(static_cast<int>(Settings::values.layout_option)); 98 ui->layout_combobox->setCurrentIndex(static_cast<int>(Settings::values.layout_option));
@@ -31,7 +102,8 @@ void ConfigureGraphics::setConfiguration() {
31void ConfigureGraphics::applyConfiguration() { 102void ConfigureGraphics::applyConfiguration() {
32 Settings::values.use_hw_renderer = ui->toggle_hw_renderer->isChecked(); 103 Settings::values.use_hw_renderer = ui->toggle_hw_renderer->isChecked();
33 Settings::values.use_shader_jit = ui->toggle_shader_jit->isChecked(); 104 Settings::values.use_shader_jit = ui->toggle_shader_jit->isChecked();
34 Settings::values.use_scaled_resolution = ui->toggle_scaled_resolution->isChecked(); 105 Settings::values.resolution_factor =
106 ToResolutionFactor(static_cast<Resolution>(ui->resolution_factor_combobox->currentIndex()));
35 Settings::values.use_vsync = ui->toggle_vsync->isChecked(); 107 Settings::values.use_vsync = ui->toggle_vsync->isChecked();
36 Settings::values.toggle_framelimit = ui->toggle_framelimit->isChecked(); 108 Settings::values.toggle_framelimit = ui->toggle_framelimit->isChecked();
37 Settings::values.layout_option = 109 Settings::values.layout_option =