/ src / Ryujinx.Graphics.GAL / Multithreading / Commands / ImageArray / ImageArraySetImagesCommand.cs
ImageArraySetImagesCommand.cs
 1  using Ryujinx.Graphics.GAL.Multithreading.Model;
 2  using Ryujinx.Graphics.GAL.Multithreading.Resources;
 3  using System.Linq;
 4  
 5  namespace Ryujinx.Graphics.GAL.Multithreading.Commands.ImageArray
 6  {
 7      struct ImageArraySetImagesCommand : IGALCommand, IGALCommand<ImageArraySetImagesCommand>
 8      {
 9          public readonly CommandType CommandType => CommandType.ImageArraySetImages;
10          private TableRef<ThreadedImageArray> _imageArray;
11          private int _index;
12          private TableRef<ITexture[]> _images;
13  
14          public void Set(TableRef<ThreadedImageArray> imageArray, int index, TableRef<ITexture[]> images)
15          {
16              _imageArray = imageArray;
17              _index = index;
18              _images = images;
19          }
20  
21          public static void Run(ref ImageArraySetImagesCommand command, ThreadedRenderer threaded, IRenderer renderer)
22          {
23              ThreadedImageArray imageArray = command._imageArray.Get(threaded);
24              imageArray.Base.SetImages(command._index, command._images.Get(threaded).Select(texture => ((ThreadedTexture)texture)?.Base).ToArray());
25          }
26      }
27  }