/ 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 }