diff options
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: |
