CopyBufferCommand.cs
1 namespace Ryujinx.Graphics.GAL.Multithreading.Commands 2 { 3 struct CopyBufferCommand : IGALCommand, IGALCommand<CopyBufferCommand> 4 { 5 public readonly 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 12 public void Set(BufferHandle source, BufferHandle destination, int srcOffset, int dstOffset, int size) 13 { 14 _source = source; 15 _destination = destination; 16 _srcOffset = srcOffset; 17 _dstOffset = dstOffset; 18 _size = size; 19 } 20 21 public static void Run(ref CopyBufferCommand command, ThreadedRenderer threaded, IRenderer renderer) 22 { 23 renderer.Pipeline.CopyBuffer(threaded.Buffers.MapBuffer(command._source), threaded.Buffers.MapBuffer(command._destination), command._srcOffset, command._dstOffset, command._size); 24 } 25 } 26 }