Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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);
            }
        }
Ejemplo n.º 4
0
 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);
     }
 }
Ejemplo n.º 5
0
 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);
     }
 }