aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.OpenGL/TextureCopy.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.Graphics.OpenGL/TextureCopy.cs')
-rw-r--r--Ryujinx.Graphics.OpenGL/TextureCopy.cs11
1 files changed, 11 insertions, 0 deletions
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)