SetViewportsCommand.cs 970 B

12345678910111213141516171819202122232425262728
  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. private bool _disableTransform;
  12. public void Set(int first, SpanRef<Viewport> viewports, bool disableTransform)
  13. {
  14. _first = first;
  15. _viewports = viewports;
  16. _disableTransform = disableTransform;
  17. }
  18. public static void Run(ref SetViewportsCommand command, ThreadedRenderer threaded, IRenderer renderer)
  19. {
  20. ReadOnlySpan<Viewport> viewports = command._viewports.Get(threaded);
  21. renderer.Pipeline.SetViewports(command._first, viewports, command._disableTransform);
  22. command._viewports.Dispose(threaded);
  23. }
  24. }
  25. }