diff options
Diffstat (limited to 'Ryujinx.Graphics/Gal/OpenGL/OGLFrameBuffer.cs')
| -rw-r--r-- | Ryujinx.Graphics/Gal/OpenGL/OGLFrameBuffer.cs | 36 |
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) |
