/// <summary> /// /// </summary> public unsafe void ResolveImage(SharpVk.Image sourceImage, SharpVk.ImageLayout sourceImageLayout, SharpVk.Image destinationImage, SharpVk.ImageLayout destinationImageLayout, SharpVk.ImageResolve[] regions) { try { SharpVk.ImageResolve *marshalledRegions = default(SharpVk.ImageResolve *); if (regions != null) { var fieldPointer = (SharpVk.ImageResolve *)(Interop.HeapUtil.AllocateAndClear <SharpVk.ImageResolve>(regions.Length).ToPointer()); for (int index = 0; index < (uint)(regions.Length); index++) { fieldPointer[index] = regions[index]; } marshalledRegions = fieldPointer; } else { marshalledRegions = null; } Interop.Commands.vkCmdResolveImage(this.handle, sourceImage?.handle ?? default(SharpVk.Interop.Image), sourceImageLayout, destinationImage?.handle ?? default(SharpVk.Interop.Image), destinationImageLayout, (uint)(regions?.Length ?? 0), marshalledRegions); } finally { Interop.HeapUtil.FreeAll(); } }
public static extern void vkCmdResolveImage(SharpVk.Interop.CommandBuffer commandBuffer, SharpVk.Interop.Image sourceImage, SharpVk.ImageLayout sourceImageLayout, SharpVk.Interop.Image destinationImage, SharpVk.ImageLayout destinationImageLayout, uint regionCount, SharpVk.ImageResolve *regions);