ProgramCheckLinkCommand.cs
1 using Ryujinx.Graphics.GAL.Multithreading.Model; 2 using Ryujinx.Graphics.GAL.Multithreading.Resources; 3 4 namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Program 5 { 6 struct ProgramCheckLinkCommand : IGALCommand, IGALCommand<ProgramCheckLinkCommand> 7 { 8 public readonly CommandType CommandType => CommandType.ProgramCheckLink; 9 private TableRef<ThreadedProgram> _program; 10 private bool _blocking; 11 private TableRef<ResultBox<ProgramLinkStatus>> _result; 12 13 public void Set(TableRef<ThreadedProgram> program, bool blocking, TableRef<ResultBox<ProgramLinkStatus>> result) 14 { 15 _program = program; 16 _blocking = blocking; 17 _result = result; 18 } 19 20 public static void Run(ref ProgramCheckLinkCommand command, ThreadedRenderer threaded, IRenderer renderer) 21 { 22 ProgramLinkStatus result = command._program.Get(threaded).Base.CheckProgramLink(command._blocking); 23 24 command._result.Get(threaded).Result = result; 25 } 26 } 27 }