/ src / Ryujinx.Graphics.GAL / Multithreading / Commands / SetPatchParametersCommand.cs
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  }