SetTextureArrayCommand.cs 956 B

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