/ src / Ryujinx.Graphics.GAL / Multithreading / Commands / SetImageArraySeparateCommand.cs
SetImageArraySeparateCommand.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 SetImageArraySeparateCommand : IGALCommand, IGALCommand<SetImageArraySeparateCommand>
 8      {
 9          public readonly CommandType CommandType => CommandType.SetImageArraySeparate;
10          private ShaderStage _stage;
11          private int _setIndex;
12          private TableRef<IImageArray> _array;
13  
14          public void Set(ShaderStage stage, int setIndex, TableRef<IImageArray> array)
15          {
16              _stage = stage;
17              _setIndex = setIndex;
18              _array = array;
19          }
20  
21          public static void Run(ref SetImageArraySeparateCommand command, ThreadedRenderer threaded, IRenderer renderer)
22          {
23              renderer.Pipeline.SetImageArraySeparate(command._stage, command._setIndex, command._array.GetAs<ThreadedImageArray>(threaded)?.Base);
24          }
25      }
26  }