CopyBufferCommand.cs 1009 B

1234567891011121314151617181920212223242526
  1. namespace Ryujinx.Graphics.GAL.Multithreading.Commands
  2. {
  3. struct CopyBufferCommand : IGALCommand, IGALCommand<CopyBufferCommand>
  4. {
  5. public CommandType CommandType => CommandType.CopyBuffer;
  6. private BufferHandle _source;
  7. private BufferHandle _destination;
  8. private int _srcOffset;
  9. private int _dstOffset;
  10. private int _size;
  11. public void Set(BufferHandle source, BufferHandle destination, int srcOffset, int dstOffset, int size)
  12. {
  13. _source = source;
  14. _destination = destination;
  15. _srcOffset = srcOffset;
  16. _dstOffset = dstOffset;
  17. _size = size;
  18. }
  19. public static void Run(ref CopyBufferCommand command, ThreadedRenderer threaded, IRenderer renderer)
  20. {
  21. renderer.Pipeline.CopyBuffer(threaded.Buffers.MapBuffer(command._source), threaded.Buffers.MapBuffer(command._destination), command._srcOffset, command._dstOffset, command._size);
  22. }
  23. }
  24. }