/ src / Ryujinx.Graphics.GAL / Multithreading / Resources / ThreadedImageArray.cs
ThreadedImageArray.cs
 1  using Ryujinx.Graphics.GAL.Multithreading.Commands.ImageArray;
 2  using Ryujinx.Graphics.GAL.Multithreading.Model;
 3  
 4  namespace Ryujinx.Graphics.GAL.Multithreading.Resources
 5  {
 6      /// <summary>
 7      /// Threaded representation of a image array.
 8      /// </summary>
 9      class ThreadedImageArray : IImageArray
10      {
11          private readonly ThreadedRenderer _renderer;
12          public IImageArray Base;
13  
14          public ThreadedImageArray(ThreadedRenderer renderer)
15          {
16              _renderer = renderer;
17          }
18  
19          private TableRef<T> Ref<T>(T reference)
20          {
21              return new TableRef<T>(_renderer, reference);
22          }
23  
24          public void Dispose()
25          {
26              _renderer.New<ImageArrayDisposeCommand>().Set(Ref(this));
27              _renderer.QueueCommand();
28          }
29  
30          public void SetImages(int index, ITexture[] images)
31          {
32              _renderer.New<ImageArraySetImagesCommand>().Set(Ref(this), index, Ref(images));
33              _renderer.QueueCommand();
34          }
35      }
36  }