From 6767fa1e5f917658b5801ad23808dea04211b36a Mon Sep 17 00:00:00 2001 From: Connor McLaughlin Date: Wed, 28 Apr 2021 02:36:39 +1000 Subject: [PATCH] OpenGLHostDisplay: Disable scissor test before rendering Fixes uncleared screen sections in OpenGL renderer. --- src/frontend-common/opengl_host_display.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/frontend-common/opengl_host_display.cpp b/src/frontend-common/opengl_host_display.cpp index 15a2157ad..fcf5d969d 100644 --- a/src/frontend-common/opengl_host_display.cpp +++ b/src/frontend-common/opengl_host_display.cpp @@ -729,6 +729,7 @@ bool OpenGLHostDisplay::Render() return false; } + glDisable(GL_SCISSOR_TEST); glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); glClearColor(0.0f, 0.0f, 0.0f, 1.0f); glClear(GL_COLOR_BUFFER_BIT); @@ -751,6 +752,7 @@ bool OpenGLHostDisplay::RenderScreenshot(u32 width, u32 height, std::vector if (!texture.Create(width, height, 1, GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE, nullptr) || !texture.CreateFramebuffer()) return false; + glDisable(GL_SCISSOR_TEST); texture.BindFramebuffer(GL_FRAMEBUFFER); glClearColor(0.0f, 0.0f, 0.0f, 1.0f); glClear(GL_COLOR_BUFFER_BIT); @@ -844,7 +846,6 @@ void OpenGLHostDisplay::RenderDisplay(s32 left, s32 bottom, s32 width, s32 heigh glDisable(GL_BLEND); glDisable(GL_CULL_FACE); glDisable(GL_DEPTH_TEST); - glDisable(GL_SCISSOR_TEST); glDepthMask(GL_FALSE); glBindTexture(GL_TEXTURE_2D, static_cast(reinterpret_cast(texture_handle))); m_display_program.Bind(); @@ -892,7 +893,6 @@ void OpenGLHostDisplay::RenderSoftwareCursor(s32 left, s32 bottom, s32 width, s3 glBlendEquationSeparate(GL_FUNC_ADD, GL_FUNC_ADD); glDisable(GL_CULL_FACE); glDisable(GL_DEPTH_TEST); - glDisable(GL_SCISSOR_TEST); glDepthMask(GL_FALSE); m_cursor_program.Bind(); glBindTexture(GL_TEXTURE_2D, static_cast(texture_handle)->GetGLID());