From 494e6dfa1ef0a46263d9ea8bb3c9e5bd3b23f43c Mon Sep 17 00:00:00 2001 From: gdkchan Date: Sat, 14 Apr 2018 01:31:27 -0300 Subject: [PATCH] [GPU] Set frame buffer texture size to window size --- Ryujinx.Graphics/Gal/OpenGL/OGLFrameBuffer.cs | 16 ++++++++++++++-- Ryujinx/Ui/GLScreen.cs | 4 ++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/Ryujinx.Graphics/Gal/OpenGL/OGLFrameBuffer.cs b/Ryujinx.Graphics/Gal/OpenGL/OGLFrameBuffer.cs index affd479b..05a7288a 100644 --- a/Ryujinx.Graphics/Gal/OpenGL/OGLFrameBuffer.cs +++ b/Ryujinx.Graphics/Gal/OpenGL/OGLFrameBuffer.cs @@ -55,6 +55,7 @@ namespace Ryujinx.Graphics.Gal.OpenGL private ShaderProgram Shader; private Rect Viewport; + private Rect Window; private bool IsInitialized; @@ -77,6 +78,11 @@ namespace Ryujinx.Graphics.Gal.OpenGL public void Create(long Tag, int Width, int Height) { + //TODO: We should either use the original frame buffer size, + //or just remove the Width/Height arguments. + Width = Window.Width; + Height = Window.Height; + if (Fbs.TryGetValue(Tag, out FrameBuffer Fb)) { if (Fb.Width != Width || @@ -119,6 +125,8 @@ namespace Ryujinx.Graphics.Gal.OpenGL GL.DrawBuffer(DrawBufferMode.ColorAttachment0); + GL.Viewport(0, 0, Width, Height); + Fbs.Add(Tag, Fb); } @@ -207,6 +215,8 @@ namespace Ryujinx.Graphics.Gal.OpenGL GL.Uniform2(WindowSizeUniformLocation, new Vector2(Width, Height)); GL.UseProgram(CurrentProgram); + + Window = new Rect(0, 0, Width, Height); } public void SetViewport(int X, int Y, int Width, int Height) @@ -234,7 +244,7 @@ namespace Ryujinx.Graphics.Gal.OpenGL GL.BindFramebuffer(FramebufferTarget.Framebuffer, 0); - GL.Viewport(0, 0, 1280, 720); + SetViewport(Window); GL.Clear( ClearBufferMask.ColorBufferBit | @@ -255,10 +265,12 @@ namespace Ryujinx.Graphics.Gal.OpenGL { GL.Enable(EnableCap.Blend); } + + //GL.Viewport(0, 0, 1280, 720); } } - private void SetViewport() + private void SetViewport(Rect Viewport) { GL.Viewport( Viewport.X, diff --git a/Ryujinx/Ui/GLScreen.cs b/Ryujinx/Ui/GLScreen.cs index 8ccbebfa..5e3e1e65 100644 --- a/Ryujinx/Ui/GLScreen.cs +++ b/Ryujinx/Ui/GLScreen.cs @@ -38,6 +38,8 @@ namespace Ryujinx protected override void OnLoad(EventArgs e) { VSync = VSyncMode.On; + + Renderer.SetWindowSize(Width, Height); } protected override void OnUpdateFrame(FrameEventArgs e) @@ -173,8 +175,6 @@ namespace Ryujinx { Ns.Statistics.StartSystemFrame(); - GL.Viewport(0, 0, Width, Height); - Title = $"Ryujinx Screen - (Vsync: {VSync} - FPS: {Ns.Statistics.SystemFrameRate:0} - Guest FPS: " + $"{Ns.Statistics.GameFrameRate:0})";