ProgramCheckLinkCommand.cs 1000 B

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