diff options
| author | Leo Lam <leolino.lam@gmail.com> | 2017-11-19 15:08:16 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-11-19 15:08:16 +0100 |
| commit | 80bcc0d58d7d3b39d0e1b7973cbce34d4cf61f4e (patch) | |
| tree | 22d2ccf22820d55938bd47c7d0a7e81c2d722c7d /Source/Core/VideoCommon | |
| parent | a75546747ead9aad27ea7e62d340d18e446dcaf3 (diff) | |
| parent | 5337e58284aa9c727cdd66a1a79d968861a70839 (diff) | |
Merge pull request #6186 from lioncash/enum-class
VideoConfig: Make AspectMode and StereoMode enum classes
Diffstat (limited to 'Source/Core/VideoCommon')
| -rw-r--r-- | Source/Core/VideoCommon/GeometryShaderGen.cpp | 2 | ||||
| -rw-r--r-- | Source/Core/VideoCommon/GeometryShaderManager.cpp | 2 | ||||
| -rw-r--r-- | Source/Core/VideoCommon/PostProcessing.cpp | 3 | ||||
| -rw-r--r-- | Source/Core/VideoCommon/RenderBase.cpp | 44 | ||||
| -rw-r--r-- | Source/Core/VideoCommon/ShaderGenCommon.cpp | 2 | ||||
| -rw-r--r-- | Source/Core/VideoCommon/TextureCacheBase.cpp | 4 | ||||
| -rw-r--r-- | Source/Core/VideoCommon/VideoConfig.cpp | 14 | ||||
| -rw-r--r-- | Source/Core/VideoCommon/VideoConfig.h | 28 |
8 files changed, 50 insertions, 49 deletions
diff --git a/Source/Core/VideoCommon/GeometryShaderGen.cpp b/Source/Core/VideoCommon/GeometryShaderGen.cpp index 98335386fa..f5b7b1b35e 100644 --- a/Source/Core/VideoCommon/GeometryShaderGen.cpp +++ b/Source/Core/VideoCommon/GeometryShaderGen.cpp @@ -20,7 +20,7 @@ constexpr std::array<const char*, 4> primitives_d3d = {{"point", "line", "triang bool geometry_shader_uid_data::IsPassthrough() const { - const bool stereo = g_ActiveConfig.iStereoMode > 0; + const bool stereo = g_ActiveConfig.stereo_mode != StereoMode::Off; const bool wireframe = g_ActiveConfig.bWireFrame; return primitive_type >= static_cast<u32>(PrimitiveType::Triangles) && !stereo && !wireframe; } diff --git a/Source/Core/VideoCommon/GeometryShaderManager.cpp b/Source/Core/VideoCommon/GeometryShaderManager.cpp index 8a687d70d0..ca1dc992be 100644 --- a/Source/Core/VideoCommon/GeometryShaderManager.cpp +++ b/Source/Core/VideoCommon/GeometryShaderManager.cpp @@ -41,7 +41,7 @@ void GeometryShaderManager::Dirty() void GeometryShaderManager::SetConstants() { - if (s_projection_changed && g_ActiveConfig.iStereoMode > 0) + if (s_projection_changed && g_ActiveConfig.stereo_mode != StereoMode::Off) { s_projection_changed = false; diff --git a/Source/Core/VideoCommon/PostProcessing.cpp b/Source/Core/VideoCommon/PostProcessing.cpp index 0575402dd1..027ad85ab5 100644 --- a/Source/Core/VideoCommon/PostProcessing.cpp +++ b/Source/Core/VideoCommon/PostProcessing.cpp @@ -70,7 +70,8 @@ std::string PostProcessingShaderConfiguration::LoadShader(std::string shader) shader = g_ActiveConfig.sPostProcessingShader; m_current_shader = shader; - const std::string sub_dir = (g_Config.iStereoMode == STEREO_ANAGLYPH) ? ANAGLYPH_DIR DIR_SEP : ""; + const std::string sub_dir = + (g_Config.stereo_mode == StereoMode::Anaglyph) ? ANAGLYPH_DIR DIR_SEP : ""; // loading shader code std::string code; diff --git a/Source/Core/VideoCommon/RenderBase.cpp b/Source/Core/VideoCommon/RenderBase.cpp index 0db81bb885..b0d7c07dd1 100644 --- a/Source/Core/VideoCommon/RenderBase.cpp +++ b/Source/Core/VideoCommon/RenderBase.cpp @@ -185,7 +185,7 @@ Renderer::ConvertStereoRectangle(const TargetRectangle& rc) const { // Resize target to half its original size TargetRectangle draw_rc = rc; - if (g_ActiveConfig.iStereoMode == STEREO_TAB) + if (g_ActiveConfig.stereo_mode == StereoMode::TAB) { // The height may be negative due to flipped rectangles int height = rc.bottom - rc.top; @@ -202,7 +202,7 @@ Renderer::ConvertStereoRectangle(const TargetRectangle& rc) const // Create two target rectangle offset to the sides of the backbuffer TargetRectangle left_rc = draw_rc; TargetRectangle right_rc = draw_rc; - if (g_ActiveConfig.iStereoMode == STEREO_TAB) + if (g_ActiveConfig.stereo_mode == StereoMode::TAB) { left_rc.top -= m_backbuffer_height / 4; left_rc.bottom -= m_backbuffer_height / 4; @@ -312,19 +312,20 @@ void Renderer::DrawDebugText() break; } const char* ar_text = ""; - switch (g_ActiveConfig.iAspectRatio) + switch (g_ActiveConfig.aspect_mode) { - case ASPECT_AUTO: + case AspectMode::Auto: ar_text = "Auto"; break; - case ASPECT_STRETCH: + case AspectMode::Stretch: ar_text = "Stretch"; break; - case ASPECT_ANALOG: + case AspectMode::Analog: ar_text = "Force 4:3"; break; - case ASPECT_ANALOG_WIDE: + case AspectMode::AnalogWide: ar_text = "Force 16:9"; + break; } const char* const efbcopy_text = g_ActiveConfig.bSkipEFBCopyToRam ? "to Texture" : "to RAM"; @@ -381,15 +382,15 @@ void Renderer::DrawDebugText() float Renderer::CalculateDrawAspectRatio() const { - if (g_ActiveConfig.iAspectRatio == ASPECT_STRETCH) + if (g_ActiveConfig.aspect_mode == AspectMode::Stretch) { // If stretch is enabled, we prefer the aspect ratio of the window. return (static_cast<float>(m_backbuffer_width) / static_cast<float>(m_backbuffer_height)); } // The rendering window aspect ratio as a proportion of the 4:3 or 16:9 ratio - if (g_ActiveConfig.iAspectRatio == ASPECT_ANALOG_WIDE || - (g_ActiveConfig.iAspectRatio != ASPECT_ANALOG && m_aspect_wide)) + if (g_ActiveConfig.aspect_mode == AspectMode::AnalogWide || + (g_ActiveConfig.aspect_mode != AspectMode::Analog && m_aspect_wide)) { return AspectToWidescreen(VideoInterface::GetAspectRatio()); } @@ -428,21 +429,20 @@ void Renderer::UpdateDrawRectangle() float source_aspect = VideoInterface::GetAspectRatio(); if (m_aspect_wide) source_aspect = AspectToWidescreen(source_aspect); - float target_aspect; + float target_aspect = 0.0f; - switch (g_ActiveConfig.iAspectRatio) + switch (g_ActiveConfig.aspect_mode) { - case ASPECT_STRETCH: + case AspectMode::Stretch: target_aspect = win_width / win_height; break; - case ASPECT_ANALOG: + case AspectMode::Analog: target_aspect = VideoInterface::GetAspectRatio(); break; - case ASPECT_ANALOG_WIDE: + case AspectMode::AnalogWide: target_aspect = AspectToWidescreen(VideoInterface::GetAspectRatio()); break; - default: - // ASPECT_AUTO + case AspectMode::Auto: target_aspect = source_aspect; break; } @@ -475,10 +475,10 @@ void Renderer::UpdateDrawRectangle() draw_height = crop_height = 1; // crop the picture to a standard aspect ratio - if (g_ActiveConfig.bCrop && g_ActiveConfig.iAspectRatio != ASPECT_STRETCH) + if (g_ActiveConfig.bCrop && g_ActiveConfig.aspect_mode != AspectMode::Stretch) { - float expected_aspect = (g_ActiveConfig.iAspectRatio == ASPECT_ANALOG_WIDE || - (g_ActiveConfig.iAspectRatio != ASPECT_ANALOG && m_aspect_wide)) ? + float expected_aspect = (g_ActiveConfig.aspect_mode == AspectMode::AnalogWide || + (g_ActiveConfig.aspect_mode != AspectMode::Analog && m_aspect_wide)) ? (16.0f / 9.0f) : (4.0f / 3.0f); if (crop_width / crop_height >= expected_aspect) @@ -550,8 +550,8 @@ std::tuple<int, int> Renderer::CalculateOutputDimensions(int width, int height) { // Force 4:3 or 16:9 by cropping the image. float current_aspect = scaled_width / scaled_height; - float expected_aspect = (g_ActiveConfig.iAspectRatio == ASPECT_ANALOG_WIDE || - (g_ActiveConfig.iAspectRatio != ASPECT_ANALOG && m_aspect_wide)) ? + float expected_aspect = (g_ActiveConfig.aspect_mode == AspectMode::AnalogWide || + (g_ActiveConfig.aspect_mode != AspectMode::Analog && m_aspect_wide)) ? (16.0f / 9.0f) : (4.0f / 3.0f); if (current_aspect > expected_aspect) diff --git a/Source/Core/VideoCommon/ShaderGenCommon.cpp b/Source/Core/VideoCommon/ShaderGenCommon.cpp index 94819f3e34..c6b29c8088 100644 --- a/Source/Core/VideoCommon/ShaderGenCommon.cpp +++ b/Source/Core/VideoCommon/ShaderGenCommon.cpp @@ -13,7 +13,7 @@ ShaderHostConfig ShaderHostConfig::GetCurrent() bits.msaa = g_ActiveConfig.iMultisamples > 1; bits.ssaa = g_ActiveConfig.iMultisamples > 1 && g_ActiveConfig.bSSAA && g_ActiveConfig.backend_info.bSupportsSSAA; - bits.stereo = g_ActiveConfig.iStereoMode > 0; + bits.stereo = g_ActiveConfig.stereo_mode != StereoMode::Off; bits.wireframe = g_ActiveConfig.bWireFrame; bits.per_pixel_lighting = g_ActiveConfig.bEnablePixelLighting; bits.vertex_rounding = g_ActiveConfig.UseVertexRounding(); diff --git a/Source/Core/VideoCommon/TextureCacheBase.cpp b/Source/Core/VideoCommon/TextureCacheBase.cpp index afc5fd151f..7e3f7b25c0 100644 --- a/Source/Core/VideoCommon/TextureCacheBase.cpp +++ b/Source/Core/VideoCommon/TextureCacheBase.cpp @@ -130,7 +130,7 @@ void TextureCacheBase::OnConfigChanged(VideoConfig& config) g_ActiveConfig.bTexFmtOverlayCenter); } - if ((config.iStereoMode > 0) != backup_config.stereo_3d || + if ((config.stereo_mode != StereoMode::Off) != backup_config.stereo_3d || config.bStereoEFBMonoDepth != backup_config.efb_mono_depth) { g_texture_cache->DeleteShaders(); @@ -222,7 +222,7 @@ void TextureCacheBase::SetBackupConfig(const VideoConfig& config) backup_config.texfmt_overlay_center = config.bTexFmtOverlayCenter; backup_config.hires_textures = config.bHiresTextures; backup_config.cache_hires_textures = config.bCacheHiresTextures; - backup_config.stereo_3d = config.iStereoMode > 0; + backup_config.stereo_3d = config.stereo_mode != StereoMode::Off; backup_config.efb_mono_depth = config.bStereoEFBMonoDepth; backup_config.gpu_texture_decoding = config.bEnableGPUTextureDecoding; } diff --git a/Source/Core/VideoCommon/VideoConfig.cpp b/Source/Core/VideoCommon/VideoConfig.cpp index 1f6e5a38c7..5e5b313926 100644 --- a/Source/Core/VideoCommon/VideoConfig.cpp +++ b/Source/Core/VideoCommon/VideoConfig.cpp @@ -61,11 +61,11 @@ void VideoConfig::Refresh() iAdapter = Config::Get(Config::GFX_ADAPTER); bWidescreenHack = Config::Get(Config::GFX_WIDESCREEN_HACK); - const int aspect_ratio = Config::Get(Config::GFX_ASPECT_RATIO); - if (aspect_ratio == ASPECT_AUTO) - iAspectRatio = Config::Get(Config::GFX_SUGGESTED_ASPECT_RATIO); + const auto config_aspect_mode = static_cast<AspectMode>(Config::Get(Config::GFX_ASPECT_RATIO)); + if (config_aspect_mode == AspectMode::Auto) + aspect_mode = static_cast<AspectMode>(Config::Get(Config::GFX_SUGGESTED_ASPECT_RATIO)); else - iAspectRatio = aspect_ratio; + aspect_mode = config_aspect_mode; bCrop = Config::Get(Config::GFX_CROP); iSafeTextureCache_ColorSamples = Config::Get(Config::GFX_SAFE_TEXTURE_CACHE_COLOR_SAMPLES); bShowFPS = Config::Get(Config::GFX_SHOW_FPS); @@ -122,7 +122,7 @@ void VideoConfig::Refresh() sPostProcessingShader = Config::Get(Config::GFX_ENHANCE_POST_SHADER); bForceTrueColor = Config::Get(Config::GFX_ENHANCE_FORCE_TRUE_COLOR); - iStereoMode = Config::Get(Config::GFX_STEREO_MODE); + stereo_mode = static_cast<StereoMode>(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); @@ -162,14 +162,14 @@ void VideoConfig::VerifyValidity() backend_info.AAModes.end()) iMultisamples = 1; - if (iStereoMode > 0) + if (stereo_mode != StereoMode::Off) { if (!backend_info.bSupportsGeometryShaders) { OSD::AddMessage( "Stereoscopic 3D isn't supported by your GPU, support for OpenGL 3.2 is required.", 10000); - iStereoMode = 0; + stereo_mode = StereoMode::Off; } } } diff --git a/Source/Core/VideoCommon/VideoConfig.h b/Source/Core/VideoCommon/VideoConfig.h index 03f8a7368c..a0085ce809 100644 --- a/Source/Core/VideoCommon/VideoConfig.h +++ b/Source/Core/VideoCommon/VideoConfig.h @@ -24,22 +24,22 @@ constexpr int EFB_SCALE_AUTO_INTEGRAL = 0; -enum AspectMode +enum class AspectMode { - ASPECT_AUTO = 0, - ASPECT_ANALOG_WIDE = 1, - ASPECT_ANALOG = 2, - ASPECT_STRETCH = 3, + Auto, + AnalogWide, + Analog, + Stretch, }; -enum StereoMode +enum class StereoMode { - STEREO_OFF = 0, - STEREO_SBS, - STEREO_TAB, - STEREO_ANAGLYPH, - STEREO_QUADBUFFER, - STEREO_3DVISION + Off, + SBS, + TAB, + Anaglyph, + QuadBuffer, + Nvidia3DVision }; struct ProjectionHackConfig final @@ -63,7 +63,7 @@ struct VideoConfig final // General bool bVSync; bool bWidescreenHack; - int iAspectRatio; + AspectMode aspect_mode; bool bCrop; // Aspect ratio controls. bool bShaderCache; @@ -130,7 +130,7 @@ struct VideoConfig final int iSaveTargetId; // TODO: Should be dropped // Stereoscopy - int iStereoMode; + StereoMode stereo_mode; int iStereoDepth; int iStereoConvergence; int iStereoConvergencePercentage; |
