/ src / Ryujinx.Graphics.GAL / Multithreading / Commands / CopyBufferCommand.cs
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  }