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