SetPatchParametersCommand.cs
1 using Ryujinx.Common.Memory; 2 using System; 3 4 namespace Ryujinx.Graphics.GAL.Multithreading.Commands 5 { 6 struct SetPatchParametersCommand : IGALCommand, IGALCommand<SetPatchParametersCommand> 7 { 8 public readonly CommandType CommandType => CommandType.SetPatchParameters; 9 private int _vertices; 10 private Array4<float> _defaultOuterLevel; 11 private Array2<float> _defaultInnerLevel; 12 13 public void Set(int vertices, ReadOnlySpan<float> defaultOuterLevel, ReadOnlySpan<float> defaultInnerLevel) 14 { 15 _vertices = vertices; 16 defaultOuterLevel.CopyTo(_defaultOuterLevel.AsSpan()); 17 defaultInnerLevel.CopyTo(_defaultInnerLevel.AsSpan()); 18 } 19 20 public static void Run(ref SetPatchParametersCommand command, ThreadedRenderer threaded, IRenderer renderer) 21 { 22 renderer.Pipeline.SetPatchParameters(command._vertices, command._defaultOuterLevel.AsSpan(), command._defaultInnerLevel.AsSpan()); 23 } 24 } 25 }