/ src / Ryujinx.Graphics.GAL / Multithreading / Commands / TryHostConditionalRenderingCommand.cs
TryHostConditionalRenderingCommand.cs
 1  using Ryujinx.Graphics.GAL.Multithreading.Model;
 2  using Ryujinx.Graphics.GAL.Multithreading.Resources;
 3  
 4  namespace Ryujinx.Graphics.GAL.Multithreading.Commands
 5  {
 6      struct TryHostConditionalRenderingCommand : IGALCommand, IGALCommand<TryHostConditionalRenderingCommand>
 7      {
 8          public readonly CommandType CommandType => CommandType.TryHostConditionalRendering;
 9          private TableRef<ThreadedCounterEvent> _value;
10          private ulong _compare;
11          private bool _isEqual;
12  
13          public void Set(TableRef<ThreadedCounterEvent> value, ulong compare, bool isEqual)
14          {
15              _value = value;
16              _compare = compare;
17              _isEqual = isEqual;
18          }
19  
20          public static void Run(ref TryHostConditionalRenderingCommand command, ThreadedRenderer threaded, IRenderer renderer)
21          {
22              renderer.Pipeline.TryHostConditionalRendering(command._value.Get(threaded)?.Base, command._compare, command._isEqual);
23          }
24      }
25  }