summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar lat9nq2023-06-21 21:41:15 -0400
committerGravatar lat9nq2023-07-21 10:56:55 -0400
commitca8509d205d20d034c548489d729f65656da611d (patch)
treeb8bc14772ae15b2bd8314692819814f96d514017 /src
parentsettings: Give indices to enums (diff)
downloadyuzu-ca8509d205d20d034c548489d729f65656da611d.tar.gz
yuzu-ca8509d205d20d034c548489d729f65656da611d.tar.xz
yuzu-ca8509d205d20d034c548489d729f65656da611d.zip
configuration: Use enum index
Diffstat (limited to 'src')
-rw-r--r--src/yuzu/configuration/configure_cpu.cpp4
-rw-r--r--src/yuzu/configuration/configure_graphics.cpp13
-rw-r--r--src/yuzu/configuration/configure_graphics.h2
-rw-r--r--src/yuzu/configuration/shared_translation.cpp34
-rw-r--r--src/yuzu/configuration/shared_translation.h2
-rw-r--r--src/yuzu/configuration/shared_widget.cpp2
6 files changed, 31 insertions, 26 deletions
diff --git a/src/yuzu/configuration/configure_cpu.cpp b/src/yuzu/configuration/configure_cpu.cpp
index 57cdc4c63..7d122906e 100644
--- a/src/yuzu/configuration/configure_cpu.cpp
+++ b/src/yuzu/configuration/configure_cpu.cpp
@@ -7,6 +7,7 @@
7#include <QComboBox> 7#include <QComboBox>
8#include "common/common_types.h" 8#include "common/common_types.h"
9#include "common/settings.h" 9#include "common/settings.h"
10#include "common/settings_enums.h"
10#include "configuration/shared_widget.h" 11#include "configuration/shared_widget.h"
11#include "core/core.h" 12#include "core/core.h"
12#include "ui_configure_cpu.h" 13#include "ui_configure_cpu.h"
@@ -76,7 +77,8 @@ void ConfigureCpu::Setup(const ConfigurationShared::Builder& builder) {
76 77
77void ConfigureCpu::UpdateGroup(int index) { 78void ConfigureCpu::UpdateGroup(int index) {
78 const auto accuracy = static_cast<Settings::CpuAccuracy>( 79 const auto accuracy = static_cast<Settings::CpuAccuracy>(
79 combobox_translations.at(typeid(Settings::CpuAccuracy))[index].first); 80 combobox_translations.at(Settings::EnumMetadata<Settings::CpuAccuracy>::Index())[index]
81 .first);
80 ui->unsafe_group->setVisible(accuracy == Settings::CpuAccuracy::Unsafe); 82 ui->unsafe_group->setVisible(accuracy == Settings::CpuAccuracy::Unsafe);
81} 83}
82 84
diff --git a/src/yuzu/configuration/configure_graphics.cpp b/src/yuzu/configuration/configure_graphics.cpp
index 7263af13f..31e87ccf5 100644
--- a/src/yuzu/configuration/configure_graphics.cpp
+++ b/src/yuzu/configuration/configure_graphics.cpp
@@ -85,7 +85,8 @@ ConfigureGraphics::ConfigureGraphics(
85 : ConfigurationShared::Tab(group_, parent), ui{std::make_unique<Ui::ConfigureGraphics>()}, 85 : ConfigurationShared::Tab(group_, parent), ui{std::make_unique<Ui::ConfigureGraphics>()},
86 records{records_}, expose_compute_option{expose_compute_option_}, system{system_}, 86 records{records_}, expose_compute_option{expose_compute_option_}, system{system_},
87 combobox_translations{builder.ComboboxTranslations()}, 87 combobox_translations{builder.ComboboxTranslations()},
88 shader_mapping{combobox_translations.at(typeid(Settings::ShaderBackend))} { 88 shader_mapping{
89 combobox_translations.at(Settings::EnumMetadata<Settings::ShaderBackend>::Index())} {
89 vulkan_device = Settings::values.vulkan_device.GetValue(); 90 vulkan_device = Settings::values.vulkan_device.GetValue();
90 RetrieveVulkanDevices(); 91 RetrieveVulkanDevices();
91 92
@@ -356,7 +357,7 @@ const QString ConfigureGraphics::TranslateVSyncMode(VkPresentModeKHR mode,
356 } 357 }
357} 358}
358 359
359int ConfigureGraphics::FindIndex(std::type_index enumeration, int value) const { 360int ConfigureGraphics::FindIndex(u32 enumeration, int value) const {
360 for (u32 i = 0; i < combobox_translations.at(enumeration).size(); i++) { 361 for (u32 i = 0; i < combobox_translations.at(enumeration).size(); i++) {
361 if (combobox_translations.at(enumeration)[i].first == static_cast<u32>(value)) { 362 if (combobox_translations.at(enumeration)[i].first == static_cast<u32>(value)) {
362 return i; 363 return i;
@@ -383,7 +384,8 @@ void ConfigureGraphics::ApplyConfiguration() {
383 (!Settings::IsConfiguringGlobal() && api_restore_global_button->isEnabled())) { 384 (!Settings::IsConfiguringGlobal() && api_restore_global_button->isEnabled())) {
384 auto backend = static_cast<Settings::RendererBackend>( 385 auto backend = static_cast<Settings::RendererBackend>(
385 combobox_translations 386 combobox_translations
386 .at(typeid(Settings::RendererBackend))[api_combobox->currentIndex()] 387 .at(Settings::EnumMetadata<
388 Settings::RendererBackend>::Index())[api_combobox->currentIndex()]
387 .first); 389 .first);
388 switch (backend) { 390 switch (backend) {
389 case Settings::RendererBackend::OpenGL: 391 case Settings::RendererBackend::OpenGL:
@@ -440,7 +442,8 @@ void ConfigureGraphics::UpdateAPILayout() {
440 442
441 if (is_opengl) { 443 if (is_opengl) {
442 shader_backend_combobox->setCurrentIndex( 444 shader_backend_combobox->setCurrentIndex(
443 FindIndex(typeid(Settings::ShaderBackend), static_cast<int>(shader_backend))); 445 FindIndex(Settings::EnumMetadata<Settings::ShaderBackend>::Index(),
446 static_cast<int>(shader_backend)));
444 } else if (is_vulkan && static_cast<int>(vulkan_device) < vulkan_device_combobox->count()) { 447 } else if (is_vulkan && static_cast<int>(vulkan_device) < vulkan_device_combobox->count()) {
445 vulkan_device_combobox->setCurrentIndex(vulkan_device); 448 vulkan_device_combobox->setCurrentIndex(vulkan_device);
446 } 449 }
@@ -466,7 +469,7 @@ Settings::RendererBackend ConfigureGraphics::GetCurrentGraphicsBackend() const {
466 return Settings::values.renderer_backend.GetValue(true); 469 return Settings::values.renderer_backend.GetValue(true);
467 } 470 }
468 return static_cast<Settings::RendererBackend>( 471 return static_cast<Settings::RendererBackend>(
469 combobox_translations.at(typeid(Settings::RendererBackend)) 472 combobox_translations.at(Settings::EnumMetadata<Settings::RendererBackend>::Index())
470 .at(api_combobox->currentIndex()) 473 .at(api_combobox->currentIndex())
471 .first); 474 .first);
472} 475}
diff --git a/src/yuzu/configuration/configure_graphics.h b/src/yuzu/configuration/configure_graphics.h
index 1848b1593..633a28414 100644
--- a/src/yuzu/configuration/configure_graphics.h
+++ b/src/yuzu/configuration/configure_graphics.h
@@ -75,7 +75,7 @@ private:
75 75
76 Settings::RendererBackend GetCurrentGraphicsBackend() const; 76 Settings::RendererBackend GetCurrentGraphicsBackend() const;
77 77
78 int FindIndex(std::type_index enumeration, int value) const; 78 int FindIndex(u32 enumeration, int value) const;
79 79
80 std::unique_ptr<Ui::ConfigureGraphics> ui; 80 std::unique_ptr<Ui::ConfigureGraphics> ui;
81 QColor bg_color; 81 QColor bg_color;
diff --git a/src/yuzu/configuration/shared_translation.cpp b/src/yuzu/configuration/shared_translation.cpp
index f120a632c..d51286b0e 100644
--- a/src/yuzu/configuration/shared_translation.cpp
+++ b/src/yuzu/configuration/shared_translation.cpp
@@ -182,19 +182,19 @@ std::unique_ptr<ComboboxTranslationMap> ComboboxEnumeration(QWidget* parent) {
182 182
183 // Intentionally skipping VSyncMode to let the UI fill that one out 183 // Intentionally skipping VSyncMode to let the UI fill that one out
184 184
185 translations->insert({typeid(Settings::AstcDecodeMode), 185 translations->insert({Settings::EnumMetadata<Settings::AstcDecodeMode>::Index(),
186 { 186 {
187 PAIR(AstcDecodeMode, Cpu, "CPU"), 187 PAIR(AstcDecodeMode, Cpu, "CPU"),
188 PAIR(AstcDecodeMode, Gpu, "GPU"), 188 PAIR(AstcDecodeMode, Gpu, "GPU"),
189 PAIR(AstcDecodeMode, CpuAsynchronous, "CPU Asynchronous"), 189 PAIR(AstcDecodeMode, CpuAsynchronous, "CPU Asynchronous"),
190 }}); 190 }});
191 translations->insert({typeid(Settings::AstcRecompression), 191 translations->insert({Settings::EnumMetadata<Settings::AstcRecompression>::Index(),
192 { 192 {
193 PAIR(AstcRecompression, Uncompressed, "Uncompressed (Best quality)"), 193 PAIR(AstcRecompression, Uncompressed, "Uncompressed (Best quality)"),
194 PAIR(AstcRecompression, Bc1, "BC1 (Low quality)"), 194 PAIR(AstcRecompression, Bc1, "BC1 (Low quality)"),
195 PAIR(AstcRecompression, Bc3, "BC3 (Medium quality)"), 195 PAIR(AstcRecompression, Bc3, "BC3 (Medium quality)"),
196 }}); 196 }});
197 translations->insert({typeid(Settings::RendererBackend), 197 translations->insert({Settings::EnumMetadata<Settings::RendererBackend>::Index(),
198 { 198 {
199#ifdef HAS_OPENGL 199#ifdef HAS_OPENGL
200 PAIR(RendererBackend, OpenGL, "OpenGL"), 200 PAIR(RendererBackend, OpenGL, "OpenGL"),
@@ -202,37 +202,37 @@ std::unique_ptr<ComboboxTranslationMap> ComboboxEnumeration(QWidget* parent) {
202 PAIR(RendererBackend, Vulkan, "Vulkan"), 202 PAIR(RendererBackend, Vulkan, "Vulkan"),
203 PAIR(RendererBackend, Null, "Null"), 203 PAIR(RendererBackend, Null, "Null"),
204 }}); 204 }});
205 translations->insert({typeid(Settings::ShaderBackend), 205 translations->insert({Settings::EnumMetadata<Settings::ShaderBackend>::Index(),
206 { 206 {
207 PAIR(ShaderBackend, Glsl, "GLSL"), 207 PAIR(ShaderBackend, Glsl, "GLSL"),
208 PAIR(ShaderBackend, Glasm, "GLASM (Assembly Shaders, NVIDIA Only)"), 208 PAIR(ShaderBackend, Glasm, "GLASM (Assembly Shaders, NVIDIA Only)"),
209 PAIR(ShaderBackend, SpirV, "SPIR-V (Experimental, Mesa Only)"), 209 PAIR(ShaderBackend, SpirV, "SPIR-V (Experimental, Mesa Only)"),
210 }}); 210 }});
211 translations->insert({typeid(Settings::GpuAccuracy), 211 translations->insert({Settings::EnumMetadata<Settings::GpuAccuracy>::Index(),
212 { 212 {
213 PAIR(GpuAccuracy, Normal, "Normal"), 213 PAIR(GpuAccuracy, Normal, "Normal"),
214 PAIR(GpuAccuracy, High, "High"), 214 PAIR(GpuAccuracy, High, "High"),
215 PAIR(GpuAccuracy, Extreme, "Extreme"), 215 PAIR(GpuAccuracy, Extreme, "Extreme"),
216 }}); 216 }});
217 translations->insert({typeid(Settings::CpuAccuracy), 217 translations->insert({Settings::EnumMetadata<Settings::CpuAccuracy>::Index(),
218 { 218 {
219 PAIR(CpuAccuracy, Auto, "Auto"), 219 PAIR(CpuAccuracy, Auto, "Auto"),
220 PAIR(CpuAccuracy, Accurate, "Accurate"), 220 PAIR(CpuAccuracy, Accurate, "Accurate"),
221 PAIR(CpuAccuracy, Unsafe, "Unsafe"), 221 PAIR(CpuAccuracy, Unsafe, "Unsafe"),
222 PAIR(CpuAccuracy, Paranoid, "Paranoid (disables most optimizations)"), 222 PAIR(CpuAccuracy, Paranoid, "Paranoid (disables most optimizations)"),
223 }}); 223 }});
224 translations->insert({typeid(Settings::FullscreenMode), 224 translations->insert({Settings::EnumMetadata<Settings::FullscreenMode>::Index(),
225 { 225 {
226 PAIR(FullscreenMode, Borderless, "Borderless Windowed"), 226 PAIR(FullscreenMode, Borderless, "Borderless Windowed"),
227 PAIR(FullscreenMode, Exclusive, "Exclusive Fullscreen"), 227 PAIR(FullscreenMode, Exclusive, "Exclusive Fullscreen"),
228 }}); 228 }});
229 translations->insert({typeid(Settings::NvdecEmulation), 229 translations->insert({Settings::EnumMetadata<Settings::NvdecEmulation>::Index(),
230 { 230 {
231 PAIR(NvdecEmulation, Off, "No Video Output"), 231 PAIR(NvdecEmulation, Off, "No Video Output"),
232 PAIR(NvdecEmulation, Cpu, "CPU Video Decoding"), 232 PAIR(NvdecEmulation, Cpu, "CPU Video Decoding"),
233 PAIR(NvdecEmulation, Gpu, "GPU Video Decoding (Default)"), 233 PAIR(NvdecEmulation, Gpu, "GPU Video Decoding (Default)"),
234 }}); 234 }});
235 translations->insert({typeid(Settings::ResolutionSetup), 235 translations->insert({Settings::EnumMetadata<Settings::ResolutionSetup>::Index(),
236 { 236 {
237 PAIR(ResolutionSetup, Res1_2X, "0.5X (360p/540p) [EXPERIMENTAL]"), 237 PAIR(ResolutionSetup, Res1_2X, "0.5X (360p/540p) [EXPERIMENTAL]"),
238 PAIR(ResolutionSetup, Res3_4X, "0.75X (540p/810p) [EXPERIMENTAL]"), 238 PAIR(ResolutionSetup, Res3_4X, "0.75X (540p/810p) [EXPERIMENTAL]"),
@@ -246,7 +246,7 @@ std::unique_ptr<ComboboxTranslationMap> ComboboxEnumeration(QWidget* parent) {
246 PAIR(ResolutionSetup, Res7X, "7X (5040p/7560p)"), 246 PAIR(ResolutionSetup, Res7X, "7X (5040p/7560p)"),
247 PAIR(ResolutionSetup, Res8X, "8X (5760p/8640p)"), 247 PAIR(ResolutionSetup, Res8X, "8X (5760p/8640p)"),
248 }}); 248 }});
249 translations->insert({typeid(Settings::ScalingFilter), 249 translations->insert({Settings::EnumMetadata<Settings::ScalingFilter>::Index(),
250 { 250 {
251 PAIR(ScalingFilter, NearestNeighbor, "Nearest Neighbor"), 251 PAIR(ScalingFilter, NearestNeighbor, "Nearest Neighbor"),
252 PAIR(ScalingFilter, Bilinear, "Bilinear"), 252 PAIR(ScalingFilter, Bilinear, "Bilinear"),
@@ -255,13 +255,13 @@ std::unique_ptr<ComboboxTranslationMap> ComboboxEnumeration(QWidget* parent) {
255 PAIR(ScalingFilter, ScaleForce, "ScaleForce"), 255 PAIR(ScalingFilter, ScaleForce, "ScaleForce"),
256 PAIR(ScalingFilter, Fsr, "AMD FidelityFX™️ Super Resolution"), 256 PAIR(ScalingFilter, Fsr, "AMD FidelityFX™️ Super Resolution"),
257 }}); 257 }});
258 translations->insert({typeid(Settings::AntiAliasing), 258 translations->insert({Settings::EnumMetadata<Settings::AntiAliasing>::Index(),
259 { 259 {
260 PAIR(AntiAliasing, None, "None"), 260 PAIR(AntiAliasing, None, "None"),
261 PAIR(AntiAliasing, Fxaa, "FXAA"), 261 PAIR(AntiAliasing, Fxaa, "FXAA"),
262 PAIR(AntiAliasing, Smaa, "SMAA"), 262 PAIR(AntiAliasing, Smaa, "SMAA"),
263 }}); 263 }});
264 translations->insert({typeid(Settings::AspectRatio), 264 translations->insert({Settings::EnumMetadata<Settings::AspectRatio>::Index(),
265 { 265 {
266 PAIR(AspectRatio, R16_9, "Default (16:9)"), 266 PAIR(AspectRatio, R16_9, "Default (16:9)"),
267 PAIR(AspectRatio, R4_3, "Force 4:3"), 267 PAIR(AspectRatio, R4_3, "Force 4:3"),
@@ -269,7 +269,7 @@ std::unique_ptr<ComboboxTranslationMap> ComboboxEnumeration(QWidget* parent) {
269 PAIR(AspectRatio, R16_10, "Force 16:10"), 269 PAIR(AspectRatio, R16_10, "Force 16:10"),
270 PAIR(AspectRatio, Stretch, "Stretch to Window"), 270 PAIR(AspectRatio, Stretch, "Stretch to Window"),
271 }}); 271 }});
272 translations->insert({typeid(Settings::AnisotropyMode), 272 translations->insert({Settings::EnumMetadata<Settings::AnisotropyMode>::Index(),
273 { 273 {
274 PAIR(AnisotropyMode, Automatic, "Automatic"), 274 PAIR(AnisotropyMode, Automatic, "Automatic"),
275 PAIR(AnisotropyMode, Default, "Default"), 275 PAIR(AnisotropyMode, Default, "Default"),
@@ -279,7 +279,7 @@ std::unique_ptr<ComboboxTranslationMap> ComboboxEnumeration(QWidget* parent) {
279 PAIR(AnisotropyMode, X16, "16x"), 279 PAIR(AnisotropyMode, X16, "16x"),
280 }}); 280 }});
281 translations->insert( 281 translations->insert(
282 {typeid(Settings::Language), 282 {Settings::EnumMetadata<Settings::Language>::Index(),
283 { 283 {
284 PAIR(Language, Japanese, "Japanese (日本語)"), 284 PAIR(Language, Japanese, "Japanese (日本語)"),
285 PAIR(Language, EnglishAmerican, "American English"), 285 PAIR(Language, EnglishAmerican, "American English"),
@@ -300,7 +300,7 @@ std::unique_ptr<ComboboxTranslationMap> ComboboxEnumeration(QWidget* parent) {
300 PAIR(Language, ChineseTraditional, "Traditional Chinese (正體中文)"), 300 PAIR(Language, ChineseTraditional, "Traditional Chinese (正體中文)"),
301 PAIR(Language, PortugueseBrazilian, "Brazilian Portuguese (português do Brasil)"), 301 PAIR(Language, PortugueseBrazilian, "Brazilian Portuguese (português do Brasil)"),
302 }}); 302 }});
303 translations->insert({typeid(Settings::Region), 303 translations->insert({Settings::EnumMetadata<Settings::Region>::Index(),
304 { 304 {
305 PAIR(Region, Japan, "Japan"), 305 PAIR(Region, Japan, "Japan"),
306 PAIR(Region, Usa, "USA"), 306 PAIR(Region, Usa, "USA"),
@@ -311,7 +311,7 @@ std::unique_ptr<ComboboxTranslationMap> ComboboxEnumeration(QWidget* parent) {
311 PAIR(Region, Taiwan, "Taiwan"), 311 PAIR(Region, Taiwan, "Taiwan"),
312 }}); 312 }});
313 translations->insert( 313 translations->insert(
314 {typeid(Settings::TimeZone), 314 {Settings::EnumMetadata<Settings::TimeZone>::Index(),
315 { 315 {
316 {static_cast<u32>(Settings::TimeZone::Auto), 316 {static_cast<u32>(Settings::TimeZone::Auto),
317 tr("Auto (%1)", "Auto select time zone") 317 tr("Auto (%1)", "Auto select time zone")
@@ -361,7 +361,7 @@ std::unique_ptr<ComboboxTranslationMap> ComboboxEnumeration(QWidget* parent) {
361 PAIR(TimeZone, Wet, "WET"), 361 PAIR(TimeZone, Wet, "WET"),
362 PAIR(TimeZone, Zulu, "Zulu"), 362 PAIR(TimeZone, Zulu, "Zulu"),
363 }}); 363 }});
364 translations->insert({typeid(Settings::AudioMode), 364 translations->insert({Settings::EnumMetadata<Settings::AudioMode>::Index(),
365 { 365 {
366 PAIR(AudioMode, Mono, "Mono"), 366 PAIR(AudioMode, Mono, "Mono"),
367 PAIR(AudioMode, Stereo, "Stereo"), 367 PAIR(AudioMode, Stereo, "Stereo"),
diff --git a/src/yuzu/configuration/shared_translation.h b/src/yuzu/configuration/shared_translation.h
index cc8419e03..99a0e808c 100644
--- a/src/yuzu/configuration/shared_translation.h
+++ b/src/yuzu/configuration/shared_translation.h
@@ -16,7 +16,7 @@ class QWidget;
16namespace ConfigurationShared { 16namespace ConfigurationShared {
17using TranslationMap = std::map<u32, std::pair<QString, QString>>; 17using TranslationMap = std::map<u32, std::pair<QString, QString>>;
18using ComboboxTranslations = std::vector<std::pair<u32, QString>>; 18using ComboboxTranslations = std::vector<std::pair<u32, QString>>;
19using ComboboxTranslationMap = std::map<std::type_index, ComboboxTranslations>; 19using ComboboxTranslationMap = std::map<u32, ComboboxTranslations>;
20 20
21std::unique_ptr<TranslationMap> InitializeTranslations(QWidget* parent); 21std::unique_ptr<TranslationMap> InitializeTranslations(QWidget* parent);
22 22
diff --git a/src/yuzu/configuration/shared_widget.cpp b/src/yuzu/configuration/shared_widget.cpp
index 978bfa590..ba7f60c2d 100644
--- a/src/yuzu/configuration/shared_widget.cpp
+++ b/src/yuzu/configuration/shared_widget.cpp
@@ -125,7 +125,7 @@ QWidget* Widget::CreateCheckBox(Settings::BasicSetting* bool_setting, const QStr
125QWidget* Widget::CreateCombobox(std::function<std::string()>& serializer, 125QWidget* Widget::CreateCombobox(std::function<std::string()>& serializer,
126 std::function<void()>& restore_func, 126 std::function<void()>& restore_func,
127 const std::function<void()>& touch) { 127 const std::function<void()>& touch) {
128 const auto type = setting.TypeId(); 128 const auto type = setting.EnumIndex();
129 129
130 combobox = new QComboBox(this); 130 combobox = new QComboBox(this);
131 combobox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); 131 combobox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);