aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Gpu/Image/TextureManager.cs
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2019-12-31 19:09:49 -0300
committerThog <thog@protonmail.com>2020-01-09 02:13:00 +0100
commit59fdaa744b20f91928ee3fcaf5fabfcb7b409451 (patch)
treef01e21d930e456398411317784c5063c532a7215 /Ryujinx.Graphics.Gpu/Image/TextureManager.cs
parentf7bcc884e46805f4dcda4fc7d7e7bccb2a3ac316 (diff)
GPU resource disposal
Diffstat (limited to 'Ryujinx.Graphics.Gpu/Image/TextureManager.cs')
-rw-r--r--Ryujinx.Graphics.Gpu/Image/TextureManager.cs14
1 files changed, 13 insertions, 1 deletions
diff --git a/Ryujinx.Graphics.Gpu/Image/TextureManager.cs b/Ryujinx.Graphics.Gpu/Image/TextureManager.cs
index ecc5dc51..e0a8908a 100644
--- a/Ryujinx.Graphics.Gpu/Image/TextureManager.cs
+++ b/Ryujinx.Graphics.Gpu/Image/TextureManager.cs
@@ -11,7 +11,7 @@ namespace Ryujinx.Graphics.Gpu.Image
/// <summary>
/// Texture manager.
/// </summary>
- class TextureManager
+ class TextureManager : IDisposable
{
private const int OverlapsBufferInitialCapacity = 10;
private const int OverlapsBufferMaxCapacity = 10000;
@@ -761,5 +761,17 @@ namespace Ryujinx.Graphics.Gpu.Image
{
_textures.Remove(texture);
}
+
+ /// <summary>
+ /// Disposes all textures in the cache.
+ /// It's an error to use the texture manager after disposal.
+ /// </summary>
+ public void Dispose()
+ {
+ foreach (Texture texture in _textures)
+ {
+ texture.Dispose();
+ }
+ }
}
} \ No newline at end of file