From cee712105850ac3385cd0091a923438167433f9f Mon Sep 17 00:00:00 2001
From: TSR Berry <20988865+TSRBerry@users.noreply.github.com>
Date: Sat, 8 Apr 2023 01:22:00 +0200
Subject: Move solution and projects to src

---
 .../Multithreading/Resources/ThreadedProgram.cs    | 48 ++++++++++++++++++++++
 1 file changed, 48 insertions(+)
 create mode 100644 src/Ryujinx.Graphics.GAL/Multithreading/Resources/ThreadedProgram.cs

(limited to 'src/Ryujinx.Graphics.GAL/Multithreading/Resources/ThreadedProgram.cs')

diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/Resources/ThreadedProgram.cs b/src/Ryujinx.Graphics.GAL/Multithreading/Resources/ThreadedProgram.cs
new file mode 100644
index 00000000..068d058e
--- /dev/null
+++ b/src/Ryujinx.Graphics.GAL/Multithreading/Resources/ThreadedProgram.cs
@@ -0,0 +1,48 @@
+using Ryujinx.Graphics.GAL.Multithreading.Commands.Program;
+using Ryujinx.Graphics.GAL.Multithreading.Model;
+
+namespace Ryujinx.Graphics.GAL.Multithreading.Resources
+{
+    class ThreadedProgram : IProgram
+    {
+        private ThreadedRenderer _renderer;
+
+        public IProgram Base;
+
+        internal bool Compiled;
+
+        public ThreadedProgram(ThreadedRenderer renderer)
+        {
+            _renderer = renderer;
+        }
+
+        private TableRef<T> Ref<T>(T reference)
+        {
+            return new TableRef<T>(_renderer, reference);
+        }
+
+        public void Dispose()
+        {
+            _renderer.New<ProgramDisposeCommand>().Set(Ref(this));
+            _renderer.QueueCommand();
+        }
+
+        public byte[] GetBinary()
+        {
+            ResultBox<byte[]> box = new ResultBox<byte[]>();
+            _renderer.New<ProgramGetBinaryCommand>().Set(Ref(this), Ref(box));
+            _renderer.InvokeCommand();
+
+            return box.Result;
+        }
+
+        public ProgramLinkStatus CheckProgramLink(bool blocking)
+        {
+            ResultBox<ProgramLinkStatus> box = new ResultBox<ProgramLinkStatus>();
+            _renderer.New<ProgramCheckLinkCommand>().Set(Ref(this), blocking, Ref(box));
+            _renderer.InvokeCommand();
+
+            return box.Result;
+        }
+    }
+}
-- 
cgit v1.2.3-70-g09d2