diff options
| author | JMC47 <JMC4789@gmail.com> | 2021-06-23 18:36:04 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-06-23 18:36:04 -0400 |
| commit | 46120a6108111170f7ac849d716762121c5c9e76 (patch) | |
| tree | e6b7d0a4369102fa96d6fd23c716dc1af67111c3 /Source/Core/VideoBackends/Software/SWRenderer.cpp | |
| parent | 63c028c5df8aa7c5fe0f47f16e21f61888f901a9 (diff) | |
| parent | 4a4244f04d80dbca76aa560debe139aa6121125b (diff) | |
Merge pull request #9742 from Pokechu22/sw-resolution
Software: Fix bad backbuffer size
Diffstat (limited to 'Source/Core/VideoBackends/Software/SWRenderer.cpp')
| -rw-r--r-- | Source/Core/VideoBackends/Software/SWRenderer.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/Source/Core/VideoBackends/Software/SWRenderer.cpp b/Source/Core/VideoBackends/Software/SWRenderer.cpp index 51433d311f..cde409d321 100644 --- a/Source/Core/VideoBackends/Software/SWRenderer.cpp +++ b/Source/Core/VideoBackends/Software/SWRenderer.cpp @@ -27,7 +27,8 @@ namespace SW { SWRenderer::SWRenderer(std::unique_ptr<SWOGLWindow> window) - : ::Renderer(static_cast<int>(MAX_XFB_WIDTH), static_cast<int>(MAX_XFB_HEIGHT), 1.0f, + : ::Renderer(static_cast<int>(std::max(window->GetContext()->GetBackBufferWidth(), 1u)), + static_cast<int>(std::max(window->GetContext()->GetBackBufferHeight(), 1u)), 1.0f, AbstractTextureFormat::RGBA8), m_window(std::move(window)) { @@ -56,6 +57,18 @@ SWRenderer::CreateFramebuffer(AbstractTexture* color_attachment, AbstractTexture static_cast<SWTexture*>(depth_attachment)); } +void SWRenderer::BindBackbuffer(const ClearColor& clear_color) +{ + // Look for framebuffer resizes + if (!m_surface_resized.TestAndClear()) + return; + + GLContext* context = m_window->GetContext(); + context->Update(); + m_backbuffer_width = context->GetBackBufferWidth(); + m_backbuffer_height = context->GetBackBufferHeight(); +} + class SWShader final : public AbstractShader { public: |
