From 6763a3fce1df5a949900dd976393c7fe89fa4aec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Lam?= Date: Fri, 11 May 2018 22:38:44 +0200 Subject: Config: Add support for enums This makes it possible to use enums as the config type. Default values are now clearer and there's no need for casts when calling Config::Get/Set anymore. In order to add support for enums, the common code was updated to handle enums by using the underlying type when loading/saving settings. A copy constructor is also provided for conversions from `ConfigInfo` to `ConfigInfo>` so that enum settings can still easily work with code that doesn't care about the actual enum values (like Graphics{Choice,Radio} in DolphinQt2 which only treat the setting as an integer). --- Source/Core/VideoCommon/VideoConfig.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'Source/Core/VideoCommon/VideoConfig.cpp') diff --git a/Source/Core/VideoCommon/VideoConfig.cpp b/Source/Core/VideoCommon/VideoConfig.cpp index abdf27dcd1..2d7f958d8f 100644 --- a/Source/Core/VideoCommon/VideoConfig.cpp +++ b/Source/Core/VideoCommon/VideoConfig.cpp @@ -60,9 +60,9 @@ void VideoConfig::Refresh() iAdapter = Config::Get(Config::GFX_ADAPTER); bWidescreenHack = Config::Get(Config::GFX_WIDESCREEN_HACK); - const auto config_aspect_mode = static_cast(Config::Get(Config::GFX_ASPECT_RATIO)); + const AspectMode config_aspect_mode = Config::Get(Config::GFX_ASPECT_RATIO); if (config_aspect_mode == AspectMode::Auto) - aspect_mode = static_cast(Config::Get(Config::GFX_SUGGESTED_ASPECT_RATIO)); + aspect_mode = Config::Get(Config::GFX_SUGGESTED_ASPECT_RATIO); else aspect_mode = config_aspect_mode; bCrop = Config::Get(Config::GFX_CROP); @@ -103,8 +103,7 @@ void VideoConfig::Refresh() iCommandBufferExecuteInterval = Config::Get(Config::GFX_COMMAND_BUFFER_EXECUTE_INTERVAL); bShaderCache = Config::Get(Config::GFX_SHADER_CACHE); bWaitForShadersBeforeStarting = Config::Get(Config::GFX_WAIT_FOR_SHADERS_BEFORE_STARTING); - iShaderCompilationMode = - static_cast(Config::Get(Config::GFX_SHADER_COMPILATION_MODE)); + iShaderCompilationMode = Config::Get(Config::GFX_SHADER_COMPILATION_MODE); iShaderCompilerThreads = Config::Get(Config::GFX_SHADER_COMPILER_THREADS); iShaderPrecompilerThreads = Config::Get(Config::GFX_SHADER_PRECOMPILER_THREADS); @@ -122,7 +121,7 @@ void VideoConfig::Refresh() bForceTrueColor = Config::Get(Config::GFX_ENHANCE_FORCE_TRUE_COLOR); bDisableCopyFilter = Config::Get(Config::GFX_ENHANCE_DISABLE_COPY_FILTER); - stereo_mode = static_cast(Config::Get(Config::GFX_STEREO_MODE)); + stereo_mode = Config::Get(Config::GFX_STEREO_MODE); iStereoDepth = Config::Get(Config::GFX_STEREO_DEPTH); iStereoConvergencePercentage = Config::Get(Config::GFX_STEREO_CONVERGENCE_PERCENTAGE); bStereoSwapEyes = Config::Get(Config::GFX_STEREO_SWAP_EYES); -- cgit v1.2.3