SetVertexBuffersCommand.cs 841 B

1234567891011121314151617181920212223
  1. using Ryujinx.Graphics.GAL.Multithreading.Model;
  2. using System;
  3. namespace Ryujinx.Graphics.GAL.Multithreading.Commands
  4. {
  5. struct SetVertexBuffersCommand : IGALCommand
  6. {
  7. public CommandType CommandType => CommandType.SetVertexBuffers;
  8. private SpanRef<VertexBufferDescriptor> _vertexBuffers;
  9. public void Set(SpanRef<VertexBufferDescriptor> vertexBuffers)
  10. {
  11. _vertexBuffers = vertexBuffers;
  12. }
  13. public static void Run(ref SetVertexBuffersCommand command, ThreadedRenderer threaded, IRenderer renderer)
  14. {
  15. Span<VertexBufferDescriptor> vertexBuffers = command._vertexBuffers.Get(threaded);
  16. renderer.Pipeline.SetVertexBuffers(threaded.Buffers.MapBufferRanges(vertexBuffers));
  17. command._vertexBuffers.Dispose(threaded);
  18. }
  19. }
  20. }