diff options
| author | iwubcode <iwubcode@users.noreply.github.com> | 2025-11-05 21:52:54 -0600 |
|---|---|---|
| committer | iwubcode <iwubcode@users.noreply.github.com> | 2025-11-05 21:52:54 -0600 |
| commit | 2f20c12d82d367e6ebd3f5b772ebea62ccf05da7 (patch) | |
| tree | 26654aa778568f8f1bfc68d71ead9972f2bf2b3e /Source/Core/VideoCommon/FramebufferManager.cpp | |
| parent | 2170080f5355fa7f808a22b58e7ff67d0b89edc8 (diff) | |
VideoCommon: pass the EFB buffer scale into the FramebufferManager instead of pulling it from config, in the future this will allow us to have multiple framebuffers
Diffstat (limited to 'Source/Core/VideoCommon/FramebufferManager.cpp')
| -rw-r--r-- | Source/Core/VideoCommon/FramebufferManager.cpp | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/Source/Core/VideoCommon/FramebufferManager.cpp b/Source/Core/VideoCommon/FramebufferManager.cpp index fc514811d5..71027fb15a 100644 --- a/Source/Core/VideoCommon/FramebufferManager.cpp +++ b/Source/Core/VideoCommon/FramebufferManager.cpp @@ -45,9 +45,9 @@ FramebufferManager::~FramebufferManager() DestroyEFBFramebuffer(); } -bool FramebufferManager::Initialize() +bool FramebufferManager::Initialize(int efb_scale) { - if (!CreateEFBFramebuffer()) + if (!CreateEFBFramebuffer(efb_scale)) { PanicAlertFmt("Failed to create EFB framebuffer"); return false; @@ -90,14 +90,14 @@ bool FramebufferManager::Initialize() return true; } -void FramebufferManager::RecreateEFBFramebuffer() +void FramebufferManager::RecreateEFBFramebuffer(int efb_scale) { FlushEFBPokes(); InvalidatePeekCache(true); DestroyReadbackFramebuffer(); DestroyEFBFramebuffer(); - if (!CreateEFBFramebuffer() || !CreateReadbackFramebuffer()) + if (!CreateEFBFramebuffer(efb_scale) || !CreateReadbackFramebuffer()) PanicAlertFmt("Failed to recreate EFB framebuffer"); } @@ -210,12 +210,12 @@ float FramebufferManager::EFBToScaledYf(float y) const return y * ((float)GetEFBHeight() / (float)EFB_HEIGHT); } -std::tuple<u32, u32> FramebufferManager::CalculateTargetSize() +std::tuple<u32, u32> FramebufferManager::CalculateTargetSize(int efb_scale) { - if (g_ActiveConfig.iEFBScale == EFB_SCALE_AUTO_INTEGRAL) + if (efb_scale == EFB_SCALE_AUTO_INTEGRAL) m_efb_scale = g_presenter->AutoIntegralScale(); else - m_efb_scale = g_ActiveConfig.iEFBScale; + m_efb_scale = efb_scale; const u32 max_size = g_backend_info.MaxTextureSize; if (max_size < EFB_WIDTH * m_efb_scale) @@ -227,9 +227,9 @@ std::tuple<u32, u32> FramebufferManager::CalculateTargetSize() return std::make_tuple(new_efb_width, new_efb_height); } -bool FramebufferManager::CreateEFBFramebuffer() +bool FramebufferManager::CreateEFBFramebuffer(int efb_scale) { - auto [width, height] = CalculateTargetSize(); + auto [width, height] = CalculateTargetSize(efb_scale); const TextureConfig efb_color_texture_config = GetEFBColorTextureConfig(width, height); const TextureConfig efb_depth_texture_config = GetEFBDepthTextureConfig(width, height); |
