SetVertexBuffersCommand.cs 863 B

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