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 }