aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Graphics.GAL/Multithreading/Commands/Renderer/CreateHostBufferCommand.cs
blob: 0001680b659afee842c8ddac988c18027802ea99 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Renderer
{
    struct CreateHostBufferCommand : IGALCommand, IGALCommand<CreateHostBufferCommand>
    {
        public readonly CommandType CommandType => CommandType.CreateHostBuffer;
        private BufferHandle _threadedHandle;
        private nint _pointer;
        private int _size;

        public void Set(BufferHandle threadedHandle, nint pointer, int size)
        {
            _threadedHandle = threadedHandle;
            _pointer = pointer;
            _size = size;
        }

        public static void Run(ref CreateHostBufferCommand command, ThreadedRenderer threaded, IRenderer renderer)
        {
            threaded.Buffers.AssignBuffer(command._threadedHandle, renderer.CreateBuffer(command._pointer, command._size));
        }
    }
}