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