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 }