/ src / Ryujinx.Graphics.GAL / Multithreading / Commands / DrawIndexedIndirectCountCommand.cs
DrawIndexedIndirectCountCommand.cs
 1  namespace Ryujinx.Graphics.GAL.Multithreading.Commands
 2  {
 3      struct DrawIndexedIndirectCountCommand : IGALCommand, IGALCommand<DrawIndexedIndirectCountCommand>
 4      {
 5          public readonly CommandType CommandType => CommandType.DrawIndexedIndirectCount;
 6          private BufferRange _indirectBuffer;
 7          private BufferRange _parameterBuffer;
 8          private int _maxDrawCount;
 9          private int _stride;
10  
11          public void Set(BufferRange indirectBuffer, BufferRange parameterBuffer, int maxDrawCount, int stride)
12          {
13              _indirectBuffer = indirectBuffer;
14              _parameterBuffer = parameterBuffer;
15              _maxDrawCount = maxDrawCount;
16              _stride = stride;
17          }
18  
19          public static void Run(ref DrawIndexedIndirectCountCommand command, ThreadedRenderer threaded, IRenderer renderer)
20          {
21              renderer.Pipeline.DrawIndexedIndirectCount(
22                  threaded.Buffers.MapBufferRange(command._indirectBuffer),
23                  threaded.Buffers.MapBufferRange(command._parameterBuffer),
24                  command._maxDrawCount,
25                  command._stride
26                  );
27          }
28      }
29  }