SetViewportsCommand.cs 830 B

1234567891011121314151617181920212223242526
  1. using Ryujinx.Graphics.GAL.Multithreading.Model;
  2. using System;
  3. using System.Buffers;
  4. namespace Ryujinx.Graphics.GAL.Multithreading.Commands
  5. {
  6. struct SetViewportsCommand : IGALCommand
  7. {
  8. public CommandType CommandType => CommandType.SetViewports;
  9. private int _first;
  10. private SpanRef<Viewport> _viewports;
  11. public void Set(int first, SpanRef<Viewport> viewports)
  12. {
  13. _first = first;
  14. _viewports = viewports;
  15. }
  16. public static void Run(ref SetViewportsCommand command, ThreadedRenderer threaded, IRenderer renderer)
  17. {
  18. ReadOnlySpan<Viewport> viewports = command._viewports.Get(threaded);
  19. renderer.Pipeline.SetViewports(command._first, viewports);
  20. command._viewports.Dispose(threaded);
  21. }
  22. }
  23. }