SetViewportsCommand.cs 899 B

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