diff options
| author | gdk <gab.dark.100@gmail.com> | 2019-10-30 20:45:01 -0300 |
|---|---|---|
| committer | Thog <thog@protonmail.com> | 2020-01-09 02:13:00 +0100 |
| commit | d786d8d2b924da7cd116a2eb97d738a9f07b4e43 (patch) | |
| tree | 0e84072c554066d20622d156d1394144ed5258bd /Ryujinx.Graphics.OpenGL | |
| parent | 3bcc395253e020df40763d36ba9401b126b17173 (diff) | |
Support copy of slices to 3D textures, remove old 3D render target layered render support, do not delete textures with existing views created from them
Diffstat (limited to 'Ryujinx.Graphics.OpenGL')
| -rw-r--r-- | Ryujinx.Graphics.OpenGL/Framebuffer.cs | 10 | ||||
| -rw-r--r-- | Ryujinx.Graphics.OpenGL/Pipeline.cs | 22 | ||||
| -rw-r--r-- | Ryujinx.Graphics.OpenGL/TextureView.cs | 4 |
3 files changed, 2 insertions, 34 deletions
diff --git a/Ryujinx.Graphics.OpenGL/Framebuffer.cs b/Ryujinx.Graphics.OpenGL/Framebuffer.cs index 40913009..d416bd03 100644 --- a/Ryujinx.Graphics.OpenGL/Framebuffer.cs +++ b/Ryujinx.Graphics.OpenGL/Framebuffer.cs @@ -29,16 +29,6 @@ namespace Ryujinx.Graphics.OpenGL 0); } - public void AttachColor(int index, TextureView color, int layer) - { - GL.FramebufferTextureLayer( - FramebufferTarget.Framebuffer, - FramebufferAttachment.ColorAttachment0 + index, - color?.Handle ?? 0, - 0, - layer); - } - public void AttachDepthStencil(TextureView depthStencil) { // Detach the last depth/stencil buffer if there is any. diff --git a/Ryujinx.Graphics.OpenGL/Pipeline.cs b/Ryujinx.Graphics.OpenGL/Pipeline.cs index 5df801f8..745926e7 100644 --- a/Ryujinx.Graphics.OpenGL/Pipeline.cs +++ b/Ryujinx.Graphics.OpenGL/Pipeline.cs @@ -697,28 +697,6 @@ namespace Ryujinx.Graphics.OpenGL } } - public void SetRenderTargets(ITexture color3D, ITexture depthStencil) - { - EnsureFramebuffer(); - - TextureView color = (TextureView)color3D; - - for (int index = 0; index < color.DepthOrLayers; index++) - { - _framebuffer.AttachColor(index, color, index); - } - - TextureView depthStencilView = (TextureView)depthStencil; - - _framebuffer.AttachDepthStencil(depthStencilView); - - _framebuffer.SetDrawBuffers(color.DepthOrLayers); - - _hasDepthBuffer = depthStencil != null && depthStencilView.Format != Format.S8Uint; - - UpdateDepthTest(); - } - public void SetRenderTargets(ITexture[] colors, ITexture depthStencil) { EnsureFramebuffer(); diff --git a/Ryujinx.Graphics.OpenGL/TextureView.cs b/Ryujinx.Graphics.OpenGL/TextureView.cs index 8a2b50dc..8fced290 100644 --- a/Ryujinx.Graphics.OpenGL/TextureView.cs +++ b/Ryujinx.Graphics.OpenGL/TextureView.cs @@ -137,11 +137,11 @@ namespace Ryujinx.Graphics.OpenGL return _parent.GetHashCode(); } - public void CopyTo(ITexture destination) + public void CopyTo(ITexture destination, int firstLayer, int firstLevel) { TextureView destinationView = (TextureView)destination; - TextureCopyUnscaled.Copy(this, destinationView, 0, 0); + TextureCopyUnscaled.Copy(this, destinationView, firstLayer, firstLevel); int width = Math.Min(Width, destinationView.Width); int height = Math.Min(Height, destinationView.Height); |
