Пример #1
0
        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));
            }
        }
Пример #2
0
        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));
            }
        }
Пример #3
0
        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));
        }