From 7fea26e97e74e7ec0a5fa27921aa40c31b2c1dd9 Mon Sep 17 00:00:00 2001
From: gdkchan <gab.dark.100@gmail.com>
Date: Sat, 21 Jan 2023 21:07:43 -0300
Subject: Remove use of reflection on GAL multithreading (#4287)

* Introduce new IGALCommand<T> interface and use it

* Remove use of reflection on GAL multithreading

* Unmanaged constraint
---
 .../Multithreading/Commands/Program/ProgramCheckLinkCommand.cs          | 2 +-
 .../Multithreading/Commands/Program/ProgramDisposeCommand.cs            | 2 +-
 .../Multithreading/Commands/Program/ProgramGetBinaryCommand.cs          | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

(limited to 'Ryujinx.Graphics.GAL/Multithreading/Commands/Program')

diff --git a/Ryujinx.Graphics.GAL/Multithreading/Commands/Program/ProgramCheckLinkCommand.cs b/Ryujinx.Graphics.GAL/Multithreading/Commands/Program/ProgramCheckLinkCommand.cs
index 7ae887f4..f3662424 100644
--- a/Ryujinx.Graphics.GAL/Multithreading/Commands/Program/ProgramCheckLinkCommand.cs
+++ b/Ryujinx.Graphics.GAL/Multithreading/Commands/Program/ProgramCheckLinkCommand.cs
@@ -3,7 +3,7 @@ using Ryujinx.Graphics.GAL.Multithreading.Resources;
 
 namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Program
 {
-    struct ProgramCheckLinkCommand : IGALCommand
+    struct ProgramCheckLinkCommand : IGALCommand, IGALCommand<ProgramCheckLinkCommand>
     {
         public CommandType CommandType => CommandType.ProgramCheckLink;
         private TableRef<ThreadedProgram> _program;
diff --git a/Ryujinx.Graphics.GAL/Multithreading/Commands/Program/ProgramDisposeCommand.cs b/Ryujinx.Graphics.GAL/Multithreading/Commands/Program/ProgramDisposeCommand.cs
index e614c392..d1ec4298 100644
--- a/Ryujinx.Graphics.GAL/Multithreading/Commands/Program/ProgramDisposeCommand.cs
+++ b/Ryujinx.Graphics.GAL/Multithreading/Commands/Program/ProgramDisposeCommand.cs
@@ -3,7 +3,7 @@ using Ryujinx.Graphics.GAL.Multithreading.Resources;
 
 namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Program
 {
-    struct ProgramDisposeCommand : IGALCommand
+    struct ProgramDisposeCommand : IGALCommand, IGALCommand<ProgramDisposeCommand>
     {
         public CommandType CommandType => CommandType.ProgramDispose;
         private TableRef<ThreadedProgram> _program;
diff --git a/Ryujinx.Graphics.GAL/Multithreading/Commands/Program/ProgramGetBinaryCommand.cs b/Ryujinx.Graphics.GAL/Multithreading/Commands/Program/ProgramGetBinaryCommand.cs
index 92c0a6d6..16963245 100644
--- a/Ryujinx.Graphics.GAL/Multithreading/Commands/Program/ProgramGetBinaryCommand.cs
+++ b/Ryujinx.Graphics.GAL/Multithreading/Commands/Program/ProgramGetBinaryCommand.cs
@@ -3,7 +3,7 @@ using Ryujinx.Graphics.GAL.Multithreading.Resources;
 
 namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Program
 {
-    struct ProgramGetBinaryCommand : IGALCommand
+    struct ProgramGetBinaryCommand : IGALCommand, IGALCommand<ProgramGetBinaryCommand>
     {
         public CommandType CommandType => CommandType.ProgramGetBinary;
         private TableRef<ThreadedProgram> _program;
-- 
cgit v1.2.3-70-g09d2