From 22f138628bd05419791d3b569ec558bbf322398d Mon Sep 17 00:00:00 2001 From: gdkchan Date: Thu, 28 Jun 2018 00:11:49 -0300 Subject: Somewhat better ClearBuffers implementation --- Ryujinx.Graphics/Gal/OpenGL/OGLRasterizer.cs | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'Ryujinx.Graphics/Gal/OpenGL') diff --git a/Ryujinx.Graphics/Gal/OpenGL/OGLRasterizer.cs b/Ryujinx.Graphics/Gal/OpenGL/OGLRasterizer.cs index 05250696..ebd1e8d1 100644 --- a/Ryujinx.Graphics/Gal/OpenGL/OGLRasterizer.cs +++ b/Ryujinx.Graphics/Gal/OpenGL/OGLRasterizer.cs @@ -70,18 +70,15 @@ namespace Ryujinx.Graphics.Gal.OpenGL IndexBuffer = new IbInfo(); } - public void ClearBuffers(int RtIndex, GalClearBufferFlags Flags) + public void ClearBuffers(GalClearBufferFlags Flags) { - ClearBufferMask Mask = 0; + ClearBufferMask Mask = ClearBufferMask.ColorBufferBit; - //TODO: Use glColorMask to clear just the specified channels. - if (Flags.HasFlag(GalClearBufferFlags.ColorRed) && - Flags.HasFlag(GalClearBufferFlags.ColorGreen) && - Flags.HasFlag(GalClearBufferFlags.ColorBlue) && - Flags.HasFlag(GalClearBufferFlags.ColorAlpha)) - { - Mask = ClearBufferMask.ColorBufferBit; - } + GL.ColorMask( + Flags.HasFlag(GalClearBufferFlags.ColorRed), + Flags.HasFlag(GalClearBufferFlags.ColorGreen), + Flags.HasFlag(GalClearBufferFlags.ColorBlue), + Flags.HasFlag(GalClearBufferFlags.ColorAlpha)); if (Flags.HasFlag(GalClearBufferFlags.Depth)) { @@ -94,6 +91,8 @@ namespace Ryujinx.Graphics.Gal.OpenGL } GL.Clear(Mask); + + GL.ColorMask(true, true, true, true); } public bool IsVboCached(long Key, long DataSize) -- cgit v1.2.3