public VkResult Submit(IReadOnlyList <VkSubmitInfo> submits, IVkFence fence) { var unmanagedSize = submits.SizeOfMarshalDirect(); var unmanagedArray = new byte[unmanagedSize]; fixed(byte *unmanagedStart = unmanagedArray) { var unmanaged = unmanagedStart; var _queue = Handle; var _submitCount = submits?.Count ?? 0; var _pSubmits = submits.MarshalDirect(ref unmanaged); var _fence = fence?.Handle ?? VkFence.HandleType.Null; return(Direct.QueueSubmit(_queue, _submitCount, _pSubmits, _fence)); } }
public VkResult BindSparse(IReadOnlyList <VkBindSparseInfo> bindInfo, IVkFence fence) { var unmanagedSize = bindInfo.SizeOfMarshalDirect(); var unmanagedArray = new byte[unmanagedSize]; fixed(byte *unmanagedStart = unmanagedArray) { var unmanaged = unmanagedStart; var _queue = Handle; var _bindInfoCount = bindInfo?.Count ?? 0; var _pBindInfo = bindInfo.MarshalDirect(ref unmanaged); var _fence = fence?.Handle ?? VkFence.HandleType.Null; return(Direct.QueueBindSparse(_queue, _bindInfoCount, _pBindInfo, _fence)); } }
public VkObjectResult <int> AcquireNextImageKHR(ulong timeout, IVkSemaphore semaphore, IVkFence fence) { var _device = Device.Handle; var _swapchain = Handle; var _timeout = timeout; var _semaphore = semaphore?.Handle ?? VkSemaphore.HandleType.Null; var _fence = fence?.Handle ?? VkFence.HandleType.Null; int _pImageIndex; var result = Direct.AcquireNextImageKHR(_device, _swapchain, _timeout, _semaphore, _fence, &_pImageIndex); return(new VkObjectResult <int>(result, _pImageIndex)); }