using Ryujinx.Common.Memory; using System; namespace Ryujinx.Graphics.GAL.Multithreading.Commands { struct SetPatchParametersCommand : IGALCommand, IGALCommand { public CommandType CommandType => CommandType.SetPatchParameters; private int _vertices; private Array4 _defaultOuterLevel; private Array2 _defaultInnerLevel; public void Set(int vertices, ReadOnlySpan defaultOuterLevel, ReadOnlySpan defaultInnerLevel) { _vertices = vertices; defaultOuterLevel.CopyTo(_defaultOuterLevel.AsSpan()); defaultInnerLevel.CopyTo(_defaultInnerLevel.AsSpan()); } public static void Run(ref SetPatchParametersCommand command, ThreadedRenderer threaded, IRenderer renderer) { renderer.Pipeline.SetPatchParameters(command._vertices, command._defaultOuterLevel.AsSpan(), command._defaultInnerLevel.AsSpan()); } } }