SetViewportsCommand.cs 887 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 SpanRef<Viewport> _viewports;
  10. private bool _disableTransform;
  11. public void Set(SpanRef<Viewport> viewports, bool disableTransform)
  12. {
  13. _viewports = viewports;
  14. _disableTransform = disableTransform;
  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(viewports, command._disableTransform);
  20. command._viewports.Dispose(threaded);
  21. }
  22. }
  23. }