OGL: Disable scissor test when calling glBlitFramebuffer()
glBlitFramebuffer() does not bypass the scissor test, which meant that part of texture copies (e.g. XFB) could have been clipped when running under OpenGL ES, as glCopyImageSubData() is not supported.
This commit is contained in:
parent
480972612c
commit
2e905455b1
|
@ -234,6 +234,9 @@ void OGLTexture::BlitFramebuffer(OGLTexture* srcentry, const MathUtil::Rectangle
|
|||
dst_layer);
|
||||
}
|
||||
|
||||
// glBlitFramebuffer is still affected by the scissor test, which is enabled by default.
|
||||
glDisable(GL_SCISSOR_TEST);
|
||||
|
||||
glBlitFramebuffer(src_rect.left, src_rect.top, src_rect.right, src_rect.bottom, dst_rect.left,
|
||||
dst_rect.top, dst_rect.right, dst_rect.bottom, GL_COLOR_BUFFER_BIT, GL_NEAREST);
|
||||
|
||||
|
@ -252,6 +255,9 @@ void OGLTexture::BlitFramebuffer(OGLTexture* srcentry, const MathUtil::Rectangle
|
|||
0);
|
||||
}
|
||||
|
||||
// The default state for the scissor test is enabled. We don't need to do a full state
|
||||
// restore, as the framebuffer and scissor test are the only things we changed.
|
||||
glEnable(GL_SCISSOR_TEST);
|
||||
FramebufferManager::SetFramebuffer(0);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue