/ src / Ryujinx.Graphics.GAL / Multithreading / Commands / SetImageArrayCommand.cs
SetImageArrayCommand.cs
 1  using Ryujinx.Graphics.GAL.Multithreading.Model;
 2  using Ryujinx.Graphics.GAL.Multithreading.Resources;
 3  using Ryujinx.Graphics.Shader;
 4  
 5  namespace Ryujinx.Graphics.GAL.Multithreading.Commands
 6  {
 7      struct SetImageArrayCommand : IGALCommand, IGALCommand<SetImageArrayCommand>
 8      {
 9          public readonly CommandType CommandType => CommandType.SetImageArray;
10          private ShaderStage _stage;
11          private int _binding;
12          private TableRef<IImageArray> _array;
13  
14          public void Set(ShaderStage stage, int binding, TableRef<IImageArray> array)
15          {
16              _stage = stage;
17              _binding = binding;
18              _array = array;
19          }
20  
21          public static void Run(ref SetImageArrayCommand command, ThreadedRenderer threaded, IRenderer renderer)
22          {
23              renderer.Pipeline.SetImageArray(command._stage, command._binding, command._array.GetAs<ThreadedImageArray>(threaded)?.Base);
24          }
25      }
26  }