Beispiel #1
0
        public void CmdCopyBuffer(IMgBuffer srcBuffer, IMgBuffer dstBuffer, MgBufferCopy[] pRegions)
        {
            var bBuffer_src = (VkBuffer)srcBuffer;

            Debug.Assert(bBuffer_src != null);

            var bBuffer_dst = (VkBuffer)dstBuffer;

            Debug.Assert(bBuffer_dst != null);

            var handle = GCHandle.Alloc(pRegions, GCHandleType.Pinned);

            try
            {
                unsafe
                {
                    var regionCount = (uint)pRegions.Length;
                    var region      = handle.AddrOfPinnedObject();

                    MgBufferCopy *regions = (MgBufferCopy *)region.ToPointer();

                    Interops.vkCmdCopyBuffer(this.Handle, bBuffer_src.Handle, bBuffer_dst.Handle, regionCount, regions);
                }
            }
            finally
            {
                handle.Free();
            }
        }