using Ryujinx.Graphics.GAL.Multithreading.Model; using Ryujinx.Graphics.GAL.Multithreading.Resources; using System; namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Renderer { struct ReportCounterCommand : IGALCommand, IGALCommand { public CommandType CommandType => CommandType.ReportCounter; private TableRef _event; private CounterType _type; private TableRef> _resultHandler; private bool _hostReserved; public void Set(TableRef evt, CounterType type, TableRef> resultHandler, bool hostReserved) { _event = evt; _type = type; _resultHandler = resultHandler; _hostReserved = hostReserved; } public static void Run(ref ReportCounterCommand command, ThreadedRenderer threaded, IRenderer renderer) { ThreadedCounterEvent evt = command._event.Get(threaded); evt.Create(renderer, command._type, command._resultHandler.Get(threaded), command._hostReserved); } } }