aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics/Gal/OpenGL/OGLFrameBuffer.cs
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2018-04-14 00:39:24 -0300
committergdkchan <gab.dark.100@gmail.com>2018-04-14 00:39:24 -0300
commit42ebfdff7f2889be38a3415bf33aeb41df90bd98 (patch)
tree556639adf9f0ef20e0fc64f9293ccc8c6e11b5e3 /Ryujinx.Graphics/Gal/OpenGL/OGLFrameBuffer.cs
parent47100ec8c1b3cabc7d53654163c1dd30b58d483d (diff)
[GPU] Fix frame buffer being upside down in some cases
Diffstat (limited to 'Ryujinx.Graphics/Gal/OpenGL/OGLFrameBuffer.cs')
-rw-r--r--Ryujinx.Graphics/Gal/OpenGL/OGLFrameBuffer.cs36
1 files changed, 36 insertions, 0 deletions
diff --git a/Ryujinx.Graphics/Gal/OpenGL/OGLFrameBuffer.cs b/Ryujinx.Graphics/Gal/OpenGL/OGLFrameBuffer.cs
index cca61e18..e0da9179 100644
--- a/Ryujinx.Graphics/Gal/OpenGL/OGLFrameBuffer.cs
+++ b/Ryujinx.Graphics/Gal/OpenGL/OGLFrameBuffer.cs
@@ -7,6 +7,22 @@ namespace Ryujinx.Graphics.Gal.OpenGL
{
class OGLFrameBuffer
{
+ private struct Rect
+ {
+ public int X { get; private set; }
+ public int Y { get; private set; }
+ public int Width { get; private set; }
+ public int Height { get; private set; }
+
+ public Rect(int X, int Y, int Width, int Height)
+ {
+ this.X = X;
+ this.Y = Y;
+ this.Width = Width;
+ this.Height = Height;
+ }
+ }
+
private class FrameBuffer
{
public int Width { get; set; }
@@ -38,6 +54,8 @@ namespace Ryujinx.Graphics.Gal.OpenGL
private ShaderProgram Shader;
+ private Rect Viewport;
+
private bool IsInitialized;
private int RawFbTexWidth;
@@ -178,6 +196,13 @@ namespace Ryujinx.Graphics.Gal.OpenGL
GL.UseProgram(CurrentProgram);
}
+ public void SetViewport(int X, int Y, int Width, int Height)
+ {
+ Viewport = new Rect(X, Y, Width, Height);
+
+ //TODO
+ }
+
public void Render()
{
if (CurrTexHandle != 0)
@@ -196,6 +221,8 @@ namespace Ryujinx.Graphics.Gal.OpenGL
GL.BindFramebuffer(FramebufferTarget.Framebuffer, 0);
+ GL.Viewport(0, 0, 1280, 720);
+
GL.Clear(
ClearBufferMask.ColorBufferBit |
ClearBufferMask.DepthBufferBit);
@@ -218,6 +245,15 @@ namespace Ryujinx.Graphics.Gal.OpenGL
}
}
+ private void SetViewport()
+ {
+ GL.Viewport(
+ Viewport.X,
+ Viewport.Y,
+ Viewport.Width,
+ Viewport.Height);
+ }
+
private void EnsureInitialized()
{
if (!IsInitialized)