CreateBufferCommand.cs 1.0 KB

1234567891011121314151617181920212223242526272829
  1. namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Renderer
  2. {
  3. struct CreateBufferCommand : IGALCommand, IGALCommand<CreateBufferCommand>
  4. {
  5. public CommandType CommandType => CommandType.CreateBuffer;
  6. private BufferHandle _threadedHandle;
  7. private int _size;
  8. private BufferHandle _storageHint;
  9. public void Set(BufferHandle threadedHandle, int size, BufferHandle storageHint)
  10. {
  11. _threadedHandle = threadedHandle;
  12. _size = size;
  13. _storageHint = storageHint;
  14. }
  15. public static void Run(ref CreateBufferCommand command, ThreadedRenderer threaded, IRenderer renderer)
  16. {
  17. BufferHandle hint = BufferHandle.Null;
  18. if (command._storageHint != BufferHandle.Null)
  19. {
  20. hint = threaded.Buffers.MapBuffer(command._storageHint);
  21. }
  22. threaded.Buffers.AssignBuffer(command._threadedHandle, renderer.CreateBuffer(command._size, hint));
  23. }
  24. }
  25. }