public void CmdCopyImageToBuffer(IVkImage srcImage, VkImageLayout srcImageLayout, IVkBuffer dstBuffer, IReadOnlyList <VkBufferImageCopy> regions) { var unmanagedSize = regions.SizeOfMarshalDirect(); var unmanagedArray = new byte[unmanagedSize]; fixed(byte *unmanagedStart = unmanagedArray) { var unmanaged = unmanagedStart; var _commandBuffer = Handle; var _srcImage = srcImage?.Handle ?? VkImage.HandleType.Null; var _srcImageLayout = srcImageLayout; var _dstBuffer = dstBuffer?.Handle ?? VkBuffer.HandleType.Null; var _regionCount = regions?.Count ?? 0; var _pRegions = regions.MarshalDirect(ref unmanaged); Direct.CmdCopyImageToBuffer(_commandBuffer, _srcImage, _srcImageLayout, _dstBuffer, _regionCount, _pRegions); } }
public void CmdClearDepthStencilImage(IVkImage image, VkImageLayout imageLayout, VkClearDepthStencilValue depthStencil, IReadOnlyList <VkImageSubresourceRange> ranges) { var unmanagedSize = ranges.SizeOfMarshalDirect(); var unmanagedArray = new byte[unmanagedSize]; fixed(byte *unmanagedStart = unmanagedArray) { var unmanaged = unmanagedStart; var _commandBuffer = Handle; var _image = image?.Handle ?? VkImage.HandleType.Null; var _imageLayout = imageLayout; var _pDepthStencil = &depthStencil; var _rangeCount = ranges?.Count ?? 0; var _pRanges = ranges.MarshalDirect(ref unmanaged); Direct.CmdClearDepthStencilImage(_commandBuffer, _image, _imageLayout, _pDepthStencil, _rangeCount, _pRanges); } }
public void CmdBlitImage(IVkImage srcImage, VkImageLayout srcImageLayout, IVkImage dstImage, VkImageLayout dstImageLayout, IReadOnlyList <VkImageBlit> regions, VkFilter filter) { var unmanagedSize = regions.SizeOfMarshalDirect(); var unmanagedArray = new byte[unmanagedSize]; fixed(byte *unmanagedStart = unmanagedArray) { var unmanaged = unmanagedStart; var _commandBuffer = Handle; var _srcImage = srcImage?.Handle ?? VkImage.HandleType.Null; var _srcImageLayout = srcImageLayout; var _dstImage = dstImage?.Handle ?? VkImage.HandleType.Null; var _dstImageLayout = dstImageLayout; var _regionCount = regions?.Count ?? 0; var _pRegions = regions.MarshalDirect(ref unmanaged); var _filter = filter; Direct.CmdBlitImage(_commandBuffer, _srcImage, _srcImageLayout, _dstImage, _dstImageLayout, _regionCount, _pRegions, _filter); } }
public void CmdResolveImage(IVkImage srcImage, VkImageLayout srcImageLayout, IVkImage dstImage, VkImageLayout dstImageLayout, IReadOnlyList<VkImageResolve> regions) { var unmanagedSize = regions.SizeOfMarshalDirect(); var unmanagedArray = new byte[unmanagedSize]; fixed (byte* unmanagedStart = unmanagedArray) { var unmanaged = unmanagedStart; var _commandBuffer = Handle; var _srcImage = srcImage?.Handle ?? VkImage.HandleType.Null; var _srcImageLayout = srcImageLayout; var _dstImage = dstImage?.Handle ?? VkImage.HandleType.Null; var _dstImageLayout = dstImageLayout; var _regionCount = regions?.Count ?? 0; var _pRegions = regions.MarshalDirect(ref unmanaged); Direct.CmdResolveImage(_commandBuffer, _srcImage, _srcImageLayout, _dstImage, _dstImageLayout, _regionCount, _pRegions); } }
public void CmdClearDepthStencilImage(IVkImage image, VkImageLayout imageLayout, VkClearDepthStencilValue depthStencil, IReadOnlyList<VkImageSubresourceRange> ranges) { var unmanagedSize = ranges.SizeOfMarshalDirect(); var unmanagedArray = new byte[unmanagedSize]; fixed (byte* unmanagedStart = unmanagedArray) { var unmanaged = unmanagedStart; var _commandBuffer = Handle; var _image = image?.Handle ?? VkImage.HandleType.Null; var _imageLayout = imageLayout; var _pDepthStencil = &depthStencil; var _rangeCount = ranges?.Count ?? 0; var _pRanges = ranges.MarshalDirect(ref unmanaged); Direct.CmdClearDepthStencilImage(_commandBuffer, _image, _imageLayout, _pDepthStencil, _rangeCount, _pRanges); } }