From ab4867505ec0d3f5a9ec4f042ccd6f7890e3632e Mon Sep 17 00:00:00 2001 From: gdkchan Date: Sun, 29 Mar 2020 00:02:58 -0300 Subject: Implement GPU scissors (#1058) * Implement GPU scissors * Remove unused using * Add missing changes for Clear --- Ryujinx.Graphics.OpenGL/TextureCopy.cs | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'Ryujinx.Graphics.OpenGL/TextureCopy.cs') diff --git a/Ryujinx.Graphics.OpenGL/TextureCopy.cs b/Ryujinx.Graphics.OpenGL/TextureCopy.cs index 27f1fd56..ac9459d4 100644 --- a/Ryujinx.Graphics.OpenGL/TextureCopy.cs +++ b/Ryujinx.Graphics.OpenGL/TextureCopy.cs @@ -6,9 +6,16 @@ namespace Ryujinx.Graphics.OpenGL { class TextureCopy : IDisposable { + private readonly Renderer _renderer; + private int _srcFramebuffer; private int _dstFramebuffer; + public TextureCopy(Renderer renderer) + { + _renderer = renderer; + } + public void Copy( TextureView src, TextureView dst, @@ -34,6 +41,8 @@ namespace Ryujinx.Graphics.OpenGL GL.ReadBuffer(ReadBufferMode.ColorAttachment0); GL.DrawBuffer(DrawBufferMode.ColorAttachment0); + GL.Disable(EnableCap.ScissorTest); + GL.BlitFramebuffer( srcRegion.X1, srcRegion.Y1, @@ -48,6 +57,8 @@ namespace Ryujinx.Graphics.OpenGL GL.BindFramebuffer(FramebufferTarget.ReadFramebuffer, oldReadFramebufferHandle); GL.BindFramebuffer(FramebufferTarget.DrawFramebuffer, oldDrawFramebufferHandle); + + ((Pipeline)_renderer.Pipeline).RestoreScissorEnable(); } private static void Attach(FramebufferTarget target, Format format, int handle) -- cgit v1.2.3