using Ryujinx.Graphics.GAL.Multithreading.Model; using System; using System.Buffers; namespace Ryujinx.Graphics.GAL.Multithreading.Commands { struct SetViewportsCommand : IGALCommand { public CommandType CommandType => CommandType.SetViewports; private int _first; private SpanRef _viewports; public void Set(int first, SpanRef viewports) { _first = first; _viewports = viewports; } public static void Run(ref SetViewportsCommand command, ThreadedRenderer threaded, IRenderer renderer) { ReadOnlySpan viewports = command._viewports.Get(threaded); renderer.Pipeline.SetViewports(command._first, viewports); command._viewports.Dispose(threaded); } } }